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.beta"
16//   ...
17//   ctx := context.Background()
18//   computeService, err := compute.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package compute // import "google.golang.org/api/compute/v0.beta"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "compute:beta"
79const apiName = "compute"
80const apiVersion = "beta"
81const basePath = "https://compute.googleapis.com/compute/beta/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.HealthChecks = NewHealthChecksService(s)
157	s.HttpHealthChecks = NewHttpHealthChecksService(s)
158	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
159	s.Images = NewImagesService(s)
160	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
161	s.InstanceGroups = NewInstanceGroupsService(s)
162	s.InstanceTemplates = NewInstanceTemplatesService(s)
163	s.Instances = NewInstancesService(s)
164	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
165	s.InterconnectLocations = NewInterconnectLocationsService(s)
166	s.Interconnects = NewInterconnectsService(s)
167	s.LicenseCodes = NewLicenseCodesService(s)
168	s.Licenses = NewLicensesService(s)
169	s.MachineImages = NewMachineImagesService(s)
170	s.MachineTypes = NewMachineTypesService(s)
171	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
172	s.Networks = NewNetworksService(s)
173	s.NodeGroups = NewNodeGroupsService(s)
174	s.NodeTemplates = NewNodeTemplatesService(s)
175	s.NodeTypes = NewNodeTypesService(s)
176	s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s)
177	s.PacketMirrorings = NewPacketMirroringsService(s)
178	s.Projects = NewProjectsService(s)
179	s.RegionAutoscalers = NewRegionAutoscalersService(s)
180	s.RegionBackendServices = NewRegionBackendServicesService(s)
181	s.RegionCommitments = NewRegionCommitmentsService(s)
182	s.RegionDiskTypes = NewRegionDiskTypesService(s)
183	s.RegionDisks = NewRegionDisksService(s)
184	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
185	s.RegionHealthChecks = NewRegionHealthChecksService(s)
186	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
187	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
188	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
189	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
190	s.RegionOperations = NewRegionOperationsService(s)
191	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
192	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
193	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
194	s.RegionUrlMaps = NewRegionUrlMapsService(s)
195	s.Regions = NewRegionsService(s)
196	s.Reservations = NewReservationsService(s)
197	s.ResourcePolicies = NewResourcePoliciesService(s)
198	s.Routers = NewRoutersService(s)
199	s.Routes = NewRoutesService(s)
200	s.SecurityPolicies = NewSecurityPoliciesService(s)
201	s.Snapshots = NewSnapshotsService(s)
202	s.SslCertificates = NewSslCertificatesService(s)
203	s.SslPolicies = NewSslPoliciesService(s)
204	s.Subnetworks = NewSubnetworksService(s)
205	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
206	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
207	s.TargetInstances = NewTargetInstancesService(s)
208	s.TargetPools = NewTargetPoolsService(s)
209	s.TargetSslProxies = NewTargetSslProxiesService(s)
210	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
211	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
212	s.UrlMaps = NewUrlMapsService(s)
213	s.VpnGateways = NewVpnGatewaysService(s)
214	s.VpnTunnels = NewVpnTunnelsService(s)
215	s.ZoneOperations = NewZoneOperationsService(s)
216	s.Zones = NewZonesService(s)
217	return s, nil
218}
219
220type Service struct {
221	client    *http.Client
222	BasePath  string // API endpoint base URL
223	UserAgent string // optional additional User-Agent fragment
224
225	AcceleratorTypes *AcceleratorTypesService
226
227	Addresses *AddressesService
228
229	Autoscalers *AutoscalersService
230
231	BackendBuckets *BackendBucketsService
232
233	BackendServices *BackendServicesService
234
235	DiskTypes *DiskTypesService
236
237	Disks *DisksService
238
239	ExternalVpnGateways *ExternalVpnGatewaysService
240
241	Firewalls *FirewallsService
242
243	ForwardingRules *ForwardingRulesService
244
245	GlobalAddresses *GlobalAddressesService
246
247	GlobalForwardingRules *GlobalForwardingRulesService
248
249	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
250
251	GlobalOperations *GlobalOperationsService
252
253	GlobalOrganizationOperations *GlobalOrganizationOperationsService
254
255	HealthChecks *HealthChecksService
256
257	HttpHealthChecks *HttpHealthChecksService
258
259	HttpsHealthChecks *HttpsHealthChecksService
260
261	Images *ImagesService
262
263	InstanceGroupManagers *InstanceGroupManagersService
264
265	InstanceGroups *InstanceGroupsService
266
267	InstanceTemplates *InstanceTemplatesService
268
269	Instances *InstancesService
270
271	InterconnectAttachments *InterconnectAttachmentsService
272
273	InterconnectLocations *InterconnectLocationsService
274
275	Interconnects *InterconnectsService
276
277	LicenseCodes *LicenseCodesService
278
279	Licenses *LicensesService
280
281	MachineImages *MachineImagesService
282
283	MachineTypes *MachineTypesService
284
285	NetworkEndpointGroups *NetworkEndpointGroupsService
286
287	Networks *NetworksService
288
289	NodeGroups *NodeGroupsService
290
291	NodeTemplates *NodeTemplatesService
292
293	NodeTypes *NodeTypesService
294
295	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService
296
297	PacketMirrorings *PacketMirroringsService
298
299	Projects *ProjectsService
300
301	RegionAutoscalers *RegionAutoscalersService
302
303	RegionBackendServices *RegionBackendServicesService
304
305	RegionCommitments *RegionCommitmentsService
306
307	RegionDiskTypes *RegionDiskTypesService
308
309	RegionDisks *RegionDisksService
310
311	RegionHealthCheckServices *RegionHealthCheckServicesService
312
313	RegionHealthChecks *RegionHealthChecksService
314
315	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
316
317	RegionInstanceGroups *RegionInstanceGroupsService
318
319	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService
320
321	RegionNotificationEndpoints *RegionNotificationEndpointsService
322
323	RegionOperations *RegionOperationsService
324
325	RegionSslCertificates *RegionSslCertificatesService
326
327	RegionTargetHttpProxies *RegionTargetHttpProxiesService
328
329	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
330
331	RegionUrlMaps *RegionUrlMapsService
332
333	Regions *RegionsService
334
335	Reservations *ReservationsService
336
337	ResourcePolicies *ResourcePoliciesService
338
339	Routers *RoutersService
340
341	Routes *RoutesService
342
343	SecurityPolicies *SecurityPoliciesService
344
345	Snapshots *SnapshotsService
346
347	SslCertificates *SslCertificatesService
348
349	SslPolicies *SslPoliciesService
350
351	Subnetworks *SubnetworksService
352
353	TargetHttpProxies *TargetHttpProxiesService
354
355	TargetHttpsProxies *TargetHttpsProxiesService
356
357	TargetInstances *TargetInstancesService
358
359	TargetPools *TargetPoolsService
360
361	TargetSslProxies *TargetSslProxiesService
362
363	TargetTcpProxies *TargetTcpProxiesService
364
365	TargetVpnGateways *TargetVpnGatewaysService
366
367	UrlMaps *UrlMapsService
368
369	VpnGateways *VpnGatewaysService
370
371	VpnTunnels *VpnTunnelsService
372
373	ZoneOperations *ZoneOperationsService
374
375	Zones *ZonesService
376}
377
378func (s *Service) userAgent() string {
379	if s.UserAgent == "" {
380		return googleapi.UserAgent
381	}
382	return googleapi.UserAgent + " " + s.UserAgent
383}
384
385func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
386	rs := &AcceleratorTypesService{s: s}
387	return rs
388}
389
390type AcceleratorTypesService struct {
391	s *Service
392}
393
394func NewAddressesService(s *Service) *AddressesService {
395	rs := &AddressesService{s: s}
396	return rs
397}
398
399type AddressesService struct {
400	s *Service
401}
402
403func NewAutoscalersService(s *Service) *AutoscalersService {
404	rs := &AutoscalersService{s: s}
405	return rs
406}
407
408type AutoscalersService struct {
409	s *Service
410}
411
412func NewBackendBucketsService(s *Service) *BackendBucketsService {
413	rs := &BackendBucketsService{s: s}
414	return rs
415}
416
417type BackendBucketsService struct {
418	s *Service
419}
420
421func NewBackendServicesService(s *Service) *BackendServicesService {
422	rs := &BackendServicesService{s: s}
423	return rs
424}
425
426type BackendServicesService struct {
427	s *Service
428}
429
430func NewDiskTypesService(s *Service) *DiskTypesService {
431	rs := &DiskTypesService{s: s}
432	return rs
433}
434
435type DiskTypesService struct {
436	s *Service
437}
438
439func NewDisksService(s *Service) *DisksService {
440	rs := &DisksService{s: s}
441	return rs
442}
443
444type DisksService struct {
445	s *Service
446}
447
448func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
449	rs := &ExternalVpnGatewaysService{s: s}
450	return rs
451}
452
453type ExternalVpnGatewaysService struct {
454	s *Service
455}
456
457func NewFirewallsService(s *Service) *FirewallsService {
458	rs := &FirewallsService{s: s}
459	return rs
460}
461
462type FirewallsService struct {
463	s *Service
464}
465
466func NewForwardingRulesService(s *Service) *ForwardingRulesService {
467	rs := &ForwardingRulesService{s: s}
468	return rs
469}
470
471type ForwardingRulesService struct {
472	s *Service
473}
474
475func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
476	rs := &GlobalAddressesService{s: s}
477	return rs
478}
479
480type GlobalAddressesService struct {
481	s *Service
482}
483
484func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
485	rs := &GlobalForwardingRulesService{s: s}
486	return rs
487}
488
489type GlobalForwardingRulesService struct {
490	s *Service
491}
492
493func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
494	rs := &GlobalNetworkEndpointGroupsService{s: s}
495	return rs
496}
497
498type GlobalNetworkEndpointGroupsService struct {
499	s *Service
500}
501
502func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
503	rs := &GlobalOperationsService{s: s}
504	return rs
505}
506
507type GlobalOperationsService struct {
508	s *Service
509}
510
511func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
512	rs := &GlobalOrganizationOperationsService{s: s}
513	return rs
514}
515
516type GlobalOrganizationOperationsService struct {
517	s *Service
518}
519
520func NewHealthChecksService(s *Service) *HealthChecksService {
521	rs := &HealthChecksService{s: s}
522	return rs
523}
524
525type HealthChecksService struct {
526	s *Service
527}
528
529func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
530	rs := &HttpHealthChecksService{s: s}
531	return rs
532}
533
534type HttpHealthChecksService struct {
535	s *Service
536}
537
538func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
539	rs := &HttpsHealthChecksService{s: s}
540	return rs
541}
542
543type HttpsHealthChecksService struct {
544	s *Service
545}
546
547func NewImagesService(s *Service) *ImagesService {
548	rs := &ImagesService{s: s}
549	return rs
550}
551
552type ImagesService struct {
553	s *Service
554}
555
556func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
557	rs := &InstanceGroupManagersService{s: s}
558	return rs
559}
560
561type InstanceGroupManagersService struct {
562	s *Service
563}
564
565func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
566	rs := &InstanceGroupsService{s: s}
567	return rs
568}
569
570type InstanceGroupsService struct {
571	s *Service
572}
573
574func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
575	rs := &InstanceTemplatesService{s: s}
576	return rs
577}
578
579type InstanceTemplatesService struct {
580	s *Service
581}
582
583func NewInstancesService(s *Service) *InstancesService {
584	rs := &InstancesService{s: s}
585	return rs
586}
587
588type InstancesService struct {
589	s *Service
590}
591
592func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
593	rs := &InterconnectAttachmentsService{s: s}
594	return rs
595}
596
597type InterconnectAttachmentsService struct {
598	s *Service
599}
600
601func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
602	rs := &InterconnectLocationsService{s: s}
603	return rs
604}
605
606type InterconnectLocationsService struct {
607	s *Service
608}
609
610func NewInterconnectsService(s *Service) *InterconnectsService {
611	rs := &InterconnectsService{s: s}
612	return rs
613}
614
615type InterconnectsService struct {
616	s *Service
617}
618
619func NewLicenseCodesService(s *Service) *LicenseCodesService {
620	rs := &LicenseCodesService{s: s}
621	return rs
622}
623
624type LicenseCodesService struct {
625	s *Service
626}
627
628func NewLicensesService(s *Service) *LicensesService {
629	rs := &LicensesService{s: s}
630	return rs
631}
632
633type LicensesService struct {
634	s *Service
635}
636
637func NewMachineImagesService(s *Service) *MachineImagesService {
638	rs := &MachineImagesService{s: s}
639	return rs
640}
641
642type MachineImagesService struct {
643	s *Service
644}
645
646func NewMachineTypesService(s *Service) *MachineTypesService {
647	rs := &MachineTypesService{s: s}
648	return rs
649}
650
651type MachineTypesService struct {
652	s *Service
653}
654
655func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
656	rs := &NetworkEndpointGroupsService{s: s}
657	return rs
658}
659
660type NetworkEndpointGroupsService struct {
661	s *Service
662}
663
664func NewNetworksService(s *Service) *NetworksService {
665	rs := &NetworksService{s: s}
666	return rs
667}
668
669type NetworksService struct {
670	s *Service
671}
672
673func NewNodeGroupsService(s *Service) *NodeGroupsService {
674	rs := &NodeGroupsService{s: s}
675	return rs
676}
677
678type NodeGroupsService struct {
679	s *Service
680}
681
682func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
683	rs := &NodeTemplatesService{s: s}
684	return rs
685}
686
687type NodeTemplatesService struct {
688	s *Service
689}
690
691func NewNodeTypesService(s *Service) *NodeTypesService {
692	rs := &NodeTypesService{s: s}
693	return rs
694}
695
696type NodeTypesService struct {
697	s *Service
698}
699
700func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService {
701	rs := &OrganizationSecurityPoliciesService{s: s}
702	return rs
703}
704
705type OrganizationSecurityPoliciesService struct {
706	s *Service
707}
708
709func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
710	rs := &PacketMirroringsService{s: s}
711	return rs
712}
713
714type PacketMirroringsService struct {
715	s *Service
716}
717
718func NewProjectsService(s *Service) *ProjectsService {
719	rs := &ProjectsService{s: s}
720	return rs
721}
722
723type ProjectsService struct {
724	s *Service
725}
726
727func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
728	rs := &RegionAutoscalersService{s: s}
729	return rs
730}
731
732type RegionAutoscalersService struct {
733	s *Service
734}
735
736func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
737	rs := &RegionBackendServicesService{s: s}
738	return rs
739}
740
741type RegionBackendServicesService struct {
742	s *Service
743}
744
745func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
746	rs := &RegionCommitmentsService{s: s}
747	return rs
748}
749
750type RegionCommitmentsService struct {
751	s *Service
752}
753
754func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
755	rs := &RegionDiskTypesService{s: s}
756	return rs
757}
758
759type RegionDiskTypesService struct {
760	s *Service
761}
762
763func NewRegionDisksService(s *Service) *RegionDisksService {
764	rs := &RegionDisksService{s: s}
765	return rs
766}
767
768type RegionDisksService struct {
769	s *Service
770}
771
772func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
773	rs := &RegionHealthCheckServicesService{s: s}
774	return rs
775}
776
777type RegionHealthCheckServicesService struct {
778	s *Service
779}
780
781func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
782	rs := &RegionHealthChecksService{s: s}
783	return rs
784}
785
786type RegionHealthChecksService struct {
787	s *Service
788}
789
790func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
791	rs := &RegionInstanceGroupManagersService{s: s}
792	return rs
793}
794
795type RegionInstanceGroupManagersService struct {
796	s *Service
797}
798
799func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
800	rs := &RegionInstanceGroupsService{s: s}
801	return rs
802}
803
804type RegionInstanceGroupsService struct {
805	s *Service
806}
807
808func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
809	rs := &RegionNetworkEndpointGroupsService{s: s}
810	return rs
811}
812
813type RegionNetworkEndpointGroupsService struct {
814	s *Service
815}
816
817func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
818	rs := &RegionNotificationEndpointsService{s: s}
819	return rs
820}
821
822type RegionNotificationEndpointsService struct {
823	s *Service
824}
825
826func NewRegionOperationsService(s *Service) *RegionOperationsService {
827	rs := &RegionOperationsService{s: s}
828	return rs
829}
830
831type RegionOperationsService struct {
832	s *Service
833}
834
835func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
836	rs := &RegionSslCertificatesService{s: s}
837	return rs
838}
839
840type RegionSslCertificatesService struct {
841	s *Service
842}
843
844func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
845	rs := &RegionTargetHttpProxiesService{s: s}
846	return rs
847}
848
849type RegionTargetHttpProxiesService struct {
850	s *Service
851}
852
853func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
854	rs := &RegionTargetHttpsProxiesService{s: s}
855	return rs
856}
857
858type RegionTargetHttpsProxiesService struct {
859	s *Service
860}
861
862func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
863	rs := &RegionUrlMapsService{s: s}
864	return rs
865}
866
867type RegionUrlMapsService struct {
868	s *Service
869}
870
871func NewRegionsService(s *Service) *RegionsService {
872	rs := &RegionsService{s: s}
873	return rs
874}
875
876type RegionsService struct {
877	s *Service
878}
879
880func NewReservationsService(s *Service) *ReservationsService {
881	rs := &ReservationsService{s: s}
882	return rs
883}
884
885type ReservationsService struct {
886	s *Service
887}
888
889func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
890	rs := &ResourcePoliciesService{s: s}
891	return rs
892}
893
894type ResourcePoliciesService struct {
895	s *Service
896}
897
898func NewRoutersService(s *Service) *RoutersService {
899	rs := &RoutersService{s: s}
900	return rs
901}
902
903type RoutersService struct {
904	s *Service
905}
906
907func NewRoutesService(s *Service) *RoutesService {
908	rs := &RoutesService{s: s}
909	return rs
910}
911
912type RoutesService struct {
913	s *Service
914}
915
916func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
917	rs := &SecurityPoliciesService{s: s}
918	return rs
919}
920
921type SecurityPoliciesService struct {
922	s *Service
923}
924
925func NewSnapshotsService(s *Service) *SnapshotsService {
926	rs := &SnapshotsService{s: s}
927	return rs
928}
929
930type SnapshotsService struct {
931	s *Service
932}
933
934func NewSslCertificatesService(s *Service) *SslCertificatesService {
935	rs := &SslCertificatesService{s: s}
936	return rs
937}
938
939type SslCertificatesService struct {
940	s *Service
941}
942
943func NewSslPoliciesService(s *Service) *SslPoliciesService {
944	rs := &SslPoliciesService{s: s}
945	return rs
946}
947
948type SslPoliciesService struct {
949	s *Service
950}
951
952func NewSubnetworksService(s *Service) *SubnetworksService {
953	rs := &SubnetworksService{s: s}
954	return rs
955}
956
957type SubnetworksService struct {
958	s *Service
959}
960
961func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
962	rs := &TargetHttpProxiesService{s: s}
963	return rs
964}
965
966type TargetHttpProxiesService struct {
967	s *Service
968}
969
970func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
971	rs := &TargetHttpsProxiesService{s: s}
972	return rs
973}
974
975type TargetHttpsProxiesService struct {
976	s *Service
977}
978
979func NewTargetInstancesService(s *Service) *TargetInstancesService {
980	rs := &TargetInstancesService{s: s}
981	return rs
982}
983
984type TargetInstancesService struct {
985	s *Service
986}
987
988func NewTargetPoolsService(s *Service) *TargetPoolsService {
989	rs := &TargetPoolsService{s: s}
990	return rs
991}
992
993type TargetPoolsService struct {
994	s *Service
995}
996
997func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
998	rs := &TargetSslProxiesService{s: s}
999	return rs
1000}
1001
1002type TargetSslProxiesService struct {
1003	s *Service
1004}
1005
1006func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1007	rs := &TargetTcpProxiesService{s: s}
1008	return rs
1009}
1010
1011type TargetTcpProxiesService struct {
1012	s *Service
1013}
1014
1015func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1016	rs := &TargetVpnGatewaysService{s: s}
1017	return rs
1018}
1019
1020type TargetVpnGatewaysService struct {
1021	s *Service
1022}
1023
1024func NewUrlMapsService(s *Service) *UrlMapsService {
1025	rs := &UrlMapsService{s: s}
1026	return rs
1027}
1028
1029type UrlMapsService struct {
1030	s *Service
1031}
1032
1033func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1034	rs := &VpnGatewaysService{s: s}
1035	return rs
1036}
1037
1038type VpnGatewaysService struct {
1039	s *Service
1040}
1041
1042func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1043	rs := &VpnTunnelsService{s: s}
1044	return rs
1045}
1046
1047type VpnTunnelsService struct {
1048	s *Service
1049}
1050
1051func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1052	rs := &ZoneOperationsService{s: s}
1053	return rs
1054}
1055
1056type ZoneOperationsService struct {
1057	s *Service
1058}
1059
1060func NewZonesService(s *Service) *ZonesService {
1061	rs := &ZonesService{s: s}
1062	return rs
1063}
1064
1065type ZonesService struct {
1066	s *Service
1067}
1068
1069// AcceleratorConfig: A specification of the type and number of
1070// accelerator cards attached to the instance.
1071type AcceleratorConfig struct {
1072	// AcceleratorCount: The number of the guest accelerator cards exposed
1073	// to this instance.
1074	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1075
1076	// AcceleratorType: Full or partial URL of the accelerator type resource
1077	// to attach to this instance. For example:
1078	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1079	// p100 If you are creating an instance template, specify only the
1080	// accelerator name. See GPUs on Compute Engine for a full list of
1081	// accelerator types.
1082	AcceleratorType string `json:"acceleratorType,omitempty"`
1083
1084	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1085	// unconditionally include in API requests. By default, fields with
1086	// empty values are omitted from API requests. However, any non-pointer,
1087	// non-interface field appearing in ForceSendFields will be sent to the
1088	// server regardless of whether the field is empty or not. This may be
1089	// used to include empty fields in Patch requests.
1090	ForceSendFields []string `json:"-"`
1091
1092	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1093	// include in API requests with the JSON null value. By default, fields
1094	// with empty values are omitted from API requests. However, any field
1095	// with an empty value appearing in NullFields will be sent to the
1096	// server as null. It is an error if a field in this list has a
1097	// non-empty value. This may be used to include null fields in Patch
1098	// requests.
1099	NullFields []string `json:"-"`
1100}
1101
1102func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1103	type NoMethod AcceleratorConfig
1104	raw := NoMethod(*s)
1105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1106}
1107
1108// AcceleratorType: Represents an Accelerator Type resource.
1109//
1110// Google Cloud Platform provides graphics processing units
1111// (accelerators) that you can add to VM instances to improve or
1112// accelerate performance when working with intensive workloads. For
1113// more information, read GPUs on Compute Engine. (== resource_for
1114// {$api_version}.acceleratorTypes ==)
1115type AcceleratorType struct {
1116	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1117	// format.
1118	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1119
1120	// Deprecated: [Output Only] The deprecation status associated with this
1121	// accelerator type.
1122	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1123
1124	// Description: [Output Only] An optional textual description of the
1125	// resource.
1126	Description string `json:"description,omitempty"`
1127
1128	// Id: [Output Only] The unique identifier for the resource. This
1129	// identifier is defined by the server.
1130	Id uint64 `json:"id,omitempty,string"`
1131
1132	// Kind: [Output Only] The type of the resource. Always
1133	// compute#acceleratorType for accelerator types.
1134	Kind string `json:"kind,omitempty"`
1135
1136	// MaximumCardsPerInstance: [Output Only] Maximum number of accelerator
1137	// cards allowed per instance.
1138	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1139
1140	// Name: [Output Only] Name of the resource.
1141	Name string `json:"name,omitempty"`
1142
1143	// SelfLink: [Output Only] Server-defined, fully qualified URL for this
1144	// resource.
1145	SelfLink string `json:"selfLink,omitempty"`
1146
1147	// Zone: [Output Only] The name of the zone where the accelerator type
1148	// resides, such as us-central1-a. You must specify this field as part
1149	// of the HTTP request URL. It is not settable as a field in the request
1150	// body.
1151	Zone string `json:"zone,omitempty"`
1152
1153	// ServerResponse contains the HTTP response code and headers from the
1154	// server.
1155	googleapi.ServerResponse `json:"-"`
1156
1157	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1158	// to unconditionally include in API requests. By default, fields with
1159	// empty values are omitted from API requests. However, any non-pointer,
1160	// non-interface field appearing in ForceSendFields will be sent to the
1161	// server regardless of whether the field is empty or not. This may be
1162	// used to include empty fields in Patch requests.
1163	ForceSendFields []string `json:"-"`
1164
1165	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1166	// include in API requests with the JSON null value. By default, fields
1167	// with empty values are omitted from API requests. However, any field
1168	// with an empty value appearing in NullFields will be sent to the
1169	// server as null. It is an error if a field in this list has a
1170	// non-empty value. This may be used to include null fields in Patch
1171	// requests.
1172	NullFields []string `json:"-"`
1173}
1174
1175func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1176	type NoMethod AcceleratorType
1177	raw := NoMethod(*s)
1178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1179}
1180
1181type AcceleratorTypeAggregatedList struct {
1182	// Id: [Output Only] Unique identifier for the resource; defined by the
1183	// server.
1184	Id string `json:"id,omitempty"`
1185
1186	// Items: A list of AcceleratorTypesScopedList resources.
1187	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1188
1189	// Kind: [Output Only] Type of resource. Always
1190	// compute#acceleratorTypeAggregatedList for aggregated lists of
1191	// accelerator types.
1192	Kind string `json:"kind,omitempty"`
1193
1194	// NextPageToken: [Output Only] This token allows you to get the next
1195	// page of results for list requests. If the number of results is larger
1196	// than maxResults, use the nextPageToken as a value for the query
1197	// parameter pageToken in the next list request. Subsequent list
1198	// requests will have their own nextPageToken to continue paging through
1199	// the results.
1200	NextPageToken string `json:"nextPageToken,omitempty"`
1201
1202	// SelfLink: [Output Only] Server-defined URL for this resource.
1203	SelfLink string `json:"selfLink,omitempty"`
1204
1205	// Warning: [Output Only] Informational warning message.
1206	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1207
1208	// ServerResponse contains the HTTP response code and headers from the
1209	// server.
1210	googleapi.ServerResponse `json:"-"`
1211
1212	// ForceSendFields is a list of field names (e.g. "Id") to
1213	// unconditionally include in API requests. By default, fields with
1214	// empty values are omitted from API requests. However, any non-pointer,
1215	// non-interface field appearing in ForceSendFields will be sent to the
1216	// server regardless of whether the field is empty or not. This may be
1217	// used to include empty fields in Patch requests.
1218	ForceSendFields []string `json:"-"`
1219
1220	// NullFields is a list of field names (e.g. "Id") to include in API
1221	// requests with the JSON null value. By default, fields with empty
1222	// values are omitted from API requests. However, any field with an
1223	// empty value appearing in NullFields will be sent to the server as
1224	// null. It is an error if a field in this list has a non-empty value.
1225	// This may be used to include null fields in Patch requests.
1226	NullFields []string `json:"-"`
1227}
1228
1229func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1230	type NoMethod AcceleratorTypeAggregatedList
1231	raw := NoMethod(*s)
1232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1233}
1234
1235// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1236// warning message.
1237type AcceleratorTypeAggregatedListWarning struct {
1238	// Code: [Output Only] A warning code, if applicable. For example,
1239	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1240	// the response.
1241	//
1242	// Possible values:
1243	//   "CLEANUP_FAILED"
1244	//   "DEPRECATED_RESOURCE_USED"
1245	//   "DEPRECATED_TYPE_USED"
1246	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1247	//   "EXPERIMENTAL_TYPE_USED"
1248	//   "EXTERNAL_API_WARNING"
1249	//   "FIELD_VALUE_OVERRIDEN"
1250	//   "INJECTED_KERNELS_DEPRECATED"
1251	//   "MISSING_TYPE_DEPENDENCY"
1252	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1253	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1254	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1255	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1256	//   "NEXT_HOP_NOT_RUNNING"
1257	//   "NOT_CRITICAL_ERROR"
1258	//   "NO_RESULTS_ON_PAGE"
1259	//   "REQUIRED_TOS_AGREEMENT"
1260	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1261	//   "RESOURCE_NOT_DELETED"
1262	//   "SCHEMA_VALIDATION_IGNORED"
1263	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1264	//   "UNDECLARED_PROPERTIES"
1265	//   "UNREACHABLE"
1266	Code string `json:"code,omitempty"`
1267
1268	// Data: [Output Only] Metadata about this warning in key: value format.
1269	// For example:
1270	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1271	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1272
1273	// Message: [Output Only] A human-readable description of the warning
1274	// code.
1275	Message string `json:"message,omitempty"`
1276
1277	// ForceSendFields is a list of field names (e.g. "Code") to
1278	// unconditionally include in API requests. By default, fields with
1279	// empty values are omitted from API requests. However, any non-pointer,
1280	// non-interface field appearing in ForceSendFields will be sent to the
1281	// server regardless of whether the field is empty or not. This may be
1282	// used to include empty fields in Patch requests.
1283	ForceSendFields []string `json:"-"`
1284
1285	// NullFields is a list of field names (e.g. "Code") to include in API
1286	// requests with the JSON null value. By default, fields with empty
1287	// values are omitted from API requests. However, any field with an
1288	// empty value appearing in NullFields will be sent to the server as
1289	// null. It is an error if a field in this list has a non-empty value.
1290	// This may be used to include null fields in Patch requests.
1291	NullFields []string `json:"-"`
1292}
1293
1294func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1295	type NoMethod AcceleratorTypeAggregatedListWarning
1296	raw := NoMethod(*s)
1297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1298}
1299
1300type AcceleratorTypeAggregatedListWarningData struct {
1301	// Key: [Output Only] A key that provides more detail on the warning
1302	// being returned. For example, for warnings where there are no results
1303	// in a list request for a particular zone, this key might be scope and
1304	// the key value might be the zone name. Other examples might be a key
1305	// indicating a deprecated resource and a suggested replacement, or a
1306	// warning about invalid network settings (for example, if an instance
1307	// attempts to perform IP forwarding but is not enabled for IP
1308	// forwarding).
1309	Key string `json:"key,omitempty"`
1310
1311	// Value: [Output Only] A warning data value corresponding to the key.
1312	Value string `json:"value,omitempty"`
1313
1314	// ForceSendFields is a list of field names (e.g. "Key") to
1315	// unconditionally include in API requests. By default, fields with
1316	// empty values are omitted from API requests. However, any non-pointer,
1317	// non-interface field appearing in ForceSendFields will be sent to the
1318	// server regardless of whether the field is empty or not. This may be
1319	// used to include empty fields in Patch requests.
1320	ForceSendFields []string `json:"-"`
1321
1322	// NullFields is a list of field names (e.g. "Key") to include in API
1323	// requests with the JSON null value. By default, fields with empty
1324	// values are omitted from API requests. However, any field with an
1325	// empty value appearing in NullFields will be sent to the server as
1326	// null. It is an error if a field in this list has a non-empty value.
1327	// This may be used to include null fields in Patch requests.
1328	NullFields []string `json:"-"`
1329}
1330
1331func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1332	type NoMethod AcceleratorTypeAggregatedListWarningData
1333	raw := NoMethod(*s)
1334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1335}
1336
1337// AcceleratorTypeList: Contains a list of accelerator types.
1338type AcceleratorTypeList struct {
1339	// Id: [Output Only] Unique identifier for the resource; defined by the
1340	// server.
1341	Id string `json:"id,omitempty"`
1342
1343	// Items: A list of AcceleratorType resources.
1344	Items []*AcceleratorType `json:"items,omitempty"`
1345
1346	// Kind: [Output Only] Type of resource. Always
1347	// compute#acceleratorTypeList for lists of accelerator types.
1348	Kind string `json:"kind,omitempty"`
1349
1350	// NextPageToken: [Output Only] This token allows you to get the next
1351	// page of results for list requests. If the number of results is larger
1352	// than maxResults, use the nextPageToken as a value for the query
1353	// parameter pageToken in the next list request. Subsequent list
1354	// requests will have their own nextPageToken to continue paging through
1355	// the results.
1356	NextPageToken string `json:"nextPageToken,omitempty"`
1357
1358	// SelfLink: [Output Only] Server-defined URL for this resource.
1359	SelfLink string `json:"selfLink,omitempty"`
1360
1361	// Warning: [Output Only] Informational warning message.
1362	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1363
1364	// ServerResponse contains the HTTP response code and headers from the
1365	// server.
1366	googleapi.ServerResponse `json:"-"`
1367
1368	// ForceSendFields is a list of field names (e.g. "Id") to
1369	// unconditionally include in API requests. By default, fields with
1370	// empty values are omitted from API requests. However, any non-pointer,
1371	// non-interface field appearing in ForceSendFields will be sent to the
1372	// server regardless of whether the field is empty or not. This may be
1373	// used to include empty fields in Patch requests.
1374	ForceSendFields []string `json:"-"`
1375
1376	// NullFields is a list of field names (e.g. "Id") to include in API
1377	// requests with the JSON null value. By default, fields with empty
1378	// values are omitted from API requests. However, any field with an
1379	// empty value appearing in NullFields will be sent to the server as
1380	// null. It is an error if a field in this list has a non-empty value.
1381	// This may be used to include null fields in Patch requests.
1382	NullFields []string `json:"-"`
1383}
1384
1385func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1386	type NoMethod AcceleratorTypeList
1387	raw := NoMethod(*s)
1388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1389}
1390
1391// AcceleratorTypeListWarning: [Output Only] Informational warning
1392// message.
1393type AcceleratorTypeListWarning struct {
1394	// Code: [Output Only] A warning code, if applicable. For example,
1395	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1396	// the response.
1397	//
1398	// Possible values:
1399	//   "CLEANUP_FAILED"
1400	//   "DEPRECATED_RESOURCE_USED"
1401	//   "DEPRECATED_TYPE_USED"
1402	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1403	//   "EXPERIMENTAL_TYPE_USED"
1404	//   "EXTERNAL_API_WARNING"
1405	//   "FIELD_VALUE_OVERRIDEN"
1406	//   "INJECTED_KERNELS_DEPRECATED"
1407	//   "MISSING_TYPE_DEPENDENCY"
1408	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1409	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1410	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1411	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1412	//   "NEXT_HOP_NOT_RUNNING"
1413	//   "NOT_CRITICAL_ERROR"
1414	//   "NO_RESULTS_ON_PAGE"
1415	//   "REQUIRED_TOS_AGREEMENT"
1416	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1417	//   "RESOURCE_NOT_DELETED"
1418	//   "SCHEMA_VALIDATION_IGNORED"
1419	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1420	//   "UNDECLARED_PROPERTIES"
1421	//   "UNREACHABLE"
1422	Code string `json:"code,omitempty"`
1423
1424	// Data: [Output Only] Metadata about this warning in key: value format.
1425	// For example:
1426	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1427	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1428
1429	// Message: [Output Only] A human-readable description of the warning
1430	// code.
1431	Message string `json:"message,omitempty"`
1432
1433	// ForceSendFields is a list of field names (e.g. "Code") to
1434	// unconditionally include in API requests. By default, fields with
1435	// empty values are omitted from API requests. However, any non-pointer,
1436	// non-interface field appearing in ForceSendFields will be sent to the
1437	// server regardless of whether the field is empty or not. This may be
1438	// used to include empty fields in Patch requests.
1439	ForceSendFields []string `json:"-"`
1440
1441	// NullFields is a list of field names (e.g. "Code") to include in API
1442	// requests with the JSON null value. By default, fields with empty
1443	// values are omitted from API requests. However, any field with an
1444	// empty value appearing in NullFields will be sent to the server as
1445	// null. It is an error if a field in this list has a non-empty value.
1446	// This may be used to include null fields in Patch requests.
1447	NullFields []string `json:"-"`
1448}
1449
1450func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1451	type NoMethod AcceleratorTypeListWarning
1452	raw := NoMethod(*s)
1453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1454}
1455
1456type AcceleratorTypeListWarningData struct {
1457	// Key: [Output Only] A key that provides more detail on the warning
1458	// being returned. For example, for warnings where there are no results
1459	// in a list request for a particular zone, this key might be scope and
1460	// the key value might be the zone name. Other examples might be a key
1461	// indicating a deprecated resource and a suggested replacement, or a
1462	// warning about invalid network settings (for example, if an instance
1463	// attempts to perform IP forwarding but is not enabled for IP
1464	// forwarding).
1465	Key string `json:"key,omitempty"`
1466
1467	// Value: [Output Only] A warning data value corresponding to the key.
1468	Value string `json:"value,omitempty"`
1469
1470	// ForceSendFields is a list of field names (e.g. "Key") to
1471	// unconditionally include in API requests. By default, fields with
1472	// empty values are omitted from API requests. However, any non-pointer,
1473	// non-interface field appearing in ForceSendFields will be sent to the
1474	// server regardless of whether the field is empty or not. This may be
1475	// used to include empty fields in Patch requests.
1476	ForceSendFields []string `json:"-"`
1477
1478	// NullFields is a list of field names (e.g. "Key") to include in API
1479	// requests with the JSON null value. By default, fields with empty
1480	// values are omitted from API requests. However, any field with an
1481	// empty value appearing in NullFields will be sent to the server as
1482	// null. It is an error if a field in this list has a non-empty value.
1483	// This may be used to include null fields in Patch requests.
1484	NullFields []string `json:"-"`
1485}
1486
1487func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1488	type NoMethod AcceleratorTypeListWarningData
1489	raw := NoMethod(*s)
1490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1491}
1492
1493type AcceleratorTypesScopedList struct {
1494	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1495	// in this scope.
1496	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1497
1498	// Warning: [Output Only] An informational warning that appears when the
1499	// accelerator types list is empty.
1500	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1501
1502	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1503	// unconditionally include in API requests. By default, fields with
1504	// empty values are omitted from API requests. However, any non-pointer,
1505	// non-interface field appearing in ForceSendFields will be sent to the
1506	// server regardless of whether the field is empty or not. This may be
1507	// used to include empty fields in Patch requests.
1508	ForceSendFields []string `json:"-"`
1509
1510	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1511	// include in API requests with the JSON null value. By default, fields
1512	// with empty values are omitted from API requests. However, any field
1513	// with an empty value appearing in NullFields will be sent to the
1514	// server as null. It is an error if a field in this list has a
1515	// non-empty value. This may be used to include null fields in Patch
1516	// requests.
1517	NullFields []string `json:"-"`
1518}
1519
1520func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1521	type NoMethod AcceleratorTypesScopedList
1522	raw := NoMethod(*s)
1523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1524}
1525
1526// AcceleratorTypesScopedListWarning: [Output Only] An informational
1527// warning that appears when the accelerator types list is empty.
1528type AcceleratorTypesScopedListWarning struct {
1529	// Code: [Output Only] A warning code, if applicable. For example,
1530	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1531	// the response.
1532	//
1533	// Possible values:
1534	//   "CLEANUP_FAILED"
1535	//   "DEPRECATED_RESOURCE_USED"
1536	//   "DEPRECATED_TYPE_USED"
1537	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1538	//   "EXPERIMENTAL_TYPE_USED"
1539	//   "EXTERNAL_API_WARNING"
1540	//   "FIELD_VALUE_OVERRIDEN"
1541	//   "INJECTED_KERNELS_DEPRECATED"
1542	//   "MISSING_TYPE_DEPENDENCY"
1543	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1544	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1545	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1546	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1547	//   "NEXT_HOP_NOT_RUNNING"
1548	//   "NOT_CRITICAL_ERROR"
1549	//   "NO_RESULTS_ON_PAGE"
1550	//   "REQUIRED_TOS_AGREEMENT"
1551	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1552	//   "RESOURCE_NOT_DELETED"
1553	//   "SCHEMA_VALIDATION_IGNORED"
1554	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1555	//   "UNDECLARED_PROPERTIES"
1556	//   "UNREACHABLE"
1557	Code string `json:"code,omitempty"`
1558
1559	// Data: [Output Only] Metadata about this warning in key: value format.
1560	// For example:
1561	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1562	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1563
1564	// Message: [Output Only] A human-readable description of the warning
1565	// code.
1566	Message string `json:"message,omitempty"`
1567
1568	// ForceSendFields is a list of field names (e.g. "Code") to
1569	// unconditionally include in API requests. By default, fields with
1570	// empty values are omitted from API requests. However, any non-pointer,
1571	// non-interface field appearing in ForceSendFields will be sent to the
1572	// server regardless of whether the field is empty or not. This may be
1573	// used to include empty fields in Patch requests.
1574	ForceSendFields []string `json:"-"`
1575
1576	// NullFields is a list of field names (e.g. "Code") to include in API
1577	// requests with the JSON null value. By default, fields with empty
1578	// values are omitted from API requests. However, any field with an
1579	// empty value appearing in NullFields will be sent to the server as
1580	// null. It is an error if a field in this list has a non-empty value.
1581	// This may be used to include null fields in Patch requests.
1582	NullFields []string `json:"-"`
1583}
1584
1585func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1586	type NoMethod AcceleratorTypesScopedListWarning
1587	raw := NoMethod(*s)
1588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1589}
1590
1591type AcceleratorTypesScopedListWarningData struct {
1592	// Key: [Output Only] A key that provides more detail on the warning
1593	// being returned. For example, for warnings where there are no results
1594	// in a list request for a particular zone, this key might be scope and
1595	// the key value might be the zone name. Other examples might be a key
1596	// indicating a deprecated resource and a suggested replacement, or a
1597	// warning about invalid network settings (for example, if an instance
1598	// attempts to perform IP forwarding but is not enabled for IP
1599	// forwarding).
1600	Key string `json:"key,omitempty"`
1601
1602	// Value: [Output Only] A warning data value corresponding to the key.
1603	Value string `json:"value,omitempty"`
1604
1605	// ForceSendFields is a list of field names (e.g. "Key") to
1606	// unconditionally include in API requests. By default, fields with
1607	// empty values are omitted from API requests. However, any non-pointer,
1608	// non-interface field appearing in ForceSendFields will be sent to the
1609	// server regardless of whether the field is empty or not. This may be
1610	// used to include empty fields in Patch requests.
1611	ForceSendFields []string `json:"-"`
1612
1613	// NullFields is a list of field names (e.g. "Key") to include in API
1614	// requests with the JSON null value. By default, fields with empty
1615	// values are omitted from API requests. However, any field with an
1616	// empty value appearing in NullFields will be sent to the server as
1617	// null. It is an error if a field in this list has a non-empty value.
1618	// This may be used to include null fields in Patch requests.
1619	NullFields []string `json:"-"`
1620}
1621
1622func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1623	type NoMethod AcceleratorTypesScopedListWarningData
1624	raw := NoMethod(*s)
1625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1626}
1627
1628// AccessConfig: An access configuration attached to an instance's
1629// network interface. Only one access config per instance is supported.
1630type AccessConfig struct {
1631	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1632	// for access configs.
1633	Kind string `json:"kind,omitempty"`
1634
1635	// Name: The name of this access configuration. The default and
1636	// recommended name is External NAT, but you can use any arbitrary
1637	// string, such as My external IP or Network Access.
1638	Name string `json:"name,omitempty"`
1639
1640	// NatIP: An external IP address associated with this instance. Specify
1641	// an unused static external IP address available to the project or
1642	// leave this field undefined to use an IP from a shared ephemeral IP
1643	// address pool. If you specify a static external IP address, it must
1644	// live in the same region as the zone of the instance.
1645	NatIP string `json:"natIP,omitempty"`
1646
1647	// NetworkTier: This signifies the networking tier used for configuring
1648	// this access configuration and can only take the following values:
1649	// PREMIUM, STANDARD.
1650	//
1651	// If an AccessConfig is specified without a valid external IP address,
1652	// an ephemeral IP will be created with this networkTier.
1653	//
1654	// If an AccessConfig with a valid external IP address is specified, it
1655	// must match that of the networkTier associated with the Address
1656	// resource owning that IP.
1657	//
1658	// Possible values:
1659	//   "PREMIUM"
1660	//   "STANDARD"
1661	NetworkTier string `json:"networkTier,omitempty"`
1662
1663	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1664	// You can set this field only if the `setPublicPtr` field is enabled.
1665	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1666
1667	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1668	// created to map the external IP address of the instance to a DNS
1669	// domain name.
1670	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1671
1672	// Type: The type of configuration. The default and only option is
1673	// ONE_TO_ONE_NAT.
1674	//
1675	// Possible values:
1676	//   "ONE_TO_ONE_NAT" (default)
1677	Type string `json:"type,omitempty"`
1678
1679	// ForceSendFields is a list of field names (e.g. "Kind") to
1680	// unconditionally include in API requests. By default, fields with
1681	// empty values are omitted from API requests. However, any non-pointer,
1682	// non-interface field appearing in ForceSendFields will be sent to the
1683	// server regardless of whether the field is empty or not. This may be
1684	// used to include empty fields in Patch requests.
1685	ForceSendFields []string `json:"-"`
1686
1687	// NullFields is a list of field names (e.g. "Kind") to include in API
1688	// requests with the JSON null value. By default, fields with empty
1689	// values are omitted from API requests. However, any field with an
1690	// empty value appearing in NullFields will be sent to the server as
1691	// null. It is an error if a field in this list has a non-empty value.
1692	// This may be used to include null fields in Patch requests.
1693	NullFields []string `json:"-"`
1694}
1695
1696func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1697	type NoMethod AccessConfig
1698	raw := NoMethod(*s)
1699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1700}
1701
1702// Address: Use global external addresses for GFE-based external HTTP(S)
1703// load balancers in Premium Tier.
1704//
1705// Use global internal addresses for reserved peering network
1706// range.
1707//
1708// Use regional external addresses for the following resources:
1709//
1710// - External IP addresses for VM instances - Regional external
1711// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1712// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1713// gateways (both Classic and HA)
1714//
1715// Use regional internal IP addresses for subnet IP ranges (primary and
1716// secondary). This includes:
1717//
1718// - Internal IP addresses for VM instances - Alias IP ranges of VM
1719// instances (/32 only) - Regional internal forwarding rules - Internal
1720// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1721// addresses - Cloud DNS inbound forwarding IP addresses
1722//
1723// For more information, read reserved IP address.
1724//
1725// (== resource_for {$api_version}.addresses ==) (== resource_for
1726// {$api_version}.globalAddresses ==)
1727type Address struct {
1728	// Address: The static IP address represented by this resource.
1729	Address string `json:"address,omitempty"`
1730
1731	// AddressType: The type of address to reserve, either INTERNAL or
1732	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1733	//
1734	// Possible values:
1735	//   "EXTERNAL"
1736	//   "INTERNAL"
1737	//   "UNSPECIFIED_TYPE"
1738	AddressType string `json:"addressType,omitempty"`
1739
1740	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1741	// format.
1742	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1743
1744	// Description: An optional description of this resource. Provide this
1745	// field when you create the resource.
1746	Description string `json:"description,omitempty"`
1747
1748	// Id: [Output Only] The unique identifier for the resource. This
1749	// identifier is defined by the server.
1750	Id uint64 `json:"id,omitempty,string"`
1751
1752	// IpVersion: The IP version that will be used by this address. Valid
1753	// options are IPV4 or IPV6. This can only be specified for a global
1754	// address.
1755	//
1756	// Possible values:
1757	//   "IPV4"
1758	//   "IPV6"
1759	//   "UNSPECIFIED_VERSION"
1760	IpVersion string `json:"ipVersion,omitempty"`
1761
1762	// Kind: [Output Only] Type of the resource. Always compute#address for
1763	// addresses.
1764	Kind string `json:"kind,omitempty"`
1765
1766	// LabelFingerprint: A fingerprint for the labels being applied to this
1767	// Address, which is essentially a hash of the labels set used for
1768	// optimistic locking. The fingerprint is initially generated by Compute
1769	// Engine and changes after every request to modify or update labels.
1770	// You must always provide an up-to-date fingerprint hash in order to
1771	// update or change labels, otherwise the request will fail with error
1772	// 412 conditionNotMet.
1773	//
1774	// To see the latest fingerprint, make a get() request to retrieve an
1775	// Address.
1776	LabelFingerprint string `json:"labelFingerprint,omitempty"`
1777
1778	// Labels: Labels for this resource. These can only be added or modified
1779	// by the setLabels method. Each label key/value pair must comply with
1780	// RFC1035. Label values may be empty.
1781	Labels map[string]string `json:"labels,omitempty"`
1782
1783	// Name: Name of the resource. Provided by the client when the resource
1784	// is created. The name must be 1-63 characters long, and comply with
1785	// RFC1035. Specifically, the name must be 1-63 characters long and
1786	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1787	// character must be a lowercase letter, and all following characters
1788	// (except for the last character) must be a dash, lowercase letter, or
1789	// digit. The last character must be a lowercase letter or digit.
1790	Name string `json:"name,omitempty"`
1791
1792	// Network: The URL of the network in which to reserve the address. This
1793	// field can only be used with INTERNAL type with the VPC_PEERING
1794	// purpose.
1795	Network string `json:"network,omitempty"`
1796
1797	// NetworkTier: This signifies the networking tier used for configuring
1798	// this address and can only take the following values: PREMIUM or
1799	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1800	// forwarding rules can be either Premium or Standard Tier. Standard
1801	// Tier addresses applied to regional forwarding rules can be used with
1802	// any external load balancer. Regional forwarding rules in Premium Tier
1803	// can only be used with a network load balancer.
1804	//
1805	// If this field is not specified, it is assumed to be PREMIUM.
1806	//
1807	// Possible values:
1808	//   "PREMIUM"
1809	//   "STANDARD"
1810	NetworkTier string `json:"networkTier,omitempty"`
1811
1812	// PrefixLength: The prefix length if the resource reprensents an IP
1813	// range.
1814	PrefixLength int64 `json:"prefixLength,omitempty"`
1815
1816	// Purpose: The purpose of this resource, which can be one of the
1817	// following values:
1818	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1819	// IP ranges, internal load balancers, and similar resources.
1820	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1821	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1822	// networks.
1823	// - `NAT_AUTO` for addresses that are external IP addresses
1824	// automatically reserved for Cloud NAT.
1825	//
1826	// Possible values:
1827	//   "DNS_RESOLVER"
1828	//   "GCE_ENDPOINT"
1829	//   "NAT_AUTO"
1830	//   "SHARED_LOADBALANCER_VIP"
1831	//   "VPC_PEERING"
1832	Purpose string `json:"purpose,omitempty"`
1833
1834	// Region: [Output Only] The URL of the region where the regional
1835	// address resides. This field is not applicable to global addresses.
1836	// You must specify this field as part of the HTTP request URL.
1837	Region string `json:"region,omitempty"`
1838
1839	// SelfLink: [Output Only] Server-defined URL for the resource.
1840	SelfLink string `json:"selfLink,omitempty"`
1841
1842	// Status: [Output Only] The status of the address, which can be one of
1843	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1844	// currently in the process of being reserved. A RESERVED address is
1845	// currently reserved and available to use. An IN_USE address is
1846	// currently being used by another resource and is not available.
1847	//
1848	// Possible values:
1849	//   "IN_USE"
1850	//   "RESERVED"
1851	//   "RESERVING"
1852	Status string `json:"status,omitempty"`
1853
1854	// Subnetwork: The URL of the subnetwork in which to reserve the
1855	// address. If an IP address is specified, it must be within the
1856	// subnetwork's IP range. This field can only be used with INTERNAL type
1857	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1858	Subnetwork string `json:"subnetwork,omitempty"`
1859
1860	// Users: [Output Only] The URLs of the resources that are using this
1861	// address.
1862	Users []string `json:"users,omitempty"`
1863
1864	// ServerResponse contains the HTTP response code and headers from the
1865	// server.
1866	googleapi.ServerResponse `json:"-"`
1867
1868	// ForceSendFields is a list of field names (e.g. "Address") to
1869	// unconditionally include in API requests. By default, fields with
1870	// empty values are omitted from API requests. However, any non-pointer,
1871	// non-interface field appearing in ForceSendFields will be sent to the
1872	// server regardless of whether the field is empty or not. This may be
1873	// used to include empty fields in Patch requests.
1874	ForceSendFields []string `json:"-"`
1875
1876	// NullFields is a list of field names (e.g. "Address") to include in
1877	// API requests with the JSON null value. By default, fields with empty
1878	// values are omitted from API requests. However, any field with an
1879	// empty value appearing in NullFields will be sent to the server as
1880	// null. It is an error if a field in this list has a non-empty value.
1881	// This may be used to include null fields in Patch requests.
1882	NullFields []string `json:"-"`
1883}
1884
1885func (s *Address) MarshalJSON() ([]byte, error) {
1886	type NoMethod Address
1887	raw := NoMethod(*s)
1888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1889}
1890
1891type AddressAggregatedList struct {
1892	// Id: [Output Only] Unique identifier for the resource; defined by the
1893	// server.
1894	Id string `json:"id,omitempty"`
1895
1896	// Items: A list of AddressesScopedList resources.
1897	Items map[string]AddressesScopedList `json:"items,omitempty"`
1898
1899	// Kind: [Output Only] Type of resource. Always
1900	// compute#addressAggregatedList for aggregated lists of addresses.
1901	Kind string `json:"kind,omitempty"`
1902
1903	// NextPageToken: [Output Only] This token allows you to get the next
1904	// page of results for list requests. If the number of results is larger
1905	// than maxResults, use the nextPageToken as a value for the query
1906	// parameter pageToken in the next list request. Subsequent list
1907	// requests will have their own nextPageToken to continue paging through
1908	// the results.
1909	NextPageToken string `json:"nextPageToken,omitempty"`
1910
1911	// SelfLink: [Output Only] Server-defined URL for this resource.
1912	SelfLink string `json:"selfLink,omitempty"`
1913
1914	// Warning: [Output Only] Informational warning message.
1915	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1916
1917	// ServerResponse contains the HTTP response code and headers from the
1918	// server.
1919	googleapi.ServerResponse `json:"-"`
1920
1921	// ForceSendFields is a list of field names (e.g. "Id") to
1922	// unconditionally include in API requests. By default, fields with
1923	// empty values are omitted from API requests. However, any non-pointer,
1924	// non-interface field appearing in ForceSendFields will be sent to the
1925	// server regardless of whether the field is empty or not. This may be
1926	// used to include empty fields in Patch requests.
1927	ForceSendFields []string `json:"-"`
1928
1929	// NullFields is a list of field names (e.g. "Id") to include in API
1930	// requests with the JSON null value. By default, fields with empty
1931	// values are omitted from API requests. However, any field with an
1932	// empty value appearing in NullFields will be sent to the server as
1933	// null. It is an error if a field in this list has a non-empty value.
1934	// This may be used to include null fields in Patch requests.
1935	NullFields []string `json:"-"`
1936}
1937
1938func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1939	type NoMethod AddressAggregatedList
1940	raw := NoMethod(*s)
1941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1942}
1943
1944// AddressAggregatedListWarning: [Output Only] Informational warning
1945// message.
1946type AddressAggregatedListWarning struct {
1947	// Code: [Output Only] A warning code, if applicable. For example,
1948	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1949	// the response.
1950	//
1951	// Possible values:
1952	//   "CLEANUP_FAILED"
1953	//   "DEPRECATED_RESOURCE_USED"
1954	//   "DEPRECATED_TYPE_USED"
1955	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1956	//   "EXPERIMENTAL_TYPE_USED"
1957	//   "EXTERNAL_API_WARNING"
1958	//   "FIELD_VALUE_OVERRIDEN"
1959	//   "INJECTED_KERNELS_DEPRECATED"
1960	//   "MISSING_TYPE_DEPENDENCY"
1961	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1962	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1963	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1964	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1965	//   "NEXT_HOP_NOT_RUNNING"
1966	//   "NOT_CRITICAL_ERROR"
1967	//   "NO_RESULTS_ON_PAGE"
1968	//   "REQUIRED_TOS_AGREEMENT"
1969	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1970	//   "RESOURCE_NOT_DELETED"
1971	//   "SCHEMA_VALIDATION_IGNORED"
1972	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1973	//   "UNDECLARED_PROPERTIES"
1974	//   "UNREACHABLE"
1975	Code string `json:"code,omitempty"`
1976
1977	// Data: [Output Only] Metadata about this warning in key: value format.
1978	// For example:
1979	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1980	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
1981
1982	// Message: [Output Only] A human-readable description of the warning
1983	// code.
1984	Message string `json:"message,omitempty"`
1985
1986	// ForceSendFields is a list of field names (e.g. "Code") to
1987	// unconditionally include in API requests. By default, fields with
1988	// empty values are omitted from API requests. However, any non-pointer,
1989	// non-interface field appearing in ForceSendFields will be sent to the
1990	// server regardless of whether the field is empty or not. This may be
1991	// used to include empty fields in Patch requests.
1992	ForceSendFields []string `json:"-"`
1993
1994	// NullFields is a list of field names (e.g. "Code") to include in API
1995	// requests with the JSON null value. By default, fields with empty
1996	// values are omitted from API requests. However, any field with an
1997	// empty value appearing in NullFields will be sent to the server as
1998	// null. It is an error if a field in this list has a non-empty value.
1999	// This may be used to include null fields in Patch requests.
2000	NullFields []string `json:"-"`
2001}
2002
2003func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2004	type NoMethod AddressAggregatedListWarning
2005	raw := NoMethod(*s)
2006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2007}
2008
2009type AddressAggregatedListWarningData struct {
2010	// Key: [Output Only] A key that provides more detail on the warning
2011	// being returned. For example, for warnings where there are no results
2012	// in a list request for a particular zone, this key might be scope and
2013	// the key value might be the zone name. Other examples might be a key
2014	// indicating a deprecated resource and a suggested replacement, or a
2015	// warning about invalid network settings (for example, if an instance
2016	// attempts to perform IP forwarding but is not enabled for IP
2017	// forwarding).
2018	Key string `json:"key,omitempty"`
2019
2020	// Value: [Output Only] A warning data value corresponding to the key.
2021	Value string `json:"value,omitempty"`
2022
2023	// ForceSendFields is a list of field names (e.g. "Key") to
2024	// unconditionally include in API requests. By default, fields with
2025	// empty values are omitted from API requests. However, any non-pointer,
2026	// non-interface field appearing in ForceSendFields will be sent to the
2027	// server regardless of whether the field is empty or not. This may be
2028	// used to include empty fields in Patch requests.
2029	ForceSendFields []string `json:"-"`
2030
2031	// NullFields is a list of field names (e.g. "Key") to include in API
2032	// requests with the JSON null value. By default, fields with empty
2033	// values are omitted from API requests. However, any field with an
2034	// empty value appearing in NullFields will be sent to the server as
2035	// null. It is an error if a field in this list has a non-empty value.
2036	// This may be used to include null fields in Patch requests.
2037	NullFields []string `json:"-"`
2038}
2039
2040func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2041	type NoMethod AddressAggregatedListWarningData
2042	raw := NoMethod(*s)
2043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2044}
2045
2046// AddressList: Contains a list of addresses.
2047type AddressList struct {
2048	// Id: [Output Only] Unique identifier for the resource; defined by the
2049	// server.
2050	Id string `json:"id,omitempty"`
2051
2052	// Items: A list of Address resources.
2053	Items []*Address `json:"items,omitempty"`
2054
2055	// Kind: [Output Only] Type of resource. Always compute#addressList for
2056	// lists of addresses.
2057	Kind string `json:"kind,omitempty"`
2058
2059	// NextPageToken: [Output Only] This token allows you to get the next
2060	// page of results for list requests. If the number of results is larger
2061	// than maxResults, use the nextPageToken as a value for the query
2062	// parameter pageToken in the next list request. Subsequent list
2063	// requests will have their own nextPageToken to continue paging through
2064	// the results.
2065	NextPageToken string `json:"nextPageToken,omitempty"`
2066
2067	// SelfLink: [Output Only] Server-defined URL for this resource.
2068	SelfLink string `json:"selfLink,omitempty"`
2069
2070	// Warning: [Output Only] Informational warning message.
2071	Warning *AddressListWarning `json:"warning,omitempty"`
2072
2073	// ServerResponse contains the HTTP response code and headers from the
2074	// server.
2075	googleapi.ServerResponse `json:"-"`
2076
2077	// ForceSendFields is a list of field names (e.g. "Id") to
2078	// unconditionally include in API requests. By default, fields with
2079	// empty values are omitted from API requests. However, any non-pointer,
2080	// non-interface field appearing in ForceSendFields will be sent to the
2081	// server regardless of whether the field is empty or not. This may be
2082	// used to include empty fields in Patch requests.
2083	ForceSendFields []string `json:"-"`
2084
2085	// NullFields is a list of field names (e.g. "Id") to include in API
2086	// requests with the JSON null value. By default, fields with empty
2087	// values are omitted from API requests. However, any field with an
2088	// empty value appearing in NullFields will be sent to the server as
2089	// null. It is an error if a field in this list has a non-empty value.
2090	// This may be used to include null fields in Patch requests.
2091	NullFields []string `json:"-"`
2092}
2093
2094func (s *AddressList) MarshalJSON() ([]byte, error) {
2095	type NoMethod AddressList
2096	raw := NoMethod(*s)
2097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2098}
2099
2100// AddressListWarning: [Output Only] Informational warning message.
2101type AddressListWarning struct {
2102	// Code: [Output Only] A warning code, if applicable. For example,
2103	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2104	// the response.
2105	//
2106	// Possible values:
2107	//   "CLEANUP_FAILED"
2108	//   "DEPRECATED_RESOURCE_USED"
2109	//   "DEPRECATED_TYPE_USED"
2110	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2111	//   "EXPERIMENTAL_TYPE_USED"
2112	//   "EXTERNAL_API_WARNING"
2113	//   "FIELD_VALUE_OVERRIDEN"
2114	//   "INJECTED_KERNELS_DEPRECATED"
2115	//   "MISSING_TYPE_DEPENDENCY"
2116	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2117	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2118	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2119	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2120	//   "NEXT_HOP_NOT_RUNNING"
2121	//   "NOT_CRITICAL_ERROR"
2122	//   "NO_RESULTS_ON_PAGE"
2123	//   "REQUIRED_TOS_AGREEMENT"
2124	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2125	//   "RESOURCE_NOT_DELETED"
2126	//   "SCHEMA_VALIDATION_IGNORED"
2127	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2128	//   "UNDECLARED_PROPERTIES"
2129	//   "UNREACHABLE"
2130	Code string `json:"code,omitempty"`
2131
2132	// Data: [Output Only] Metadata about this warning in key: value format.
2133	// For example:
2134	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2135	Data []*AddressListWarningData `json:"data,omitempty"`
2136
2137	// Message: [Output Only] A human-readable description of the warning
2138	// code.
2139	Message string `json:"message,omitempty"`
2140
2141	// ForceSendFields is a list of field names (e.g. "Code") to
2142	// unconditionally include in API requests. By default, fields with
2143	// empty values are omitted from API requests. However, any non-pointer,
2144	// non-interface field appearing in ForceSendFields will be sent to the
2145	// server regardless of whether the field is empty or not. This may be
2146	// used to include empty fields in Patch requests.
2147	ForceSendFields []string `json:"-"`
2148
2149	// NullFields is a list of field names (e.g. "Code") to include in API
2150	// requests with the JSON null value. By default, fields with empty
2151	// values are omitted from API requests. However, any field with an
2152	// empty value appearing in NullFields will be sent to the server as
2153	// null. It is an error if a field in this list has a non-empty value.
2154	// This may be used to include null fields in Patch requests.
2155	NullFields []string `json:"-"`
2156}
2157
2158func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2159	type NoMethod AddressListWarning
2160	raw := NoMethod(*s)
2161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2162}
2163
2164type AddressListWarningData struct {
2165	// Key: [Output Only] A key that provides more detail on the warning
2166	// being returned. For example, for warnings where there are no results
2167	// in a list request for a particular zone, this key might be scope and
2168	// the key value might be the zone name. Other examples might be a key
2169	// indicating a deprecated resource and a suggested replacement, or a
2170	// warning about invalid network settings (for example, if an instance
2171	// attempts to perform IP forwarding but is not enabled for IP
2172	// forwarding).
2173	Key string `json:"key,omitempty"`
2174
2175	// Value: [Output Only] A warning data value corresponding to the key.
2176	Value string `json:"value,omitempty"`
2177
2178	// ForceSendFields is a list of field names (e.g. "Key") to
2179	// unconditionally include in API requests. By default, fields with
2180	// empty values are omitted from API requests. However, any non-pointer,
2181	// non-interface field appearing in ForceSendFields will be sent to the
2182	// server regardless of whether the field is empty or not. This may be
2183	// used to include empty fields in Patch requests.
2184	ForceSendFields []string `json:"-"`
2185
2186	// NullFields is a list of field names (e.g. "Key") to include in API
2187	// requests with the JSON null value. By default, fields with empty
2188	// values are omitted from API requests. However, any field with an
2189	// empty value appearing in NullFields will be sent to the server as
2190	// null. It is an error if a field in this list has a non-empty value.
2191	// This may be used to include null fields in Patch requests.
2192	NullFields []string `json:"-"`
2193}
2194
2195func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2196	type NoMethod AddressListWarningData
2197	raw := NoMethod(*s)
2198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2199}
2200
2201type AddressesScopedList struct {
2202	// Addresses: [Output Only] A list of addresses contained in this scope.
2203	Addresses []*Address `json:"addresses,omitempty"`
2204
2205	// Warning: [Output Only] Informational warning which replaces the list
2206	// of addresses when the list is empty.
2207	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2208
2209	// ForceSendFields is a list of field names (e.g. "Addresses") to
2210	// unconditionally include in API requests. By default, fields with
2211	// empty values are omitted from API requests. However, any non-pointer,
2212	// non-interface field appearing in ForceSendFields will be sent to the
2213	// server regardless of whether the field is empty or not. This may be
2214	// used to include empty fields in Patch requests.
2215	ForceSendFields []string `json:"-"`
2216
2217	// NullFields is a list of field names (e.g. "Addresses") to include in
2218	// API requests with the JSON null value. By default, fields with empty
2219	// values are omitted from API requests. However, any field with an
2220	// empty value appearing in NullFields will be sent to the server as
2221	// null. It is an error if a field in this list has a non-empty value.
2222	// This may be used to include null fields in Patch requests.
2223	NullFields []string `json:"-"`
2224}
2225
2226func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2227	type NoMethod AddressesScopedList
2228	raw := NoMethod(*s)
2229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2230}
2231
2232// AddressesScopedListWarning: [Output Only] Informational warning which
2233// replaces the list of addresses when the list is empty.
2234type AddressesScopedListWarning struct {
2235	// Code: [Output Only] A warning code, if applicable. For example,
2236	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2237	// the response.
2238	//
2239	// Possible values:
2240	//   "CLEANUP_FAILED"
2241	//   "DEPRECATED_RESOURCE_USED"
2242	//   "DEPRECATED_TYPE_USED"
2243	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2244	//   "EXPERIMENTAL_TYPE_USED"
2245	//   "EXTERNAL_API_WARNING"
2246	//   "FIELD_VALUE_OVERRIDEN"
2247	//   "INJECTED_KERNELS_DEPRECATED"
2248	//   "MISSING_TYPE_DEPENDENCY"
2249	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2250	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2251	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2252	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2253	//   "NEXT_HOP_NOT_RUNNING"
2254	//   "NOT_CRITICAL_ERROR"
2255	//   "NO_RESULTS_ON_PAGE"
2256	//   "REQUIRED_TOS_AGREEMENT"
2257	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2258	//   "RESOURCE_NOT_DELETED"
2259	//   "SCHEMA_VALIDATION_IGNORED"
2260	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2261	//   "UNDECLARED_PROPERTIES"
2262	//   "UNREACHABLE"
2263	Code string `json:"code,omitempty"`
2264
2265	// Data: [Output Only] Metadata about this warning in key: value format.
2266	// For example:
2267	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2268	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2269
2270	// Message: [Output Only] A human-readable description of the warning
2271	// code.
2272	Message string `json:"message,omitempty"`
2273
2274	// ForceSendFields is a list of field names (e.g. "Code") to
2275	// unconditionally include in API requests. By default, fields with
2276	// empty values are omitted from API requests. However, any non-pointer,
2277	// non-interface field appearing in ForceSendFields will be sent to the
2278	// server regardless of whether the field is empty or not. This may be
2279	// used to include empty fields in Patch requests.
2280	ForceSendFields []string `json:"-"`
2281
2282	// NullFields is a list of field names (e.g. "Code") to include in API
2283	// requests with the JSON null value. By default, fields with empty
2284	// values are omitted from API requests. However, any field with an
2285	// empty value appearing in NullFields will be sent to the server as
2286	// null. It is an error if a field in this list has a non-empty value.
2287	// This may be used to include null fields in Patch requests.
2288	NullFields []string `json:"-"`
2289}
2290
2291func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2292	type NoMethod AddressesScopedListWarning
2293	raw := NoMethod(*s)
2294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2295}
2296
2297type AddressesScopedListWarningData struct {
2298	// Key: [Output Only] A key that provides more detail on the warning
2299	// being returned. For example, for warnings where there are no results
2300	// in a list request for a particular zone, this key might be scope and
2301	// the key value might be the zone name. Other examples might be a key
2302	// indicating a deprecated resource and a suggested replacement, or a
2303	// warning about invalid network settings (for example, if an instance
2304	// attempts to perform IP forwarding but is not enabled for IP
2305	// forwarding).
2306	Key string `json:"key,omitempty"`
2307
2308	// Value: [Output Only] A warning data value corresponding to the key.
2309	Value string `json:"value,omitempty"`
2310
2311	// ForceSendFields is a list of field names (e.g. "Key") to
2312	// unconditionally include in API requests. By default, fields with
2313	// empty values are omitted from API requests. However, any non-pointer,
2314	// non-interface field appearing in ForceSendFields will be sent to the
2315	// server regardless of whether the field is empty or not. This may be
2316	// used to include empty fields in Patch requests.
2317	ForceSendFields []string `json:"-"`
2318
2319	// NullFields is a list of field names (e.g. "Key") to include in API
2320	// requests with the JSON null value. By default, fields with empty
2321	// values are omitted from API requests. However, any field with an
2322	// empty value appearing in NullFields will be sent to the server as
2323	// null. It is an error if a field in this list has a non-empty value.
2324	// This may be used to include null fields in Patch requests.
2325	NullFields []string `json:"-"`
2326}
2327
2328func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2329	type NoMethod AddressesScopedListWarningData
2330	raw := NoMethod(*s)
2331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2332}
2333
2334// AliasIpRange: An alias IP range attached to an instance's network
2335// interface.
2336type AliasIpRange struct {
2337	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2338	// IP CIDR range must belong to the specified subnetwork and cannot
2339	// contain IP addresses reserved by system or used by other network
2340	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2341	// a netmask (such as /24) or a CIDR-formatted string (such as
2342	// 10.1.2.0/24).
2343	IpCidrRange string `json:"ipCidrRange,omitempty"`
2344
2345	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2346	// which to allocate an IP alias range. If not specified, the primary
2347	// range of the subnetwork is used.
2348	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2349
2350	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2351	// unconditionally include in API requests. By default, fields with
2352	// empty values are omitted from API requests. However, any non-pointer,
2353	// non-interface field appearing in ForceSendFields will be sent to the
2354	// server regardless of whether the field is empty or not. This may be
2355	// used to include empty fields in Patch requests.
2356	ForceSendFields []string `json:"-"`
2357
2358	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2359	// in API requests with the JSON null value. By default, fields with
2360	// empty values are omitted from API requests. However, any field with
2361	// an empty value appearing in NullFields will be sent to the server as
2362	// null. It is an error if a field in this list has a non-empty value.
2363	// This may be used to include null fields in Patch requests.
2364	NullFields []string `json:"-"`
2365}
2366
2367func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2368	type NoMethod AliasIpRange
2369	raw := NoMethod(*s)
2370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2371}
2372
2373type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2374	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2375	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2376
2377	// Interface: Specifies the disk interface to use for attaching this
2378	// disk, which is either SCSI or NVME. The default is SCSI. For
2379	// performance characteristics of SCSI over NVMe, see Local SSD
2380	// performance.
2381	//
2382	// Possible values:
2383	//   "NVME"
2384	//   "SCSI"
2385	Interface string `json:"interface,omitempty"`
2386
2387	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2388	// unconditionally include in API requests. By default, fields with
2389	// empty values are omitted from API requests. However, any non-pointer,
2390	// non-interface field appearing in ForceSendFields will be sent to the
2391	// server regardless of whether the field is empty or not. This may be
2392	// used to include empty fields in Patch requests.
2393	ForceSendFields []string `json:"-"`
2394
2395	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2396	// API requests with the JSON null value. By default, fields with empty
2397	// values are omitted from API requests. However, any field with an
2398	// empty value appearing in NullFields will be sent to the server as
2399	// null. It is an error if a field in this list has a non-empty value.
2400	// This may be used to include null fields in Patch requests.
2401	NullFields []string `json:"-"`
2402}
2403
2404func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2405	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2406	raw := NoMethod(*s)
2407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2408}
2409
2410// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2411// of the SKU instances being reserved. Next ID: 9
2412type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2413	// GuestAccelerators: Specifies accelerator type and count.
2414	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2415
2416	// LocalSsds: Specifies amount of local ssd to reserve with each
2417	// instance. The type of disk is local-ssd.
2418	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2419
2420	// MachineType: Specifies type of machine (name only) which has fixed
2421	// number of vCPUs and fixed amount of memory. This also includes
2422	// specifying custom machine type following
2423	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2424	MachineType string `json:"machineType,omitempty"`
2425
2426	// MaintenanceInterval: Specifies whether this VM may be a stable fleet
2427	// VM. Setting this to "Periodic" designates this VM as a Stable Fleet
2428	// VM.
2429	//
2430	// See go/stable-fleet-ug for more details.
2431	//
2432	// Possible values:
2433	//   "AS_NEEDED"
2434	//   "PERIODIC"
2435	MaintenanceInterval string `json:"maintenanceInterval,omitempty"`
2436
2437	// MinCpuPlatform: Minimum cpu platform the reservation.
2438	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2439
2440	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2441	// to unconditionally include in API requests. By default, fields with
2442	// empty values are omitted from API requests. However, any non-pointer,
2443	// non-interface field appearing in ForceSendFields will be sent to the
2444	// server regardless of whether the field is empty or not. This may be
2445	// used to include empty fields in Patch requests.
2446	ForceSendFields []string `json:"-"`
2447
2448	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2449	// include in API requests with the JSON null value. By default, fields
2450	// with empty values are omitted from API requests. However, any field
2451	// with an empty value appearing in NullFields will be sent to the
2452	// server as null. It is an error if a field in this list has a
2453	// non-empty value. This may be used to include null fields in Patch
2454	// requests.
2455	NullFields []string `json:"-"`
2456}
2457
2458func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2459	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2460	raw := NoMethod(*s)
2461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2462}
2463
2464// AllocationSpecificSKUReservation: This reservation type allows to pre
2465// allocate specific instance configuration.
2466type AllocationSpecificSKUReservation struct {
2467	// Count: Specifies the number of resources that are allocated.
2468	Count int64 `json:"count,omitempty,string"`
2469
2470	// InUseCount: [Output Only] Indicates how many instances are in use.
2471	InUseCount int64 `json:"inUseCount,omitempty,string"`
2472
2473	// InstanceProperties: The instance properties for the reservation.
2474	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2475
2476	// ForceSendFields is a list of field names (e.g. "Count") to
2477	// unconditionally include in API requests. By default, fields with
2478	// empty values are omitted from API requests. However, any non-pointer,
2479	// non-interface field appearing in ForceSendFields will be sent to the
2480	// server regardless of whether the field is empty or not. This may be
2481	// used to include empty fields in Patch requests.
2482	ForceSendFields []string `json:"-"`
2483
2484	// NullFields is a list of field names (e.g. "Count") to include in API
2485	// requests with the JSON null value. By default, fields with empty
2486	// values are omitted from API requests. However, any field with an
2487	// empty value appearing in NullFields will be sent to the server as
2488	// null. It is an error if a field in this list has a non-empty value.
2489	// This may be used to include null fields in Patch requests.
2490	NullFields []string `json:"-"`
2491}
2492
2493func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2494	type NoMethod AllocationSpecificSKUReservation
2495	raw := NoMethod(*s)
2496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2497}
2498
2499// AttachedDisk: An instance-attached disk resource.
2500type AttachedDisk struct {
2501	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2502	// instance is deleted (but not when the disk is detached from the
2503	// instance).
2504	AutoDelete bool `json:"autoDelete,omitempty"`
2505
2506	// Boot: Indicates that this is a boot disk. The virtual machine will
2507	// use the first partition of the disk for its root filesystem.
2508	Boot bool `json:"boot,omitempty"`
2509
2510	// DeviceName: Specifies a unique device name of your choice that is
2511	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2512	// system running within the instance. This name can be used to
2513	// reference the device for mounting, resizing, and so on, from within
2514	// the instance.
2515	//
2516	// If not specified, the server chooses a default device name to apply
2517	// to this disk, in the form persistent-disk-x, where x is a number
2518	// assigned by Google Compute Engine. This field is only applicable for
2519	// persistent disks.
2520	DeviceName string `json:"deviceName,omitempty"`
2521
2522	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2523	// customer-supplied encryption key.
2524	//
2525	// If you are creating a new disk, this field encrypts the new disk
2526	// using an encryption key that you provide. If you are attaching an
2527	// existing disk that is already encrypted, this field decrypts the disk
2528	// using the customer-supplied encryption key.
2529	//
2530	// If you encrypt a disk using a customer-supplied key, you must provide
2531	// the same key again when you attempt to use this resource at a later
2532	// time. For example, you must provide the key when you create a
2533	// snapshot or an image from the disk or when you attach the disk to a
2534	// virtual machine instance.
2535	//
2536	// If you do not provide an encryption key, then the disk will be
2537	// encrypted using an automatically generated key and you do not need to
2538	// provide a key to use the disk later.
2539	//
2540	// Instance templates do not store customer-supplied encryption keys, so
2541	// you cannot use your own keys to encrypt disks in a managed instance
2542	// group.
2543	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2544
2545	// DiskSizeGb: The size of the disk in GB.
2546	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2547
2548	// GuestOsFeatures: A list of features to enable on the guest operating
2549	// system. Applicable only for bootable images. Read  Enabling guest
2550	// operating system features to see a list of available options.
2551	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2552
2553	// Index: [Output Only] A zero-based index to this disk, where 0 is
2554	// reserved for the boot disk. If you have many disks attached to an
2555	// instance, each disk would have a unique index number.
2556	Index int64 `json:"index,omitempty"`
2557
2558	// InitializeParams: [Input Only] Specifies the parameters for a new
2559	// disk that will be created alongside the new instance. Use
2560	// initialization parameters to create boot disks or local SSDs attached
2561	// to the new instance.
2562	//
2563	// This property is mutually exclusive with the source property; you can
2564	// only define one or the other, but not both.
2565	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2566
2567	// Interface: Specifies the disk interface to use for attaching this
2568	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2569	// disks must always use SCSI and the request will fail if you attempt
2570	// to attach a persistent disk in any other format than SCSI. Local SSDs
2571	// can use either NVME or SCSI. For performance characteristics of SCSI
2572	// over NVMe, see Local SSD performance.
2573	//
2574	// Possible values:
2575	//   "NVME"
2576	//   "SCSI"
2577	Interface string `json:"interface,omitempty"`
2578
2579	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2580	// for attached disks.
2581	Kind string `json:"kind,omitempty"`
2582
2583	// Licenses: [Output Only] Any valid publicly visible licenses.
2584	Licenses []string `json:"licenses,omitempty"`
2585
2586	// Mode: The mode in which to attach this disk, either READ_WRITE or
2587	// READ_ONLY. If not specified, the default is to attach the disk in
2588	// READ_WRITE mode.
2589	//
2590	// Possible values:
2591	//   "READ_ONLY"
2592	//   "READ_WRITE"
2593	Mode string `json:"mode,omitempty"`
2594
2595	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2596	// stored on disk
2597	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2598
2599	// Source: Specifies a valid partial or full URL to an existing
2600	// Persistent Disk resource. When creating a new instance, one of
2601	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2602	// disks.source is required except for local SSD.
2603	//
2604	// If desired, you can also attach existing non-root persistent disks
2605	// using this property. This field is only applicable for persistent
2606	// disks.
2607	//
2608	// Note that for InstanceTemplate, specify the disk name, not the URL
2609	// for the disk.
2610	Source string `json:"source,omitempty"`
2611
2612	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2613	// If not specified, the default is PERSISTENT.
2614	//
2615	// Possible values:
2616	//   "PERSISTENT"
2617	//   "SCRATCH"
2618	Type string `json:"type,omitempty"`
2619
2620	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2621	// unconditionally include in API requests. By default, fields with
2622	// empty values are omitted from API requests. However, any non-pointer,
2623	// non-interface field appearing in ForceSendFields will be sent to the
2624	// server regardless of whether the field is empty or not. This may be
2625	// used to include empty fields in Patch requests.
2626	ForceSendFields []string `json:"-"`
2627
2628	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2629	// API requests with the JSON null value. By default, fields with empty
2630	// values are omitted from API requests. However, any field with an
2631	// empty value appearing in NullFields will be sent to the server as
2632	// null. It is an error if a field in this list has a non-empty value.
2633	// This may be used to include null fields in Patch requests.
2634	NullFields []string `json:"-"`
2635}
2636
2637func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2638	type NoMethod AttachedDisk
2639	raw := NoMethod(*s)
2640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2641}
2642
2643// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2644// for a new disk that will be created alongside the new instance. Use
2645// initialization parameters to create boot disks or local SSDs attached
2646// to the new instance.
2647//
2648// This property is mutually exclusive with the source property; you can
2649// only define one or the other, but not both.
2650type AttachedDiskInitializeParams struct {
2651	// Description: An optional description. Provide this property when
2652	// creating the disk.
2653	Description string `json:"description,omitempty"`
2654
2655	// DiskName: Specifies the disk name. If not specified, the default is
2656	// to use the name of the instance. If a disk with the same name already
2657	// exists in the given region, the existing disk is attached to the new
2658	// instance and the new disk is not created.
2659	DiskName string `json:"diskName,omitempty"`
2660
2661	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2662	// must be at least 10 GB. If you specify a sourceImage, which is
2663	// required for boot disks, the default size is the size of the
2664	// sourceImage. If you do not specify a sourceImage, the default disk
2665	// size is 500 GB.
2666	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2667
2668	// DiskType: Specifies the disk type to use to create the instance. If
2669	// not specified, the default is pd-standard, specified using the full
2670	// URL. For
2671	// example:
2672	// https://www.googleapis.com/compute/v1/projects/project/zones/
2673	// zone/diskTypes/pd-standard
2674	//
2675	//
2676	// Other values include pd-ssd and local-ssd. If you define this field,
2677	// you can provide either the full or partial URL. For example, the
2678	// following are valid values:
2679	// -
2680	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2681	// - projects/project/zones/zone/diskTypes/diskType
2682	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2683	// is the name of the disk type, not URL.
2684	DiskType string `json:"diskType,omitempty"`
2685
2686	// GuestOsFeatures: A list of features to enable on the guest operating
2687	// system. Applicable only for bootable images. Read  Enabling guest
2688	// operating system features to see a list of available options.
2689	//
2690	// Guest OS features are applied by merging
2691	// initializeParams.guestOsFeatures and disks.guestOsFeatures
2692	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2693
2694	// Labels: Labels to apply to this disk. These can be later modified by
2695	// the disks.setLabels method. This field is only applicable for
2696	// persistent disks.
2697	Labels map[string]string `json:"labels,omitempty"`
2698
2699	// MultiWriter: Indicates whether or not the disk can be read/write
2700	// attached to more than one instance.
2701	MultiWriter bool `json:"multiWriter,omitempty"`
2702
2703	// OnUpdateAction: Specifies which action to take on instance update
2704	// with this disk. Default is to use the existing disk.
2705	//
2706	// Possible values:
2707	//   "RECREATE_DISK"
2708	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2709	//   "USE_EXISTING_DISK"
2710	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2711
2712	// ResourcePolicies: Resource policies applied to this disk for
2713	// automatic snapshot creations. Specified using the full or partial
2714	// URL. For instance template, specify only the resource policy name.
2715	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2716
2717	// SourceImage: The source image to create this disk. When creating a
2718	// new instance, one of initializeParams.sourceImage or
2719	// initializeParams.sourceSnapshot or disks.source is required except
2720	// for local SSD.
2721	//
2722	// To create a disk with one of the public operating system images,
2723	// specify the image by its family name. For example, specify
2724	// family/debian-9 to use the latest Debian 9
2725	// image:
2726	// projects/debian-cloud/global/images/family/debian-9
2727	//
2728	//
2729	// Alternati
2730	// vely, use a specific version of a public operating system
2731	// image:
2732	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2733	//
2734	//
2735	//
2736	// To create a disk with a custom image that you created, specify the
2737	// image name in the following
2738	// format:
2739	// global/images/my-custom-image
2740	//
2741	//
2742	// You can also specify a custom image by its image family, which
2743	// returns the latest version of the image in that family. Replace the
2744	// image name with
2745	// family/family-name:
2746	// global/images/family/my-image-family
2747	//
2748	//
2749	// If the source image is deleted later, this field will not be set.
2750	SourceImage string `json:"sourceImage,omitempty"`
2751
2752	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2753	// source image. Required if the source image is protected by a
2754	// customer-supplied encryption key.
2755	//
2756	// Instance templates do not store customer-supplied encryption keys, so
2757	// you cannot create disks for instances in a managed instance group if
2758	// the source images are encrypted with your own keys.
2759	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2760
2761	// SourceSnapshot: The source snapshot to create this disk. When
2762	// creating a new instance, one of initializeParams.sourceSnapshot or
2763	// initializeParams.sourceImage or disks.source is required except for
2764	// local SSD.
2765	//
2766	// To create a disk with a snapshot that you created, specify the
2767	// snapshot name in the following
2768	// format:
2769	// global/snapshots/my-backup
2770	//
2771	//
2772	// If the source snapshot is deleted later, this field will not be set.
2773	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2774
2775	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2776	// the source snapshot.
2777	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2778
2779	// ForceSendFields is a list of field names (e.g. "Description") to
2780	// unconditionally include in API requests. By default, fields with
2781	// empty values are omitted from API requests. However, any non-pointer,
2782	// non-interface field appearing in ForceSendFields will be sent to the
2783	// server regardless of whether the field is empty or not. This may be
2784	// used to include empty fields in Patch requests.
2785	ForceSendFields []string `json:"-"`
2786
2787	// NullFields is a list of field names (e.g. "Description") to include
2788	// in API requests with the JSON null value. By default, fields with
2789	// empty values are omitted from API requests. However, any field with
2790	// an empty value appearing in NullFields will be sent to the server as
2791	// null. It is an error if a field in this list has a non-empty value.
2792	// This may be used to include null fields in Patch requests.
2793	NullFields []string `json:"-"`
2794}
2795
2796func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2797	type NoMethod AttachedDiskInitializeParams
2798	raw := NoMethod(*s)
2799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2800}
2801
2802// AuditConfig: Specifies the audit configuration for a service. The
2803// configuration determines which permission types are logged, and what
2804// identities, if any, are exempted from logging. An AuditConfig must
2805// have one or more AuditLogConfigs.
2806//
2807// If there are AuditConfigs for both `allServices` and a specific
2808// service, the union of the two AuditConfigs is used for that service:
2809// the log_types specified in each AuditConfig are enabled, and the
2810// exempted_members in each AuditLogConfig are exempted.
2811//
2812// Example Policy with multiple AuditConfigs:
2813//
2814// { "audit_configs": [ { "service": "allServices", "audit_log_configs":
2815// [ { "log_type": "DATA_READ", "exempted_members": [
2816// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
2817// "log_type": "ADMIN_READ" } ] }, { "service":
2818// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
2819// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
2820// "user:aliya@example.com" ] } ] } ] }
2821//
2822// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2823// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2824// logging, and aliya@example.com from DATA_WRITE logging.
2825type AuditConfig struct {
2826	// AuditLogConfigs: The configuration for logging of each type of
2827	// permission.
2828	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2829
2830	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2831
2832	// Service: Specifies a service that will be enabled for audit logging.
2833	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2834	// `allServices` is a special value that covers all services.
2835	Service string `json:"service,omitempty"`
2836
2837	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2838	// unconditionally include in API requests. By default, fields with
2839	// empty values are omitted from API requests. However, any non-pointer,
2840	// non-interface field appearing in ForceSendFields will be sent to the
2841	// server regardless of whether the field is empty or not. This may be
2842	// used to include empty fields in Patch requests.
2843	ForceSendFields []string `json:"-"`
2844
2845	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2846	// include in API requests with the JSON null value. By default, fields
2847	// with empty values are omitted from API requests. However, any field
2848	// with an empty value appearing in NullFields will be sent to the
2849	// server as null. It is an error if a field in this list has a
2850	// non-empty value. This may be used to include null fields in Patch
2851	// requests.
2852	NullFields []string `json:"-"`
2853}
2854
2855func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2856	type NoMethod AuditConfig
2857	raw := NoMethod(*s)
2858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2859}
2860
2861// AuditLogConfig: Provides the configuration for logging a type of
2862// permissions. Example:
2863//
2864// { "audit_log_configs": [ { "log_type": "DATA_READ",
2865// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
2866// "DATA_WRITE" } ] }
2867//
2868// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2869// jose@example.com from DATA_READ logging.
2870type AuditLogConfig struct {
2871	// ExemptedMembers: Specifies the identities that do not cause logging
2872	// for this type of permission. Follows the same format of
2873	// [Binding.members][].
2874	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2875
2876	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
2877
2878	// LogType: The log type that this config enables.
2879	//
2880	// Possible values:
2881	//   "ADMIN_READ"
2882	//   "DATA_READ"
2883	//   "DATA_WRITE"
2884	//   "LOG_TYPE_UNSPECIFIED"
2885	LogType string `json:"logType,omitempty"`
2886
2887	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
2888	// unconditionally include in API requests. By default, fields with
2889	// empty values are omitted from API requests. However, any non-pointer,
2890	// non-interface field appearing in ForceSendFields will be sent to the
2891	// server regardless of whether the field is empty or not. This may be
2892	// used to include empty fields in Patch requests.
2893	ForceSendFields []string `json:"-"`
2894
2895	// NullFields is a list of field names (e.g. "ExemptedMembers") to
2896	// include in API requests with the JSON null value. By default, fields
2897	// with empty values are omitted from API requests. However, any field
2898	// with an empty value appearing in NullFields will be sent to the
2899	// server as null. It is an error if a field in this list has a
2900	// non-empty value. This may be used to include null fields in Patch
2901	// requests.
2902	NullFields []string `json:"-"`
2903}
2904
2905func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
2906	type NoMethod AuditLogConfig
2907	raw := NoMethod(*s)
2908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2909}
2910
2911// AuthorizationLoggingOptions: Authorization-related information used
2912// by Cloud Audit Logging.
2913type AuthorizationLoggingOptions struct {
2914	// PermissionType: The type of the permission that was checked.
2915	//
2916	// Possible values:
2917	//   "ADMIN_READ"
2918	//   "ADMIN_WRITE"
2919	//   "DATA_READ"
2920	//   "DATA_WRITE"
2921	//   "PERMISSION_TYPE_UNSPECIFIED"
2922	PermissionType string `json:"permissionType,omitempty"`
2923
2924	// ForceSendFields is a list of field names (e.g. "PermissionType") to
2925	// unconditionally include in API requests. By default, fields with
2926	// empty values are omitted from API requests. However, any non-pointer,
2927	// non-interface field appearing in ForceSendFields will be sent to the
2928	// server regardless of whether the field is empty or not. This may be
2929	// used to include empty fields in Patch requests.
2930	ForceSendFields []string `json:"-"`
2931
2932	// NullFields is a list of field names (e.g. "PermissionType") to
2933	// include in API requests with the JSON null value. By default, fields
2934	// with empty values are omitted from API requests. However, any field
2935	// with an empty value appearing in NullFields will be sent to the
2936	// server as null. It is an error if a field in this list has a
2937	// non-empty value. This may be used to include null fields in Patch
2938	// requests.
2939	NullFields []string `json:"-"`
2940}
2941
2942func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
2943	type NoMethod AuthorizationLoggingOptions
2944	raw := NoMethod(*s)
2945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2946}
2947
2948// Autoscaler: Represents an Autoscaler resource.
2949//
2950// Google Compute Engine has two Autoscaler resources:
2951//
2952// * [Global](/compute/docs/reference/rest/{$api_version}/autoscalers) *
2953// [Regional](/compute/docs/reference/rest/{$api_version}/regionAutoscale
2954// rs)
2955//
2956// Use autoscalers to automatically add or delete instances from a
2957// managed instance group according to your defined autoscaling policy.
2958// For more information, read Autoscaling Groups of Instances.
2959//
2960// For zonal managed instance groups resource, use the autoscaler
2961// resource.
2962//
2963// For regional managed instance groups, use the regionAutoscalers
2964// resource. (== resource_for {$api_version}.autoscalers ==) (==
2965// resource_for {$api_version}.regionAutoscalers ==)
2966type Autoscaler struct {
2967	// AutoscalingPolicy: The configuration parameters for the autoscaling
2968	// algorithm. You can define one or more of the policies for an
2969	// autoscaler: cpuUtilization, customMetricUtilizations, and
2970	// loadBalancingUtilization.
2971	//
2972	// If none of these are specified, the default will be to autoscale
2973	// based on cpuUtilization to 0.6 or 60%.
2974	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
2975
2976	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
2977	// format.
2978	CreationTimestamp string `json:"creationTimestamp,omitempty"`
2979
2980	// Description: An optional description of this resource. Provide this
2981	// property when you create the resource.
2982	Description string `json:"description,omitempty"`
2983
2984	// Id: [Output Only] The unique identifier for the resource. This
2985	// identifier is defined by the server.
2986	Id uint64 `json:"id,omitempty,string"`
2987
2988	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
2989	// for autoscalers.
2990	Kind string `json:"kind,omitempty"`
2991
2992	// Name: Name of the resource. Provided by the client when the resource
2993	// is created. The name must be 1-63 characters long, and comply with
2994	// RFC1035. Specifically, the name must be 1-63 characters long and
2995	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
2996	// the first character must be a lowercase letter, and all following
2997	// characters must be a dash, lowercase letter, or digit, except the
2998	// last character, which cannot be a dash.
2999	Name string `json:"name,omitempty"`
3000
3001	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3002	// instances) computed by autoscaler. Autoscaler calculates recommended
3003	// MIG size even when autoscaling policy mode is different from ON. This
3004	// field is empty when autoscaler is not connected to the existing
3005	// managed instance group or autoscaler did not generate its prediction.
3006	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3007
3008	// Region: [Output Only] URL of the region where the instance group
3009	// resides (for autoscalers living in regional scope).
3010	Region string `json:"region,omitempty"`
3011
3012	// SelfLink: [Output Only] Server-defined URL for the resource.
3013	SelfLink string `json:"selfLink,omitempty"`
3014
3015	// Status: [Output Only] The status of the autoscaler configuration.
3016	// Current set of possible values:
3017	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
3018	//
3019	// - DELETING: Configuration is being deleted.
3020	// - ACTIVE: Configuration is acknowledged to be effective. Some
3021	// warnings might be present in the statusDetails field.
3022	// - ERROR: Configuration has errors. Actionable for users. Details are
3023	// present in the statusDetails field.  New values might be added in the
3024	// future.
3025	//
3026	// Possible values:
3027	//   "ACTIVE"
3028	//   "DELETING"
3029	//   "ERROR"
3030	//   "PENDING"
3031	Status string `json:"status,omitempty"`
3032
3033	// StatusDetails: [Output Only] Human-readable details about the current
3034	// state of the autoscaler. Read the documentation for Commonly returned
3035	// status messages for examples of status messages you might encounter.
3036	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3037
3038	// Target: URL of the managed instance group that this autoscaler will
3039	// scale.
3040	Target string `json:"target,omitempty"`
3041
3042	// Zone: [Output Only] URL of the zone where the instance group resides
3043	// (for autoscalers living in zonal scope).
3044	Zone string `json:"zone,omitempty"`
3045
3046	// ServerResponse contains the HTTP response code and headers from the
3047	// server.
3048	googleapi.ServerResponse `json:"-"`
3049
3050	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3051	// to unconditionally include in API requests. By default, fields with
3052	// empty values are omitted from API requests. However, any non-pointer,
3053	// non-interface field appearing in ForceSendFields will be sent to the
3054	// server regardless of whether the field is empty or not. This may be
3055	// used to include empty fields in Patch requests.
3056	ForceSendFields []string `json:"-"`
3057
3058	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3059	// include in API requests with the JSON null value. By default, fields
3060	// with empty values are omitted from API requests. However, any field
3061	// with an empty value appearing in NullFields will be sent to the
3062	// server as null. It is an error if a field in this list has a
3063	// non-empty value. This may be used to include null fields in Patch
3064	// requests.
3065	NullFields []string `json:"-"`
3066}
3067
3068func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3069	type NoMethod Autoscaler
3070	raw := NoMethod(*s)
3071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3072}
3073
3074type AutoscalerAggregatedList struct {
3075	// Id: [Output Only] Unique identifier for the resource; defined by the
3076	// server.
3077	Id string `json:"id,omitempty"`
3078
3079	// Items: A list of AutoscalersScopedList resources.
3080	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3081
3082	// Kind: [Output Only] Type of resource. Always
3083	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3084	Kind string `json:"kind,omitempty"`
3085
3086	// NextPageToken: [Output Only] This token allows you to get the next
3087	// page of results for list requests. If the number of results is larger
3088	// than maxResults, use the nextPageToken as a value for the query
3089	// parameter pageToken in the next list request. Subsequent list
3090	// requests will have their own nextPageToken to continue paging through
3091	// the results.
3092	NextPageToken string `json:"nextPageToken,omitempty"`
3093
3094	// SelfLink: [Output Only] Server-defined URL for this resource.
3095	SelfLink string `json:"selfLink,omitempty"`
3096
3097	// Warning: [Output Only] Informational warning message.
3098	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3099
3100	// ServerResponse contains the HTTP response code and headers from the
3101	// server.
3102	googleapi.ServerResponse `json:"-"`
3103
3104	// ForceSendFields is a list of field names (e.g. "Id") to
3105	// unconditionally include in API requests. By default, fields with
3106	// empty values are omitted from API requests. However, any non-pointer,
3107	// non-interface field appearing in ForceSendFields will be sent to the
3108	// server regardless of whether the field is empty or not. This may be
3109	// used to include empty fields in Patch requests.
3110	ForceSendFields []string `json:"-"`
3111
3112	// NullFields is a list of field names (e.g. "Id") to include in API
3113	// requests with the JSON null value. By default, fields with empty
3114	// values are omitted from API requests. However, any field with an
3115	// empty value appearing in NullFields will be sent to the server as
3116	// null. It is an error if a field in this list has a non-empty value.
3117	// This may be used to include null fields in Patch requests.
3118	NullFields []string `json:"-"`
3119}
3120
3121func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3122	type NoMethod AutoscalerAggregatedList
3123	raw := NoMethod(*s)
3124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3125}
3126
3127// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3128// message.
3129type AutoscalerAggregatedListWarning struct {
3130	// Code: [Output Only] A warning code, if applicable. For example,
3131	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3132	// the response.
3133	//
3134	// Possible values:
3135	//   "CLEANUP_FAILED"
3136	//   "DEPRECATED_RESOURCE_USED"
3137	//   "DEPRECATED_TYPE_USED"
3138	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3139	//   "EXPERIMENTAL_TYPE_USED"
3140	//   "EXTERNAL_API_WARNING"
3141	//   "FIELD_VALUE_OVERRIDEN"
3142	//   "INJECTED_KERNELS_DEPRECATED"
3143	//   "MISSING_TYPE_DEPENDENCY"
3144	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3145	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3146	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3147	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3148	//   "NEXT_HOP_NOT_RUNNING"
3149	//   "NOT_CRITICAL_ERROR"
3150	//   "NO_RESULTS_ON_PAGE"
3151	//   "REQUIRED_TOS_AGREEMENT"
3152	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3153	//   "RESOURCE_NOT_DELETED"
3154	//   "SCHEMA_VALIDATION_IGNORED"
3155	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3156	//   "UNDECLARED_PROPERTIES"
3157	//   "UNREACHABLE"
3158	Code string `json:"code,omitempty"`
3159
3160	// Data: [Output Only] Metadata about this warning in key: value format.
3161	// For example:
3162	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3163	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3164
3165	// Message: [Output Only] A human-readable description of the warning
3166	// code.
3167	Message string `json:"message,omitempty"`
3168
3169	// ForceSendFields is a list of field names (e.g. "Code") to
3170	// unconditionally include in API requests. By default, fields with
3171	// empty values are omitted from API requests. However, any non-pointer,
3172	// non-interface field appearing in ForceSendFields will be sent to the
3173	// server regardless of whether the field is empty or not. This may be
3174	// used to include empty fields in Patch requests.
3175	ForceSendFields []string `json:"-"`
3176
3177	// NullFields is a list of field names (e.g. "Code") to include in API
3178	// requests with the JSON null value. By default, fields with empty
3179	// values are omitted from API requests. However, any field with an
3180	// empty value appearing in NullFields will be sent to the server as
3181	// null. It is an error if a field in this list has a non-empty value.
3182	// This may be used to include null fields in Patch requests.
3183	NullFields []string `json:"-"`
3184}
3185
3186func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3187	type NoMethod AutoscalerAggregatedListWarning
3188	raw := NoMethod(*s)
3189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3190}
3191
3192type AutoscalerAggregatedListWarningData struct {
3193	// Key: [Output Only] A key that provides more detail on the warning
3194	// being returned. For example, for warnings where there are no results
3195	// in a list request for a particular zone, this key might be scope and
3196	// the key value might be the zone name. Other examples might be a key
3197	// indicating a deprecated resource and a suggested replacement, or a
3198	// warning about invalid network settings (for example, if an instance
3199	// attempts to perform IP forwarding but is not enabled for IP
3200	// forwarding).
3201	Key string `json:"key,omitempty"`
3202
3203	// Value: [Output Only] A warning data value corresponding to the key.
3204	Value string `json:"value,omitempty"`
3205
3206	// ForceSendFields is a list of field names (e.g. "Key") to
3207	// unconditionally include in API requests. By default, fields with
3208	// empty values are omitted from API requests. However, any non-pointer,
3209	// non-interface field appearing in ForceSendFields will be sent to the
3210	// server regardless of whether the field is empty or not. This may be
3211	// used to include empty fields in Patch requests.
3212	ForceSendFields []string `json:"-"`
3213
3214	// NullFields is a list of field names (e.g. "Key") to include in API
3215	// requests with the JSON null value. By default, fields with empty
3216	// values are omitted from API requests. However, any field with an
3217	// empty value appearing in NullFields will be sent to the server as
3218	// null. It is an error if a field in this list has a non-empty value.
3219	// This may be used to include null fields in Patch requests.
3220	NullFields []string `json:"-"`
3221}
3222
3223func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3224	type NoMethod AutoscalerAggregatedListWarningData
3225	raw := NoMethod(*s)
3226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3227}
3228
3229// AutoscalerList: Contains a list of Autoscaler resources.
3230type AutoscalerList struct {
3231	// Id: [Output Only] Unique identifier for the resource; defined by the
3232	// server.
3233	Id string `json:"id,omitempty"`
3234
3235	// Items: A list of Autoscaler resources.
3236	Items []*Autoscaler `json:"items,omitempty"`
3237
3238	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3239	// for lists of autoscalers.
3240	Kind string `json:"kind,omitempty"`
3241
3242	// NextPageToken: [Output Only] This token allows you to get the next
3243	// page of results for list requests. If the number of results is larger
3244	// than maxResults, use the nextPageToken as a value for the query
3245	// parameter pageToken in the next list request. Subsequent list
3246	// requests will have their own nextPageToken to continue paging through
3247	// the results.
3248	NextPageToken string `json:"nextPageToken,omitempty"`
3249
3250	// SelfLink: [Output Only] Server-defined URL for this resource.
3251	SelfLink string `json:"selfLink,omitempty"`
3252
3253	// Warning: [Output Only] Informational warning message.
3254	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3255
3256	// ServerResponse contains the HTTP response code and headers from the
3257	// server.
3258	googleapi.ServerResponse `json:"-"`
3259
3260	// ForceSendFields is a list of field names (e.g. "Id") to
3261	// unconditionally include in API requests. By default, fields with
3262	// empty values are omitted from API requests. However, any non-pointer,
3263	// non-interface field appearing in ForceSendFields will be sent to the
3264	// server regardless of whether the field is empty or not. This may be
3265	// used to include empty fields in Patch requests.
3266	ForceSendFields []string `json:"-"`
3267
3268	// NullFields is a list of field names (e.g. "Id") to include in API
3269	// requests with the JSON null value. By default, fields with empty
3270	// values are omitted from API requests. However, any field with an
3271	// empty value appearing in NullFields will be sent to the server as
3272	// null. It is an error if a field in this list has a non-empty value.
3273	// This may be used to include null fields in Patch requests.
3274	NullFields []string `json:"-"`
3275}
3276
3277func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3278	type NoMethod AutoscalerList
3279	raw := NoMethod(*s)
3280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3281}
3282
3283// AutoscalerListWarning: [Output Only] Informational warning message.
3284type AutoscalerListWarning struct {
3285	// Code: [Output Only] A warning code, if applicable. For example,
3286	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3287	// the response.
3288	//
3289	// Possible values:
3290	//   "CLEANUP_FAILED"
3291	//   "DEPRECATED_RESOURCE_USED"
3292	//   "DEPRECATED_TYPE_USED"
3293	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3294	//   "EXPERIMENTAL_TYPE_USED"
3295	//   "EXTERNAL_API_WARNING"
3296	//   "FIELD_VALUE_OVERRIDEN"
3297	//   "INJECTED_KERNELS_DEPRECATED"
3298	//   "MISSING_TYPE_DEPENDENCY"
3299	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3300	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3301	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3302	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3303	//   "NEXT_HOP_NOT_RUNNING"
3304	//   "NOT_CRITICAL_ERROR"
3305	//   "NO_RESULTS_ON_PAGE"
3306	//   "REQUIRED_TOS_AGREEMENT"
3307	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3308	//   "RESOURCE_NOT_DELETED"
3309	//   "SCHEMA_VALIDATION_IGNORED"
3310	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3311	//   "UNDECLARED_PROPERTIES"
3312	//   "UNREACHABLE"
3313	Code string `json:"code,omitempty"`
3314
3315	// Data: [Output Only] Metadata about this warning in key: value format.
3316	// For example:
3317	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3318	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3319
3320	// Message: [Output Only] A human-readable description of the warning
3321	// code.
3322	Message string `json:"message,omitempty"`
3323
3324	// ForceSendFields is a list of field names (e.g. "Code") to
3325	// unconditionally include in API requests. By default, fields with
3326	// empty values are omitted from API requests. However, any non-pointer,
3327	// non-interface field appearing in ForceSendFields will be sent to the
3328	// server regardless of whether the field is empty or not. This may be
3329	// used to include empty fields in Patch requests.
3330	ForceSendFields []string `json:"-"`
3331
3332	// NullFields is a list of field names (e.g. "Code") to include in API
3333	// requests with the JSON null value. By default, fields with empty
3334	// values are omitted from API requests. However, any field with an
3335	// empty value appearing in NullFields will be sent to the server as
3336	// null. It is an error if a field in this list has a non-empty value.
3337	// This may be used to include null fields in Patch requests.
3338	NullFields []string `json:"-"`
3339}
3340
3341func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3342	type NoMethod AutoscalerListWarning
3343	raw := NoMethod(*s)
3344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3345}
3346
3347type AutoscalerListWarningData struct {
3348	// Key: [Output Only] A key that provides more detail on the warning
3349	// being returned. For example, for warnings where there are no results
3350	// in a list request for a particular zone, this key might be scope and
3351	// the key value might be the zone name. Other examples might be a key
3352	// indicating a deprecated resource and a suggested replacement, or a
3353	// warning about invalid network settings (for example, if an instance
3354	// attempts to perform IP forwarding but is not enabled for IP
3355	// forwarding).
3356	Key string `json:"key,omitempty"`
3357
3358	// Value: [Output Only] A warning data value corresponding to the key.
3359	Value string `json:"value,omitempty"`
3360
3361	// ForceSendFields is a list of field names (e.g. "Key") to
3362	// unconditionally include in API requests. By default, fields with
3363	// empty values are omitted from API requests. However, any non-pointer,
3364	// non-interface field appearing in ForceSendFields will be sent to the
3365	// server regardless of whether the field is empty or not. This may be
3366	// used to include empty fields in Patch requests.
3367	ForceSendFields []string `json:"-"`
3368
3369	// NullFields is a list of field names (e.g. "Key") to include in API
3370	// requests with the JSON null value. By default, fields with empty
3371	// values are omitted from API requests. However, any field with an
3372	// empty value appearing in NullFields will be sent to the server as
3373	// null. It is an error if a field in this list has a non-empty value.
3374	// This may be used to include null fields in Patch requests.
3375	NullFields []string `json:"-"`
3376}
3377
3378func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3379	type NoMethod AutoscalerListWarningData
3380	raw := NoMethod(*s)
3381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3382}
3383
3384type AutoscalerStatusDetails struct {
3385	// Message: The status message.
3386	Message string `json:"message,omitempty"`
3387
3388	// Type: The type of error, warning, or notice returned. Current set of
3389	// possible values:
3390	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3391	// group are unhealthy (not in RUNNING state).
3392	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3393	// attached to the instance group.
3394	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3395	// greater than maxNumReplicas.
3396	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3397	// samples are not exported often enough to be a credible base for
3398	// autoscaling.
3399	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3400	// does not exist or does not have the necessary labels.
3401	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3402	// maxNumReplicas. This means the autoscaler cannot add or remove
3403	// instances from the instance group.
3404	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3405	// receive any data from the custom metric configured for autoscaling.
3406	//
3407	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3408	// configured to scale based on a load balancing signal but the instance
3409	// group has not received any requests from the load balancer.
3410	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3411	// instances in the group won't change automatically. The autoscaling
3412	// configuration is preserved.
3413	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up"
3414	// mode. The autoscaler can add instances but not remove any.
3415	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3416	// autoscaled because it has more than one backend service attached to
3417	// it.
3418	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3419	// the necessary resources, such as CPU or number of instances.
3420	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3421	// autoscalers: there is a resource stockout in the chosen region.
3422	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3423	// not exist.
3424	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3425	// Autoscaling does not work with an HTTP/S load balancer that has been
3426	// configured for maxRate.
3427	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3428	// resource stockout in the chosen zone. For regional autoscalers: in at
3429	// least one of the zones you're using there is a resource stockout.
3430	// New values might be added in the future. Some of the values might not
3431	// be available in all API versions.
3432	//
3433	// Possible values:
3434	//   "ALL_INSTANCES_UNHEALTHY"
3435	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3436	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3437	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3438	//   "CUSTOM_METRIC_INVALID"
3439	//   "MIN_EQUALS_MAX"
3440	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3441	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3442	//   "MODE_OFF"
3443	//   "MODE_ONLY_SCALE_OUT"
3444	//   "MODE_ONLY_UP"
3445	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3446	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3447	//   "REGION_RESOURCE_STOCKOUT"
3448	//   "SCALING_TARGET_DOES_NOT_EXIST"
3449	//   "UNKNOWN"
3450	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3451	//   "ZONE_RESOURCE_STOCKOUT"
3452	Type string `json:"type,omitempty"`
3453
3454	// ForceSendFields is a list of field names (e.g. "Message") to
3455	// unconditionally include in API requests. By default, fields with
3456	// empty values are omitted from API requests. However, any non-pointer,
3457	// non-interface field appearing in ForceSendFields will be sent to the
3458	// server regardless of whether the field is empty or not. This may be
3459	// used to include empty fields in Patch requests.
3460	ForceSendFields []string `json:"-"`
3461
3462	// NullFields is a list of field names (e.g. "Message") to include in
3463	// API requests with the JSON null value. By default, fields with empty
3464	// values are omitted from API requests. However, any field with an
3465	// empty value appearing in NullFields will be sent to the server as
3466	// null. It is an error if a field in this list has a non-empty value.
3467	// This may be used to include null fields in Patch requests.
3468	NullFields []string `json:"-"`
3469}
3470
3471func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3472	type NoMethod AutoscalerStatusDetails
3473	raw := NoMethod(*s)
3474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3475}
3476
3477type AutoscalersScopedList struct {
3478	// Autoscalers: [Output Only] A list of autoscalers contained in this
3479	// scope.
3480	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3481
3482	// Warning: [Output Only] Informational warning which replaces the list
3483	// of autoscalers when the list is empty.
3484	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3485
3486	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3487	// unconditionally include in API requests. By default, fields with
3488	// empty values are omitted from API requests. However, any non-pointer,
3489	// non-interface field appearing in ForceSendFields will be sent to the
3490	// server regardless of whether the field is empty or not. This may be
3491	// used to include empty fields in Patch requests.
3492	ForceSendFields []string `json:"-"`
3493
3494	// NullFields is a list of field names (e.g. "Autoscalers") to include
3495	// in API requests with the JSON null value. By default, fields with
3496	// empty values are omitted from API requests. However, any field with
3497	// an empty value appearing in NullFields will be sent to the server as
3498	// null. It is an error if a field in this list has a non-empty value.
3499	// This may be used to include null fields in Patch requests.
3500	NullFields []string `json:"-"`
3501}
3502
3503func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3504	type NoMethod AutoscalersScopedList
3505	raw := NoMethod(*s)
3506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3507}
3508
3509// AutoscalersScopedListWarning: [Output Only] Informational warning
3510// which replaces the list of autoscalers when the list is empty.
3511type AutoscalersScopedListWarning struct {
3512	// Code: [Output Only] A warning code, if applicable. For example,
3513	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3514	// the response.
3515	//
3516	// Possible values:
3517	//   "CLEANUP_FAILED"
3518	//   "DEPRECATED_RESOURCE_USED"
3519	//   "DEPRECATED_TYPE_USED"
3520	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3521	//   "EXPERIMENTAL_TYPE_USED"
3522	//   "EXTERNAL_API_WARNING"
3523	//   "FIELD_VALUE_OVERRIDEN"
3524	//   "INJECTED_KERNELS_DEPRECATED"
3525	//   "MISSING_TYPE_DEPENDENCY"
3526	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3527	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3528	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3529	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3530	//   "NEXT_HOP_NOT_RUNNING"
3531	//   "NOT_CRITICAL_ERROR"
3532	//   "NO_RESULTS_ON_PAGE"
3533	//   "REQUIRED_TOS_AGREEMENT"
3534	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3535	//   "RESOURCE_NOT_DELETED"
3536	//   "SCHEMA_VALIDATION_IGNORED"
3537	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3538	//   "UNDECLARED_PROPERTIES"
3539	//   "UNREACHABLE"
3540	Code string `json:"code,omitempty"`
3541
3542	// Data: [Output Only] Metadata about this warning in key: value format.
3543	// For example:
3544	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3545	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3546
3547	// Message: [Output Only] A human-readable description of the warning
3548	// code.
3549	Message string `json:"message,omitempty"`
3550
3551	// ForceSendFields is a list of field names (e.g. "Code") to
3552	// unconditionally include in API requests. By default, fields with
3553	// empty values are omitted from API requests. However, any non-pointer,
3554	// non-interface field appearing in ForceSendFields will be sent to the
3555	// server regardless of whether the field is empty or not. This may be
3556	// used to include empty fields in Patch requests.
3557	ForceSendFields []string `json:"-"`
3558
3559	// NullFields is a list of field names (e.g. "Code") to include in API
3560	// requests with the JSON null value. By default, fields with empty
3561	// values are omitted from API requests. However, any field with an
3562	// empty value appearing in NullFields will be sent to the server as
3563	// null. It is an error if a field in this list has a non-empty value.
3564	// This may be used to include null fields in Patch requests.
3565	NullFields []string `json:"-"`
3566}
3567
3568func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3569	type NoMethod AutoscalersScopedListWarning
3570	raw := NoMethod(*s)
3571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3572}
3573
3574type AutoscalersScopedListWarningData struct {
3575	// Key: [Output Only] A key that provides more detail on the warning
3576	// being returned. For example, for warnings where there are no results
3577	// in a list request for a particular zone, this key might be scope and
3578	// the key value might be the zone name. Other examples might be a key
3579	// indicating a deprecated resource and a suggested replacement, or a
3580	// warning about invalid network settings (for example, if an instance
3581	// attempts to perform IP forwarding but is not enabled for IP
3582	// forwarding).
3583	Key string `json:"key,omitempty"`
3584
3585	// Value: [Output Only] A warning data value corresponding to the key.
3586	Value string `json:"value,omitempty"`
3587
3588	// ForceSendFields is a list of field names (e.g. "Key") to
3589	// unconditionally include in API requests. By default, fields with
3590	// empty values are omitted from API requests. However, any non-pointer,
3591	// non-interface field appearing in ForceSendFields will be sent to the
3592	// server regardless of whether the field is empty or not. This may be
3593	// used to include empty fields in Patch requests.
3594	ForceSendFields []string `json:"-"`
3595
3596	// NullFields is a list of field names (e.g. "Key") to include in API
3597	// requests with the JSON null value. By default, fields with empty
3598	// values are omitted from API requests. However, any field with an
3599	// empty value appearing in NullFields will be sent to the server as
3600	// null. It is an error if a field in this list has a non-empty value.
3601	// This may be used to include null fields in Patch requests.
3602	NullFields []string `json:"-"`
3603}
3604
3605func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3606	type NoMethod AutoscalersScopedListWarningData
3607	raw := NoMethod(*s)
3608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3609}
3610
3611// AutoscalingPolicy: Cloud Autoscaler policy.
3612type AutoscalingPolicy struct {
3613	// CoolDownPeriodSec: The number of seconds that the autoscaler should
3614	// wait before it starts collecting information from a new instance.
3615	// This prevents the autoscaler from collecting information when the
3616	// instance is initializing, during which the collected usage would not
3617	// be reliable. The default time autoscaler waits is 60
3618	// seconds.
3619	//
3620	// Virtual machine initialization times might vary because of numerous
3621	// factors. We recommend that you test how long an instance may take to
3622	// initialize. To do this, create an instance and time the startup
3623	// process.
3624	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3625
3626	// CpuUtilization: Defines the CPU utilization policy that allows the
3627	// autoscaler to scale based on the average CPU utilization of a managed
3628	// instance group.
3629	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3630
3631	// CustomMetricUtilizations: Configuration parameters of autoscaling
3632	// based on a custom metric.
3633	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3634
3635	// LoadBalancingUtilization: Configuration parameters of autoscaling
3636	// based on load balancer.
3637	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3638
3639	// MaxNumReplicas: The maximum number of instances that the autoscaler
3640	// can scale up to. This is required when creating or updating an
3641	// autoscaler. The maximum number of replicas should not be lower than
3642	// minimal number of replicas.
3643	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3644
3645	// MinNumReplicas: The minimum number of replicas that the autoscaler
3646	// can scale down to. This cannot be less than 0. If not provided,
3647	// autoscaler will choose a default value depending on maximum number of
3648	// instances allowed.
3649	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3650
3651	// Mode: Defines operating mode for this policy.
3652	//
3653	// Possible values:
3654	//   "OFF"
3655	//   "ON"
3656	//   "ONLY_SCALE_OUT"
3657	//   "ONLY_UP"
3658	Mode string `json:"mode,omitempty"`
3659
3660	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
3661
3662	ScaleInControl *AutoscalingPolicyScaleInControl `json:"scaleInControl,omitempty"`
3663
3664	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3665	// to unconditionally include in API requests. By default, fields with
3666	// empty values are omitted from API requests. However, any non-pointer,
3667	// non-interface field appearing in ForceSendFields will be sent to the
3668	// server regardless of whether the field is empty or not. This may be
3669	// used to include empty fields in Patch requests.
3670	ForceSendFields []string `json:"-"`
3671
3672	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3673	// include in API requests with the JSON null value. By default, fields
3674	// with empty values are omitted from API requests. However, any field
3675	// with an empty value appearing in NullFields will be sent to the
3676	// server as null. It is an error if a field in this list has a
3677	// non-empty value. This may be used to include null fields in Patch
3678	// requests.
3679	NullFields []string `json:"-"`
3680}
3681
3682func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3683	type NoMethod AutoscalingPolicy
3684	raw := NoMethod(*s)
3685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3686}
3687
3688// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3689type AutoscalingPolicyCpuUtilization struct {
3690	// UtilizationTarget: The target CPU utilization that the autoscaler
3691	// should maintain. Must be a float value in the range (0, 1]. If not
3692	// specified, the default is 0.6.
3693	//
3694	// If the CPU level is below the target utilization, the autoscaler
3695	// scales down the number of instances until it reaches the minimum
3696	// number of instances you specified or until the average CPU of your
3697	// instances reaches the target utilization.
3698	//
3699	// If the average CPU is above the target utilization, the autoscaler
3700	// scales up until it reaches the maximum number of instances you
3701	// specified or until the average utilization reaches the target
3702	// utilization.
3703	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3704
3705	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3706	// to unconditionally include in API requests. By default, fields with
3707	// empty values are omitted from API requests. However, any non-pointer,
3708	// non-interface field appearing in ForceSendFields will be sent to the
3709	// server regardless of whether the field is empty or not. This may be
3710	// used to include empty fields in Patch requests.
3711	ForceSendFields []string `json:"-"`
3712
3713	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3714	// include in API requests with the JSON null value. By default, fields
3715	// with empty values are omitted from API requests. However, any field
3716	// with an empty value appearing in NullFields will be sent to the
3717	// server as null. It is an error if a field in this list has a
3718	// non-empty value. This may be used to include null fields in Patch
3719	// requests.
3720	NullFields []string `json:"-"`
3721}
3722
3723func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3724	type NoMethod AutoscalingPolicyCpuUtilization
3725	raw := NoMethod(*s)
3726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3727}
3728
3729func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3730	type NoMethod AutoscalingPolicyCpuUtilization
3731	var s1 struct {
3732		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3733		*NoMethod
3734	}
3735	s1.NoMethod = (*NoMethod)(s)
3736	if err := json.Unmarshal(data, &s1); err != nil {
3737		return err
3738	}
3739	s.UtilizationTarget = float64(s1.UtilizationTarget)
3740	return nil
3741}
3742
3743// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3744// policy.
3745type AutoscalingPolicyCustomMetricUtilization struct {
3746	// Filter: A filter string, compatible with a Stackdriver Monitoring
3747	// filter string for TimeSeries.list API call. This filter is used to
3748	// select a specific TimeSeries for the purpose of autoscaling and to
3749	// determine whether the metric is exporting per-instance or per-group
3750	// data.
3751	//
3752	// For the filter to be valid for autoscaling purposes, the following
3753	// rules apply:
3754	// - You can only use the AND operator for joining selectors.
3755	// - You can only use direct equality comparison operator (=) without
3756	// any functions for each selector.
3757	// - You can specify the metric in both the filter string and in the
3758	// metric field. However, if specified in both places, the metric must
3759	// be identical.
3760	// - The monitored resource type determines what kind of values are
3761	// expected for the metric. If it is a gce_instance, the autoscaler
3762	// expects the metric to include a separate TimeSeries for each instance
3763	// in a group. In such a case, you cannot filter on resource labels.
3764	// If the resource type is any other value, the autoscaler expects this
3765	// metric to contain values that apply to the entire autoscaled instance
3766	// group and resource label filtering can be performed to point
3767	// autoscaler at the correct TimeSeries to scale upon. This is called a
3768	// per-group metric for the purpose of autoscaling.
3769	//
3770	// If not specified, the type defaults to gce_instance.
3771	//
3772	// You should provide a filter that is selective enough to pick just one
3773	// TimeSeries for the autoscaled group or for each of the instances (if
3774	// you are using gce_instance resource type). If multiple TimeSeries are
3775	// returned upon the query execution, the autoscaler will sum their
3776	// respective values to obtain its scaling value.
3777	Filter string `json:"filter,omitempty"`
3778
3779	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3780	// The metric cannot have negative values.
3781	//
3782	// The metric must have a value type of INT64 or DOUBLE.
3783	Metric string `json:"metric,omitempty"`
3784
3785	// SingleInstanceAssignment: If scaling is based on a per-group metric
3786	// value that represents the total amount of work to be done or resource
3787	// usage, set this value to an amount assigned for a single instance of
3788	// the scaled group. Autoscaler will keep the number of instances
3789	// proportional to the value of this metric, the metric itself should
3790	// not change value due to group resizing.
3791	//
3792	// A good metric to use with the target is for example
3793	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
3794	// custom metric exporting the total number of requests coming to your
3795	// instances.
3796	//
3797	// A bad example would be a metric exporting an average or median
3798	// latency, since this value can't include a chunk assignable to a
3799	// single instance, it could be better used with utilization_target
3800	// instead.
3801	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
3802
3803	// UtilizationTarget: The target value of the metric that autoscaler
3804	// should maintain. This must be a positive value. A utilization metric
3805	// scales number of virtual machines handling requests to increase or
3806	// decrease proportionally to the metric.
3807	//
3808	// For example, a good metric to use as a utilization_target is
3809	// compute.googleapis.com/instance/network/received_bytes_count. The
3810	// autoscaler will work to keep this value constant for each of the
3811	// instances.
3812	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3813
3814	// UtilizationTargetType: Defines how target utilization value is
3815	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3816	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3817	//
3818	// Possible values:
3819	//   "DELTA_PER_MINUTE"
3820	//   "DELTA_PER_SECOND"
3821	//   "GAUGE"
3822	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
3823
3824	// ForceSendFields is a list of field names (e.g. "Filter") to
3825	// unconditionally include in API requests. By default, fields with
3826	// empty values are omitted from API requests. However, any non-pointer,
3827	// non-interface field appearing in ForceSendFields will be sent to the
3828	// server regardless of whether the field is empty or not. This may be
3829	// used to include empty fields in Patch requests.
3830	ForceSendFields []string `json:"-"`
3831
3832	// NullFields is a list of field names (e.g. "Filter") to include in API
3833	// requests with the JSON null value. By default, fields with empty
3834	// values are omitted from API requests. However, any field with an
3835	// empty value appearing in NullFields will be sent to the server as
3836	// null. It is an error if a field in this list has a non-empty value.
3837	// This may be used to include null fields in Patch requests.
3838	NullFields []string `json:"-"`
3839}
3840
3841func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
3842	type NoMethod AutoscalingPolicyCustomMetricUtilization
3843	raw := NoMethod(*s)
3844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3845}
3846
3847func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
3848	type NoMethod AutoscalingPolicyCustomMetricUtilization
3849	var s1 struct {
3850		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
3851		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
3852		*NoMethod
3853	}
3854	s1.NoMethod = (*NoMethod)(s)
3855	if err := json.Unmarshal(data, &s1); err != nil {
3856		return err
3857	}
3858	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
3859	s.UtilizationTarget = float64(s1.UtilizationTarget)
3860	return nil
3861}
3862
3863// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
3864// of autoscaling based on load balancing.
3865type AutoscalingPolicyLoadBalancingUtilization struct {
3866	// UtilizationTarget: Fraction of backend capacity utilization (set in
3867	// HTTP(S) load balancing configuration) that autoscaler should
3868	// maintain. Must be a positive float value. If not defined, the default
3869	// is 0.8.
3870	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3871
3872	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3873	// to unconditionally include in API requests. By default, fields with
3874	// empty values are omitted from API requests. However, any non-pointer,
3875	// non-interface field appearing in ForceSendFields will be sent to the
3876	// server regardless of whether the field is empty or not. This may be
3877	// used to include empty fields in Patch requests.
3878	ForceSendFields []string `json:"-"`
3879
3880	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3881	// include in API requests with the JSON null value. By default, fields
3882	// with empty values are omitted from API requests. However, any field
3883	// with an empty value appearing in NullFields will be sent to the
3884	// server as null. It is an error if a field in this list has a
3885	// non-empty value. This may be used to include null fields in Patch
3886	// requests.
3887	NullFields []string `json:"-"`
3888}
3889
3890func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
3891	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3892	raw := NoMethod(*s)
3893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3894}
3895
3896func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
3897	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3898	var s1 struct {
3899		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3900		*NoMethod
3901	}
3902	s1.NoMethod = (*NoMethod)(s)
3903	if err := json.Unmarshal(data, &s1); err != nil {
3904		return err
3905	}
3906	s.UtilizationTarget = float64(s1.UtilizationTarget)
3907	return nil
3908}
3909
3910// AutoscalingPolicyScaleDownControl: Configuration that allows for
3911// slower scale down so that even if Autoscaler recommends an abrupt
3912// scale down of a MIG, it will be throttled as specified by the
3913// parameters below.
3914type AutoscalingPolicyScaleDownControl struct {
3915	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can
3916	// be deducted from the peak recommendation during the window autoscaler
3917	// looks at when computing recommendations. Possibly all these VMs can
3918	// be deleted at once so user service needs to be prepared to lose that
3919	// many VMs in one step.
3920	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
3921
3922	// TimeWindowSec: How long back autoscaling should look when computing
3923	// recommendations to include directives regarding slower scale down, as
3924	// described above.
3925	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
3926
3927	// ForceSendFields is a list of field names (e.g.
3928	// "MaxScaledDownReplicas") to unconditionally include in API requests.
3929	// By default, fields with empty values are omitted from API requests.
3930	// However, any non-pointer, non-interface field appearing in
3931	// ForceSendFields will be sent to the server regardless of whether the
3932	// field is empty or not. This may be used to include empty fields in
3933	// Patch requests.
3934	ForceSendFields []string `json:"-"`
3935
3936	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
3937	// include in API requests with the JSON null value. By default, fields
3938	// with empty values are omitted from API requests. However, any field
3939	// with an empty value appearing in NullFields will be sent to the
3940	// server as null. It is an error if a field in this list has a
3941	// non-empty value. This may be used to include null fields in Patch
3942	// requests.
3943	NullFields []string `json:"-"`
3944}
3945
3946func (s *AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
3947	type NoMethod AutoscalingPolicyScaleDownControl
3948	raw := NoMethod(*s)
3949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3950}
3951
3952// AutoscalingPolicyScaleInControl: Configuration that allows for slower
3953// scale in so that even if Autoscaler recommends an abrupt scale in of
3954// a MIG, it will be throttled as specified by the parameters below.
3955type AutoscalingPolicyScaleInControl struct {
3956	// MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be
3957	// deducted from the peak recommendation during the window autoscaler
3958	// looks at when computing recommendations. Possibly all these VMs can
3959	// be deleted at once so user service needs to be prepared to lose that
3960	// many VMs in one step.
3961	MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"`
3962
3963	// TimeWindowSec: How long back autoscaling should look when computing
3964	// recommendations to include directives regarding slower scale in, as
3965	// described above.
3966	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
3967
3968	// ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas")
3969	// to unconditionally include in API requests. By default, fields with
3970	// empty values are omitted from API requests. However, any non-pointer,
3971	// non-interface field appearing in ForceSendFields will be sent to the
3972	// server regardless of whether the field is empty or not. This may be
3973	// used to include empty fields in Patch requests.
3974	ForceSendFields []string `json:"-"`
3975
3976	// NullFields is a list of field names (e.g. "MaxScaledInReplicas") to
3977	// include in API requests with the JSON null value. By default, fields
3978	// with empty values are omitted from API requests. However, any field
3979	// with an empty value appearing in NullFields will be sent to the
3980	// server as null. It is an error if a field in this list has a
3981	// non-empty value. This may be used to include null fields in Patch
3982	// requests.
3983	NullFields []string `json:"-"`
3984}
3985
3986func (s *AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) {
3987	type NoMethod AutoscalingPolicyScaleInControl
3988	raw := NoMethod(*s)
3989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3990}
3991
3992// Backend: Message containing information of one individual backend.
3993type Backend struct {
3994	// BalancingMode: Specifies the balancing mode for the backend.
3995	//
3996	// When choosing a balancing mode, you need to consider the
3997	// loadBalancingScheme, and protocol for the backend service, as well as
3998	// the type of backend (instance group or NEG).
3999	//
4000	//
4001	// - If the load balancing mode is CONNECTION, then the load is spread
4002	// based on how many concurrent connections the backend can handle.
4003	// You can use the CONNECTION balancing mode if the protocol for the
4004	// backend service is SSL, TCP, or UDP.
4005	//
4006	// If the loadBalancingScheme for the backend service is EXTERNAL (SSL
4007	// Proxy and TCP Proxy load balancers), you must also specify exactly
4008	// one of the following parameters: maxConnections (except for regional
4009	// managed instance groups), maxConnectionsPerInstance, or
4010	// maxConnectionsPerEndpoint.
4011	//
4012	// If the loadBalancingScheme for the backend service is INTERNAL
4013	// (internal TCP/UDP load balancers), you cannot specify any additional
4014	// parameters.
4015	//
4016	// - If the load balancing mode is RATE, the load is spread based on the
4017	// rate of HTTP requests per second (RPS).
4018	// You can use the RATE balancing mode if the protocol for the backend
4019	// service is HTTP or HTTPS. You must specify exactly one of the
4020	// following parameters: maxRate (except for regional managed instance
4021	// groups), maxRatePerInstance, or maxRatePerEndpoint.
4022	//
4023	// - If the load balancing mode is UTILIZATION, the load is spread based
4024	// on the backend utilization of instances in an instance group.
4025	// You can use the UTILIZATION balancing mode if the loadBalancingScheme
4026	// of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or
4027	// INTERNAL_MANAGED and the backends are instance groups. There are no
4028	// restrictions on the backend service protocol.
4029	//
4030	// Possible values:
4031	//   "CONNECTION"
4032	//   "RATE"
4033	//   "UTILIZATION"
4034	BalancingMode string `json:"balancingMode,omitempty"`
4035
4036	// CapacityScaler: A multiplier applied to the group's maximum servicing
4037	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
4038	// 1, which means the group will serve up to 100% of its configured
4039	// capacity (depending on balancingMode). A setting of 0 means the group
4040	// is completely drained, offering 0% of its available capacity. Valid
4041	// range is 0.0 and [0.1,1.0]. You cannot configure a setting larger
4042	// than 0 and smaller than 0.1. You cannot configure a setting of 0 when
4043	// there is only one backend attached to the backend service.
4044	//
4045	// This cannot be used for internal load balancing.
4046	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4047
4048	// Description: An optional description of this resource. Provide this
4049	// property when you create the resource.
4050	Description string `json:"description,omitempty"`
4051
4052	// Failover: This field designates whether this is a failover backend.
4053	// More than one failover backend can be configured for a given
4054	// BackendService.
4055	Failover bool `json:"failover,omitempty"`
4056
4057	// Group: The fully-qualified URL of an instance group or network
4058	// endpoint group (NEG) resource. The type of backend that a backend
4059	// service supports depends on the backend service's
4060	// loadBalancingScheme.
4061	//
4062	//
4063	// - When the loadBalancingScheme for the backend service is EXTERNAL,
4064	// INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either
4065	// an instance group or a NEG. The backends on the backend service must
4066	// be either all instance groups or all NEGs. You cannot mix instance
4067	// group and NEG backends on the same backend service.
4068	//
4069	//
4070	// - When the loadBalancingScheme for the backend service is INTERNAL,
4071	// the backend must be an instance group in the same region as the
4072	// backend service. NEGs are not supported.
4073	//
4074	// You must use the fully-qualified URL (starting with
4075	// https://www.googleapis.com/) to specify the instance group or NEG.
4076	// Partial URLs are not supported.
4077	Group string `json:"group,omitempty"`
4078
4079	// MaxConnections: Defines a target maximum number of simultaneous
4080	// connections that the backend can handle. Valid for network endpoint
4081	// group and instance group backends (except for regional managed
4082	// instance groups). If the backend's balancingMode is UTILIZATION, this
4083	// is an optional parameter. If the backend's balancingMode is
4084	// CONNECTION, and backend is attached to a backend service whose
4085	// loadBalancingScheme is EXTERNAL, you must specify either this
4086	// parameter, maxConnectionsPerInstance, or
4087	// maxConnectionsPerEndpoint.
4088	//
4089	// Not available if the backend's balancingMode is RATE. If the
4090	// loadBalancingScheme is INTERNAL, then maxConnections is not
4091	// supported, even though the backend requires a balancing mode of
4092	// CONNECTION.
4093	MaxConnections int64 `json:"maxConnections,omitempty"`
4094
4095	// MaxConnectionsPerEndpoint: Defines a target maximum number of
4096	// simultaneous connections for an endpoint of a NEG. This is multiplied
4097	// by the number of endpoints in the NEG to implicitly calculate a
4098	// maximum number of target maximum simultaneous connections for the
4099	// NEG. If the backend's balancingMode is CONNECTION, and the backend is
4100	// attached to a backend service whose loadBalancingScheme is EXTERNAL,
4101	// you must specify either this parameter, maxConnections, or
4102	// maxConnectionsPerInstance.
4103	//
4104	// Not available if the backend's balancingMode is RATE. Internal
4105	// TCP/UDP load balancing does not support setting
4106	// maxConnectionsPerEndpoint even though its backends require a
4107	// balancing mode of CONNECTION.
4108	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4109
4110	// MaxConnectionsPerInstance: Defines a target maximum number of
4111	// simultaneous connections for a single VM in a backend instance group.
4112	// This is multiplied by the number of instances in the instance group
4113	// to implicitly calculate a target maximum number of simultaneous
4114	// connections for the whole instance group. If the backend's
4115	// balancingMode is UTILIZATION, this is an optional parameter. If the
4116	// backend's balancingMode is CONNECTION, and backend is attached to a
4117	// backend service whose loadBalancingScheme is EXTERNAL, you must
4118	// specify either this parameter, maxConnections, or
4119	// maxConnectionsPerEndpoint.
4120	//
4121	// Not available if the backend's balancingMode is RATE. Internal
4122	// TCP/UDP load balancing does not support setting
4123	// maxConnectionsPerInstance even though its backends require a
4124	// balancing mode of CONNECTION.
4125	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4126
4127	// MaxRate: Defines a maximum number of HTTP requests per second (RPS)
4128	// that the backend can handle. Valid for network endpoint group and
4129	// instance group backends (except for regional managed instance
4130	// groups). Must not be defined if the backend is a managed instance
4131	// group that uses autoscaling based on load balancing.
4132	//
4133	// If the backend's balancingMode is UTILIZATION, this is an optional
4134	// parameter. If the backend's balancingMode is RATE, you must specify
4135	// maxRate, maxRatePerInstance, or maxRatePerEndpoint.
4136	//
4137	// Not available if the backend's balancingMode is CONNECTION.
4138	MaxRate int64 `json:"maxRate,omitempty"`
4139
4140	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4141	// (RPS) for an endpoint of a NEG. This is multiplied by the number of
4142	// endpoints in the NEG to implicitly calculate a target maximum rate
4143	// for the NEG.
4144	//
4145	// If the backend's balancingMode is RATE, you must specify either this
4146	// parameter, maxRate (except for regional managed instance groups), or
4147	// maxRatePerInstance.
4148	//
4149	// Not available if the backend's balancingMode is CONNECTION.
4150	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4151
4152	// MaxRatePerInstance: Defines a maximum target for requests per second
4153	// (RPS) for a single VM in a backend instance group. This is multiplied
4154	// by the number of instances in the instance group to implicitly
4155	// calculate a target maximum rate for the whole instance group.
4156	//
4157	// If the backend's balancingMode is UTILIZATION, this is an optional
4158	// parameter. If the backend's balancingMode is RATE, you must specify
4159	// either this parameter, maxRate (except for regional managed instance
4160	// groups), or maxRatePerEndpoint.
4161	//
4162	// Not available if the backend's balancingMode is CONNECTION.
4163	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4164
4165	// MaxUtilization: Defines the maximum average backend utilization of a
4166	// backend VM in an instance group. The valid range is [0.0, 1.0]. This
4167	// is an optional parameter if the backend's balancingMode is
4168	// UTILIZATION.
4169	//
4170	// This parameter can be used in conjunction with maxRate,
4171	// maxRatePerInstance, maxConnections (except for regional managed
4172	// instance groups), or maxConnectionsPerInstance.
4173	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4174
4175	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4176	// unconditionally include in API requests. By default, fields with
4177	// empty values are omitted from API requests. However, any non-pointer,
4178	// non-interface field appearing in ForceSendFields will be sent to the
4179	// server regardless of whether the field is empty or not. This may be
4180	// used to include empty fields in Patch requests.
4181	ForceSendFields []string `json:"-"`
4182
4183	// NullFields is a list of field names (e.g. "BalancingMode") to include
4184	// in API requests with the JSON null value. By default, fields with
4185	// empty values are omitted from API requests. However, any field with
4186	// an empty value appearing in NullFields will be sent to the server as
4187	// null. It is an error if a field in this list has a non-empty value.
4188	// This may be used to include null fields in Patch requests.
4189	NullFields []string `json:"-"`
4190}
4191
4192func (s *Backend) MarshalJSON() ([]byte, error) {
4193	type NoMethod Backend
4194	raw := NoMethod(*s)
4195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4196}
4197
4198func (s *Backend) UnmarshalJSON(data []byte) error {
4199	type NoMethod Backend
4200	var s1 struct {
4201		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4202		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4203		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4204		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4205		*NoMethod
4206	}
4207	s1.NoMethod = (*NoMethod)(s)
4208	if err := json.Unmarshal(data, &s1); err != nil {
4209		return err
4210	}
4211	s.CapacityScaler = float64(s1.CapacityScaler)
4212	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4213	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4214	s.MaxUtilization = float64(s1.MaxUtilization)
4215	return nil
4216}
4217
4218// BackendBucket: Represents a Cloud Storage Bucket resource.
4219//
4220// This Cloud Storage bucket resource is referenced by a URL map of a
4221// load balancer. For more information, read Backend Buckets.
4222type BackendBucket struct {
4223	// BucketName: Cloud Storage bucket name.
4224	BucketName string `json:"bucketName,omitempty"`
4225
4226	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4227	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4228
4229	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4230	// format.
4231	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4232
4233	// Description: An optional textual description of the resource;
4234	// provided by the client when the resource is created.
4235	Description string `json:"description,omitempty"`
4236
4237	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4238	EnableCdn bool `json:"enableCdn,omitempty"`
4239
4240	// Id: [Output Only] Unique identifier for the resource; defined by the
4241	// server.
4242	Id uint64 `json:"id,omitempty,string"`
4243
4244	// Kind: Type of the resource.
4245	Kind string `json:"kind,omitempty"`
4246
4247	// Name: Name of the resource. Provided by the client when the resource
4248	// is created. The name must be 1-63 characters long, and comply with
4249	// RFC1035. Specifically, the name must be 1-63 characters long and
4250	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4251	// the first character must be a lowercase letter, and all following
4252	// characters must be a dash, lowercase letter, or digit, except the
4253	// last character, which cannot be a dash.
4254	Name string `json:"name,omitempty"`
4255
4256	// SelfLink: [Output Only] Server-defined URL for the resource.
4257	SelfLink string `json:"selfLink,omitempty"`
4258
4259	// ServerResponse contains the HTTP response code and headers from the
4260	// server.
4261	googleapi.ServerResponse `json:"-"`
4262
4263	// ForceSendFields is a list of field names (e.g. "BucketName") to
4264	// unconditionally include in API requests. By default, fields with
4265	// empty values are omitted from API requests. However, any non-pointer,
4266	// non-interface field appearing in ForceSendFields will be sent to the
4267	// server regardless of whether the field is empty or not. This may be
4268	// used to include empty fields in Patch requests.
4269	ForceSendFields []string `json:"-"`
4270
4271	// NullFields is a list of field names (e.g. "BucketName") to include in
4272	// API requests with the JSON null value. By default, fields with empty
4273	// values are omitted from API requests. However, any field with an
4274	// empty value appearing in NullFields will be sent to the server as
4275	// null. It is an error if a field in this list has a non-empty value.
4276	// This may be used to include null fields in Patch requests.
4277	NullFields []string `json:"-"`
4278}
4279
4280func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4281	type NoMethod BackendBucket
4282	raw := NoMethod(*s)
4283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4284}
4285
4286// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4287// for a backend bucket.
4288type BackendBucketCdnPolicy struct {
4289	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4290	// signed URL request will be considered fresh. After this time period,
4291	// the response will be revalidated before being served. Defaults to 1hr
4292	// (3600s). When serving responses to signed URL requests, Cloud CDN
4293	// will internally behave as though all responses from this backend had
4294	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4295	// existing Cache-Control header. The actual headers served in responses
4296	// will not be altered.
4297	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4298
4299	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4300	// request URLs.
4301	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4302
4303	// ForceSendFields is a list of field names (e.g.
4304	// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
4305	// requests. By default, fields with empty values are omitted from API
4306	// requests. However, any non-pointer, non-interface field appearing in
4307	// ForceSendFields will be sent to the server regardless of whether the
4308	// field is empty or not. This may be used to include empty fields in
4309	// Patch requests.
4310	ForceSendFields []string `json:"-"`
4311
4312	// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
4313	// to include in API requests with the JSON null value. By default,
4314	// fields with empty values are omitted from API requests. However, any
4315	// field with an empty value appearing in NullFields will be sent to the
4316	// server as null. It is an error if a field in this list has a
4317	// non-empty value. This may be used to include null fields in Patch
4318	// requests.
4319	NullFields []string `json:"-"`
4320}
4321
4322func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4323	type NoMethod BackendBucketCdnPolicy
4324	raw := NoMethod(*s)
4325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4326}
4327
4328// BackendBucketList: Contains a list of BackendBucket resources.
4329type BackendBucketList struct {
4330	// Id: [Output Only] Unique identifier for the resource; defined by the
4331	// server.
4332	Id string `json:"id,omitempty"`
4333
4334	// Items: A list of BackendBucket resources.
4335	Items []*BackendBucket `json:"items,omitempty"`
4336
4337	// Kind: Type of resource.
4338	Kind string `json:"kind,omitempty"`
4339
4340	// NextPageToken: [Output Only] This token allows you to get the next
4341	// page of results for list requests. If the number of results is larger
4342	// than maxResults, use the nextPageToken as a value for the query
4343	// parameter pageToken in the next list request. Subsequent list
4344	// requests will have their own nextPageToken to continue paging through
4345	// the results.
4346	NextPageToken string `json:"nextPageToken,omitempty"`
4347
4348	// SelfLink: [Output Only] Server-defined URL for this resource.
4349	SelfLink string `json:"selfLink,omitempty"`
4350
4351	// Warning: [Output Only] Informational warning message.
4352	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4353
4354	// ServerResponse contains the HTTP response code and headers from the
4355	// server.
4356	googleapi.ServerResponse `json:"-"`
4357
4358	// ForceSendFields is a list of field names (e.g. "Id") to
4359	// unconditionally include in API requests. By default, fields with
4360	// empty values are omitted from API requests. However, any non-pointer,
4361	// non-interface field appearing in ForceSendFields will be sent to the
4362	// server regardless of whether the field is empty or not. This may be
4363	// used to include empty fields in Patch requests.
4364	ForceSendFields []string `json:"-"`
4365
4366	// NullFields is a list of field names (e.g. "Id") to include in API
4367	// requests with the JSON null value. By default, fields with empty
4368	// values are omitted from API requests. However, any field with an
4369	// empty value appearing in NullFields will be sent to the server as
4370	// null. It is an error if a field in this list has a non-empty value.
4371	// This may be used to include null fields in Patch requests.
4372	NullFields []string `json:"-"`
4373}
4374
4375func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4376	type NoMethod BackendBucketList
4377	raw := NoMethod(*s)
4378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4379}
4380
4381// BackendBucketListWarning: [Output Only] Informational warning
4382// message.
4383type BackendBucketListWarning struct {
4384	// Code: [Output Only] A warning code, if applicable. For example,
4385	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4386	// the response.
4387	//
4388	// Possible values:
4389	//   "CLEANUP_FAILED"
4390	//   "DEPRECATED_RESOURCE_USED"
4391	//   "DEPRECATED_TYPE_USED"
4392	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4393	//   "EXPERIMENTAL_TYPE_USED"
4394	//   "EXTERNAL_API_WARNING"
4395	//   "FIELD_VALUE_OVERRIDEN"
4396	//   "INJECTED_KERNELS_DEPRECATED"
4397	//   "MISSING_TYPE_DEPENDENCY"
4398	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4399	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4400	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4401	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4402	//   "NEXT_HOP_NOT_RUNNING"
4403	//   "NOT_CRITICAL_ERROR"
4404	//   "NO_RESULTS_ON_PAGE"
4405	//   "REQUIRED_TOS_AGREEMENT"
4406	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4407	//   "RESOURCE_NOT_DELETED"
4408	//   "SCHEMA_VALIDATION_IGNORED"
4409	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4410	//   "UNDECLARED_PROPERTIES"
4411	//   "UNREACHABLE"
4412	Code string `json:"code,omitempty"`
4413
4414	// Data: [Output Only] Metadata about this warning in key: value format.
4415	// For example:
4416	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4417	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4418
4419	// Message: [Output Only] A human-readable description of the warning
4420	// code.
4421	Message string `json:"message,omitempty"`
4422
4423	// ForceSendFields is a list of field names (e.g. "Code") to
4424	// unconditionally include in API requests. By default, fields with
4425	// empty values are omitted from API requests. However, any non-pointer,
4426	// non-interface field appearing in ForceSendFields will be sent to the
4427	// server regardless of whether the field is empty or not. This may be
4428	// used to include empty fields in Patch requests.
4429	ForceSendFields []string `json:"-"`
4430
4431	// NullFields is a list of field names (e.g. "Code") to include in API
4432	// requests with the JSON null value. By default, fields with empty
4433	// values are omitted from API requests. However, any field with an
4434	// empty value appearing in NullFields will be sent to the server as
4435	// null. It is an error if a field in this list has a non-empty value.
4436	// This may be used to include null fields in Patch requests.
4437	NullFields []string `json:"-"`
4438}
4439
4440func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4441	type NoMethod BackendBucketListWarning
4442	raw := NoMethod(*s)
4443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4444}
4445
4446type BackendBucketListWarningData struct {
4447	// Key: [Output Only] A key that provides more detail on the warning
4448	// being returned. For example, for warnings where there are no results
4449	// in a list request for a particular zone, this key might be scope and
4450	// the key value might be the zone name. Other examples might be a key
4451	// indicating a deprecated resource and a suggested replacement, or a
4452	// warning about invalid network settings (for example, if an instance
4453	// attempts to perform IP forwarding but is not enabled for IP
4454	// forwarding).
4455	Key string `json:"key,omitempty"`
4456
4457	// Value: [Output Only] A warning data value corresponding to the key.
4458	Value string `json:"value,omitempty"`
4459
4460	// ForceSendFields is a list of field names (e.g. "Key") to
4461	// unconditionally include in API requests. By default, fields with
4462	// empty values are omitted from API requests. However, any non-pointer,
4463	// non-interface field appearing in ForceSendFields will be sent to the
4464	// server regardless of whether the field is empty or not. This may be
4465	// used to include empty fields in Patch requests.
4466	ForceSendFields []string `json:"-"`
4467
4468	// NullFields is a list of field names (e.g. "Key") to include in API
4469	// requests with the JSON null value. By default, fields with empty
4470	// values are omitted from API requests. However, any field with an
4471	// empty value appearing in NullFields will be sent to the server as
4472	// null. It is an error if a field in this list has a non-empty value.
4473	// This may be used to include null fields in Patch requests.
4474	NullFields []string `json:"-"`
4475}
4476
4477func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4478	type NoMethod BackendBucketListWarningData
4479	raw := NoMethod(*s)
4480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4481}
4482
4483// BackendService: Represents a Backend Service resource.
4484//
4485// A backend service defines how Google Cloud load balancers distribute
4486// traffic. The backend service configuration contains a set of values,
4487// such as the protocol used to connect to backends, various
4488// distribution and session settings, health checks, and timeouts. These
4489// settings provide fine-grained control over how your load balancer
4490// behaves. Most of the settings have default values that allow for easy
4491// configuration if you need to get started quickly.
4492//
4493// Backend services in Google Compute Engine can be either regionally or
4494// globally scoped.
4495//
4496// *
4497// [Global](/compute/docs/reference/rest/{$api_version}/backendServices)
4498// *
4499// [Regional](/compute/docs/reference/rest/{$api_version}/regionBackendSe
4500// rvices)
4501//
4502// For more information, see Backend Services.
4503//
4504// (== resource_for {$api_version}.backendService ==)
4505type BackendService struct {
4506	// AffinityCookieTtlSec: If set to 0, the cookie is non-persistent and
4507	// lasts only until the end of the browser session (or equivalent). The
4508	// maximum allowed value is one day (86,400).
4509	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4510
4511	// Backends: The list of backends that serve this BackendService.
4512	Backends []*Backend `json:"backends,omitempty"`
4513
4514	// CdnPolicy: Cloud CDN configuration for this BackendService.
4515	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4516
4517	// CircuitBreakers: Settings controlling the volume of connections to a
4518	// backend service. If not set, this feature is considered
4519	// disabled.
4520	//
4521	// This field is applicable to either:
4522	// - A regional backend service with the service_protocol set to HTTP,
4523	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4524	//
4525	// - A global backend service with the load_balancing_scheme set to
4526	// INTERNAL_SELF_MANAGED.
4527	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4528
4529	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4530
4531	// ConsistentHash: Consistent Hash-based load balancing can be used to
4532	// provide soft session affinity based on HTTP headers, cookies or other
4533	// properties. This load balancing policy is applicable only for HTTP
4534	// connections. The affinity to a particular destination host will be
4535	// lost when one or more hosts are added/removed from the destination
4536	// service. This field specifies parameters that control consistent
4537	// hashing. This field is only applicable when localityLbPolicy is set
4538	// to MAGLEV or RING_HASH.
4539	//
4540	// This field is applicable to either:
4541	// - A regional backend service with the service_protocol set to HTTP,
4542	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4543	//
4544	// - A global backend service with the load_balancing_scheme set to
4545	// INTERNAL_SELF_MANAGED.
4546	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4547
4548	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4549	// format.
4550	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4551
4552	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4553	// add to proxied requests.
4554	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4555
4556	// Description: An optional description of this resource. Provide this
4557	// property when you create the resource.
4558	Description string `json:"description,omitempty"`
4559
4560	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4561	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4562	// HTTP or HTTPS.
4563	EnableCDN bool `json:"enableCDN,omitempty"`
4564
4565	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4566	// Balancing. Requires at least one backend instance group to be defined
4567	// as a backup (failover) backend.
4568	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4569
4570	// Fingerprint: Fingerprint of this resource. A hash of the contents
4571	// stored in this object. This field is used in optimistic locking. This
4572	// field will be ignored when inserting a BackendService. An up-to-date
4573	// fingerprint must be provided in order to update the BackendService,
4574	// otherwise the request will fail with error 412 conditionNotMet.
4575	//
4576	// To see the latest fingerprint, make a get() request to retrieve a
4577	// BackendService.
4578	Fingerprint string `json:"fingerprint,omitempty"`
4579
4580	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
4581	// (legacy), or httpsHealthChecks (legacy) resource for health checking
4582	// this backend service. Not all backend services support legacy health
4583	// checks. See  Load balancer guide. Currently at most one health check
4584	// can be specified. Backend services with instance group or zonal NEG
4585	// backends must have a health check. Backend services with internet NEG
4586	// backends must not have a health check. A health check must
4587	HealthChecks []string `json:"healthChecks,omitempty"`
4588
4589	// Iap: The configurations for Identity-Aware Proxy on this resource.
4590	Iap *BackendServiceIAP `json:"iap,omitempty"`
4591
4592	// Id: [Output Only] The unique identifier for the resource. This
4593	// identifier is defined by the server.
4594	Id uint64 `json:"id,omitempty,string"`
4595
4596	// Kind: [Output Only] Type of resource. Always compute#backendService
4597	// for backend services.
4598	Kind string `json:"kind,omitempty"`
4599
4600	// LoadBalancingScheme: Specifies the load balancer type. Choose
4601	// EXTERNAL for load balancers that receive traffic from external
4602	// clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose
4603	// INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose
4604	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4605	// for one type of load balancing cannot be used with another. For more
4606	// information, refer to Choosing a load balancer.
4607	//
4608	// Possible values:
4609	//   "EXTERNAL"
4610	//   "INTERNAL"
4611	//   "INTERNAL_MANAGED"
4612	//   "INTERNAL_SELF_MANAGED"
4613	//   "INVALID_LOAD_BALANCING_SCHEME"
4614	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4615
4616	// LocalityLbPolicy: The load balancing algorithm used within the scope
4617	// of the locality. The possible values are:
4618	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
4619	// is selected in round robin order. This is the default.
4620	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
4621	// hosts and picks the host which has fewer active requests.
4622	// - RING_HASH: The ring/modulo hash load balancer implements consistent
4623	// hashing to backends. The algorithm has the property that the
4624	// addition/removal of a host from a set of N hosts only affects 1/N of
4625	// the requests.
4626	// - RANDOM: The load balancer selects a random healthy host.
4627	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
4628	// connection metadata, i.e., connections are opened to the same address
4629	// as the destination address of the incoming connection before the
4630	// connection was redirected to the load balancer.
4631	// - MAGLEV: used as a drop in replacement for the ring hash load
4632	// balancer. Maglev is not as stable as ring hash but has faster table
4633	// lookup build times and host selection times. For more information
4634	// about Maglev, see https://ai.google/research/pubs/pub44824
4635	//
4636	// This field is applicable to either:
4637	// - A regional backend service with the service_protocol set to HTTP,
4638	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4639	//
4640	// - A global backend service with the load_balancing_scheme set to
4641	// INTERNAL_SELF_MANAGED.
4642	//
4643	// If sessionAffinity is not NONE, and this field is not set to >MAGLEV
4644	// or RING_HASH, session affinity settings will not take effect.
4645	//
4646	// Possible values:
4647	//   "INVALID_LB_POLICY"
4648	//   "LEAST_REQUEST"
4649	//   "MAGLEV"
4650	//   "ORIGINAL_DESTINATION"
4651	//   "RANDOM"
4652	//   "RING_HASH"
4653	//   "ROUND_ROBIN"
4654	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
4655
4656	// LogConfig: This field denotes the logging options for the load
4657	// balancer traffic served by this backend service. If logging is
4658	// enabled, logs will be exported to Stackdriver.
4659	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
4660
4661	// Name: Name of the resource. Provided by the client when the resource
4662	// is created. The name must be 1-63 characters long, and comply with
4663	// RFC1035. Specifically, the name must be 1-63 characters long and
4664	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4665	// the first character must be a lowercase letter, and all following
4666	// characters must be a dash, lowercase letter, or digit, except the
4667	// last character, which cannot be a dash.
4668	Name string `json:"name,omitempty"`
4669
4670	// Network: The URL of the network to which this backend service
4671	// belongs. This field can only be spcified when the load balancing
4672	// scheme is set to INTERNAL.
4673	Network string `json:"network,omitempty"`
4674
4675	// OutlierDetection: Settings controlling the eviction of unhealthy
4676	// hosts from the load balancing pool for the backend service. If not
4677	// set, this feature is considered disabled.
4678	//
4679	// This field is applicable to either:
4680	// - A regional backend service with the service_protocol set to HTTP,
4681	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4682	//
4683	// - A global backend service with the load_balancing_scheme set to
4684	// INTERNAL_SELF_MANAGED.
4685	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
4686
4687	// Port: Deprecated in favor of portName. The TCP port to connect on the
4688	// backend. The default value is 80.
4689	//
4690	// This cannot be used if the loadBalancingScheme is INTERNAL (Internal
4691	// TCP/UDP Load Balancing).
4692	Port int64 `json:"port,omitempty"`
4693
4694	// PortName: A named port on a backend instance group representing the
4695	// port for communication to the backend VMs in that group. Required
4696	// when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or
4697	// INTERNAL_SELF_MANAGED and the backends are instance groups. The named
4698	// port must be defined on each backend instance group. This parameter
4699	// has no meaning if the backends are NEGs.
4700	//
4701	//
4702	//
4703	// Must be omitted when the loadBalancingScheme is INTERNAL (Internal
4704	// TCP/UDP Load Balancing).
4705	PortName string `json:"portName,omitempty"`
4706
4707	// Protocol: The protocol this BackendService uses to communicate with
4708	// backends.
4709	//
4710	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, or UDP. depending
4711	// on the chosen load balancer or Traffic Director configuration. Refer
4712	// to the documentation for the load balancer or for Traffic Director
4713	// for more information.
4714	//
4715	// Possible values:
4716	//   "HTTP"
4717	//   "HTTP2"
4718	//   "HTTPS"
4719	//   "SSL"
4720	//   "TCP"
4721	//   "UDP"
4722	Protocol string `json:"protocol,omitempty"`
4723
4724	// Region: [Output Only] URL of the region where the regional backend
4725	// service resides. This field is not applicable to global backend
4726	// services. You must specify this field as part of the HTTP request
4727	// URL. It is not settable as a field in the request body.
4728	Region string `json:"region,omitempty"`
4729
4730	// SecurityPolicy: [Output Only] The resource URL for the security
4731	// policy associated with this backend service.
4732	SecurityPolicy string `json:"securityPolicy,omitempty"`
4733
4734	// SecuritySettings: This field specifies the security policy that
4735	// applies to this backend service. This field is applicable to either:
4736	//
4737	// - A regional backend service with the service_protocol set to HTTP,
4738	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4739	//
4740	// - A global backend service with the load_balancing_scheme set to
4741	// INTERNAL_SELF_MANAGED.
4742	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
4743
4744	// SelfLink: [Output Only] Server-defined URL for the resource.
4745	SelfLink string `json:"selfLink,omitempty"`
4746
4747	// SessionAffinity: Type of session affinity to use. The default is
4748	// NONE. Session affinity is not applicable if the --protocol is
4749	// UDP.
4750	//
4751	// When the loadBalancingScheme is EXTERNAL, possible values are NONE,
4752	// CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the
4753	// protocol is HTTP or HTTPS.
4754	//
4755	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
4756	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
4757	//
4758	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
4759	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
4760	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
4761	//
4762	// Possible values:
4763	//   "CLIENT_IP"
4764	//   "CLIENT_IP_PORT_PROTO"
4765	//   "CLIENT_IP_PROTO"
4766	//   "GENERATED_COOKIE"
4767	//   "HEADER_FIELD"
4768	//   "HTTP_COOKIE"
4769	//   "NONE"
4770	SessionAffinity string `json:"sessionAffinity,omitempty"`
4771
4772	// TimeoutSec: The backend service timeout has a different meaning
4773	// depending on the type of load balancer. For more information see,
4774	// Backend service settings The default is 30 seconds.
4775	TimeoutSec int64 `json:"timeoutSec,omitempty"`
4776
4777	// ServerResponse contains the HTTP response code and headers from the
4778	// server.
4779	googleapi.ServerResponse `json:"-"`
4780
4781	// ForceSendFields is a list of field names (e.g.
4782	// "AffinityCookieTtlSec") to unconditionally include in API requests.
4783	// By default, fields with empty values are omitted from API requests.
4784	// However, any non-pointer, non-interface field appearing in
4785	// ForceSendFields will be sent to the server regardless of whether the
4786	// field is empty or not. This may be used to include empty fields in
4787	// Patch requests.
4788	ForceSendFields []string `json:"-"`
4789
4790	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
4791	// include in API requests with the JSON null value. By default, fields
4792	// with empty values are omitted from API requests. However, any field
4793	// with an empty value appearing in NullFields will be sent to the
4794	// server as null. It is an error if a field in this list has a
4795	// non-empty value. This may be used to include null fields in Patch
4796	// requests.
4797	NullFields []string `json:"-"`
4798}
4799
4800func (s *BackendService) MarshalJSON() ([]byte, error) {
4801	type NoMethod BackendService
4802	raw := NoMethod(*s)
4803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4804}
4805
4806// BackendServiceAggregatedList: Contains a list of
4807// BackendServicesScopedList.
4808type BackendServiceAggregatedList struct {
4809	// Id: [Output Only] Unique identifier for the resource; defined by the
4810	// server.
4811	Id string `json:"id,omitempty"`
4812
4813	// Items: A list of BackendServicesScopedList resources.
4814	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
4815
4816	// Kind: Type of resource.
4817	Kind string `json:"kind,omitempty"`
4818
4819	// NextPageToken: [Output Only] This token allows you to get the next
4820	// page of results for list requests. If the number of results is larger
4821	// than maxResults, use the nextPageToken as a value for the query
4822	// parameter pageToken in the next list request. Subsequent list
4823	// requests will have their own nextPageToken to continue paging through
4824	// the results.
4825	NextPageToken string `json:"nextPageToken,omitempty"`
4826
4827	// SelfLink: [Output Only] Server-defined URL for this resource.
4828	SelfLink string `json:"selfLink,omitempty"`
4829
4830	// Warning: [Output Only] Informational warning message.
4831	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
4832
4833	// ServerResponse contains the HTTP response code and headers from the
4834	// server.
4835	googleapi.ServerResponse `json:"-"`
4836
4837	// ForceSendFields is a list of field names (e.g. "Id") to
4838	// unconditionally include in API requests. By default, fields with
4839	// empty values are omitted from API requests. However, any non-pointer,
4840	// non-interface field appearing in ForceSendFields will be sent to the
4841	// server regardless of whether the field is empty or not. This may be
4842	// used to include empty fields in Patch requests.
4843	ForceSendFields []string `json:"-"`
4844
4845	// NullFields is a list of field names (e.g. "Id") to include in API
4846	// requests with the JSON null value. By default, fields with empty
4847	// values are omitted from API requests. However, any field with an
4848	// empty value appearing in NullFields will be sent to the server as
4849	// null. It is an error if a field in this list has a non-empty value.
4850	// This may be used to include null fields in Patch requests.
4851	NullFields []string `json:"-"`
4852}
4853
4854func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
4855	type NoMethod BackendServiceAggregatedList
4856	raw := NoMethod(*s)
4857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4858}
4859
4860// BackendServiceAggregatedListWarning: [Output Only] Informational
4861// warning message.
4862type BackendServiceAggregatedListWarning struct {
4863	// Code: [Output Only] A warning code, if applicable. For example,
4864	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4865	// the response.
4866	//
4867	// Possible values:
4868	//   "CLEANUP_FAILED"
4869	//   "DEPRECATED_RESOURCE_USED"
4870	//   "DEPRECATED_TYPE_USED"
4871	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4872	//   "EXPERIMENTAL_TYPE_USED"
4873	//   "EXTERNAL_API_WARNING"
4874	//   "FIELD_VALUE_OVERRIDEN"
4875	//   "INJECTED_KERNELS_DEPRECATED"
4876	//   "MISSING_TYPE_DEPENDENCY"
4877	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4878	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4879	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4880	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4881	//   "NEXT_HOP_NOT_RUNNING"
4882	//   "NOT_CRITICAL_ERROR"
4883	//   "NO_RESULTS_ON_PAGE"
4884	//   "REQUIRED_TOS_AGREEMENT"
4885	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4886	//   "RESOURCE_NOT_DELETED"
4887	//   "SCHEMA_VALIDATION_IGNORED"
4888	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4889	//   "UNDECLARED_PROPERTIES"
4890	//   "UNREACHABLE"
4891	Code string `json:"code,omitempty"`
4892
4893	// Data: [Output Only] Metadata about this warning in key: value format.
4894	// For example:
4895	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4896	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
4897
4898	// Message: [Output Only] A human-readable description of the warning
4899	// code.
4900	Message string `json:"message,omitempty"`
4901
4902	// ForceSendFields is a list of field names (e.g. "Code") to
4903	// unconditionally include in API requests. By default, fields with
4904	// empty values are omitted from API requests. However, any non-pointer,
4905	// non-interface field appearing in ForceSendFields will be sent to the
4906	// server regardless of whether the field is empty or not. This may be
4907	// used to include empty fields in Patch requests.
4908	ForceSendFields []string `json:"-"`
4909
4910	// NullFields is a list of field names (e.g. "Code") to include in API
4911	// requests with the JSON null value. By default, fields with empty
4912	// values are omitted from API requests. However, any field with an
4913	// empty value appearing in NullFields will be sent to the server as
4914	// null. It is an error if a field in this list has a non-empty value.
4915	// This may be used to include null fields in Patch requests.
4916	NullFields []string `json:"-"`
4917}
4918
4919func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
4920	type NoMethod BackendServiceAggregatedListWarning
4921	raw := NoMethod(*s)
4922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4923}
4924
4925type BackendServiceAggregatedListWarningData struct {
4926	// Key: [Output Only] A key that provides more detail on the warning
4927	// being returned. For example, for warnings where there are no results
4928	// in a list request for a particular zone, this key might be scope and
4929	// the key value might be the zone name. Other examples might be a key
4930	// indicating a deprecated resource and a suggested replacement, or a
4931	// warning about invalid network settings (for example, if an instance
4932	// attempts to perform IP forwarding but is not enabled for IP
4933	// forwarding).
4934	Key string `json:"key,omitempty"`
4935
4936	// Value: [Output Only] A warning data value corresponding to the key.
4937	Value string `json:"value,omitempty"`
4938
4939	// ForceSendFields is a list of field names (e.g. "Key") to
4940	// unconditionally include in API requests. By default, fields with
4941	// empty values are omitted from API requests. However, any non-pointer,
4942	// non-interface field appearing in ForceSendFields will be sent to the
4943	// server regardless of whether the field is empty or not. This may be
4944	// used to include empty fields in Patch requests.
4945	ForceSendFields []string `json:"-"`
4946
4947	// NullFields is a list of field names (e.g. "Key") to include in API
4948	// requests with the JSON null value. By default, fields with empty
4949	// values are omitted from API requests. However, any field with an
4950	// empty value appearing in NullFields will be sent to the server as
4951	// null. It is an error if a field in this list has a non-empty value.
4952	// This may be used to include null fields in Patch requests.
4953	NullFields []string `json:"-"`
4954}
4955
4956func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
4957	type NoMethod BackendServiceAggregatedListWarningData
4958	raw := NoMethod(*s)
4959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4960}
4961
4962// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
4963// for a backend service.
4964type BackendServiceCdnPolicy struct {
4965	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
4966	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
4967
4968	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4969	// signed URL request will be considered fresh. After this time period,
4970	// the response will be revalidated before being served. Defaults to 1hr
4971	// (3600s). When serving responses to signed URL requests, Cloud CDN
4972	// will internally behave as though all responses from this backend had
4973	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4974	// existing Cache-Control header. The actual headers served in responses
4975	// will not be altered.
4976	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4977
4978	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4979	// request URLs.
4980	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4981
4982	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
4983	// unconditionally include in API requests. By default, fields with
4984	// empty values are omitted from API requests. However, any non-pointer,
4985	// non-interface field appearing in ForceSendFields will be sent to the
4986	// server regardless of whether the field is empty or not. This may be
4987	// used to include empty fields in Patch requests.
4988	ForceSendFields []string `json:"-"`
4989
4990	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
4991	// include in API requests with the JSON null value. By default, fields
4992	// with empty values are omitted from API requests. However, any field
4993	// with an empty value appearing in NullFields will be sent to the
4994	// server as null. It is an error if a field in this list has a
4995	// non-empty value. This may be used to include null fields in Patch
4996	// requests.
4997	NullFields []string `json:"-"`
4998}
4999
5000func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5001	type NoMethod BackendServiceCdnPolicy
5002	raw := NoMethod(*s)
5003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5004}
5005
5006// BackendServiceFailoverPolicy: Applicable only to Failover for
5007// Internal TCP/UDP Load Balancing. On failover or failback, this field
5008// indicates whether connection draining will be honored. GCP has a
5009// fixed connection draining timeout of 10 minutes. A setting of true
5010// terminates existing TCP connections to the active pool during
5011// failover and failback, immediately draining traffic. A setting of
5012// false allows existing TCP connections to persist, even on VMs no
5013// longer in the active pool, for up to the duration of the connection
5014// draining timeout (10 minutes).
5015type BackendServiceFailoverPolicy struct {
5016	// DisableConnectionDrainOnFailover: This can be set to true only if the
5017	// protocol is TCP.
5018	//
5019	// The default is false.
5020	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5021
5022	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
5023	// TCP/UDP Load Balancing. If set to true, connections to the load
5024	// balancer are dropped when all primary and all backup backend VMs are
5025	// unhealthy. If set to false, connections are distributed among all
5026	// primary VMs when all primary and all backup backend VMs are
5027	// unhealthy.
5028	//
5029	// The default is false.
5030	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5031
5032	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
5033	// Balancing. The value of the field must be in the range [0, 1]. If the
5034	// value is 0, the load balancer performs a failover when the number of
5035	// healthy primary VMs equals zero. For all other values, the load
5036	// balancer performs a failover when the total number of healthy primary
5037	// VMs is less than this ratio.
5038	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5039
5040	// ForceSendFields is a list of field names (e.g.
5041	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5042	// requests. By default, fields with empty values are omitted from API
5043	// requests. However, any non-pointer, non-interface field appearing in
5044	// ForceSendFields will be sent to the server regardless of whether the
5045	// field is empty or not. This may be used to include empty fields in
5046	// Patch requests.
5047	ForceSendFields []string `json:"-"`
5048
5049	// NullFields is a list of field names (e.g.
5050	// "DisableConnectionDrainOnFailover") to include in API requests with
5051	// the JSON null value. By default, fields with empty values are omitted
5052	// from API requests. However, any field with an empty value appearing
5053	// in NullFields will be sent to the server as null. It is an error if a
5054	// field in this list has a non-empty value. This may be used to include
5055	// null fields in Patch requests.
5056	NullFields []string `json:"-"`
5057}
5058
5059func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5060	type NoMethod BackendServiceFailoverPolicy
5061	raw := NoMethod(*s)
5062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5063}
5064
5065func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5066	type NoMethod BackendServiceFailoverPolicy
5067	var s1 struct {
5068		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5069		*NoMethod
5070	}
5071	s1.NoMethod = (*NoMethod)(s)
5072	if err := json.Unmarshal(data, &s1); err != nil {
5073		return err
5074	}
5075	s.FailoverRatio = float64(s1.FailoverRatio)
5076	return nil
5077}
5078
5079type BackendServiceGroupHealth struct {
5080	// Annotations: Metadata defined as annotations on the network endpoint
5081	// group.
5082	Annotations map[string]string `json:"annotations,omitempty"`
5083
5084	// HealthStatus: Health state of the backend instances or endpoints in
5085	// requested instance or network endpoint group, determined based on
5086	// configured health checks.
5087	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5088
5089	// Kind: [Output Only] Type of resource. Always
5090	// compute#backendServiceGroupHealth for the health of backend services.
5091	Kind string `json:"kind,omitempty"`
5092
5093	// ServerResponse contains the HTTP response code and headers from the
5094	// server.
5095	googleapi.ServerResponse `json:"-"`
5096
5097	// ForceSendFields is a list of field names (e.g. "Annotations") to
5098	// unconditionally include in API requests. By default, fields with
5099	// empty values are omitted from API requests. However, any non-pointer,
5100	// non-interface field appearing in ForceSendFields will be sent to the
5101	// server regardless of whether the field is empty or not. This may be
5102	// used to include empty fields in Patch requests.
5103	ForceSendFields []string `json:"-"`
5104
5105	// NullFields is a list of field names (e.g. "Annotations") to include
5106	// in API requests with the JSON null value. By default, fields with
5107	// empty values are omitted from API requests. However, any field with
5108	// an empty value appearing in NullFields will be sent to the server as
5109	// null. It is an error if a field in this list has a non-empty value.
5110	// This may be used to include null fields in Patch requests.
5111	NullFields []string `json:"-"`
5112}
5113
5114func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5115	type NoMethod BackendServiceGroupHealth
5116	raw := NoMethod(*s)
5117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5118}
5119
5120// BackendServiceIAP: Identity-Aware Proxy
5121type BackendServiceIAP struct {
5122	// Enabled: Whether the serving infrastructure will authenticate and
5123	// authorize all incoming requests. If true, the oauth2ClientId and
5124	// oauth2ClientSecret fields must be non-empty.
5125	Enabled bool `json:"enabled,omitempty"`
5126
5127	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
5128	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5129
5130	// Oauth2ClientSecret: OAuth2 client secret to use for the
5131	// authentication flow. For security reasons, this value cannot be
5132	// retrieved via the API. Instead, the SHA-256 hash of the value is
5133	// returned in the oauth2ClientSecretSha256 field.
5134	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5135
5136	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5137	// field oauth2_client_secret above.
5138	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5139
5140	// ForceSendFields is a list of field names (e.g. "Enabled") to
5141	// unconditionally include in API requests. By default, fields with
5142	// empty values are omitted from API requests. However, any non-pointer,
5143	// non-interface field appearing in ForceSendFields will be sent to the
5144	// server regardless of whether the field is empty or not. This may be
5145	// used to include empty fields in Patch requests.
5146	ForceSendFields []string `json:"-"`
5147
5148	// NullFields is a list of field names (e.g. "Enabled") to include in
5149	// API requests with the JSON null value. By default, fields with empty
5150	// values are omitted from API requests. However, any field with an
5151	// empty value appearing in NullFields will be sent to the server as
5152	// null. It is an error if a field in this list has a non-empty value.
5153	// This may be used to include null fields in Patch requests.
5154	NullFields []string `json:"-"`
5155}
5156
5157func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5158	type NoMethod BackendServiceIAP
5159	raw := NoMethod(*s)
5160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5161}
5162
5163// BackendServiceList: Contains a list of BackendService resources.
5164type BackendServiceList struct {
5165	// Id: [Output Only] Unique identifier for the resource; defined by the
5166	// server.
5167	Id string `json:"id,omitempty"`
5168
5169	// Items: A list of BackendService resources.
5170	Items []*BackendService `json:"items,omitempty"`
5171
5172	// Kind: [Output Only] Type of resource. Always
5173	// compute#backendServiceList for lists of backend services.
5174	Kind string `json:"kind,omitempty"`
5175
5176	// NextPageToken: [Output Only] This token allows you to get the next
5177	// page of results for list requests. If the number of results is larger
5178	// than maxResults, use the nextPageToken as a value for the query
5179	// parameter pageToken in the next list request. Subsequent list
5180	// requests will have their own nextPageToken to continue paging through
5181	// the results.
5182	NextPageToken string `json:"nextPageToken,omitempty"`
5183
5184	// SelfLink: [Output Only] Server-defined URL for this resource.
5185	SelfLink string `json:"selfLink,omitempty"`
5186
5187	// Warning: [Output Only] Informational warning message.
5188	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5189
5190	// ServerResponse contains the HTTP response code and headers from the
5191	// server.
5192	googleapi.ServerResponse `json:"-"`
5193
5194	// ForceSendFields is a list of field names (e.g. "Id") to
5195	// unconditionally include in API requests. By default, fields with
5196	// empty values are omitted from API requests. However, any non-pointer,
5197	// non-interface field appearing in ForceSendFields will be sent to the
5198	// server regardless of whether the field is empty or not. This may be
5199	// used to include empty fields in Patch requests.
5200	ForceSendFields []string `json:"-"`
5201
5202	// NullFields is a list of field names (e.g. "Id") to include in API
5203	// requests with the JSON null value. By default, fields with empty
5204	// values are omitted from API requests. However, any field with an
5205	// empty value appearing in NullFields will be sent to the server as
5206	// null. It is an error if a field in this list has a non-empty value.
5207	// This may be used to include null fields in Patch requests.
5208	NullFields []string `json:"-"`
5209}
5210
5211func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5212	type NoMethod BackendServiceList
5213	raw := NoMethod(*s)
5214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5215}
5216
5217// BackendServiceListWarning: [Output Only] Informational warning
5218// message.
5219type BackendServiceListWarning struct {
5220	// Code: [Output Only] A warning code, if applicable. For example,
5221	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5222	// the response.
5223	//
5224	// Possible values:
5225	//   "CLEANUP_FAILED"
5226	//   "DEPRECATED_RESOURCE_USED"
5227	//   "DEPRECATED_TYPE_USED"
5228	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5229	//   "EXPERIMENTAL_TYPE_USED"
5230	//   "EXTERNAL_API_WARNING"
5231	//   "FIELD_VALUE_OVERRIDEN"
5232	//   "INJECTED_KERNELS_DEPRECATED"
5233	//   "MISSING_TYPE_DEPENDENCY"
5234	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5235	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5236	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5237	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5238	//   "NEXT_HOP_NOT_RUNNING"
5239	//   "NOT_CRITICAL_ERROR"
5240	//   "NO_RESULTS_ON_PAGE"
5241	//   "REQUIRED_TOS_AGREEMENT"
5242	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5243	//   "RESOURCE_NOT_DELETED"
5244	//   "SCHEMA_VALIDATION_IGNORED"
5245	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5246	//   "UNDECLARED_PROPERTIES"
5247	//   "UNREACHABLE"
5248	Code string `json:"code,omitempty"`
5249
5250	// Data: [Output Only] Metadata about this warning in key: value format.
5251	// For example:
5252	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5253	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5254
5255	// Message: [Output Only] A human-readable description of the warning
5256	// code.
5257	Message string `json:"message,omitempty"`
5258
5259	// ForceSendFields is a list of field names (e.g. "Code") to
5260	// unconditionally include in API requests. By default, fields with
5261	// empty values are omitted from API requests. However, any non-pointer,
5262	// non-interface field appearing in ForceSendFields will be sent to the
5263	// server regardless of whether the field is empty or not. This may be
5264	// used to include empty fields in Patch requests.
5265	ForceSendFields []string `json:"-"`
5266
5267	// NullFields is a list of field names (e.g. "Code") to include in API
5268	// requests with the JSON null value. By default, fields with empty
5269	// values are omitted from API requests. However, any field with an
5270	// empty value appearing in NullFields will be sent to the server as
5271	// null. It is an error if a field in this list has a non-empty value.
5272	// This may be used to include null fields in Patch requests.
5273	NullFields []string `json:"-"`
5274}
5275
5276func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5277	type NoMethod BackendServiceListWarning
5278	raw := NoMethod(*s)
5279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5280}
5281
5282type BackendServiceListWarningData struct {
5283	// Key: [Output Only] A key that provides more detail on the warning
5284	// being returned. For example, for warnings where there are no results
5285	// in a list request for a particular zone, this key might be scope and
5286	// the key value might be the zone name. Other examples might be a key
5287	// indicating a deprecated resource and a suggested replacement, or a
5288	// warning about invalid network settings (for example, if an instance
5289	// attempts to perform IP forwarding but is not enabled for IP
5290	// forwarding).
5291	Key string `json:"key,omitempty"`
5292
5293	// Value: [Output Only] A warning data value corresponding to the key.
5294	Value string `json:"value,omitempty"`
5295
5296	// ForceSendFields is a list of field names (e.g. "Key") to
5297	// unconditionally include in API requests. By default, fields with
5298	// empty values are omitted from API requests. However, any non-pointer,
5299	// non-interface field appearing in ForceSendFields will be sent to the
5300	// server regardless of whether the field is empty or not. This may be
5301	// used to include empty fields in Patch requests.
5302	ForceSendFields []string `json:"-"`
5303
5304	// NullFields is a list of field names (e.g. "Key") to include in API
5305	// requests with the JSON null value. By default, fields with empty
5306	// values are omitted from API requests. However, any field with an
5307	// empty value appearing in NullFields will be sent to the server as
5308	// null. It is an error if a field in this list has a non-empty value.
5309	// This may be used to include null fields in Patch requests.
5310	NullFields []string `json:"-"`
5311}
5312
5313func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5314	type NoMethod BackendServiceListWarningData
5315	raw := NoMethod(*s)
5316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5317}
5318
5319// BackendServiceLogConfig: The available logging options for the load
5320// balancer traffic served by this backend service.
5321type BackendServiceLogConfig struct {
5322	// Enable: This field denotes whether to enable logging for the load
5323	// balancer traffic served by this backend service.
5324	Enable bool `json:"enable,omitempty"`
5325
5326	// SampleRate: This field can only be specified if logging is enabled
5327	// for this backend service. The value of the field must be in [0, 1].
5328	// This configures the sampling rate of requests to the load balancer
5329	// where 1.0 means all logged requests are reported and 0.0 means no
5330	// logged requests are reported. The default value is 1.0.
5331	SampleRate float64 `json:"sampleRate,omitempty"`
5332
5333	// ForceSendFields is a list of field names (e.g. "Enable") to
5334	// unconditionally include in API requests. By default, fields with
5335	// empty values are omitted from API requests. However, any non-pointer,
5336	// non-interface field appearing in ForceSendFields will be sent to the
5337	// server regardless of whether the field is empty or not. This may be
5338	// used to include empty fields in Patch requests.
5339	ForceSendFields []string `json:"-"`
5340
5341	// NullFields is a list of field names (e.g. "Enable") to include in API
5342	// requests with the JSON null value. By default, fields with empty
5343	// values are omitted from API requests. However, any field with an
5344	// empty value appearing in NullFields will be sent to the server as
5345	// null. It is an error if a field in this list has a non-empty value.
5346	// This may be used to include null fields in Patch requests.
5347	NullFields []string `json:"-"`
5348}
5349
5350func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
5351	type NoMethod BackendServiceLogConfig
5352	raw := NoMethod(*s)
5353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5354}
5355
5356func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
5357	type NoMethod BackendServiceLogConfig
5358	var s1 struct {
5359		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
5360		*NoMethod
5361	}
5362	s1.NoMethod = (*NoMethod)(s)
5363	if err := json.Unmarshal(data, &s1); err != nil {
5364		return err
5365	}
5366	s.SampleRate = float64(s1.SampleRate)
5367	return nil
5368}
5369
5370type BackendServiceReference struct {
5371	BackendService string `json:"backendService,omitempty"`
5372
5373	// ForceSendFields is a list of field names (e.g. "BackendService") to
5374	// unconditionally include in API requests. By default, fields with
5375	// empty values are omitted from API requests. However, any non-pointer,
5376	// non-interface field appearing in ForceSendFields will be sent to the
5377	// server regardless of whether the field is empty or not. This may be
5378	// used to include empty fields in Patch requests.
5379	ForceSendFields []string `json:"-"`
5380
5381	// NullFields is a list of field names (e.g. "BackendService") to
5382	// include in API requests with the JSON null value. By default, fields
5383	// with empty values are omitted from API requests. However, any field
5384	// with an empty value appearing in NullFields will be sent to the
5385	// server as null. It is an error if a field in this list has a
5386	// non-empty value. This may be used to include null fields in Patch
5387	// requests.
5388	NullFields []string `json:"-"`
5389}
5390
5391func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
5392	type NoMethod BackendServiceReference
5393	raw := NoMethod(*s)
5394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5395}
5396
5397type BackendServicesScopedList struct {
5398	// BackendServices: A list of BackendServices contained in this scope.
5399	BackendServices []*BackendService `json:"backendServices,omitempty"`
5400
5401	// Warning: Informational warning which replaces the list of backend
5402	// services when the list is empty.
5403	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
5404
5405	// ForceSendFields is a list of field names (e.g. "BackendServices") to
5406	// unconditionally include in API requests. By default, fields with
5407	// empty values are omitted from API requests. However, any non-pointer,
5408	// non-interface field appearing in ForceSendFields will be sent to the
5409	// server regardless of whether the field is empty or not. This may be
5410	// used to include empty fields in Patch requests.
5411	ForceSendFields []string `json:"-"`
5412
5413	// NullFields is a list of field names (e.g. "BackendServices") to
5414	// include in API requests with the JSON null value. By default, fields
5415	// with empty values are omitted from API requests. However, any field
5416	// with an empty value appearing in NullFields will be sent to the
5417	// server as null. It is an error if a field in this list has a
5418	// non-empty value. This may be used to include null fields in Patch
5419	// requests.
5420	NullFields []string `json:"-"`
5421}
5422
5423func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
5424	type NoMethod BackendServicesScopedList
5425	raw := NoMethod(*s)
5426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5427}
5428
5429// BackendServicesScopedListWarning: Informational warning which
5430// replaces the list of backend services when the list is empty.
5431type BackendServicesScopedListWarning struct {
5432	// Code: [Output Only] A warning code, if applicable. For example,
5433	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5434	// the response.
5435	//
5436	// Possible values:
5437	//   "CLEANUP_FAILED"
5438	//   "DEPRECATED_RESOURCE_USED"
5439	//   "DEPRECATED_TYPE_USED"
5440	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5441	//   "EXPERIMENTAL_TYPE_USED"
5442	//   "EXTERNAL_API_WARNING"
5443	//   "FIELD_VALUE_OVERRIDEN"
5444	//   "INJECTED_KERNELS_DEPRECATED"
5445	//   "MISSING_TYPE_DEPENDENCY"
5446	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5447	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5448	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5449	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5450	//   "NEXT_HOP_NOT_RUNNING"
5451	//   "NOT_CRITICAL_ERROR"
5452	//   "NO_RESULTS_ON_PAGE"
5453	//   "REQUIRED_TOS_AGREEMENT"
5454	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5455	//   "RESOURCE_NOT_DELETED"
5456	//   "SCHEMA_VALIDATION_IGNORED"
5457	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5458	//   "UNDECLARED_PROPERTIES"
5459	//   "UNREACHABLE"
5460	Code string `json:"code,omitempty"`
5461
5462	// Data: [Output Only] Metadata about this warning in key: value format.
5463	// For example:
5464	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5465	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
5466
5467	// Message: [Output Only] A human-readable description of the warning
5468	// code.
5469	Message string `json:"message,omitempty"`
5470
5471	// ForceSendFields is a list of field names (e.g. "Code") to
5472	// unconditionally include in API requests. By default, fields with
5473	// empty values are omitted from API requests. However, any non-pointer,
5474	// non-interface field appearing in ForceSendFields will be sent to the
5475	// server regardless of whether the field is empty or not. This may be
5476	// used to include empty fields in Patch requests.
5477	ForceSendFields []string `json:"-"`
5478
5479	// NullFields is a list of field names (e.g. "Code") to include in API
5480	// requests with the JSON null value. By default, fields with empty
5481	// values are omitted from API requests. However, any field with an
5482	// empty value appearing in NullFields will be sent to the server as
5483	// null. It is an error if a field in this list has a non-empty value.
5484	// This may be used to include null fields in Patch requests.
5485	NullFields []string `json:"-"`
5486}
5487
5488func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
5489	type NoMethod BackendServicesScopedListWarning
5490	raw := NoMethod(*s)
5491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5492}
5493
5494type BackendServicesScopedListWarningData struct {
5495	// Key: [Output Only] A key that provides more detail on the warning
5496	// being returned. For example, for warnings where there are no results
5497	// in a list request for a particular zone, this key might be scope and
5498	// the key value might be the zone name. Other examples might be a key
5499	// indicating a deprecated resource and a suggested replacement, or a
5500	// warning about invalid network settings (for example, if an instance
5501	// attempts to perform IP forwarding but is not enabled for IP
5502	// forwarding).
5503	Key string `json:"key,omitempty"`
5504
5505	// Value: [Output Only] A warning data value corresponding to the key.
5506	Value string `json:"value,omitempty"`
5507
5508	// ForceSendFields is a list of field names (e.g. "Key") to
5509	// unconditionally include in API requests. By default, fields with
5510	// empty values are omitted from API requests. However, any non-pointer,
5511	// non-interface field appearing in ForceSendFields will be sent to the
5512	// server regardless of whether the field is empty or not. This may be
5513	// used to include empty fields in Patch requests.
5514	ForceSendFields []string `json:"-"`
5515
5516	// NullFields is a list of field names (e.g. "Key") to include in API
5517	// requests with the JSON null value. By default, fields with empty
5518	// values are omitted from API requests. However, any field with an
5519	// empty value appearing in NullFields will be sent to the server as
5520	// null. It is an error if a field in this list has a non-empty value.
5521	// This may be used to include null fields in Patch requests.
5522	NullFields []string `json:"-"`
5523}
5524
5525func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
5526	type NoMethod BackendServicesScopedListWarningData
5527	raw := NoMethod(*s)
5528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5529}
5530
5531type BfdPacket struct {
5532	// AuthenticationPresent: The Authentication Present bit of the BFD
5533	// packet. This is specified in section 4.1 of RFC5880
5534	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
5535
5536	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
5537	// packet. This is specified in section 4.1 of RFC5880
5538	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
5539
5540	// Demand: The demand bit of the BFD packet. This is specified in
5541	// section 4.1 of RFC5880
5542	Demand bool `json:"demand,omitempty"`
5543
5544	// Diagnostic: The diagnostic code specifies the local system's reason
5545	// for the last change in session state. This allows remote systems to
5546	// determine the reason that the previous session failed, for example.
5547	// These diagnostic codes are specified in section 4.1 of RFC5880
5548	//
5549	// Possible values:
5550	//   "ADMINISTRATIVELY_DOWN"
5551	//   "CONCATENATED_PATH_DOWN"
5552	//   "CONTROL_DETECTION_TIME_EXPIRED"
5553	//   "DIAGNOSTIC_UNSPECIFIED"
5554	//   "ECHO_FUNCTION_FAILED"
5555	//   "FORWARDING_PLANE_RESET"
5556	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5557	//   "NO_DIAGNOSTIC"
5558	//   "PATH_DOWN"
5559	//   "REVERSE_CONCATENATED_PATH_DOWN"
5560	Diagnostic string `json:"diagnostic,omitempty"`
5561
5562	// Final: The Final bit of the BFD packet. This is specified in section
5563	// 4.1 of RFC5880
5564	Final bool `json:"final,omitempty"`
5565
5566	// Length: The length of the BFD Control packet in bytes. This is
5567	// specified in section 4.1 of RFC5880
5568	Length int64 `json:"length,omitempty"`
5569
5570	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the
5571	// BFD packet. This is specified in section 4.1 of RFC5880
5572	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
5573
5574	// MinRxIntervalMs: The Required Min RX Interval value in the BFD
5575	// packet. This is specified in section 4.1 of RFC5880
5576	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
5577
5578	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet.
5579	// This is specified in section 4.1 of RFC5880
5580	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
5581
5582	// Multiplier: The detection time multiplier of the BFD packet. This is
5583	// specified in section 4.1 of RFC5880
5584	Multiplier int64 `json:"multiplier,omitempty"`
5585
5586	// Multipoint: The multipoint bit of the BFD packet. This is specified
5587	// in section 4.1 of RFC5880
5588	Multipoint bool `json:"multipoint,omitempty"`
5589
5590	// MyDiscriminator: The My Discriminator value in the BFD packet. This
5591	// is specified in section 4.1 of RFC5880
5592	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
5593
5594	// Poll: The Poll bit of the BFD packet. This is specified in section
5595	// 4.1 of RFC5880
5596	Poll bool `json:"poll,omitempty"`
5597
5598	// State: The current BFD session state as seen by the transmitting
5599	// system. These states are specified in section 4.1 of RFC5880
5600	//
5601	// Possible values:
5602	//   "ADMIN_DOWN"
5603	//   "DOWN"
5604	//   "INIT"
5605	//   "STATE_UNSPECIFIED"
5606	//   "UP"
5607	State string `json:"state,omitempty"`
5608
5609	// Version: The version number of the BFD protocol, as specified in
5610	// section 4.1 of RFC5880.
5611	Version int64 `json:"version,omitempty"`
5612
5613	// YourDiscriminator: The Your Discriminator value in the BFD packet.
5614	// This is specified in section 4.1 of RFC5880
5615	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
5616
5617	// ForceSendFields is a list of field names (e.g.
5618	// "AuthenticationPresent") to unconditionally include in API requests.
5619	// By default, fields with empty values are omitted from API requests.
5620	// However, any non-pointer, non-interface field appearing in
5621	// ForceSendFields will be sent to the server regardless of whether the
5622	// field is empty or not. This may be used to include empty fields in
5623	// Patch requests.
5624	ForceSendFields []string `json:"-"`
5625
5626	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
5627	// include in API requests with the JSON null value. By default, fields
5628	// with empty values are omitted from API requests. However, any field
5629	// with an empty value appearing in NullFields will be sent to the
5630	// server as null. It is an error if a field in this list has a
5631	// non-empty value. This may be used to include null fields in Patch
5632	// requests.
5633	NullFields []string `json:"-"`
5634}
5635
5636func (s *BfdPacket) MarshalJSON() ([]byte, error) {
5637	type NoMethod BfdPacket
5638	raw := NoMethod(*s)
5639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5640}
5641
5642// BfdStatus: Next free: 15
5643type BfdStatus struct {
5644	// BfdSessionInitializationMode: The BFD session initialization mode for
5645	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
5646	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
5647	// will wait for the peer router to initiate the BFD session for this
5648	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.
5649	//
5650	// Possible values:
5651	//   "ACTIVE"
5652	//   "DISABLED"
5653	//   "PASSIVE"
5654	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
5655
5656	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
5657	// update.
5658	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
5659
5660	// ControlPacketCounts: Control packet counts for the current BFD
5661	// session.
5662	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
5663
5664	// ControlPacketIntervals: Inter-packet time interval statistics for
5665	// control packets.
5666	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
5667
5668	// LocalDiagnostic: The diagnostic code specifies the local system's
5669	// reason for the last change in session state. This allows remote
5670	// systems to determine the reason that the previous session failed, for
5671	// example. These diagnostic codes are specified in section 4.1 of
5672	// RFC5880
5673	//
5674	// Possible values:
5675	//   "ADMINISTRATIVELY_DOWN"
5676	//   "CONCATENATED_PATH_DOWN"
5677	//   "CONTROL_DETECTION_TIME_EXPIRED"
5678	//   "DIAGNOSTIC_UNSPECIFIED"
5679	//   "ECHO_FUNCTION_FAILED"
5680	//   "FORWARDING_PLANE_RESET"
5681	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5682	//   "NO_DIAGNOSTIC"
5683	//   "PATH_DOWN"
5684	//   "REVERSE_CONCATENATED_PATH_DOWN"
5685	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
5686
5687	// LocalState: The current BFD session state as seen by the transmitting
5688	// system. These states are specified in section 4.1 of RFC5880
5689	//
5690	// Possible values:
5691	//   "ADMIN_DOWN"
5692	//   "DOWN"
5693	//   "INIT"
5694	//   "STATE_UNSPECIFIED"
5695	//   "UP"
5696	LocalState string `json:"localState,omitempty"`
5697
5698	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for
5699	// control packets.
5700	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
5701
5702	// RxPacket: The most recent Rx control packet for this BFD session.
5703	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
5704
5705	// TxPacket: The most recent Tx control packet for this BFD session.
5706	TxPacket *BfdPacket `json:"txPacket,omitempty"`
5707
5708	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session
5709	// is not up.
5710	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
5711
5712	// ForceSendFields is a list of field names (e.g.
5713	// "BfdSessionInitializationMode") to unconditionally include in API
5714	// requests. By default, fields with empty values are omitted from API
5715	// requests. However, any non-pointer, non-interface field appearing in
5716	// ForceSendFields will be sent to the server regardless of whether the
5717	// field is empty or not. This may be used to include empty fields in
5718	// Patch requests.
5719	ForceSendFields []string `json:"-"`
5720
5721	// NullFields is a list of field names (e.g.
5722	// "BfdSessionInitializationMode") to include in API requests with the
5723	// JSON null value. By default, fields with empty values are omitted
5724	// from API requests. However, any field with an empty value appearing
5725	// in NullFields will be sent to the server as null. It is an error if a
5726	// field in this list has a non-empty value. This may be used to include
5727	// null fields in Patch requests.
5728	NullFields []string `json:"-"`
5729}
5730
5731func (s *BfdStatus) MarshalJSON() ([]byte, error) {
5732	type NoMethod BfdStatus
5733	raw := NoMethod(*s)
5734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5735}
5736
5737type BfdStatusPacketCounts struct {
5738	// NumRx: Number of packets received since the beginning of the current
5739	// BFD session.
5740	NumRx int64 `json:"numRx,omitempty"`
5741
5742	// NumRxRejected: Number of packets received that were rejected because
5743	// of errors since the beginning of the current BFD session.
5744	NumRxRejected int64 `json:"numRxRejected,omitempty"`
5745
5746	// NumRxSuccessful: Number of packets received that were successfully
5747	// processed since the beginning of the current BFD session.
5748	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
5749
5750	// NumTx: Number of packets transmitted since the beginning of the
5751	// current BFD session.
5752	NumTx int64 `json:"numTx,omitempty"`
5753
5754	// ForceSendFields is a list of field names (e.g. "NumRx") to
5755	// unconditionally include in API requests. By default, fields with
5756	// empty values are omitted from API requests. However, any non-pointer,
5757	// non-interface field appearing in ForceSendFields will be sent to the
5758	// server regardless of whether the field is empty or not. This may be
5759	// used to include empty fields in Patch requests.
5760	ForceSendFields []string `json:"-"`
5761
5762	// NullFields is a list of field names (e.g. "NumRx") to include in API
5763	// requests with the JSON null value. By default, fields with empty
5764	// values are omitted from API requests. However, any field with an
5765	// empty value appearing in NullFields will be sent to the server as
5766	// null. It is an error if a field in this list has a non-empty value.
5767	// This may be used to include null fields in Patch requests.
5768	NullFields []string `json:"-"`
5769}
5770
5771func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
5772	type NoMethod BfdStatusPacketCounts
5773	raw := NoMethod(*s)
5774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5775}
5776
5777// Binding: Associates `members` with a `role`.
5778type Binding struct {
5779	// Condition: The condition that is associated with this binding.
5780	//
5781	// If the condition evaluates to `true`, then this binding applies to
5782	// the current request.
5783	//
5784	// If the condition evaluates to `false`, then this binding does not
5785	// apply to the current request. However, a different role binding might
5786	// grant the same role to one or more of the members in this
5787	// binding.
5788	//
5789	// To learn which resources support conditions in their IAM policies,
5790	// see the [IAM
5791	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
5792	// olicies).
5793	Condition *Expr `json:"condition,omitempty"`
5794
5795	// Members: Specifies the identities requesting access for a Cloud
5796	// Platform resource. `members` can have the following values:
5797	//
5798	// * `allUsers`: A special identifier that represents anyone who is on
5799	// the internet; with or without a Google account.
5800	//
5801	// * `allAuthenticatedUsers`: A special identifier that represents
5802	// anyone who is authenticated with a Google account or a service
5803	// account.
5804	//
5805	// * `user:{emailid}`: An email address that represents a specific
5806	// Google account. For example, `alice@example.com` .
5807	//
5808	//
5809	//
5810	// * `serviceAccount:{emailid}`: An email address that represents a
5811	// service account. For example,
5812	// `my-other-app@appspot.gserviceaccount.com`.
5813	//
5814	// * `group:{emailid}`: An email address that represents a Google group.
5815	// For example, `admins@example.com`.
5816	//
5817	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
5818	// unique identifier) representing a user that has been recently
5819	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
5820	// If the user is recovered, this value reverts to `user:{emailid}` and
5821	// the recovered user retains the role in the binding.
5822	//
5823	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
5824	// (plus unique identifier) representing a service account that has been
5825	// recently deleted. For example,
5826	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
5827	// If the service account is undeleted, this value reverts to
5828	// `serviceAccount:{emailid}` and the undeleted service account retains
5829	// the role in the binding.
5830	//
5831	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
5832	// unique identifier) representing a Google group that has been recently
5833	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
5834	// If the group is recovered, this value reverts to `group:{emailid}`
5835	// and the recovered group retains the role in the binding.
5836	//
5837	//
5838	//
5839	// * `domain:{domain}`: The G Suite domain (primary) that represents all
5840	// the users of that domain. For example, `google.com` or `example.com`.
5841	Members []string `json:"members,omitempty"`
5842
5843	// Role: Role that is assigned to `members`. For example,
5844	// `roles/viewer`, `roles/editor`, or `roles/owner`.
5845	Role string `json:"role,omitempty"`
5846
5847	// ForceSendFields is a list of field names (e.g. "Condition") to
5848	// unconditionally include in API requests. By default, fields with
5849	// empty values are omitted from API requests. However, any non-pointer,
5850	// non-interface field appearing in ForceSendFields will be sent to the
5851	// server regardless of whether the field is empty or not. This may be
5852	// used to include empty fields in Patch requests.
5853	ForceSendFields []string `json:"-"`
5854
5855	// NullFields is a list of field names (e.g. "Condition") to include in
5856	// API requests with the JSON null value. By default, fields with empty
5857	// values are omitted from API requests. However, any field with an
5858	// empty value appearing in NullFields will be sent to the server as
5859	// null. It is an error if a field in this list has a non-empty value.
5860	// This may be used to include null fields in Patch requests.
5861	NullFields []string `json:"-"`
5862}
5863
5864func (s *Binding) MarshalJSON() ([]byte, error) {
5865	type NoMethod Binding
5866	raw := NoMethod(*s)
5867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5868}
5869
5870type CacheInvalidationRule struct {
5871	// Host: If set, this invalidation rule will only apply to requests with
5872	// a Host header matching host.
5873	Host string `json:"host,omitempty"`
5874
5875	Path string `json:"path,omitempty"`
5876
5877	// ForceSendFields is a list of field names (e.g. "Host") to
5878	// unconditionally include in API requests. By default, fields with
5879	// empty values are omitted from API requests. However, any non-pointer,
5880	// non-interface field appearing in ForceSendFields will be sent to the
5881	// server regardless of whether the field is empty or not. This may be
5882	// used to include empty fields in Patch requests.
5883	ForceSendFields []string `json:"-"`
5884
5885	// NullFields is a list of field names (e.g. "Host") to include in API
5886	// requests with the JSON null value. By default, fields with empty
5887	// values are omitted from API requests. However, any field with an
5888	// empty value appearing in NullFields will be sent to the server as
5889	// null. It is an error if a field in this list has a non-empty value.
5890	// This may be used to include null fields in Patch requests.
5891	NullFields []string `json:"-"`
5892}
5893
5894func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
5895	type NoMethod CacheInvalidationRule
5896	raw := NoMethod(*s)
5897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5898}
5899
5900// CacheKeyPolicy: Message containing what to include in the cache key
5901// for a request for Cloud CDN.
5902type CacheKeyPolicy struct {
5903	// IncludeHost: If true, requests to different hosts will be cached
5904	// separately.
5905	IncludeHost bool `json:"includeHost,omitempty"`
5906
5907	// IncludeProtocol: If true, http and https requests will be cached
5908	// separately.
5909	IncludeProtocol bool `json:"includeProtocol,omitempty"`
5910
5911	// IncludeQueryString: If true, include query string parameters in the
5912	// cache key according to query_string_whitelist and
5913	// query_string_blacklist. If neither is set, the entire query string
5914	// will be included. If false, the query string will be excluded from
5915	// the cache key entirely.
5916	IncludeQueryString bool `json:"includeQueryString,omitempty"`
5917
5918	// QueryStringBlacklist: Names of query string parameters to exclude in
5919	// cache keys. All other parameters will be included. Either specify
5920	// query_string_whitelist or query_string_blacklist, not both. '&' and
5921	// '=' will be percent encoded and not treated as delimiters.
5922	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
5923
5924	// QueryStringWhitelist: Names of query string parameters to include in
5925	// cache keys. All other parameters will be excluded. Either specify
5926	// query_string_whitelist or query_string_blacklist, not both. '&' and
5927	// '=' will be percent encoded and not treated as delimiters.
5928	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
5929
5930	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
5931	// unconditionally include in API requests. By default, fields with
5932	// empty values are omitted from API requests. However, any non-pointer,
5933	// non-interface field appearing in ForceSendFields will be sent to the
5934	// server regardless of whether the field is empty or not. This may be
5935	// used to include empty fields in Patch requests.
5936	ForceSendFields []string `json:"-"`
5937
5938	// NullFields is a list of field names (e.g. "IncludeHost") to include
5939	// in API requests with the JSON null value. By default, fields with
5940	// empty values are omitted from API requests. However, any field with
5941	// an empty value appearing in NullFields will be sent to the server as
5942	// null. It is an error if a field in this list has a non-empty value.
5943	// This may be used to include null fields in Patch requests.
5944	NullFields []string `json:"-"`
5945}
5946
5947func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
5948	type NoMethod CacheKeyPolicy
5949	raw := NoMethod(*s)
5950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5951}
5952
5953// CircuitBreakers: Settings controlling the volume of connections to a
5954// backend service.
5955type CircuitBreakers struct {
5956	// ConnectTimeout: The timeout for new network connections to hosts.
5957	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
5958
5959	// MaxConnections: The maximum number of connections to the backend
5960	// service. If not specified, there is no limit.
5961	MaxConnections int64 `json:"maxConnections,omitempty"`
5962
5963	// MaxPendingRequests: The maximum number of pending requests allowed to
5964	// the backend service. If not specified, there is no limit.
5965	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
5966
5967	// MaxRequests: The maximum number of parallel requests that allowed to
5968	// the backend service. If not specified, there is no limit.
5969	MaxRequests int64 `json:"maxRequests,omitempty"`
5970
5971	// MaxRequestsPerConnection: Maximum requests for a single connection to
5972	// the backend service. This parameter is respected by both the HTTP/1.1
5973	// and HTTP/2 implementations. If not specified, there is no limit.
5974	// Setting this parameter to 1 will effectively disable keep alive.
5975	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
5976
5977	// MaxRetries: The maximum number of parallel retries allowed to the
5978	// backend cluster. If not specified, the default is 1.
5979	MaxRetries int64 `json:"maxRetries,omitempty"`
5980
5981	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
5982	// unconditionally include in API requests. By default, fields with
5983	// empty values are omitted from API requests. However, any non-pointer,
5984	// non-interface field appearing in ForceSendFields will be sent to the
5985	// server regardless of whether the field is empty or not. This may be
5986	// used to include empty fields in Patch requests.
5987	ForceSendFields []string `json:"-"`
5988
5989	// NullFields is a list of field names (e.g. "ConnectTimeout") to
5990	// include in API requests with the JSON null value. By default, fields
5991	// with empty values are omitted from API requests. However, any field
5992	// with an empty value appearing in NullFields will be sent to the
5993	// server as null. It is an error if a field in this list has a
5994	// non-empty value. This may be used to include null fields in Patch
5995	// requests.
5996	NullFields []string `json:"-"`
5997}
5998
5999func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6000	type NoMethod CircuitBreakers
6001	raw := NoMethod(*s)
6002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6003}
6004
6005// Commitment: Represents a regional Commitment resource.
6006//
6007// Creating a commitment resource means that you are purchasing a
6008// committed use contract with an explicit start and end time. You can
6009// create commitments based on vCPUs and memory usage and receive
6010// discounted rates. For full details, read Signing Up for Committed Use
6011// Discounts. (== resource_for {$api_version}.regionCommitments ==)
6012type Commitment struct {
6013	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6014	// format.
6015	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6016
6017	// Description: An optional description of this resource. Provide this
6018	// property when you create the resource.
6019	Description string `json:"description,omitempty"`
6020
6021	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6022	// format.
6023	EndTimestamp string `json:"endTimestamp,omitempty"`
6024
6025	// Id: [Output Only] The unique identifier for the resource. This
6026	// identifier is defined by the server.
6027	Id uint64 `json:"id,omitempty,string"`
6028
6029	// Kind: [Output Only] Type of the resource. Always compute#commitment
6030	// for commitments.
6031	Kind string `json:"kind,omitempty"`
6032
6033	// Name: Name of the resource. Provided by the client when the resource
6034	// is created. The name must be 1-63 characters long, and comply with
6035	// RFC1035. Specifically, the name must be 1-63 characters long and
6036	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6037	// the first character must be a lowercase letter, and all following
6038	// characters must be a dash, lowercase letter, or digit, except the
6039	// last character, which cannot be a dash.
6040	Name string `json:"name,omitempty"`
6041
6042	// Plan: The plan for this commitment, which determines duration and
6043	// discount rate. The currently supported plans are TWELVE_MONTH (1
6044	// year), and THIRTY_SIX_MONTH (3 years).
6045	//
6046	// Possible values:
6047	//   "INVALID"
6048	//   "THIRTY_SIX_MONTH"
6049	//   "TWELVE_MONTH"
6050	Plan string `json:"plan,omitempty"`
6051
6052	// Region: [Output Only] URL of the region where this commitment may be
6053	// used.
6054	Region string `json:"region,omitempty"`
6055
6056	// Reservations: List of reservations in this commitment.
6057	Reservations []*Reservation `json:"reservations,omitempty"`
6058
6059	// Resources: A list of commitment amounts for particular resources.
6060	// Note that VCPU and MEMORY resource commitments must occur together.
6061	Resources []*ResourceCommitment `json:"resources,omitempty"`
6062
6063	// SelfLink: [Output Only] Server-defined URL for the resource.
6064	SelfLink string `json:"selfLink,omitempty"`
6065
6066	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6067	// format.
6068	StartTimestamp string `json:"startTimestamp,omitempty"`
6069
6070	// Status: [Output Only] Status of the commitment with regards to
6071	// eventual expiration (each commitment has an end date defined). One of
6072	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6073	//
6074	// Possible values:
6075	//   "ACTIVE"
6076	//   "CREATING"
6077	//   "EXPIRED"
6078	//   "NOT_YET_ACTIVE"
6079	Status string `json:"status,omitempty"`
6080
6081	// StatusMessage: [Output Only] An optional, human-readable explanation
6082	// of the status.
6083	StatusMessage string `json:"statusMessage,omitempty"`
6084
6085	// Type: The type of commitment, which affects the discount rate and the
6086	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
6087	// will only apply to memory optimized machines.
6088	//
6089	// Possible values:
6090	//   "COMPUTE_OPTIMIZED"
6091	//   "GENERAL_PURPOSE"
6092	//   "GENERAL_PURPOSE_E2"
6093	//   "GENERAL_PURPOSE_N2"
6094	//   "GENERAL_PURPOSE_N2D"
6095	//   "MEMORY_OPTIMIZED"
6096	//   "TYPE_UNSPECIFIED"
6097	Type string `json:"type,omitempty"`
6098
6099	// ServerResponse contains the HTTP response code and headers from the
6100	// server.
6101	googleapi.ServerResponse `json:"-"`
6102
6103	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
6104	// to unconditionally include in API requests. By default, fields with
6105	// empty values are omitted from API requests. However, any non-pointer,
6106	// non-interface field appearing in ForceSendFields will be sent to the
6107	// server regardless of whether the field is empty or not. This may be
6108	// used to include empty fields in Patch requests.
6109	ForceSendFields []string `json:"-"`
6110
6111	// NullFields is a list of field names (e.g. "CreationTimestamp") to
6112	// include in API requests with the JSON null value. By default, fields
6113	// with empty values are omitted from API requests. However, any field
6114	// with an empty value appearing in NullFields will be sent to the
6115	// server as null. It is an error if a field in this list has a
6116	// non-empty value. This may be used to include null fields in Patch
6117	// requests.
6118	NullFields []string `json:"-"`
6119}
6120
6121func (s *Commitment) MarshalJSON() ([]byte, error) {
6122	type NoMethod Commitment
6123	raw := NoMethod(*s)
6124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6125}
6126
6127type CommitmentAggregatedList struct {
6128	// Id: [Output Only] Unique identifier for the resource; defined by the
6129	// server.
6130	Id string `json:"id,omitempty"`
6131
6132	// Items: A list of CommitmentsScopedList resources.
6133	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6134
6135	// Kind: [Output Only] Type of resource. Always
6136	// compute#commitmentAggregatedList for aggregated lists of commitments.
6137	Kind string `json:"kind,omitempty"`
6138
6139	// NextPageToken: [Output Only] This token allows you to get the next
6140	// page of results for list requests. If the number of results is larger
6141	// than maxResults, use the nextPageToken as a value for the query
6142	// parameter pageToken in the next list request. Subsequent list
6143	// requests will have their own nextPageToken to continue paging through
6144	// the results.
6145	NextPageToken string `json:"nextPageToken,omitempty"`
6146
6147	// SelfLink: [Output Only] Server-defined URL for this resource.
6148	SelfLink string `json:"selfLink,omitempty"`
6149
6150	// Warning: [Output Only] Informational warning message.
6151	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6152
6153	// ServerResponse contains the HTTP response code and headers from the
6154	// server.
6155	googleapi.ServerResponse `json:"-"`
6156
6157	// ForceSendFields is a list of field names (e.g. "Id") to
6158	// unconditionally include in API requests. By default, fields with
6159	// empty values are omitted from API requests. However, any non-pointer,
6160	// non-interface field appearing in ForceSendFields will be sent to the
6161	// server regardless of whether the field is empty or not. This may be
6162	// used to include empty fields in Patch requests.
6163	ForceSendFields []string `json:"-"`
6164
6165	// NullFields is a list of field names (e.g. "Id") to include in API
6166	// requests with the JSON null value. By default, fields with empty
6167	// values are omitted from API requests. However, any field with an
6168	// empty value appearing in NullFields will be sent to the server as
6169	// null. It is an error if a field in this list has a non-empty value.
6170	// This may be used to include null fields in Patch requests.
6171	NullFields []string `json:"-"`
6172}
6173
6174func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6175	type NoMethod CommitmentAggregatedList
6176	raw := NoMethod(*s)
6177	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6178}
6179
6180// CommitmentAggregatedListWarning: [Output Only] Informational warning
6181// message.
6182type CommitmentAggregatedListWarning struct {
6183	// Code: [Output Only] A warning code, if applicable. For example,
6184	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6185	// the response.
6186	//
6187	// Possible values:
6188	//   "CLEANUP_FAILED"
6189	//   "DEPRECATED_RESOURCE_USED"
6190	//   "DEPRECATED_TYPE_USED"
6191	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6192	//   "EXPERIMENTAL_TYPE_USED"
6193	//   "EXTERNAL_API_WARNING"
6194	//   "FIELD_VALUE_OVERRIDEN"
6195	//   "INJECTED_KERNELS_DEPRECATED"
6196	//   "MISSING_TYPE_DEPENDENCY"
6197	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6198	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6199	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6200	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6201	//   "NEXT_HOP_NOT_RUNNING"
6202	//   "NOT_CRITICAL_ERROR"
6203	//   "NO_RESULTS_ON_PAGE"
6204	//   "REQUIRED_TOS_AGREEMENT"
6205	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6206	//   "RESOURCE_NOT_DELETED"
6207	//   "SCHEMA_VALIDATION_IGNORED"
6208	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6209	//   "UNDECLARED_PROPERTIES"
6210	//   "UNREACHABLE"
6211	Code string `json:"code,omitempty"`
6212
6213	// Data: [Output Only] Metadata about this warning in key: value format.
6214	// For example:
6215	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6216	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6217
6218	// Message: [Output Only] A human-readable description of the warning
6219	// code.
6220	Message string `json:"message,omitempty"`
6221
6222	// ForceSendFields is a list of field names (e.g. "Code") to
6223	// unconditionally include in API requests. By default, fields with
6224	// empty values are omitted from API requests. However, any non-pointer,
6225	// non-interface field appearing in ForceSendFields will be sent to the
6226	// server regardless of whether the field is empty or not. This may be
6227	// used to include empty fields in Patch requests.
6228	ForceSendFields []string `json:"-"`
6229
6230	// NullFields is a list of field names (e.g. "Code") to include in API
6231	// requests with the JSON null value. By default, fields with empty
6232	// values are omitted from API requests. However, any field with an
6233	// empty value appearing in NullFields will be sent to the server as
6234	// null. It is an error if a field in this list has a non-empty value.
6235	// This may be used to include null fields in Patch requests.
6236	NullFields []string `json:"-"`
6237}
6238
6239func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6240	type NoMethod CommitmentAggregatedListWarning
6241	raw := NoMethod(*s)
6242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6243}
6244
6245type CommitmentAggregatedListWarningData struct {
6246	// Key: [Output Only] A key that provides more detail on the warning
6247	// being returned. For example, for warnings where there are no results
6248	// in a list request for a particular zone, this key might be scope and
6249	// the key value might be the zone name. Other examples might be a key
6250	// indicating a deprecated resource and a suggested replacement, or a
6251	// warning about invalid network settings (for example, if an instance
6252	// attempts to perform IP forwarding but is not enabled for IP
6253	// forwarding).
6254	Key string `json:"key,omitempty"`
6255
6256	// Value: [Output Only] A warning data value corresponding to the key.
6257	Value string `json:"value,omitempty"`
6258
6259	// ForceSendFields is a list of field names (e.g. "Key") to
6260	// unconditionally include in API requests. By default, fields with
6261	// empty values are omitted from API requests. However, any non-pointer,
6262	// non-interface field appearing in ForceSendFields will be sent to the
6263	// server regardless of whether the field is empty or not. This may be
6264	// used to include empty fields in Patch requests.
6265	ForceSendFields []string `json:"-"`
6266
6267	// NullFields is a list of field names (e.g. "Key") to include in API
6268	// requests with the JSON null value. By default, fields with empty
6269	// values are omitted from API requests. However, any field with an
6270	// empty value appearing in NullFields will be sent to the server as
6271	// null. It is an error if a field in this list has a non-empty value.
6272	// This may be used to include null fields in Patch requests.
6273	NullFields []string `json:"-"`
6274}
6275
6276func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6277	type NoMethod CommitmentAggregatedListWarningData
6278	raw := NoMethod(*s)
6279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6280}
6281
6282// CommitmentList: Contains a list of Commitment resources.
6283type CommitmentList struct {
6284	// Id: [Output Only] Unique identifier for the resource; defined by the
6285	// server.
6286	Id string `json:"id,omitempty"`
6287
6288	// Items: A list of Commitment resources.
6289	Items []*Commitment `json:"items,omitempty"`
6290
6291	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6292	// for lists of commitments.
6293	Kind string `json:"kind,omitempty"`
6294
6295	// NextPageToken: [Output Only] This token allows you to get the next
6296	// page of results for list requests. If the number of results is larger
6297	// than maxResults, use the nextPageToken as a value for the query
6298	// parameter pageToken in the next list request. Subsequent list
6299	// requests will have their own nextPageToken to continue paging through
6300	// the results.
6301	NextPageToken string `json:"nextPageToken,omitempty"`
6302
6303	// SelfLink: [Output Only] Server-defined URL for this resource.
6304	SelfLink string `json:"selfLink,omitempty"`
6305
6306	// Warning: [Output Only] Informational warning message.
6307	Warning *CommitmentListWarning `json:"warning,omitempty"`
6308
6309	// ServerResponse contains the HTTP response code and headers from the
6310	// server.
6311	googleapi.ServerResponse `json:"-"`
6312
6313	// ForceSendFields is a list of field names (e.g. "Id") to
6314	// unconditionally include in API requests. By default, fields with
6315	// empty values are omitted from API requests. However, any non-pointer,
6316	// non-interface field appearing in ForceSendFields will be sent to the
6317	// server regardless of whether the field is empty or not. This may be
6318	// used to include empty fields in Patch requests.
6319	ForceSendFields []string `json:"-"`
6320
6321	// NullFields is a list of field names (e.g. "Id") to include in API
6322	// requests with the JSON null value. By default, fields with empty
6323	// values are omitted from API requests. However, any field with an
6324	// empty value appearing in NullFields will be sent to the server as
6325	// null. It is an error if a field in this list has a non-empty value.
6326	// This may be used to include null fields in Patch requests.
6327	NullFields []string `json:"-"`
6328}
6329
6330func (s *CommitmentList) MarshalJSON() ([]byte, error) {
6331	type NoMethod CommitmentList
6332	raw := NoMethod(*s)
6333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6334}
6335
6336// CommitmentListWarning: [Output Only] Informational warning message.
6337type CommitmentListWarning struct {
6338	// Code: [Output Only] A warning code, if applicable. For example,
6339	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6340	// the response.
6341	//
6342	// Possible values:
6343	//   "CLEANUP_FAILED"
6344	//   "DEPRECATED_RESOURCE_USED"
6345	//   "DEPRECATED_TYPE_USED"
6346	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6347	//   "EXPERIMENTAL_TYPE_USED"
6348	//   "EXTERNAL_API_WARNING"
6349	//   "FIELD_VALUE_OVERRIDEN"
6350	//   "INJECTED_KERNELS_DEPRECATED"
6351	//   "MISSING_TYPE_DEPENDENCY"
6352	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6353	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6354	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6355	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6356	//   "NEXT_HOP_NOT_RUNNING"
6357	//   "NOT_CRITICAL_ERROR"
6358	//   "NO_RESULTS_ON_PAGE"
6359	//   "REQUIRED_TOS_AGREEMENT"
6360	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6361	//   "RESOURCE_NOT_DELETED"
6362	//   "SCHEMA_VALIDATION_IGNORED"
6363	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6364	//   "UNDECLARED_PROPERTIES"
6365	//   "UNREACHABLE"
6366	Code string `json:"code,omitempty"`
6367
6368	// Data: [Output Only] Metadata about this warning in key: value format.
6369	// For example:
6370	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6371	Data []*CommitmentListWarningData `json:"data,omitempty"`
6372
6373	// Message: [Output Only] A human-readable description of the warning
6374	// code.
6375	Message string `json:"message,omitempty"`
6376
6377	// ForceSendFields is a list of field names (e.g. "Code") to
6378	// unconditionally include in API requests. By default, fields with
6379	// empty values are omitted from API requests. However, any non-pointer,
6380	// non-interface field appearing in ForceSendFields will be sent to the
6381	// server regardless of whether the field is empty or not. This may be
6382	// used to include empty fields in Patch requests.
6383	ForceSendFields []string `json:"-"`
6384
6385	// NullFields is a list of field names (e.g. "Code") to include in API
6386	// requests with the JSON null value. By default, fields with empty
6387	// values are omitted from API requests. However, any field with an
6388	// empty value appearing in NullFields will be sent to the server as
6389	// null. It is an error if a field in this list has a non-empty value.
6390	// This may be used to include null fields in Patch requests.
6391	NullFields []string `json:"-"`
6392}
6393
6394func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
6395	type NoMethod CommitmentListWarning
6396	raw := NoMethod(*s)
6397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6398}
6399
6400type CommitmentListWarningData struct {
6401	// Key: [Output Only] A key that provides more detail on the warning
6402	// being returned. For example, for warnings where there are no results
6403	// in a list request for a particular zone, this key might be scope and
6404	// the key value might be the zone name. Other examples might be a key
6405	// indicating a deprecated resource and a suggested replacement, or a
6406	// warning about invalid network settings (for example, if an instance
6407	// attempts to perform IP forwarding but is not enabled for IP
6408	// forwarding).
6409	Key string `json:"key,omitempty"`
6410
6411	// Value: [Output Only] A warning data value corresponding to the key.
6412	Value string `json:"value,omitempty"`
6413
6414	// ForceSendFields is a list of field names (e.g. "Key") to
6415	// unconditionally include in API requests. By default, fields with
6416	// empty values are omitted from API requests. However, any non-pointer,
6417	// non-interface field appearing in ForceSendFields will be sent to the
6418	// server regardless of whether the field is empty or not. This may be
6419	// used to include empty fields in Patch requests.
6420	ForceSendFields []string `json:"-"`
6421
6422	// NullFields is a list of field names (e.g. "Key") to include in API
6423	// requests with the JSON null value. By default, fields with empty
6424	// values are omitted from API requests. However, any field with an
6425	// empty value appearing in NullFields will be sent to the server as
6426	// null. It is an error if a field in this list has a non-empty value.
6427	// This may be used to include null fields in Patch requests.
6428	NullFields []string `json:"-"`
6429}
6430
6431func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
6432	type NoMethod CommitmentListWarningData
6433	raw := NoMethod(*s)
6434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6435}
6436
6437type CommitmentsScopedList struct {
6438	// Commitments: [Output Only] A list of commitments contained in this
6439	// scope.
6440	Commitments []*Commitment `json:"commitments,omitempty"`
6441
6442	// Warning: [Output Only] Informational warning which replaces the list
6443	// of commitments when the list is empty.
6444	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
6445
6446	// ForceSendFields is a list of field names (e.g. "Commitments") to
6447	// unconditionally include in API requests. By default, fields with
6448	// empty values are omitted from API requests. However, any non-pointer,
6449	// non-interface field appearing in ForceSendFields will be sent to the
6450	// server regardless of whether the field is empty or not. This may be
6451	// used to include empty fields in Patch requests.
6452	ForceSendFields []string `json:"-"`
6453
6454	// NullFields is a list of field names (e.g. "Commitments") to include
6455	// in API requests with the JSON null value. By default, fields with
6456	// empty values are omitted from API requests. However, any field with
6457	// an empty value appearing in NullFields will be sent to the server as
6458	// null. It is an error if a field in this list has a non-empty value.
6459	// This may be used to include null fields in Patch requests.
6460	NullFields []string `json:"-"`
6461}
6462
6463func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
6464	type NoMethod CommitmentsScopedList
6465	raw := NoMethod(*s)
6466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6467}
6468
6469// CommitmentsScopedListWarning: [Output Only] Informational warning
6470// which replaces the list of commitments when the list is empty.
6471type CommitmentsScopedListWarning struct {
6472	// Code: [Output Only] A warning code, if applicable. For example,
6473	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6474	// the response.
6475	//
6476	// Possible values:
6477	//   "CLEANUP_FAILED"
6478	//   "DEPRECATED_RESOURCE_USED"
6479	//   "DEPRECATED_TYPE_USED"
6480	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6481	//   "EXPERIMENTAL_TYPE_USED"
6482	//   "EXTERNAL_API_WARNING"
6483	//   "FIELD_VALUE_OVERRIDEN"
6484	//   "INJECTED_KERNELS_DEPRECATED"
6485	//   "MISSING_TYPE_DEPENDENCY"
6486	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6487	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6488	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6489	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6490	//   "NEXT_HOP_NOT_RUNNING"
6491	//   "NOT_CRITICAL_ERROR"
6492	//   "NO_RESULTS_ON_PAGE"
6493	//   "REQUIRED_TOS_AGREEMENT"
6494	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6495	//   "RESOURCE_NOT_DELETED"
6496	//   "SCHEMA_VALIDATION_IGNORED"
6497	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6498	//   "UNDECLARED_PROPERTIES"
6499	//   "UNREACHABLE"
6500	Code string `json:"code,omitempty"`
6501
6502	// Data: [Output Only] Metadata about this warning in key: value format.
6503	// For example:
6504	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6505	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
6506
6507	// Message: [Output Only] A human-readable description of the warning
6508	// code.
6509	Message string `json:"message,omitempty"`
6510
6511	// ForceSendFields is a list of field names (e.g. "Code") to
6512	// unconditionally include in API requests. By default, fields with
6513	// empty values are omitted from API requests. However, any non-pointer,
6514	// non-interface field appearing in ForceSendFields will be sent to the
6515	// server regardless of whether the field is empty or not. This may be
6516	// used to include empty fields in Patch requests.
6517	ForceSendFields []string `json:"-"`
6518
6519	// NullFields is a list of field names (e.g. "Code") to include in API
6520	// requests with the JSON null value. By default, fields with empty
6521	// values are omitted from API requests. However, any field with an
6522	// empty value appearing in NullFields will be sent to the server as
6523	// null. It is an error if a field in this list has a non-empty value.
6524	// This may be used to include null fields in Patch requests.
6525	NullFields []string `json:"-"`
6526}
6527
6528func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
6529	type NoMethod CommitmentsScopedListWarning
6530	raw := NoMethod(*s)
6531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6532}
6533
6534type CommitmentsScopedListWarningData struct {
6535	// Key: [Output Only] A key that provides more detail on the warning
6536	// being returned. For example, for warnings where there are no results
6537	// in a list request for a particular zone, this key might be scope and
6538	// the key value might be the zone name. Other examples might be a key
6539	// indicating a deprecated resource and a suggested replacement, or a
6540	// warning about invalid network settings (for example, if an instance
6541	// attempts to perform IP forwarding but is not enabled for IP
6542	// forwarding).
6543	Key string `json:"key,omitempty"`
6544
6545	// Value: [Output Only] A warning data value corresponding to the key.
6546	Value string `json:"value,omitempty"`
6547
6548	// ForceSendFields is a list of field names (e.g. "Key") to
6549	// unconditionally include in API requests. By default, fields with
6550	// empty values are omitted from API requests. However, any non-pointer,
6551	// non-interface field appearing in ForceSendFields will be sent to the
6552	// server regardless of whether the field is empty or not. This may be
6553	// used to include empty fields in Patch requests.
6554	ForceSendFields []string `json:"-"`
6555
6556	// NullFields is a list of field names (e.g. "Key") to include in API
6557	// requests with the JSON null value. By default, fields with empty
6558	// values are omitted from API requests. However, any field with an
6559	// empty value appearing in NullFields will be sent to the server as
6560	// null. It is an error if a field in this list has a non-empty value.
6561	// This may be used to include null fields in Patch requests.
6562	NullFields []string `json:"-"`
6563}
6564
6565func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
6566	type NoMethod CommitmentsScopedListWarningData
6567	raw := NoMethod(*s)
6568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6569}
6570
6571// Condition: A condition to be met.
6572type Condition struct {
6573	// Iam: Trusted attributes supplied by the IAM system.
6574	//
6575	// Possible values:
6576	//   "APPROVER"
6577	//   "ATTRIBUTION"
6578	//   "AUTHORITY"
6579	//   "CREDENTIALS_TYPE"
6580	//   "JUSTIFICATION_TYPE"
6581	//   "NO_ATTR"
6582	//   "SECURITY_REALM"
6583	Iam string `json:"iam,omitempty"`
6584
6585	// Op: An operator to apply the subject with.
6586	//
6587	// Possible values:
6588	//   "DISCHARGED"
6589	//   "EQUALS"
6590	//   "IN"
6591	//   "NOT_EQUALS"
6592	//   "NOT_IN"
6593	//   "NO_OP"
6594	Op string `json:"op,omitempty"`
6595
6596	// Svc: Trusted attributes discharged by the service.
6597	Svc string `json:"svc,omitempty"`
6598
6599	// Sys: Trusted attributes supplied by any service that owns resources
6600	// and uses the IAM system for access control.
6601	//
6602	// Possible values:
6603	//   "IP"
6604	//   "NAME"
6605	//   "NO_ATTR"
6606	//   "REGION"
6607	//   "SERVICE"
6608	Sys string `json:"sys,omitempty"`
6609
6610	// Values: The objects of the condition.
6611	Values []string `json:"values,omitempty"`
6612
6613	// ForceSendFields is a list of field names (e.g. "Iam") to
6614	// unconditionally include in API requests. By default, fields with
6615	// empty values are omitted from API requests. However, any non-pointer,
6616	// non-interface field appearing in ForceSendFields will be sent to the
6617	// server regardless of whether the field is empty or not. This may be
6618	// used to include empty fields in Patch requests.
6619	ForceSendFields []string `json:"-"`
6620
6621	// NullFields is a list of field names (e.g. "Iam") to include in API
6622	// requests with the JSON null value. By default, fields with empty
6623	// values are omitted from API requests. However, any field with an
6624	// empty value appearing in NullFields will be sent to the server as
6625	// null. It is an error if a field in this list has a non-empty value.
6626	// This may be used to include null fields in Patch requests.
6627	NullFields []string `json:"-"`
6628}
6629
6630func (s *Condition) MarshalJSON() ([]byte, error) {
6631	type NoMethod Condition
6632	raw := NoMethod(*s)
6633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6634}
6635
6636// ConfidentialInstanceConfig: A set of Confidential Instance options.
6637type ConfidentialInstanceConfig struct {
6638	// EnableConfidentialCompute: Defines whether the instance should have
6639	// confidential compute enabled.
6640	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
6641
6642	// ForceSendFields is a list of field names (e.g.
6643	// "EnableConfidentialCompute") to unconditionally include in API
6644	// requests. By default, fields with empty values are omitted from API
6645	// requests. However, any non-pointer, non-interface field appearing in
6646	// ForceSendFields will be sent to the server regardless of whether the
6647	// field is empty or not. This may be used to include empty fields in
6648	// Patch requests.
6649	ForceSendFields []string `json:"-"`
6650
6651	// NullFields is a list of field names (e.g.
6652	// "EnableConfidentialCompute") to include in API requests with the JSON
6653	// null value. By default, fields with empty values are omitted from API
6654	// requests. However, any field with an empty value appearing in
6655	// NullFields will be sent to the server as null. It is an error if a
6656	// field in this list has a non-empty value. This may be used to include
6657	// null fields in Patch requests.
6658	NullFields []string `json:"-"`
6659}
6660
6661func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
6662	type NoMethod ConfidentialInstanceConfig
6663	raw := NoMethod(*s)
6664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6665}
6666
6667// ConnectionDraining: Message containing connection draining
6668// configuration.
6669type ConnectionDraining struct {
6670	// DrainingTimeoutSec: The amount of time in seconds to allow existing
6671	// connections to persist while on unhealthy backend VMs. Only
6672	// applicable if the protocol is not UDP. The valid range is [0, 3600].
6673	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
6674
6675	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
6676	// to unconditionally include in API requests. By default, fields with
6677	// empty values are omitted from API requests. However, any non-pointer,
6678	// non-interface field appearing in ForceSendFields will be sent to the
6679	// server regardless of whether the field is empty or not. This may be
6680	// used to include empty fields in Patch requests.
6681	ForceSendFields []string `json:"-"`
6682
6683	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
6684	// include in API requests with the JSON null value. By default, fields
6685	// with empty values are omitted from API requests. However, any field
6686	// with an empty value appearing in NullFields will be sent to the
6687	// server as null. It is an error if a field in this list has a
6688	// non-empty value. This may be used to include null fields in Patch
6689	// requests.
6690	NullFields []string `json:"-"`
6691}
6692
6693func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
6694	type NoMethod ConnectionDraining
6695	raw := NoMethod(*s)
6696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6697}
6698
6699// ConsistentHashLoadBalancerSettings: This message defines settings for
6700// a consistent hash style load balancer.
6701type ConsistentHashLoadBalancerSettings struct {
6702	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
6703	// cookie that will be used as the hash key for the consistent hash load
6704	// balancer. If the cookie is not present, it will be generated. This
6705	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
6706	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
6707
6708	// HttpHeaderName: The hash based on the value of the specified header
6709	// field. This field is applicable if the sessionAffinity is set to
6710	// HEADER_FIELD.
6711	HttpHeaderName string `json:"httpHeaderName,omitempty"`
6712
6713	// MinimumRingSize: The minimum number of virtual nodes to use for the
6714	// hash ring. Defaults to 1024. Larger ring sizes result in more
6715	// granular load distributions. If the number of hosts in the load
6716	// balancing pool is larger than the ring size, each host will be
6717	// assigned a single virtual node.
6718	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
6719
6720	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
6721	// unconditionally include in API requests. By default, fields with
6722	// empty values are omitted from API requests. However, any non-pointer,
6723	// non-interface field appearing in ForceSendFields will be sent to the
6724	// server regardless of whether the field is empty or not. This may be
6725	// used to include empty fields in Patch requests.
6726	ForceSendFields []string `json:"-"`
6727
6728	// NullFields is a list of field names (e.g. "HttpCookie") to include in
6729	// API requests with the JSON null value. By default, fields with empty
6730	// values are omitted from API requests. However, any field with an
6731	// empty value appearing in NullFields will be sent to the server as
6732	// null. It is an error if a field in this list has a non-empty value.
6733	// This may be used to include null fields in Patch requests.
6734	NullFields []string `json:"-"`
6735}
6736
6737func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
6738	type NoMethod ConsistentHashLoadBalancerSettings
6739	raw := NoMethod(*s)
6740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6741}
6742
6743// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
6744// the HTTP Cookie on which the hash function is based for load
6745// balancing policies that use a consistent hash.
6746type ConsistentHashLoadBalancerSettingsHttpCookie struct {
6747	// Name: Name of the cookie.
6748	Name string `json:"name,omitempty"`
6749
6750	// Path: Path to set for the cookie.
6751	Path string `json:"path,omitempty"`
6752
6753	// Ttl: Lifetime of the cookie.
6754	Ttl *Duration `json:"ttl,omitempty"`
6755
6756	// ForceSendFields is a list of field names (e.g. "Name") to
6757	// unconditionally include in API requests. By default, fields with
6758	// empty values are omitted from API requests. However, any non-pointer,
6759	// non-interface field appearing in ForceSendFields will be sent to the
6760	// server regardless of whether the field is empty or not. This may be
6761	// used to include empty fields in Patch requests.
6762	ForceSendFields []string `json:"-"`
6763
6764	// NullFields is a list of field names (e.g. "Name") to include in API
6765	// requests with the JSON null value. By default, fields with empty
6766	// values are omitted from API requests. However, any field with an
6767	// empty value appearing in NullFields will be sent to the server as
6768	// null. It is an error if a field in this list has a non-empty value.
6769	// This may be used to include null fields in Patch requests.
6770	NullFields []string `json:"-"`
6771}
6772
6773func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
6774	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
6775	raw := NoMethod(*s)
6776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6777}
6778
6779// CorsPolicy: The specification for allowing client side cross-origin
6780// requests. Please see W3C Recommendation for Cross Origin Resource
6781// Sharing
6782type CorsPolicy struct {
6783	// AllowCredentials: In response to a preflight request, setting this to
6784	// true indicates that the actual request can include user credentials.
6785	// This translates to the Access-Control-Allow-Credentials
6786	// header.
6787	// Default is false.
6788	AllowCredentials bool `json:"allowCredentials,omitempty"`
6789
6790	// AllowHeaders: Specifies the content for the
6791	// Access-Control-Allow-Headers header.
6792	AllowHeaders []string `json:"allowHeaders,omitempty"`
6793
6794	// AllowMethods: Specifies the content for the
6795	// Access-Control-Allow-Methods header.
6796	AllowMethods []string `json:"allowMethods,omitempty"`
6797
6798	// AllowOriginRegexes: Specifies the regualar expression patterns that
6799	// match allowed origins. For regular expression grammar please see
6800	// en.cppreference.com/w/cpp/regex/ecmascript
6801	// An origin is allowed if it matches either an item in allowOrigins or
6802	// an item in allowOriginRegexes.
6803	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
6804
6805	// AllowOrigins: Specifies the list of origins that will be allowed to
6806	// do CORS requests.
6807	// An origin is allowed if it matches either an item in allowOrigins or
6808	// an item in allowOriginRegexes.
6809	AllowOrigins []string `json:"allowOrigins,omitempty"`
6810
6811	// Disabled: If true, specifies the CORS policy is disabled. The default
6812	// value of false, which indicates that the CORS policy is in effect.
6813	Disabled bool `json:"disabled,omitempty"`
6814
6815	// ExposeHeaders: Specifies the content for the
6816	// Access-Control-Expose-Headers header.
6817	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
6818
6819	// MaxAge: Specifies how long results of a preflight request can be
6820	// cached in seconds. This translates to the Access-Control-Max-Age
6821	// header.
6822	MaxAge int64 `json:"maxAge,omitempty"`
6823
6824	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
6825	// unconditionally include in API requests. By default, fields with
6826	// empty values are omitted from API requests. However, any non-pointer,
6827	// non-interface field appearing in ForceSendFields will be sent to the
6828	// server regardless of whether the field is empty or not. This may be
6829	// used to include empty fields in Patch requests.
6830	ForceSendFields []string `json:"-"`
6831
6832	// NullFields is a list of field names (e.g. "AllowCredentials") to
6833	// include in API requests with the JSON null value. By default, fields
6834	// with empty values are omitted from API requests. However, any field
6835	// with an empty value appearing in NullFields will be sent to the
6836	// server as null. It is an error if a field in this list has a
6837	// non-empty value. This may be used to include null fields in Patch
6838	// requests.
6839	NullFields []string `json:"-"`
6840}
6841
6842func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
6843	type NoMethod CorsPolicy
6844	raw := NoMethod(*s)
6845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6846}
6847
6848// CustomerEncryptionKey: Represents a customer-supplied encryption key
6849type CustomerEncryptionKey struct {
6850	// KmsKeyName: The name of the encryption key that is stored in Google
6851	// Cloud KMS.
6852	KmsKeyName string `json:"kmsKeyName,omitempty"`
6853
6854	// KmsKeyServiceAccount: The service account being used for the
6855	// encryption request for the given KMS key. If absent, the Compute
6856	// Engine default service account is used.
6857	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
6858
6859	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
6860	// in RFC 4648 base64 to either encrypt or decrypt this resource.
6861	RawKey string `json:"rawKey,omitempty"`
6862
6863	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
6864	// 2048-bit customer-supplied encryption key to either encrypt or
6865	// decrypt this resource.
6866	//
6867	// The key must meet the following requirements before you can provide
6868	// it to Compute Engine:
6869	// - The key is wrapped using a RSA public key certificate provided by
6870	// Google.
6871	// - After being wrapped, the key must be encoded in RFC 4648 base64
6872	// encoding.  Gets the RSA public key certificate provided by Google
6873	// at:
6874	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingre
6875	// ss.pem
6876	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
6877
6878	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
6879	// customer-supplied encryption key that protects this resource.
6880	Sha256 string `json:"sha256,omitempty"`
6881
6882	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
6883	// unconditionally include in API requests. By default, fields with
6884	// empty values are omitted from API requests. However, any non-pointer,
6885	// non-interface field appearing in ForceSendFields will be sent to the
6886	// server regardless of whether the field is empty or not. This may be
6887	// used to include empty fields in Patch requests.
6888	ForceSendFields []string `json:"-"`
6889
6890	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
6891	// API requests with the JSON null value. By default, fields with empty
6892	// values are omitted from API requests. However, any field with an
6893	// empty value appearing in NullFields will be sent to the server as
6894	// null. It is an error if a field in this list has a non-empty value.
6895	// This may be used to include null fields in Patch requests.
6896	NullFields []string `json:"-"`
6897}
6898
6899func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
6900	type NoMethod CustomerEncryptionKey
6901	raw := NoMethod(*s)
6902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6903}
6904
6905type CustomerEncryptionKeyProtectedDisk struct {
6906	// DiskEncryptionKey: Decrypts data associated with the disk with a
6907	// customer-supplied encryption key.
6908	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
6909
6910	// Source: Specifies a valid partial or full URL to an existing
6911	// Persistent Disk resource. This field is only applicable for
6912	// persistent disks.
6913	Source string `json:"source,omitempty"`
6914
6915	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
6916	// to unconditionally include in API requests. By default, fields with
6917	// empty values are omitted from API requests. However, any non-pointer,
6918	// non-interface field appearing in ForceSendFields will be sent to the
6919	// server regardless of whether the field is empty or not. This may be
6920	// used to include empty fields in Patch requests.
6921	ForceSendFields []string `json:"-"`
6922
6923	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
6924	// include in API requests with the JSON null value. By default, fields
6925	// with empty values are omitted from API requests. However, any field
6926	// with an empty value appearing in NullFields will be sent to the
6927	// server as null. It is an error if a field in this list has a
6928	// non-empty value. This may be used to include null fields in Patch
6929	// requests.
6930	NullFields []string `json:"-"`
6931}
6932
6933func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
6934	type NoMethod CustomerEncryptionKeyProtectedDisk
6935	raw := NoMethod(*s)
6936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6937}
6938
6939// DeprecationStatus: Deprecation status for a public resource.
6940type DeprecationStatus struct {
6941	// Deleted: An optional RFC3339 timestamp on or after which the state of
6942	// this resource is intended to change to DELETED. This is only
6943	// informational and the status will not change unless the client
6944	// explicitly changes it.
6945	Deleted string `json:"deleted,omitempty"`
6946
6947	// Deprecated: An optional RFC3339 timestamp on or after which the state
6948	// of this resource is intended to change to DEPRECATED. This is only
6949	// informational and the status will not change unless the client
6950	// explicitly changes it.
6951	Deprecated string `json:"deprecated,omitempty"`
6952
6953	// Obsolete: An optional RFC3339 timestamp on or after which the state
6954	// of this resource is intended to change to OBSOLETE. This is only
6955	// informational and the status will not change unless the client
6956	// explicitly changes it.
6957	Obsolete string `json:"obsolete,omitempty"`
6958
6959	// Replacement: The URL of the suggested replacement for a deprecated
6960	// resource. The suggested replacement resource must be the same kind of
6961	// resource as the deprecated resource.
6962	Replacement string `json:"replacement,omitempty"`
6963
6964	// State: The deprecation state of this resource. This can be ACTIVE,
6965	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
6966	// end of life date for an image, can use ACTIVE. Operations which
6967	// create a new resource using a DEPRECATED resource will return
6968	// successfully, but with a warning indicating the deprecated resource
6969	// and recommending its replacement. Operations which use OBSOLETE or
6970	// DELETED resources will be rejected and result in an error.
6971	//
6972	// Possible values:
6973	//   "ACTIVE"
6974	//   "DELETED"
6975	//   "DEPRECATED"
6976	//   "OBSOLETE"
6977	State string `json:"state,omitempty"`
6978
6979	// ForceSendFields is a list of field names (e.g. "Deleted") to
6980	// unconditionally include in API requests. By default, fields with
6981	// empty values are omitted from API requests. However, any non-pointer,
6982	// non-interface field appearing in ForceSendFields will be sent to the
6983	// server regardless of whether the field is empty or not. This may be
6984	// used to include empty fields in Patch requests.
6985	ForceSendFields []string `json:"-"`
6986
6987	// NullFields is a list of field names (e.g. "Deleted") to include in
6988	// API requests with the JSON null value. By default, fields with empty
6989	// values are omitted from API requests. However, any field with an
6990	// empty value appearing in NullFields will be sent to the server as
6991	// null. It is an error if a field in this list has a non-empty value.
6992	// This may be used to include null fields in Patch requests.
6993	NullFields []string `json:"-"`
6994}
6995
6996func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
6997	type NoMethod DeprecationStatus
6998	raw := NoMethod(*s)
6999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7000}
7001
7002// Disk: Represents a Persistent Disk resource.
7003//
7004// Google Compute Engine has two Disk resources:
7005//
7006// * [Zonal](/compute/docs/reference/rest/{$api_version}/disks) *
7007// [Regional](/compute/docs/reference/rest/{$api_version}/regionDisks)
7008//
7009// P
7010// ersistent disks are required for running your VM instances. Create
7011// both boot and non-boot (data) persistent disks. For more information,
7012// read Persistent Disks. For more storage options, read Storage
7013// options.
7014//
7015// The disks resource represents a zonal persistent disk. For more
7016// information, read Zonal persistent disks.
7017//
7018// The regionDisks resource represents a regional persistent disk. For
7019// more information, read  Regional resources. (== resource_for
7020// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
7021// ==)
7022type Disk struct {
7023	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7024	// format.
7025	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7026
7027	// Description: An optional description of this resource. Provide this
7028	// property when you create the resource.
7029	Description string `json:"description,omitempty"`
7030
7031	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7032	// encryption key.
7033	//
7034	// After you encrypt a disk with a customer-supplied key, you must
7035	// provide the same key if you use the disk later (e.g. to create a disk
7036	// snapshot, to create a disk image, to create a machine image, or to
7037	// attach the disk to a virtual machine).
7038	//
7039	// Customer-supplied encryption keys do not protect access to metadata
7040	// of the disk.
7041	//
7042	// If you do not provide an encryption key when creating the disk, then
7043	// the disk will be encrypted using an automatically generated key and
7044	// you do not need to provide a key to use the disk later.
7045	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7046
7047	// EraseWindowsVssSignature: Specifies whether the disk restored from a
7048	// source snapshot should erase Windows specific VSS signature.
7049	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
7050
7051	// GuestOsFeatures: A list of features to enable on the guest operating
7052	// system. Applicable only for bootable images. Read  Enabling guest
7053	// operating system features to see a list of available options.
7054	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7055
7056	// Id: [Output Only] The unique identifier for the resource. This
7057	// identifier is defined by the server.
7058	Id uint64 `json:"id,omitempty,string"`
7059
7060	// Interface: Specifies the disk interface to use for attaching this
7061	// disk, which is either SCSI or NVME. The default is SCSI.
7062	//
7063	// Possible values:
7064	//   "NVME"
7065	//   "SCSI"
7066	//   "UNSPECIFIED"
7067	Interface string `json:"interface,omitempty"`
7068
7069	// Kind: [Output Only] Type of the resource. Always compute#disk for
7070	// disks.
7071	Kind string `json:"kind,omitempty"`
7072
7073	// LabelFingerprint: A fingerprint for the labels being applied to this
7074	// disk, which is essentially a hash of the labels set used for
7075	// optimistic locking. The fingerprint is initially generated by Compute
7076	// Engine and changes after every request to modify or update labels.
7077	// You must always provide an up-to-date fingerprint hash in order to
7078	// update or change labels, otherwise the request will fail with error
7079	// 412 conditionNotMet.
7080	//
7081	// To see the latest fingerprint, make a get() request to retrieve a
7082	// disk.
7083	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7084
7085	// Labels: Labels to apply to this disk. These can be later modified by
7086	// the setLabels method.
7087	Labels map[string]string `json:"labels,omitempty"`
7088
7089	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7090	// text format.
7091	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7092
7093	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7094	// text format.
7095	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7096
7097	// LicenseCodes: Integer license codes indicating which licenses are
7098	// attached to this disk.
7099	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7100
7101	// Licenses: A list of publicly visible licenses. Reserved for Google's
7102	// use.
7103	Licenses []string `json:"licenses,omitempty"`
7104
7105	// MultiWriter: Indicates whether or not the disk can be read/write
7106	// attached to more than one instance.
7107	MultiWriter bool `json:"multiWriter,omitempty"`
7108
7109	// Name: Name of the resource. Provided by the client when the resource
7110	// is created. The name must be 1-63 characters long, and comply with
7111	// RFC1035. Specifically, the name must be 1-63 characters long and
7112	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7113	// the first character must be a lowercase letter, and all following
7114	// characters must be a dash, lowercase letter, or digit, except the
7115	// last character, which cannot be a dash.
7116	Name string `json:"name,omitempty"`
7117
7118	// Options: Internal use only.
7119	Options string `json:"options,omitempty"`
7120
7121	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7122	// in bytes. If not present in a request, a default value is used. The
7123	// currently supported size is 4096, other sizes may be added in the
7124	// future. If an unsupported value is requested, the error message will
7125	// list the supported values for the caller's project.
7126	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7127
7128	// Region: [Output Only] URL of the region where the disk resides. Only
7129	// applicable for regional resources. You must specify this field as
7130	// part of the HTTP request URL. It is not settable as a field in the
7131	// request body.
7132	Region string `json:"region,omitempty"`
7133
7134	// ReplicaZones: URLs of the zones where the disk should be replicated
7135	// to. Only applicable for regional resources.
7136	ReplicaZones []string `json:"replicaZones,omitempty"`
7137
7138	// ResourcePolicies: Resource policies applied to this disk for
7139	// automatic snapshot creations.
7140	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7141
7142	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7143	// resource.
7144	SelfLink string `json:"selfLink,omitempty"`
7145
7146	// SizeGb: Size of the persistent disk, specified in GB. You can specify
7147	// this field when creating a persistent disk using the sourceImage or
7148	// sourceSnapshot parameter, or specify it alone to create an empty
7149	// persistent disk.
7150	//
7151	// If you specify this field along with sourceImage or sourceSnapshot,
7152	// the value of sizeGb must not be less than the size of the sourceImage
7153	// or the size of the snapshot. Acceptable values are 1 to 65536,
7154	// inclusive.
7155	SizeGb int64 `json:"sizeGb,omitempty,string"`
7156
7157	// SourceDisk: The source disk used to create this disk. You can provide
7158	// this as a partial or full URL to the resource. For example, the
7159	// following are valid values:
7160	// -
7161	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7162	// - projects/project/zones/zone/disks/disk
7163	// - zones/zone/disks/disk
7164	SourceDisk string `json:"sourceDisk,omitempty"`
7165
7166	// SourceDiskId: [Output Only] The unique ID of the disk used to create
7167	// this disk. This value identifies the exact disk that was used to
7168	// create this persistent disk. For example, if you created the
7169	// persistent disk from a disk that was later deleted and recreated
7170	// under the same name, the source disk ID would identify the exact
7171	// version of the disk that was used.
7172	SourceDiskId string `json:"sourceDiskId,omitempty"`
7173
7174	// SourceImage: The source image used to create this disk. If the source
7175	// image is deleted, this field will not be set.
7176	//
7177	// To create a disk with one of the public operating system images,
7178	// specify the image by its family name. For example, specify
7179	// family/debian-9 to use the latest Debian 9
7180	// image:
7181	// projects/debian-cloud/global/images/family/debian-9
7182	//
7183	//
7184	// Alternati
7185	// vely, use a specific version of a public operating system
7186	// image:
7187	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
7188	//
7189	//
7190	//
7191	// To create a disk with a custom image that you created, specify the
7192	// image name in the following
7193	// format:
7194	// global/images/my-custom-image
7195	//
7196	//
7197	// You can also specify a custom image by its image family, which
7198	// returns the latest version of the image in that family. Replace the
7199	// image name with
7200	// family/family-name:
7201	// global/images/family/my-image-family
7202	SourceImage string `json:"sourceImage,omitempty"`
7203
7204	// SourceImageEncryptionKey: The customer-supplied encryption key of the
7205	// source image. Required if the source image is protected by a
7206	// customer-supplied encryption key.
7207	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
7208
7209	// SourceImageId: [Output Only] The ID value of the image used to create
7210	// this disk. This value identifies the exact image that was used to
7211	// create this persistent disk. For example, if you created the
7212	// persistent disk from an image that was later deleted and recreated
7213	// under the same name, the source image ID would identify the exact
7214	// version of the image that was used.
7215	SourceImageId string `json:"sourceImageId,omitempty"`
7216
7217	// SourceSnapshot: The source snapshot used to create this disk. You can
7218	// provide this as a partial or full URL to the resource. For example,
7219	// the following are valid values:
7220	// -
7221	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
7222	// - projects/project/global/snapshots/snapshot
7223	// - global/snapshots/snapshot
7224	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7225
7226	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7227	// the source snapshot. Required if the source snapshot is protected by
7228	// a customer-supplied encryption key.
7229	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7230
7231	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7232	// create this disk. This value identifies the exact snapshot that was
7233	// used to create this persistent disk. For example, if you created the
7234	// persistent disk from a snapshot that was later deleted and recreated
7235	// under the same name, the source snapshot ID would identify the exact
7236	// version of the snapshot that was used.
7237	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7238
7239	// Status: [Output Only] The status of disk creation. CREATING: Disk is
7240	// provisioning. RESTORING: Source data is being copied into the disk.
7241	// FAILED: Disk creation failed. READY: Disk is ready for use. DELETING:
7242	// Disk is deleting.
7243	//
7244	// Possible values:
7245	//   "CREATING"
7246	//   "DELETING"
7247	//   "FAILED"
7248	//   "READY"
7249	//   "RESTORING"
7250	Status string `json:"status,omitempty"`
7251
7252	// StorageType: [Deprecated] Storage type of the persistent disk.
7253	//
7254	// Possible values:
7255	//   "HDD"
7256	//   "SSD"
7257	StorageType string `json:"storageType,omitempty"`
7258
7259	// Type: URL of the disk type resource describing which disk type to use
7260	// to create the disk. Provide this when creating the disk. For example:
7261	// projects/project/zones/zone/diskTypes/pd-standard  or pd-ssd
7262	Type string `json:"type,omitempty"`
7263
7264	// Users: [Output Only] Links to the users of the disk (attached
7265	// instances) in form: projects/project/zones/zone/instances/instance
7266	Users []string `json:"users,omitempty"`
7267
7268	// Zone: [Output Only] URL of the zone where the disk resides. You must
7269	// specify this field as part of the HTTP request URL. It is not
7270	// settable as a field in the request body.
7271	Zone string `json:"zone,omitempty"`
7272
7273	// ServerResponse contains the HTTP response code and headers from the
7274	// server.
7275	googleapi.ServerResponse `json:"-"`
7276
7277	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7278	// to unconditionally include in API requests. By default, fields with
7279	// empty values are omitted from API requests. However, any non-pointer,
7280	// non-interface field appearing in ForceSendFields will be sent to the
7281	// server regardless of whether the field is empty or not. This may be
7282	// used to include empty fields in Patch requests.
7283	ForceSendFields []string `json:"-"`
7284
7285	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7286	// include in API requests with the JSON null value. By default, fields
7287	// with empty values are omitted from API requests. However, any field
7288	// with an empty value appearing in NullFields will be sent to the
7289	// server as null. It is an error if a field in this list has a
7290	// non-empty value. This may be used to include null fields in Patch
7291	// requests.
7292	NullFields []string `json:"-"`
7293}
7294
7295func (s *Disk) MarshalJSON() ([]byte, error) {
7296	type NoMethod Disk
7297	raw := NoMethod(*s)
7298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7299}
7300
7301type DiskAggregatedList struct {
7302	// Id: [Output Only] Unique identifier for the resource; defined by the
7303	// server.
7304	Id string `json:"id,omitempty"`
7305
7306	// Items: A list of DisksScopedList resources.
7307	Items map[string]DisksScopedList `json:"items,omitempty"`
7308
7309	// Kind: [Output Only] Type of resource. Always
7310	// compute#diskAggregatedList for aggregated lists of persistent disks.
7311	Kind string `json:"kind,omitempty"`
7312
7313	// NextPageToken: [Output Only] This token allows you to get the next
7314	// page of results for list requests. If the number of results is larger
7315	// than maxResults, use the nextPageToken as a value for the query
7316	// parameter pageToken in the next list request. Subsequent list
7317	// requests will have their own nextPageToken to continue paging through
7318	// the results.
7319	NextPageToken string `json:"nextPageToken,omitempty"`
7320
7321	// SelfLink: [Output Only] Server-defined URL for this resource.
7322	SelfLink string `json:"selfLink,omitempty"`
7323
7324	// Warning: [Output Only] Informational warning message.
7325	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
7326
7327	// ServerResponse contains the HTTP response code and headers from the
7328	// server.
7329	googleapi.ServerResponse `json:"-"`
7330
7331	// ForceSendFields is a list of field names (e.g. "Id") to
7332	// unconditionally include in API requests. By default, fields with
7333	// empty values are omitted from API requests. However, any non-pointer,
7334	// non-interface field appearing in ForceSendFields will be sent to the
7335	// server regardless of whether the field is empty or not. This may be
7336	// used to include empty fields in Patch requests.
7337	ForceSendFields []string `json:"-"`
7338
7339	// NullFields is a list of field names (e.g. "Id") to include in API
7340	// requests with the JSON null value. By default, fields with empty
7341	// values are omitted from API requests. However, any field with an
7342	// empty value appearing in NullFields will be sent to the server as
7343	// null. It is an error if a field in this list has a non-empty value.
7344	// This may be used to include null fields in Patch requests.
7345	NullFields []string `json:"-"`
7346}
7347
7348func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
7349	type NoMethod DiskAggregatedList
7350	raw := NoMethod(*s)
7351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7352}
7353
7354// DiskAggregatedListWarning: [Output Only] Informational warning
7355// message.
7356type DiskAggregatedListWarning struct {
7357	// Code: [Output Only] A warning code, if applicable. For example,
7358	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7359	// the response.
7360	//
7361	// Possible values:
7362	//   "CLEANUP_FAILED"
7363	//   "DEPRECATED_RESOURCE_USED"
7364	//   "DEPRECATED_TYPE_USED"
7365	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7366	//   "EXPERIMENTAL_TYPE_USED"
7367	//   "EXTERNAL_API_WARNING"
7368	//   "FIELD_VALUE_OVERRIDEN"
7369	//   "INJECTED_KERNELS_DEPRECATED"
7370	//   "MISSING_TYPE_DEPENDENCY"
7371	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7372	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7373	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7374	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7375	//   "NEXT_HOP_NOT_RUNNING"
7376	//   "NOT_CRITICAL_ERROR"
7377	//   "NO_RESULTS_ON_PAGE"
7378	//   "REQUIRED_TOS_AGREEMENT"
7379	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7380	//   "RESOURCE_NOT_DELETED"
7381	//   "SCHEMA_VALIDATION_IGNORED"
7382	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7383	//   "UNDECLARED_PROPERTIES"
7384	//   "UNREACHABLE"
7385	Code string `json:"code,omitempty"`
7386
7387	// Data: [Output Only] Metadata about this warning in key: value format.
7388	// For example:
7389	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7390	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
7391
7392	// Message: [Output Only] A human-readable description of the warning
7393	// code.
7394	Message string `json:"message,omitempty"`
7395
7396	// ForceSendFields is a list of field names (e.g. "Code") to
7397	// unconditionally include in API requests. By default, fields with
7398	// empty values are omitted from API requests. However, any non-pointer,
7399	// non-interface field appearing in ForceSendFields will be sent to the
7400	// server regardless of whether the field is empty or not. This may be
7401	// used to include empty fields in Patch requests.
7402	ForceSendFields []string `json:"-"`
7403
7404	// NullFields is a list of field names (e.g. "Code") to include in API
7405	// requests with the JSON null value. By default, fields with empty
7406	// values are omitted from API requests. However, any field with an
7407	// empty value appearing in NullFields will be sent to the server as
7408	// null. It is an error if a field in this list has a non-empty value.
7409	// This may be used to include null fields in Patch requests.
7410	NullFields []string `json:"-"`
7411}
7412
7413func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
7414	type NoMethod DiskAggregatedListWarning
7415	raw := NoMethod(*s)
7416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7417}
7418
7419type DiskAggregatedListWarningData struct {
7420	// Key: [Output Only] A key that provides more detail on the warning
7421	// being returned. For example, for warnings where there are no results
7422	// in a list request for a particular zone, this key might be scope and
7423	// the key value might be the zone name. Other examples might be a key
7424	// indicating a deprecated resource and a suggested replacement, or a
7425	// warning about invalid network settings (for example, if an instance
7426	// attempts to perform IP forwarding but is not enabled for IP
7427	// forwarding).
7428	Key string `json:"key,omitempty"`
7429
7430	// Value: [Output Only] A warning data value corresponding to the key.
7431	Value string `json:"value,omitempty"`
7432
7433	// ForceSendFields is a list of field names (e.g. "Key") to
7434	// unconditionally include in API requests. By default, fields with
7435	// empty values are omitted from API requests. However, any non-pointer,
7436	// non-interface field appearing in ForceSendFields will be sent to the
7437	// server regardless of whether the field is empty or not. This may be
7438	// used to include empty fields in Patch requests.
7439	ForceSendFields []string `json:"-"`
7440
7441	// NullFields is a list of field names (e.g. "Key") to include in API
7442	// requests with the JSON null value. By default, fields with empty
7443	// values are omitted from API requests. However, any field with an
7444	// empty value appearing in NullFields will be sent to the server as
7445	// null. It is an error if a field in this list has a non-empty value.
7446	// This may be used to include null fields in Patch requests.
7447	NullFields []string `json:"-"`
7448}
7449
7450func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7451	type NoMethod DiskAggregatedListWarningData
7452	raw := NoMethod(*s)
7453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7454}
7455
7456// DiskInstantiationConfig: A specification of the desired way to
7457// instantiate a disk in the instance template when its created from a
7458// source instance.
7459type DiskInstantiationConfig struct {
7460	// AutoDelete: Specifies whether the disk will be auto-deleted when the
7461	// instance is deleted (but not when the disk is detached from the
7462	// instance).
7463	AutoDelete bool `json:"autoDelete,omitempty"`
7464
7465	// CustomImage: The custom source image to be used to restore this disk
7466	// when instantiating this instance template.
7467	CustomImage string `json:"customImage,omitempty"`
7468
7469	// DeviceName: Specifies the device name of the disk to which the
7470	// configurations apply to.
7471	DeviceName string `json:"deviceName,omitempty"`
7472
7473	// InstantiateFrom: Specifies whether to include the disk and what image
7474	// to use. Possible values are:
7475	// - source-image: to use the same image that was used to create the
7476	// source instance's corresponding disk. Applicable to the boot disk and
7477	// additional read-write disks.
7478	// - source-image-family: to use the same image family that was used to
7479	// create the source instance's corresponding disk. Applicable to the
7480	// boot disk and additional read-write disks.
7481	// - custom-image: to use a user-provided image url for disk creation.
7482	// Applicable to the boot disk and additional read-write disks.
7483	// - attach-read-only: to attach a read-only disk. Applicable to
7484	// read-only disks.
7485	// - do-not-include: to exclude a disk from the template. Applicable to
7486	// additional read-write disks, local SSDs, and read-only disks.
7487	//
7488	// Possible values:
7489	//   "ATTACH_READ_ONLY"
7490	//   "BLANK"
7491	//   "CUSTOM_IMAGE"
7492	//   "DEFAULT"
7493	//   "DO_NOT_INCLUDE"
7494	//   "SOURCE_IMAGE"
7495	//   "SOURCE_IMAGE_FAMILY"
7496	InstantiateFrom string `json:"instantiateFrom,omitempty"`
7497
7498	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
7499	// unconditionally include in API requests. By default, fields with
7500	// empty values are omitted from API requests. However, any non-pointer,
7501	// non-interface field appearing in ForceSendFields will be sent to the
7502	// server regardless of whether the field is empty or not. This may be
7503	// used to include empty fields in Patch requests.
7504	ForceSendFields []string `json:"-"`
7505
7506	// NullFields is a list of field names (e.g. "AutoDelete") to include in
7507	// API requests with the JSON null value. By default, fields with empty
7508	// values are omitted from API requests. However, any field with an
7509	// empty value appearing in NullFields will be sent to the server as
7510	// null. It is an error if a field in this list has a non-empty value.
7511	// This may be used to include null fields in Patch requests.
7512	NullFields []string `json:"-"`
7513}
7514
7515func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
7516	type NoMethod DiskInstantiationConfig
7517	raw := NoMethod(*s)
7518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7519}
7520
7521// DiskList: A list of Disk resources.
7522type DiskList struct {
7523	// Id: [Output Only] Unique identifier for the resource; defined by the
7524	// server.
7525	Id string `json:"id,omitempty"`
7526
7527	// Items: A list of Disk resources.
7528	Items []*Disk `json:"items,omitempty"`
7529
7530	// Kind: [Output Only] Type of resource. Always compute#diskList for
7531	// lists of disks.
7532	Kind string `json:"kind,omitempty"`
7533
7534	// NextPageToken: [Output Only] This token allows you to get the next
7535	// page of results for list requests. If the number of results is larger
7536	// than maxResults, use the nextPageToken as a value for the query
7537	// parameter pageToken in the next list request. Subsequent list
7538	// requests will have their own nextPageToken to continue paging through
7539	// the results.
7540	NextPageToken string `json:"nextPageToken,omitempty"`
7541
7542	// SelfLink: [Output Only] Server-defined URL for this resource.
7543	SelfLink string `json:"selfLink,omitempty"`
7544
7545	// Warning: [Output Only] Informational warning message.
7546	Warning *DiskListWarning `json:"warning,omitempty"`
7547
7548	// ServerResponse contains the HTTP response code and headers from the
7549	// server.
7550	googleapi.ServerResponse `json:"-"`
7551
7552	// ForceSendFields is a list of field names (e.g. "Id") to
7553	// unconditionally include in API requests. By default, fields with
7554	// empty values are omitted from API requests. However, any non-pointer,
7555	// non-interface field appearing in ForceSendFields will be sent to the
7556	// server regardless of whether the field is empty or not. This may be
7557	// used to include empty fields in Patch requests.
7558	ForceSendFields []string `json:"-"`
7559
7560	// NullFields is a list of field names (e.g. "Id") to include in API
7561	// requests with the JSON null value. By default, fields with empty
7562	// values are omitted from API requests. However, any field with an
7563	// empty value appearing in NullFields will be sent to the server as
7564	// null. It is an error if a field in this list has a non-empty value.
7565	// This may be used to include null fields in Patch requests.
7566	NullFields []string `json:"-"`
7567}
7568
7569func (s *DiskList) MarshalJSON() ([]byte, error) {
7570	type NoMethod DiskList
7571	raw := NoMethod(*s)
7572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7573}
7574
7575// DiskListWarning: [Output Only] Informational warning message.
7576type DiskListWarning struct {
7577	// Code: [Output Only] A warning code, if applicable. For example,
7578	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7579	// the response.
7580	//
7581	// Possible values:
7582	//   "CLEANUP_FAILED"
7583	//   "DEPRECATED_RESOURCE_USED"
7584	//   "DEPRECATED_TYPE_USED"
7585	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7586	//   "EXPERIMENTAL_TYPE_USED"
7587	//   "EXTERNAL_API_WARNING"
7588	//   "FIELD_VALUE_OVERRIDEN"
7589	//   "INJECTED_KERNELS_DEPRECATED"
7590	//   "MISSING_TYPE_DEPENDENCY"
7591	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7592	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7593	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7594	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7595	//   "NEXT_HOP_NOT_RUNNING"
7596	//   "NOT_CRITICAL_ERROR"
7597	//   "NO_RESULTS_ON_PAGE"
7598	//   "REQUIRED_TOS_AGREEMENT"
7599	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7600	//   "RESOURCE_NOT_DELETED"
7601	//   "SCHEMA_VALIDATION_IGNORED"
7602	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7603	//   "UNDECLARED_PROPERTIES"
7604	//   "UNREACHABLE"
7605	Code string `json:"code,omitempty"`
7606
7607	// Data: [Output Only] Metadata about this warning in key: value format.
7608	// For example:
7609	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7610	Data []*DiskListWarningData `json:"data,omitempty"`
7611
7612	// Message: [Output Only] A human-readable description of the warning
7613	// code.
7614	Message string `json:"message,omitempty"`
7615
7616	// ForceSendFields is a list of field names (e.g. "Code") to
7617	// unconditionally include in API requests. By default, fields with
7618	// empty values are omitted from API requests. However, any non-pointer,
7619	// non-interface field appearing in ForceSendFields will be sent to the
7620	// server regardless of whether the field is empty or not. This may be
7621	// used to include empty fields in Patch requests.
7622	ForceSendFields []string `json:"-"`
7623
7624	// NullFields is a list of field names (e.g. "Code") to include in API
7625	// requests with the JSON null value. By default, fields with empty
7626	// values are omitted from API requests. However, any field with an
7627	// empty value appearing in NullFields will be sent to the server as
7628	// null. It is an error if a field in this list has a non-empty value.
7629	// This may be used to include null fields in Patch requests.
7630	NullFields []string `json:"-"`
7631}
7632
7633func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
7634	type NoMethod DiskListWarning
7635	raw := NoMethod(*s)
7636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7637}
7638
7639type DiskListWarningData struct {
7640	// Key: [Output Only] A key that provides more detail on the warning
7641	// being returned. For example, for warnings where there are no results
7642	// in a list request for a particular zone, this key might be scope and
7643	// the key value might be the zone name. Other examples might be a key
7644	// indicating a deprecated resource and a suggested replacement, or a
7645	// warning about invalid network settings (for example, if an instance
7646	// attempts to perform IP forwarding but is not enabled for IP
7647	// forwarding).
7648	Key string `json:"key,omitempty"`
7649
7650	// Value: [Output Only] A warning data value corresponding to the key.
7651	Value string `json:"value,omitempty"`
7652
7653	// ForceSendFields is a list of field names (e.g. "Key") to
7654	// unconditionally include in API requests. By default, fields with
7655	// empty values are omitted from API requests. However, any non-pointer,
7656	// non-interface field appearing in ForceSendFields will be sent to the
7657	// server regardless of whether the field is empty or not. This may be
7658	// used to include empty fields in Patch requests.
7659	ForceSendFields []string `json:"-"`
7660
7661	// NullFields is a list of field names (e.g. "Key") to include in API
7662	// requests with the JSON null value. By default, fields with empty
7663	// values are omitted from API requests. However, any field with an
7664	// empty value appearing in NullFields will be sent to the server as
7665	// null. It is an error if a field in this list has a non-empty value.
7666	// This may be used to include null fields in Patch requests.
7667	NullFields []string `json:"-"`
7668}
7669
7670func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
7671	type NoMethod DiskListWarningData
7672	raw := NoMethod(*s)
7673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7674}
7675
7676type DiskMoveRequest struct {
7677	// DestinationZone: The URL of the destination zone to move the disk.
7678	// This can be a full or partial URL. For example, the following are all
7679	// valid URLs to a zone:
7680	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
7681	//
7682	// - projects/project/zones/zone
7683	// - zones/zone
7684	DestinationZone string `json:"destinationZone,omitempty"`
7685
7686	// TargetDisk: The URL of the target disk to move. This can be a full or
7687	// partial URL. For example, the following are all valid URLs to a disk:
7688	//
7689	// -
7690	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7691	// - projects/project/zones/zone/disks/disk
7692	// - zones/zone/disks/disk
7693	TargetDisk string `json:"targetDisk,omitempty"`
7694
7695	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
7696	// unconditionally include in API requests. By default, fields with
7697	// empty values are omitted from API requests. However, any non-pointer,
7698	// non-interface field appearing in ForceSendFields will be sent to the
7699	// server regardless of whether the field is empty or not. This may be
7700	// used to include empty fields in Patch requests.
7701	ForceSendFields []string `json:"-"`
7702
7703	// NullFields is a list of field names (e.g. "DestinationZone") to
7704	// include in API requests with the JSON null value. By default, fields
7705	// with empty values are omitted from API requests. However, any field
7706	// with an empty value appearing in NullFields will be sent to the
7707	// server as null. It is an error if a field in this list has a
7708	// non-empty value. This may be used to include null fields in Patch
7709	// requests.
7710	NullFields []string `json:"-"`
7711}
7712
7713func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
7714	type NoMethod DiskMoveRequest
7715	raw := NoMethod(*s)
7716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7717}
7718
7719// DiskType: Represents a Disk Type resource.
7720//
7721// Google Compute Engine has two Disk Type resources:
7722//
7723// *
7724// [Regional](/compute/docs/reference/rest/{$api_version}/regionDiskTypes
7725// ) *
7726// [Zonal](/compute/docs/reference/rest/{$api_version}/diskTypes)
7727//
7728// You can choose from a variety of disk types based on your needs. For
7729// more information, read Storage options.
7730//
7731// The diskTypes resource represents disk types for a zonal persistent
7732// disk. For more information, read Zonal persistent disks.
7733//
7734// The regionDiskTypes resource represents disk types for a regional
7735// persistent disk. For more information, read Regional persistent
7736// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
7737// {$api_version}.regionDiskTypes ==)
7738type DiskType struct {
7739	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7740	// format.
7741	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7742
7743	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
7744	// GB.
7745	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
7746
7747	// Deprecated: [Output Only] The deprecation status associated with this
7748	// disk type.
7749	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
7750
7751	// Description: [Output Only] An optional description of this resource.
7752	Description string `json:"description,omitempty"`
7753
7754	// Id: [Output Only] The unique identifier for the resource. This
7755	// identifier is defined by the server.
7756	Id uint64 `json:"id,omitempty,string"`
7757
7758	// Kind: [Output Only] Type of the resource. Always compute#diskType for
7759	// disk types.
7760	Kind string `json:"kind,omitempty"`
7761
7762	// Name: [Output Only] Name of the resource.
7763	Name string `json:"name,omitempty"`
7764
7765	// Region: [Output Only] URL of the region where the disk type resides.
7766	// Only applicable for regional resources. You must specify this field
7767	// as part of the HTTP request URL. It is not settable as a field in the
7768	// request body.
7769	Region string `json:"region,omitempty"`
7770
7771	// SelfLink: [Output Only] Server-defined URL for the resource.
7772	SelfLink string `json:"selfLink,omitempty"`
7773
7774	// ValidDiskSize: [Output Only] An optional textual description of the
7775	// valid disk size, such as "10GB-10TB".
7776	ValidDiskSize string `json:"validDiskSize,omitempty"`
7777
7778	// Zone: [Output Only] URL of the zone where the disk type resides. You
7779	// must specify this field as part of the HTTP request URL. It is not
7780	// settable as a field in the request body.
7781	Zone string `json:"zone,omitempty"`
7782
7783	// ServerResponse contains the HTTP response code and headers from the
7784	// server.
7785	googleapi.ServerResponse `json:"-"`
7786
7787	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7788	// to unconditionally include in API requests. By default, fields with
7789	// empty values are omitted from API requests. However, any non-pointer,
7790	// non-interface field appearing in ForceSendFields will be sent to the
7791	// server regardless of whether the field is empty or not. This may be
7792	// used to include empty fields in Patch requests.
7793	ForceSendFields []string `json:"-"`
7794
7795	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7796	// include in API requests with the JSON null value. By default, fields
7797	// with empty values are omitted from API requests. However, any field
7798	// with an empty value appearing in NullFields will be sent to the
7799	// server as null. It is an error if a field in this list has a
7800	// non-empty value. This may be used to include null fields in Patch
7801	// requests.
7802	NullFields []string `json:"-"`
7803}
7804
7805func (s *DiskType) MarshalJSON() ([]byte, error) {
7806	type NoMethod DiskType
7807	raw := NoMethod(*s)
7808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7809}
7810
7811type DiskTypeAggregatedList struct {
7812	// Id: [Output Only] Unique identifier for the resource; defined by the
7813	// server.
7814	Id string `json:"id,omitempty"`
7815
7816	// Items: A list of DiskTypesScopedList resources.
7817	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
7818
7819	// Kind: [Output Only] Type of resource. Always
7820	// compute#diskTypeAggregatedList.
7821	Kind string `json:"kind,omitempty"`
7822
7823	// NextPageToken: [Output Only] This token allows you to get the next
7824	// page of results for list requests. If the number of results is larger
7825	// than maxResults, use the nextPageToken as a value for the query
7826	// parameter pageToken in the next list request. Subsequent list
7827	// requests will have their own nextPageToken to continue paging through
7828	// the results.
7829	NextPageToken string `json:"nextPageToken,omitempty"`
7830
7831	// SelfLink: [Output Only] Server-defined URL for this resource.
7832	SelfLink string `json:"selfLink,omitempty"`
7833
7834	// Warning: [Output Only] Informational warning message.
7835	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
7836
7837	// ServerResponse contains the HTTP response code and headers from the
7838	// server.
7839	googleapi.ServerResponse `json:"-"`
7840
7841	// ForceSendFields is a list of field names (e.g. "Id") to
7842	// unconditionally include in API requests. By default, fields with
7843	// empty values are omitted from API requests. However, any non-pointer,
7844	// non-interface field appearing in ForceSendFields will be sent to the
7845	// server regardless of whether the field is empty or not. This may be
7846	// used to include empty fields in Patch requests.
7847	ForceSendFields []string `json:"-"`
7848
7849	// NullFields is a list of field names (e.g. "Id") to include in API
7850	// requests with the JSON null value. By default, fields with empty
7851	// values are omitted from API requests. However, any field with an
7852	// empty value appearing in NullFields will be sent to the server as
7853	// null. It is an error if a field in this list has a non-empty value.
7854	// This may be used to include null fields in Patch requests.
7855	NullFields []string `json:"-"`
7856}
7857
7858func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
7859	type NoMethod DiskTypeAggregatedList
7860	raw := NoMethod(*s)
7861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7862}
7863
7864// DiskTypeAggregatedListWarning: [Output Only] Informational warning
7865// message.
7866type DiskTypeAggregatedListWarning struct {
7867	// Code: [Output Only] A warning code, if applicable. For example,
7868	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7869	// the response.
7870	//
7871	// Possible values:
7872	//   "CLEANUP_FAILED"
7873	//   "DEPRECATED_RESOURCE_USED"
7874	//   "DEPRECATED_TYPE_USED"
7875	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7876	//   "EXPERIMENTAL_TYPE_USED"
7877	//   "EXTERNAL_API_WARNING"
7878	//   "FIELD_VALUE_OVERRIDEN"
7879	//   "INJECTED_KERNELS_DEPRECATED"
7880	//   "MISSING_TYPE_DEPENDENCY"
7881	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7882	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7883	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7884	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7885	//   "NEXT_HOP_NOT_RUNNING"
7886	//   "NOT_CRITICAL_ERROR"
7887	//   "NO_RESULTS_ON_PAGE"
7888	//   "REQUIRED_TOS_AGREEMENT"
7889	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7890	//   "RESOURCE_NOT_DELETED"
7891	//   "SCHEMA_VALIDATION_IGNORED"
7892	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7893	//   "UNDECLARED_PROPERTIES"
7894	//   "UNREACHABLE"
7895	Code string `json:"code,omitempty"`
7896
7897	// Data: [Output Only] Metadata about this warning in key: value format.
7898	// For example:
7899	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7900	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
7901
7902	// Message: [Output Only] A human-readable description of the warning
7903	// code.
7904	Message string `json:"message,omitempty"`
7905
7906	// ForceSendFields is a list of field names (e.g. "Code") to
7907	// unconditionally include in API requests. By default, fields with
7908	// empty values are omitted from API requests. However, any non-pointer,
7909	// non-interface field appearing in ForceSendFields will be sent to the
7910	// server regardless of whether the field is empty or not. This may be
7911	// used to include empty fields in Patch requests.
7912	ForceSendFields []string `json:"-"`
7913
7914	// NullFields is a list of field names (e.g. "Code") to include in API
7915	// requests with the JSON null value. By default, fields with empty
7916	// values are omitted from API requests. However, any field with an
7917	// empty value appearing in NullFields will be sent to the server as
7918	// null. It is an error if a field in this list has a non-empty value.
7919	// This may be used to include null fields in Patch requests.
7920	NullFields []string `json:"-"`
7921}
7922
7923func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
7924	type NoMethod DiskTypeAggregatedListWarning
7925	raw := NoMethod(*s)
7926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7927}
7928
7929type DiskTypeAggregatedListWarningData struct {
7930	// Key: [Output Only] A key that provides more detail on the warning
7931	// being returned. For example, for warnings where there are no results
7932	// in a list request for a particular zone, this key might be scope and
7933	// the key value might be the zone name. Other examples might be a key
7934	// indicating a deprecated resource and a suggested replacement, or a
7935	// warning about invalid network settings (for example, if an instance
7936	// attempts to perform IP forwarding but is not enabled for IP
7937	// forwarding).
7938	Key string `json:"key,omitempty"`
7939
7940	// Value: [Output Only] A warning data value corresponding to the key.
7941	Value string `json:"value,omitempty"`
7942
7943	// ForceSendFields is a list of field names (e.g. "Key") to
7944	// unconditionally include in API requests. By default, fields with
7945	// empty values are omitted from API requests. However, any non-pointer,
7946	// non-interface field appearing in ForceSendFields will be sent to the
7947	// server regardless of whether the field is empty or not. This may be
7948	// used to include empty fields in Patch requests.
7949	ForceSendFields []string `json:"-"`
7950
7951	// NullFields is a list of field names (e.g. "Key") to include in API
7952	// requests with the JSON null value. By default, fields with empty
7953	// values are omitted from API requests. However, any field with an
7954	// empty value appearing in NullFields will be sent to the server as
7955	// null. It is an error if a field in this list has a non-empty value.
7956	// This may be used to include null fields in Patch requests.
7957	NullFields []string `json:"-"`
7958}
7959
7960func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7961	type NoMethod DiskTypeAggregatedListWarningData
7962	raw := NoMethod(*s)
7963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7964}
7965
7966// DiskTypeList: Contains a list of disk types.
7967type DiskTypeList struct {
7968	// Id: [Output Only] Unique identifier for the resource; defined by the
7969	// server.
7970	Id string `json:"id,omitempty"`
7971
7972	// Items: A list of DiskType resources.
7973	Items []*DiskType `json:"items,omitempty"`
7974
7975	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
7976	// disk types.
7977	Kind string `json:"kind,omitempty"`
7978
7979	// NextPageToken: [Output Only] This token allows you to get the next
7980	// page of results for list requests. If the number of results is larger
7981	// than maxResults, use the nextPageToken as a value for the query
7982	// parameter pageToken in the next list request. Subsequent list
7983	// requests will have their own nextPageToken to continue paging through
7984	// the results.
7985	NextPageToken string `json:"nextPageToken,omitempty"`
7986
7987	// SelfLink: [Output Only] Server-defined URL for this resource.
7988	SelfLink string `json:"selfLink,omitempty"`
7989
7990	// Warning: [Output Only] Informational warning message.
7991	Warning *DiskTypeListWarning `json:"warning,omitempty"`
7992
7993	// ServerResponse contains the HTTP response code and headers from the
7994	// server.
7995	googleapi.ServerResponse `json:"-"`
7996
7997	// ForceSendFields is a list of field names (e.g. "Id") to
7998	// unconditionally include in API requests. By default, fields with
7999	// empty values are omitted from API requests. However, any non-pointer,
8000	// non-interface field appearing in ForceSendFields will be sent to the
8001	// server regardless of whether the field is empty or not. This may be
8002	// used to include empty fields in Patch requests.
8003	ForceSendFields []string `json:"-"`
8004
8005	// NullFields is a list of field names (e.g. "Id") to include in API
8006	// requests with the JSON null value. By default, fields with empty
8007	// values are omitted from API requests. However, any field with an
8008	// empty value appearing in NullFields will be sent to the server as
8009	// null. It is an error if a field in this list has a non-empty value.
8010	// This may be used to include null fields in Patch requests.
8011	NullFields []string `json:"-"`
8012}
8013
8014func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8015	type NoMethod DiskTypeList
8016	raw := NoMethod(*s)
8017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8018}
8019
8020// DiskTypeListWarning: [Output Only] Informational warning message.
8021type DiskTypeListWarning struct {
8022	// Code: [Output Only] A warning code, if applicable. For example,
8023	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8024	// the response.
8025	//
8026	// Possible values:
8027	//   "CLEANUP_FAILED"
8028	//   "DEPRECATED_RESOURCE_USED"
8029	//   "DEPRECATED_TYPE_USED"
8030	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8031	//   "EXPERIMENTAL_TYPE_USED"
8032	//   "EXTERNAL_API_WARNING"
8033	//   "FIELD_VALUE_OVERRIDEN"
8034	//   "INJECTED_KERNELS_DEPRECATED"
8035	//   "MISSING_TYPE_DEPENDENCY"
8036	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8037	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8038	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8039	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8040	//   "NEXT_HOP_NOT_RUNNING"
8041	//   "NOT_CRITICAL_ERROR"
8042	//   "NO_RESULTS_ON_PAGE"
8043	//   "REQUIRED_TOS_AGREEMENT"
8044	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8045	//   "RESOURCE_NOT_DELETED"
8046	//   "SCHEMA_VALIDATION_IGNORED"
8047	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8048	//   "UNDECLARED_PROPERTIES"
8049	//   "UNREACHABLE"
8050	Code string `json:"code,omitempty"`
8051
8052	// Data: [Output Only] Metadata about this warning in key: value format.
8053	// For example:
8054	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8055	Data []*DiskTypeListWarningData `json:"data,omitempty"`
8056
8057	// Message: [Output Only] A human-readable description of the warning
8058	// code.
8059	Message string `json:"message,omitempty"`
8060
8061	// ForceSendFields is a list of field names (e.g. "Code") to
8062	// unconditionally include in API requests. By default, fields with
8063	// empty values are omitted from API requests. However, any non-pointer,
8064	// non-interface field appearing in ForceSendFields will be sent to the
8065	// server regardless of whether the field is empty or not. This may be
8066	// used to include empty fields in Patch requests.
8067	ForceSendFields []string `json:"-"`
8068
8069	// NullFields is a list of field names (e.g. "Code") to include in API
8070	// requests with the JSON null value. By default, fields with empty
8071	// values are omitted from API requests. However, any field with an
8072	// empty value appearing in NullFields will be sent to the server as
8073	// null. It is an error if a field in this list has a non-empty value.
8074	// This may be used to include null fields in Patch requests.
8075	NullFields []string `json:"-"`
8076}
8077
8078func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8079	type NoMethod DiskTypeListWarning
8080	raw := NoMethod(*s)
8081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8082}
8083
8084type DiskTypeListWarningData struct {
8085	// Key: [Output Only] A key that provides more detail on the warning
8086	// being returned. For example, for warnings where there are no results
8087	// in a list request for a particular zone, this key might be scope and
8088	// the key value might be the zone name. Other examples might be a key
8089	// indicating a deprecated resource and a suggested replacement, or a
8090	// warning about invalid network settings (for example, if an instance
8091	// attempts to perform IP forwarding but is not enabled for IP
8092	// forwarding).
8093	Key string `json:"key,omitempty"`
8094
8095	// Value: [Output Only] A warning data value corresponding to the key.
8096	Value string `json:"value,omitempty"`
8097
8098	// ForceSendFields is a list of field names (e.g. "Key") to
8099	// unconditionally include in API requests. By default, fields with
8100	// empty values are omitted from API requests. However, any non-pointer,
8101	// non-interface field appearing in ForceSendFields will be sent to the
8102	// server regardless of whether the field is empty or not. This may be
8103	// used to include empty fields in Patch requests.
8104	ForceSendFields []string `json:"-"`
8105
8106	// NullFields is a list of field names (e.g. "Key") to include in API
8107	// requests with the JSON null value. By default, fields with empty
8108	// values are omitted from API requests. However, any field with an
8109	// empty value appearing in NullFields will be sent to the server as
8110	// null. It is an error if a field in this list has a non-empty value.
8111	// This may be used to include null fields in Patch requests.
8112	NullFields []string `json:"-"`
8113}
8114
8115func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8116	type NoMethod DiskTypeListWarningData
8117	raw := NoMethod(*s)
8118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8119}
8120
8121type DiskTypesScopedList struct {
8122	// DiskTypes: [Output Only] A list of disk types contained in this
8123	// scope.
8124	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8125
8126	// Warning: [Output Only] Informational warning which replaces the list
8127	// of disk types when the list is empty.
8128	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8129
8130	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8131	// unconditionally include in API requests. By default, fields with
8132	// empty values are omitted from API requests. However, any non-pointer,
8133	// non-interface field appearing in ForceSendFields will be sent to the
8134	// server regardless of whether the field is empty or not. This may be
8135	// used to include empty fields in Patch requests.
8136	ForceSendFields []string `json:"-"`
8137
8138	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8139	// API requests with the JSON null value. By default, fields with empty
8140	// values are omitted from API requests. However, any field with an
8141	// empty value appearing in NullFields will be sent to the server as
8142	// null. It is an error if a field in this list has a non-empty value.
8143	// This may be used to include null fields in Patch requests.
8144	NullFields []string `json:"-"`
8145}
8146
8147func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
8148	type NoMethod DiskTypesScopedList
8149	raw := NoMethod(*s)
8150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8151}
8152
8153// DiskTypesScopedListWarning: [Output Only] Informational warning which
8154// replaces the list of disk types when the list is empty.
8155type DiskTypesScopedListWarning struct {
8156	// Code: [Output Only] A warning code, if applicable. For example,
8157	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8158	// the response.
8159	//
8160	// Possible values:
8161	//   "CLEANUP_FAILED"
8162	//   "DEPRECATED_RESOURCE_USED"
8163	//   "DEPRECATED_TYPE_USED"
8164	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8165	//   "EXPERIMENTAL_TYPE_USED"
8166	//   "EXTERNAL_API_WARNING"
8167	//   "FIELD_VALUE_OVERRIDEN"
8168	//   "INJECTED_KERNELS_DEPRECATED"
8169	//   "MISSING_TYPE_DEPENDENCY"
8170	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8171	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8172	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8173	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8174	//   "NEXT_HOP_NOT_RUNNING"
8175	//   "NOT_CRITICAL_ERROR"
8176	//   "NO_RESULTS_ON_PAGE"
8177	//   "REQUIRED_TOS_AGREEMENT"
8178	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8179	//   "RESOURCE_NOT_DELETED"
8180	//   "SCHEMA_VALIDATION_IGNORED"
8181	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8182	//   "UNDECLARED_PROPERTIES"
8183	//   "UNREACHABLE"
8184	Code string `json:"code,omitempty"`
8185
8186	// Data: [Output Only] Metadata about this warning in key: value format.
8187	// For example:
8188	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8189	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
8190
8191	// Message: [Output Only] A human-readable description of the warning
8192	// code.
8193	Message string `json:"message,omitempty"`
8194
8195	// ForceSendFields is a list of field names (e.g. "Code") to
8196	// unconditionally include in API requests. By default, fields with
8197	// empty values are omitted from API requests. However, any non-pointer,
8198	// non-interface field appearing in ForceSendFields will be sent to the
8199	// server regardless of whether the field is empty or not. This may be
8200	// used to include empty fields in Patch requests.
8201	ForceSendFields []string `json:"-"`
8202
8203	// NullFields is a list of field names (e.g. "Code") to include in API
8204	// requests with the JSON null value. By default, fields with empty
8205	// values are omitted from API requests. However, any field with an
8206	// empty value appearing in NullFields will be sent to the server as
8207	// null. It is an error if a field in this list has a non-empty value.
8208	// This may be used to include null fields in Patch requests.
8209	NullFields []string `json:"-"`
8210}
8211
8212func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
8213	type NoMethod DiskTypesScopedListWarning
8214	raw := NoMethod(*s)
8215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8216}
8217
8218type DiskTypesScopedListWarningData struct {
8219	// Key: [Output Only] A key that provides more detail on the warning
8220	// being returned. For example, for warnings where there are no results
8221	// in a list request for a particular zone, this key might be scope and
8222	// the key value might be the zone name. Other examples might be a key
8223	// indicating a deprecated resource and a suggested replacement, or a
8224	// warning about invalid network settings (for example, if an instance
8225	// attempts to perform IP forwarding but is not enabled for IP
8226	// forwarding).
8227	Key string `json:"key,omitempty"`
8228
8229	// Value: [Output Only] A warning data value corresponding to the key.
8230	Value string `json:"value,omitempty"`
8231
8232	// ForceSendFields is a list of field names (e.g. "Key") to
8233	// unconditionally include in API requests. By default, fields with
8234	// empty values are omitted from API requests. However, any non-pointer,
8235	// non-interface field appearing in ForceSendFields will be sent to the
8236	// server regardless of whether the field is empty or not. This may be
8237	// used to include empty fields in Patch requests.
8238	ForceSendFields []string `json:"-"`
8239
8240	// NullFields is a list of field names (e.g. "Key") to include in API
8241	// requests with the JSON null value. By default, fields with empty
8242	// values are omitted from API requests. However, any field with an
8243	// empty value appearing in NullFields will be sent to the server as
8244	// null. It is an error if a field in this list has a non-empty value.
8245	// This may be used to include null fields in Patch requests.
8246	NullFields []string `json:"-"`
8247}
8248
8249func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
8250	type NoMethod DiskTypesScopedListWarningData
8251	raw := NoMethod(*s)
8252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8253}
8254
8255type DisksAddResourcePoliciesRequest struct {
8256	// ResourcePolicies: Resource policies to be added to this disk.
8257	// Currently you can only specify one policy here.
8258	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8259
8260	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8261	// unconditionally include in API requests. By default, fields with
8262	// empty values are omitted from API requests. However, any non-pointer,
8263	// non-interface field appearing in ForceSendFields will be sent to the
8264	// server regardless of whether the field is empty or not. This may be
8265	// used to include empty fields in Patch requests.
8266	ForceSendFields []string `json:"-"`
8267
8268	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8269	// include in API requests with the JSON null value. By default, fields
8270	// with empty values are omitted from API requests. However, any field
8271	// with an empty value appearing in NullFields will be sent to the
8272	// server as null. It is an error if a field in this list has a
8273	// non-empty value. This may be used to include null fields in Patch
8274	// requests.
8275	NullFields []string `json:"-"`
8276}
8277
8278func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8279	type NoMethod DisksAddResourcePoliciesRequest
8280	raw := NoMethod(*s)
8281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8282}
8283
8284type DisksRemoveResourcePoliciesRequest struct {
8285	// ResourcePolicies: Resource policies to be removed from this disk.
8286	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8287
8288	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8289	// unconditionally include in API requests. By default, fields with
8290	// empty values are omitted from API requests. However, any non-pointer,
8291	// non-interface field appearing in ForceSendFields will be sent to the
8292	// server regardless of whether the field is empty or not. This may be
8293	// used to include empty fields in Patch requests.
8294	ForceSendFields []string `json:"-"`
8295
8296	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8297	// include in API requests with the JSON null value. By default, fields
8298	// with empty values are omitted from API requests. However, any field
8299	// with an empty value appearing in NullFields will be sent to the
8300	// server as null. It is an error if a field in this list has a
8301	// non-empty value. This may be used to include null fields in Patch
8302	// requests.
8303	NullFields []string `json:"-"`
8304}
8305
8306func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8307	type NoMethod DisksRemoveResourcePoliciesRequest
8308	raw := NoMethod(*s)
8309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8310}
8311
8312type DisksResizeRequest struct {
8313	// SizeGb: The new size of the persistent disk, which is specified in
8314	// GB.
8315	SizeGb int64 `json:"sizeGb,omitempty,string"`
8316
8317	// ForceSendFields is a list of field names (e.g. "SizeGb") to
8318	// unconditionally include in API requests. By default, fields with
8319	// empty values are omitted from API requests. However, any non-pointer,
8320	// non-interface field appearing in ForceSendFields will be sent to the
8321	// server regardless of whether the field is empty or not. This may be
8322	// used to include empty fields in Patch requests.
8323	ForceSendFields []string `json:"-"`
8324
8325	// NullFields is a list of field names (e.g. "SizeGb") to include in API
8326	// requests with the JSON null value. By default, fields with empty
8327	// values are omitted from API requests. However, any field with an
8328	// empty value appearing in NullFields will be sent to the server as
8329	// null. It is an error if a field in this list has a non-empty value.
8330	// This may be used to include null fields in Patch requests.
8331	NullFields []string `json:"-"`
8332}
8333
8334func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
8335	type NoMethod DisksResizeRequest
8336	raw := NoMethod(*s)
8337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8338}
8339
8340type DisksScopedList struct {
8341	// Disks: [Output Only] A list of disks contained in this scope.
8342	Disks []*Disk `json:"disks,omitempty"`
8343
8344	// Warning: [Output Only] Informational warning which replaces the list
8345	// of disks when the list is empty.
8346	Warning *DisksScopedListWarning `json:"warning,omitempty"`
8347
8348	// ForceSendFields is a list of field names (e.g. "Disks") to
8349	// unconditionally include in API requests. By default, fields with
8350	// empty values are omitted from API requests. However, any non-pointer,
8351	// non-interface field appearing in ForceSendFields will be sent to the
8352	// server regardless of whether the field is empty or not. This may be
8353	// used to include empty fields in Patch requests.
8354	ForceSendFields []string `json:"-"`
8355
8356	// NullFields is a list of field names (e.g. "Disks") to include in API
8357	// requests with the JSON null value. By default, fields with empty
8358	// values are omitted from API requests. However, any field with an
8359	// empty value appearing in NullFields will be sent to the server as
8360	// null. It is an error if a field in this list has a non-empty value.
8361	// This may be used to include null fields in Patch requests.
8362	NullFields []string `json:"-"`
8363}
8364
8365func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
8366	type NoMethod DisksScopedList
8367	raw := NoMethod(*s)
8368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8369}
8370
8371// DisksScopedListWarning: [Output Only] Informational warning which
8372// replaces the list of disks when the list is empty.
8373type DisksScopedListWarning struct {
8374	// Code: [Output Only] A warning code, if applicable. For example,
8375	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8376	// the response.
8377	//
8378	// Possible values:
8379	//   "CLEANUP_FAILED"
8380	//   "DEPRECATED_RESOURCE_USED"
8381	//   "DEPRECATED_TYPE_USED"
8382	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8383	//   "EXPERIMENTAL_TYPE_USED"
8384	//   "EXTERNAL_API_WARNING"
8385	//   "FIELD_VALUE_OVERRIDEN"
8386	//   "INJECTED_KERNELS_DEPRECATED"
8387	//   "MISSING_TYPE_DEPENDENCY"
8388	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8389	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8390	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8391	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8392	//   "NEXT_HOP_NOT_RUNNING"
8393	//   "NOT_CRITICAL_ERROR"
8394	//   "NO_RESULTS_ON_PAGE"
8395	//   "REQUIRED_TOS_AGREEMENT"
8396	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8397	//   "RESOURCE_NOT_DELETED"
8398	//   "SCHEMA_VALIDATION_IGNORED"
8399	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8400	//   "UNDECLARED_PROPERTIES"
8401	//   "UNREACHABLE"
8402	Code string `json:"code,omitempty"`
8403
8404	// Data: [Output Only] Metadata about this warning in key: value format.
8405	// For example:
8406	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8407	Data []*DisksScopedListWarningData `json:"data,omitempty"`
8408
8409	// Message: [Output Only] A human-readable description of the warning
8410	// code.
8411	Message string `json:"message,omitempty"`
8412
8413	// ForceSendFields is a list of field names (e.g. "Code") to
8414	// unconditionally include in API requests. By default, fields with
8415	// empty values are omitted from API requests. However, any non-pointer,
8416	// non-interface field appearing in ForceSendFields will be sent to the
8417	// server regardless of whether the field is empty or not. This may be
8418	// used to include empty fields in Patch requests.
8419	ForceSendFields []string `json:"-"`
8420
8421	// NullFields is a list of field names (e.g. "Code") to include in API
8422	// requests with the JSON null value. By default, fields with empty
8423	// values are omitted from API requests. However, any field with an
8424	// empty value appearing in NullFields will be sent to the server as
8425	// null. It is an error if a field in this list has a non-empty value.
8426	// This may be used to include null fields in Patch requests.
8427	NullFields []string `json:"-"`
8428}
8429
8430func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
8431	type NoMethod DisksScopedListWarning
8432	raw := NoMethod(*s)
8433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8434}
8435
8436type DisksScopedListWarningData struct {
8437	// Key: [Output Only] A key that provides more detail on the warning
8438	// being returned. For example, for warnings where there are no results
8439	// in a list request for a particular zone, this key might be scope and
8440	// the key value might be the zone name. Other examples might be a key
8441	// indicating a deprecated resource and a suggested replacement, or a
8442	// warning about invalid network settings (for example, if an instance
8443	// attempts to perform IP forwarding but is not enabled for IP
8444	// forwarding).
8445	Key string `json:"key,omitempty"`
8446
8447	// Value: [Output Only] A warning data value corresponding to the key.
8448	Value string `json:"value,omitempty"`
8449
8450	// ForceSendFields is a list of field names (e.g. "Key") to
8451	// unconditionally include in API requests. By default, fields with
8452	// empty values are omitted from API requests. However, any non-pointer,
8453	// non-interface field appearing in ForceSendFields will be sent to the
8454	// server regardless of whether the field is empty or not. This may be
8455	// used to include empty fields in Patch requests.
8456	ForceSendFields []string `json:"-"`
8457
8458	// NullFields is a list of field names (e.g. "Key") to include in API
8459	// requests with the JSON null value. By default, fields with empty
8460	// values are omitted from API requests. However, any field with an
8461	// empty value appearing in NullFields will be sent to the server as
8462	// null. It is an error if a field in this list has a non-empty value.
8463	// This may be used to include null fields in Patch requests.
8464	NullFields []string `json:"-"`
8465}
8466
8467func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
8468	type NoMethod DisksScopedListWarningData
8469	raw := NoMethod(*s)
8470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8471}
8472
8473// DisplayDevice: A set of Display Device options
8474type DisplayDevice struct {
8475	// EnableDisplay: Defines whether the instance has Display enabled.
8476	EnableDisplay bool `json:"enableDisplay,omitempty"`
8477
8478	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
8479	// unconditionally include in API requests. By default, fields with
8480	// empty values are omitted from API requests. However, any non-pointer,
8481	// non-interface field appearing in ForceSendFields will be sent to the
8482	// server regardless of whether the field is empty or not. This may be
8483	// used to include empty fields in Patch requests.
8484	ForceSendFields []string `json:"-"`
8485
8486	// NullFields is a list of field names (e.g. "EnableDisplay") to include
8487	// in API requests with the JSON null value. By default, fields with
8488	// empty values are omitted from API requests. However, any field with
8489	// an empty value appearing in NullFields will be sent to the server as
8490	// null. It is an error if a field in this list has a non-empty value.
8491	// This may be used to include null fields in Patch requests.
8492	NullFields []string `json:"-"`
8493}
8494
8495func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
8496	type NoMethod DisplayDevice
8497	raw := NoMethod(*s)
8498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8499}
8500
8501type DistributionPolicy struct {
8502	// Zones: Zones where the regional managed instance group will create
8503	// and manage instances.
8504	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
8505
8506	// ForceSendFields is a list of field names (e.g. "Zones") to
8507	// unconditionally include in API requests. By default, fields with
8508	// empty values are omitted from API requests. However, any non-pointer,
8509	// non-interface field appearing in ForceSendFields will be sent to the
8510	// server regardless of whether the field is empty or not. This may be
8511	// used to include empty fields in Patch requests.
8512	ForceSendFields []string `json:"-"`
8513
8514	// NullFields is a list of field names (e.g. "Zones") to include in API
8515	// requests with the JSON null value. By default, fields with empty
8516	// values are omitted from API requests. However, any field with an
8517	// empty value appearing in NullFields will be sent to the server as
8518	// null. It is an error if a field in this list has a non-empty value.
8519	// This may be used to include null fields in Patch requests.
8520	NullFields []string `json:"-"`
8521}
8522
8523func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
8524	type NoMethod DistributionPolicy
8525	raw := NoMethod(*s)
8526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8527}
8528
8529type DistributionPolicyZoneConfiguration struct {
8530	// Zone: The URL of the zone. The zone must exist in the region where
8531	// the managed instance group is located.
8532	Zone string `json:"zone,omitempty"`
8533
8534	// ForceSendFields is a list of field names (e.g. "Zone") to
8535	// unconditionally include in API requests. By default, fields with
8536	// empty values are omitted from API requests. However, any non-pointer,
8537	// non-interface field appearing in ForceSendFields will be sent to the
8538	// server regardless of whether the field is empty or not. This may be
8539	// used to include empty fields in Patch requests.
8540	ForceSendFields []string `json:"-"`
8541
8542	// NullFields is a list of field names (e.g. "Zone") to include in API
8543	// requests with the JSON null value. By default, fields with empty
8544	// values are omitted from API requests. However, any field with an
8545	// empty value appearing in NullFields will be sent to the server as
8546	// null. It is an error if a field in this list has a non-empty value.
8547	// This may be used to include null fields in Patch requests.
8548	NullFields []string `json:"-"`
8549}
8550
8551func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
8552	type NoMethod DistributionPolicyZoneConfiguration
8553	raw := NoMethod(*s)
8554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8555}
8556
8557// Duration: A Duration represents a fixed-length span of time
8558// represented as a count of seconds and fractions of seconds at
8559// nanosecond resolution. It is independent of any calendar and concepts
8560// like "day" or "month". Range is approximately 10,000 years.
8561type Duration struct {
8562	// Nanos: Span of time that's a fraction of a second at nanosecond
8563	// resolution. Durations less than one second are represented with a 0
8564	// `seconds` field and a positive `nanos` field. Must be from 0 to
8565	// 999,999,999 inclusive.
8566	Nanos int64 `json:"nanos,omitempty"`
8567
8568	// Seconds: Span of time at a resolution of a second. Must be from 0 to
8569	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
8570	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
8571	Seconds int64 `json:"seconds,omitempty,string"`
8572
8573	// ForceSendFields is a list of field names (e.g. "Nanos") to
8574	// unconditionally include in API requests. By default, fields with
8575	// empty values are omitted from API requests. However, any non-pointer,
8576	// non-interface field appearing in ForceSendFields will be sent to the
8577	// server regardless of whether the field is empty or not. This may be
8578	// used to include empty fields in Patch requests.
8579	ForceSendFields []string `json:"-"`
8580
8581	// NullFields is a list of field names (e.g. "Nanos") to include in API
8582	// requests with the JSON null value. By default, fields with empty
8583	// values are omitted from API requests. However, any field with an
8584	// empty value appearing in NullFields will be sent to the server as
8585	// null. It is an error if a field in this list has a non-empty value.
8586	// This may be used to include null fields in Patch requests.
8587	NullFields []string `json:"-"`
8588}
8589
8590func (s *Duration) MarshalJSON() ([]byte, error) {
8591	type NoMethod Duration
8592	raw := NoMethod(*s)
8593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8594}
8595
8596type ExchangedPeeringRoute struct {
8597	// DestRange: The destination range of the route.
8598	DestRange string `json:"destRange,omitempty"`
8599
8600	// Imported: True if the peering route has been imported from a peer.
8601	// The actual import happens if the field
8602	// networkPeering.importCustomRoutes is true for this network, and
8603	// networkPeering.exportCustomRoutes is true for the peer network, and
8604	// the import does not result in a route conflict.
8605	Imported bool `json:"imported,omitempty"`
8606
8607	// NextHopRegion: The region of peering route next hop, only applies to
8608	// dynamic routes.
8609	NextHopRegion string `json:"nextHopRegion,omitempty"`
8610
8611	// Priority: The priority of the peering route.
8612	Priority int64 `json:"priority,omitempty"`
8613
8614	// Type: The type of the peering route.
8615	//
8616	// Possible values:
8617	//   "DYNAMIC_PEERING_ROUTE"
8618	//   "STATIC_PEERING_ROUTE"
8619	//   "SUBNET_PEERING_ROUTE"
8620	Type string `json:"type,omitempty"`
8621
8622	// ForceSendFields is a list of field names (e.g. "DestRange") to
8623	// unconditionally include in API requests. By default, fields with
8624	// empty values are omitted from API requests. However, any non-pointer,
8625	// non-interface field appearing in ForceSendFields will be sent to the
8626	// server regardless of whether the field is empty or not. This may be
8627	// used to include empty fields in Patch requests.
8628	ForceSendFields []string `json:"-"`
8629
8630	// NullFields is a list of field names (e.g. "DestRange") to include in
8631	// API requests with the JSON null value. By default, fields with empty
8632	// values are omitted from API requests. However, any field with an
8633	// empty value appearing in NullFields will be sent to the server as
8634	// null. It is an error if a field in this list has a non-empty value.
8635	// This may be used to include null fields in Patch requests.
8636	NullFields []string `json:"-"`
8637}
8638
8639func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
8640	type NoMethod ExchangedPeeringRoute
8641	raw := NoMethod(*s)
8642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8643}
8644
8645type ExchangedPeeringRoutesList struct {
8646	// Id: [Output Only] Unique identifier for the resource; defined by the
8647	// server.
8648	Id string `json:"id,omitempty"`
8649
8650	// Items: A list of ExchangedPeeringRoute resources.
8651	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
8652
8653	// Kind: [Output Only] Type of resource. Always
8654	// compute#exchangedPeeringRoutesList for exchanged peering routes
8655	// lists.
8656	Kind string `json:"kind,omitempty"`
8657
8658	// NextPageToken: [Output Only] This token allows you to get the next
8659	// page of results for list requests. If the number of results is larger
8660	// than maxResults, use the nextPageToken as a value for the query
8661	// parameter pageToken in the next list request. Subsequent list
8662	// requests will have their own nextPageToken to continue paging through
8663	// the results.
8664	NextPageToken string `json:"nextPageToken,omitempty"`
8665
8666	// SelfLink: [Output Only] Server-defined URL for this resource.
8667	SelfLink string `json:"selfLink,omitempty"`
8668
8669	// Warning: [Output Only] Informational warning message.
8670	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
8671
8672	// ServerResponse contains the HTTP response code and headers from the
8673	// server.
8674	googleapi.ServerResponse `json:"-"`
8675
8676	// ForceSendFields is a list of field names (e.g. "Id") to
8677	// unconditionally include in API requests. By default, fields with
8678	// empty values are omitted from API requests. However, any non-pointer,
8679	// non-interface field appearing in ForceSendFields will be sent to the
8680	// server regardless of whether the field is empty or not. This may be
8681	// used to include empty fields in Patch requests.
8682	ForceSendFields []string `json:"-"`
8683
8684	// NullFields is a list of field names (e.g. "Id") to include in API
8685	// requests with the JSON null value. By default, fields with empty
8686	// values are omitted from API requests. However, any field with an
8687	// empty value appearing in NullFields will be sent to the server as
8688	// null. It is an error if a field in this list has a non-empty value.
8689	// This may be used to include null fields in Patch requests.
8690	NullFields []string `json:"-"`
8691}
8692
8693func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
8694	type NoMethod ExchangedPeeringRoutesList
8695	raw := NoMethod(*s)
8696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8697}
8698
8699// ExchangedPeeringRoutesListWarning: [Output Only] Informational
8700// warning message.
8701type ExchangedPeeringRoutesListWarning struct {
8702	// Code: [Output Only] A warning code, if applicable. For example,
8703	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8704	// the response.
8705	//
8706	// Possible values:
8707	//   "CLEANUP_FAILED"
8708	//   "DEPRECATED_RESOURCE_USED"
8709	//   "DEPRECATED_TYPE_USED"
8710	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8711	//   "EXPERIMENTAL_TYPE_USED"
8712	//   "EXTERNAL_API_WARNING"
8713	//   "FIELD_VALUE_OVERRIDEN"
8714	//   "INJECTED_KERNELS_DEPRECATED"
8715	//   "MISSING_TYPE_DEPENDENCY"
8716	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8717	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8718	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8719	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8720	//   "NEXT_HOP_NOT_RUNNING"
8721	//   "NOT_CRITICAL_ERROR"
8722	//   "NO_RESULTS_ON_PAGE"
8723	//   "REQUIRED_TOS_AGREEMENT"
8724	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8725	//   "RESOURCE_NOT_DELETED"
8726	//   "SCHEMA_VALIDATION_IGNORED"
8727	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8728	//   "UNDECLARED_PROPERTIES"
8729	//   "UNREACHABLE"
8730	Code string `json:"code,omitempty"`
8731
8732	// Data: [Output Only] Metadata about this warning in key: value format.
8733	// For example:
8734	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8735	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
8736
8737	// Message: [Output Only] A human-readable description of the warning
8738	// code.
8739	Message string `json:"message,omitempty"`
8740
8741	// ForceSendFields is a list of field names (e.g. "Code") to
8742	// unconditionally include in API requests. By default, fields with
8743	// empty values are omitted from API requests. However, any non-pointer,
8744	// non-interface field appearing in ForceSendFields will be sent to the
8745	// server regardless of whether the field is empty or not. This may be
8746	// used to include empty fields in Patch requests.
8747	ForceSendFields []string `json:"-"`
8748
8749	// NullFields is a list of field names (e.g. "Code") to include in API
8750	// requests with the JSON null value. By default, fields with empty
8751	// values are omitted from API requests. However, any field with an
8752	// empty value appearing in NullFields will be sent to the server as
8753	// null. It is an error if a field in this list has a non-empty value.
8754	// This may be used to include null fields in Patch requests.
8755	NullFields []string `json:"-"`
8756}
8757
8758func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
8759	type NoMethod ExchangedPeeringRoutesListWarning
8760	raw := NoMethod(*s)
8761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8762}
8763
8764type ExchangedPeeringRoutesListWarningData struct {
8765	// Key: [Output Only] A key that provides more detail on the warning
8766	// being returned. For example, for warnings where there are no results
8767	// in a list request for a particular zone, this key might be scope and
8768	// the key value might be the zone name. Other examples might be a key
8769	// indicating a deprecated resource and a suggested replacement, or a
8770	// warning about invalid network settings (for example, if an instance
8771	// attempts to perform IP forwarding but is not enabled for IP
8772	// forwarding).
8773	Key string `json:"key,omitempty"`
8774
8775	// Value: [Output Only] A warning data value corresponding to the key.
8776	Value string `json:"value,omitempty"`
8777
8778	// ForceSendFields is a list of field names (e.g. "Key") to
8779	// unconditionally include in API requests. By default, fields with
8780	// empty values are omitted from API requests. However, any non-pointer,
8781	// non-interface field appearing in ForceSendFields will be sent to the
8782	// server regardless of whether the field is empty or not. This may be
8783	// used to include empty fields in Patch requests.
8784	ForceSendFields []string `json:"-"`
8785
8786	// NullFields is a list of field names (e.g. "Key") to include in API
8787	// requests with the JSON null value. By default, fields with empty
8788	// values are omitted from API requests. However, any field with an
8789	// empty value appearing in NullFields will be sent to the server as
8790	// null. It is an error if a field in this list has a non-empty value.
8791	// This may be used to include null fields in Patch requests.
8792	NullFields []string `json:"-"`
8793}
8794
8795func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
8796	type NoMethod ExchangedPeeringRoutesListWarningData
8797	raw := NoMethod(*s)
8798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8799}
8800
8801// Expr: Represents a textual expression in the Common Expression
8802// Language (CEL) syntax. CEL is a C-like expression language. The
8803// syntax and semantics of CEL are documented at
8804// https://github.com/google/cel-spec.
8805//
8806// Example (Comparison):
8807//
8808// title: "Summary size limit" description: "Determines if a summary is
8809// less than 100 chars" expression: "document.summary.size() <
8810// 100"
8811//
8812// Example (Equality):
8813//
8814// title: "Requestor is owner" description: "Determines if requestor is
8815// the document owner" expression: "document.owner ==
8816// request.auth.claims.email"
8817//
8818// Example (Logic):
8819//
8820// title: "Public documents" description: "Determine whether the
8821// document should be publicly visible" expression: "document.type !=
8822// 'private' && document.type != 'internal'"
8823//
8824// Example (Data Manipulation):
8825//
8826// title: "Notification string" description: "Create a notification
8827// string with a timestamp." expression: "'New message received at ' +
8828// string(document.create_time)"
8829//
8830// The exact variables and functions that may be referenced within an
8831// expression are determined by the service that evaluates it. See the
8832// service documentation for additional information.
8833type Expr struct {
8834	// Description: Optional. Description of the expression. This is a
8835	// longer text which describes the expression, e.g. when hovered over it
8836	// in a UI.
8837	Description string `json:"description,omitempty"`
8838
8839	// Expression: Textual representation of an expression in Common
8840	// Expression Language syntax.
8841	Expression string `json:"expression,omitempty"`
8842
8843	// Location: Optional. String indicating the location of the expression
8844	// for error reporting, e.g. a file name and a position in the file.
8845	Location string `json:"location,omitempty"`
8846
8847	// Title: Optional. Title for the expression, i.e. a short string
8848	// describing its purpose. This can be used e.g. in UIs which allow to
8849	// enter the expression.
8850	Title string `json:"title,omitempty"`
8851
8852	// ForceSendFields is a list of field names (e.g. "Description") to
8853	// unconditionally include in API requests. By default, fields with
8854	// empty values are omitted from API requests. However, any non-pointer,
8855	// non-interface field appearing in ForceSendFields will be sent to the
8856	// server regardless of whether the field is empty or not. This may be
8857	// used to include empty fields in Patch requests.
8858	ForceSendFields []string `json:"-"`
8859
8860	// NullFields is a list of field names (e.g. "Description") to include
8861	// in API requests with the JSON null value. By default, fields with
8862	// empty values are omitted from API requests. However, any field with
8863	// an empty value appearing in NullFields will be sent to the server as
8864	// null. It is an error if a field in this list has a non-empty value.
8865	// This may be used to include null fields in Patch requests.
8866	NullFields []string `json:"-"`
8867}
8868
8869func (s *Expr) MarshalJSON() ([]byte, error) {
8870	type NoMethod Expr
8871	raw := NoMethod(*s)
8872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8873}
8874
8875// ExternalVpnGateway: Represents an external VPN gateway.
8876//
8877// External VPN gateway is the on-premises VPN gateway(s) or another
8878// cloud provider's VPN gateway that connects to your Google Cloud VPN
8879// gateway.
8880//
8881// To create a highly available VPN from Google Cloud Platform to your
8882// VPN gateway or another cloud provider's VPN gateway, you must create
8883// a external VPN gateway resource with information about the other
8884// gateway.
8885//
8886// For more information about using external VPN gateways, see  Creating
8887// an HA VPN gateway and tunnel pair to a peer VPN. (== resource_for
8888// {$api_version}.externalVpnGateways ==)
8889type ExternalVpnGateway struct {
8890	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8891	// format.
8892	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8893
8894	// Description: An optional description of this resource. Provide this
8895	// property when you create the resource.
8896	Description string `json:"description,omitempty"`
8897
8898	// Id: [Output Only] The unique identifier for the resource. This
8899	// identifier is defined by the server.
8900	Id *uint64 `json:"id,omitempty,string"`
8901
8902	// Interfaces: List of interfaces for this external VPN gateway.
8903	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
8904
8905	// Kind: [Output Only] Type of the resource. Always
8906	// compute#externalVpnGateway for externalVpnGateways.
8907	Kind string `json:"kind,omitempty"`
8908
8909	// LabelFingerprint: A fingerprint for the labels being applied to this
8910	// ExternalVpnGateway, which is essentially a hash of the labels set
8911	// used for optimistic locking. The fingerprint is initially generated
8912	// by Compute Engine and changes after every request to modify or update
8913	// labels. You must always provide an up-to-date fingerprint hash in
8914	// order to update or change labels, otherwise the request will fail
8915	// with error 412 conditionNotMet.
8916	//
8917	// To see the latest fingerprint, make a get() request to retrieve an
8918	// ExternalVpnGateway.
8919	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8920
8921	// Labels: Labels for this resource. These can only be added or modified
8922	// by the setLabels method. Each label key/value pair must comply with
8923	// RFC1035. Label values may be empty.
8924	Labels map[string]string `json:"labels,omitempty"`
8925
8926	// Name: Name of the resource. Provided by the client when the resource
8927	// is created. The name must be 1-63 characters long, and comply with
8928	// RFC1035. Specifically, the name must be 1-63 characters long and
8929	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
8930	// the first character must be a lowercase letter, and all following
8931	// characters must be a dash, lowercase letter, or digit, except the
8932	// last character, which cannot be a dash.
8933	Name string `json:"name,omitempty"`
8934
8935	// RedundancyType: Indicates the user-supplied redundancy type of this
8936	// external VPN gateway.
8937	//
8938	// Possible values:
8939	//   "FOUR_IPS_REDUNDANCY"
8940	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
8941	//   "TWO_IPS_REDUNDANCY"
8942	RedundancyType string `json:"redundancyType,omitempty"`
8943
8944	// SelfLink: [Output Only] Server-defined URL for the resource.
8945	SelfLink string `json:"selfLink,omitempty"`
8946
8947	// ServerResponse contains the HTTP response code and headers from the
8948	// server.
8949	googleapi.ServerResponse `json:"-"`
8950
8951	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8952	// to unconditionally include in API requests. By default, fields with
8953	// empty values are omitted from API requests. However, any non-pointer,
8954	// non-interface field appearing in ForceSendFields will be sent to the
8955	// server regardless of whether the field is empty or not. This may be
8956	// used to include empty fields in Patch requests.
8957	ForceSendFields []string `json:"-"`
8958
8959	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8960	// include in API requests with the JSON null value. By default, fields
8961	// with empty values are omitted from API requests. However, any field
8962	// with an empty value appearing in NullFields will be sent to the
8963	// server as null. It is an error if a field in this list has a
8964	// non-empty value. This may be used to include null fields in Patch
8965	// requests.
8966	NullFields []string `json:"-"`
8967}
8968
8969func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
8970	type NoMethod ExternalVpnGateway
8971	raw := NoMethod(*s)
8972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8973}
8974
8975// ExternalVpnGatewayInterface: The interface for the external VPN
8976// gateway.
8977type ExternalVpnGatewayInterface struct {
8978	// Id: The numeric ID of this interface. The allowed input values for
8979	// this id for different redundancy types of external VPN gateway:
8980	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 TWO_IPS_REDUNDANCY - 0, 1
8981	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
8982	Id int64 `json:"id,omitempty"`
8983
8984	// IpAddress: IP address of the interface in the external VPN gateway.
8985	// Only IPv4 is supported. This IP address can be either from your
8986	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
8987	// be an IP address from Google Compute Engine.
8988	IpAddress string `json:"ipAddress,omitempty"`
8989
8990	// ForceSendFields is a list of field names (e.g. "Id") to
8991	// unconditionally include in API requests. By default, fields with
8992	// empty values are omitted from API requests. However, any non-pointer,
8993	// non-interface field appearing in ForceSendFields will be sent to the
8994	// server regardless of whether the field is empty or not. This may be
8995	// used to include empty fields in Patch requests.
8996	ForceSendFields []string `json:"-"`
8997
8998	// NullFields is a list of field names (e.g. "Id") to include in API
8999	// requests with the JSON null value. By default, fields with empty
9000	// values are omitted from API requests. However, any field with an
9001	// empty value appearing in NullFields will be sent to the server as
9002	// null. It is an error if a field in this list has a non-empty value.
9003	// This may be used to include null fields in Patch requests.
9004	NullFields []string `json:"-"`
9005}
9006
9007func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9008	type NoMethod ExternalVpnGatewayInterface
9009	raw := NoMethod(*s)
9010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9011}
9012
9013// ExternalVpnGatewayList: Response to the list request, and contains a
9014// list of externalVpnGateways.
9015type ExternalVpnGatewayList struct {
9016	Etag string `json:"etag,omitempty"`
9017
9018	// Id: [Output Only] Unique identifier for the resource; defined by the
9019	// server.
9020	Id string `json:"id,omitempty"`
9021
9022	// Items: A list of ExternalVpnGateway resources.
9023	Items []*ExternalVpnGateway `json:"items,omitempty"`
9024
9025	// Kind: [Output Only] Type of resource. Always
9026	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
9027	Kind string `json:"kind,omitempty"`
9028
9029	// NextPageToken: [Output Only] This token allows you to get the next
9030	// page of results for list requests. If the number of results is larger
9031	// than maxResults, use the nextPageToken as a value for the query
9032	// parameter pageToken in the next list request. Subsequent list
9033	// requests will have their own nextPageToken to continue paging through
9034	// the results.
9035	NextPageToken string `json:"nextPageToken,omitempty"`
9036
9037	// SelfLink: [Output Only] Server-defined URL for this resource.
9038	SelfLink string `json:"selfLink,omitempty"`
9039
9040	// Warning: [Output Only] Informational warning message.
9041	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9042
9043	// ServerResponse contains the HTTP response code and headers from the
9044	// server.
9045	googleapi.ServerResponse `json:"-"`
9046
9047	// ForceSendFields is a list of field names (e.g. "Etag") to
9048	// unconditionally include in API requests. By default, fields with
9049	// empty values are omitted from API requests. However, any non-pointer,
9050	// non-interface field appearing in ForceSendFields will be sent to the
9051	// server regardless of whether the field is empty or not. This may be
9052	// used to include empty fields in Patch requests.
9053	ForceSendFields []string `json:"-"`
9054
9055	// NullFields is a list of field names (e.g. "Etag") to include in API
9056	// requests with the JSON null value. By default, fields with empty
9057	// values are omitted from API requests. However, any field with an
9058	// empty value appearing in NullFields will be sent to the server as
9059	// null. It is an error if a field in this list has a non-empty value.
9060	// This may be used to include null fields in Patch requests.
9061	NullFields []string `json:"-"`
9062}
9063
9064func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
9065	type NoMethod ExternalVpnGatewayList
9066	raw := NoMethod(*s)
9067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9068}
9069
9070// ExternalVpnGatewayListWarning: [Output Only] Informational warning
9071// message.
9072type ExternalVpnGatewayListWarning struct {
9073	// Code: [Output Only] A warning code, if applicable. For example,
9074	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9075	// the response.
9076	//
9077	// Possible values:
9078	//   "CLEANUP_FAILED"
9079	//   "DEPRECATED_RESOURCE_USED"
9080	//   "DEPRECATED_TYPE_USED"
9081	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9082	//   "EXPERIMENTAL_TYPE_USED"
9083	//   "EXTERNAL_API_WARNING"
9084	//   "FIELD_VALUE_OVERRIDEN"
9085	//   "INJECTED_KERNELS_DEPRECATED"
9086	//   "MISSING_TYPE_DEPENDENCY"
9087	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9088	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9089	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9090	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9091	//   "NEXT_HOP_NOT_RUNNING"
9092	//   "NOT_CRITICAL_ERROR"
9093	//   "NO_RESULTS_ON_PAGE"
9094	//   "REQUIRED_TOS_AGREEMENT"
9095	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9096	//   "RESOURCE_NOT_DELETED"
9097	//   "SCHEMA_VALIDATION_IGNORED"
9098	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9099	//   "UNDECLARED_PROPERTIES"
9100	//   "UNREACHABLE"
9101	Code string `json:"code,omitempty"`
9102
9103	// Data: [Output Only] Metadata about this warning in key: value format.
9104	// For example:
9105	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9106	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
9107
9108	// Message: [Output Only] A human-readable description of the warning
9109	// code.
9110	Message string `json:"message,omitempty"`
9111
9112	// ForceSendFields is a list of field names (e.g. "Code") to
9113	// unconditionally include in API requests. By default, fields with
9114	// empty values are omitted from API requests. However, any non-pointer,
9115	// non-interface field appearing in ForceSendFields will be sent to the
9116	// server regardless of whether the field is empty or not. This may be
9117	// used to include empty fields in Patch requests.
9118	ForceSendFields []string `json:"-"`
9119
9120	// NullFields is a list of field names (e.g. "Code") to include in API
9121	// requests with the JSON null value. By default, fields with empty
9122	// values are omitted from API requests. However, any field with an
9123	// empty value appearing in NullFields will be sent to the server as
9124	// null. It is an error if a field in this list has a non-empty value.
9125	// This may be used to include null fields in Patch requests.
9126	NullFields []string `json:"-"`
9127}
9128
9129func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
9130	type NoMethod ExternalVpnGatewayListWarning
9131	raw := NoMethod(*s)
9132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9133}
9134
9135type ExternalVpnGatewayListWarningData struct {
9136	// Key: [Output Only] A key that provides more detail on the warning
9137	// being returned. For example, for warnings where there are no results
9138	// in a list request for a particular zone, this key might be scope and
9139	// the key value might be the zone name. Other examples might be a key
9140	// indicating a deprecated resource and a suggested replacement, or a
9141	// warning about invalid network settings (for example, if an instance
9142	// attempts to perform IP forwarding but is not enabled for IP
9143	// forwarding).
9144	Key string `json:"key,omitempty"`
9145
9146	// Value: [Output Only] A warning data value corresponding to the key.
9147	Value string `json:"value,omitempty"`
9148
9149	// ForceSendFields is a list of field names (e.g. "Key") to
9150	// unconditionally include in API requests. By default, fields with
9151	// empty values are omitted from API requests. However, any non-pointer,
9152	// non-interface field appearing in ForceSendFields will be sent to the
9153	// server regardless of whether the field is empty or not. This may be
9154	// used to include empty fields in Patch requests.
9155	ForceSendFields []string `json:"-"`
9156
9157	// NullFields is a list of field names (e.g. "Key") to include in API
9158	// requests with the JSON null value. By default, fields with empty
9159	// values are omitted from API requests. However, any field with an
9160	// empty value appearing in NullFields will be sent to the server as
9161	// null. It is an error if a field in this list has a non-empty value.
9162	// This may be used to include null fields in Patch requests.
9163	NullFields []string `json:"-"`
9164}
9165
9166func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
9167	type NoMethod ExternalVpnGatewayListWarningData
9168	raw := NoMethod(*s)
9169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9170}
9171
9172type FileContentBuffer struct {
9173	// Content: The raw content in the secure keys file.
9174	Content string `json:"content,omitempty"`
9175
9176	// FileType: The file type of source file.
9177	//
9178	// Possible values:
9179	//   "BIN"
9180	//   "UNDEFINED"
9181	//   "X509"
9182	FileType string `json:"fileType,omitempty"`
9183
9184	// ForceSendFields is a list of field names (e.g. "Content") to
9185	// unconditionally include in API requests. By default, fields with
9186	// empty values are omitted from API requests. However, any non-pointer,
9187	// non-interface field appearing in ForceSendFields will be sent to the
9188	// server regardless of whether the field is empty or not. This may be
9189	// used to include empty fields in Patch requests.
9190	ForceSendFields []string `json:"-"`
9191
9192	// NullFields is a list of field names (e.g. "Content") to include in
9193	// API requests with the JSON null value. By default, fields with empty
9194	// values are omitted from API requests. However, any field with an
9195	// empty value appearing in NullFields will be sent to the server as
9196	// null. It is an error if a field in this list has a non-empty value.
9197	// This may be used to include null fields in Patch requests.
9198	NullFields []string `json:"-"`
9199}
9200
9201func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
9202	type NoMethod FileContentBuffer
9203	raw := NoMethod(*s)
9204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9205}
9206
9207// Firewall: Represents a Firewall Rule resource.
9208//
9209// Firewall rules allow or deny ingress traffic to, and egress traffic
9210// from your instances. For more information, read Firewall rules.
9211type Firewall struct {
9212	// Allowed: The list of ALLOW rules specified by this firewall. Each
9213	// rule specifies a protocol and port-range tuple that describes a
9214	// permitted connection.
9215	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
9216
9217	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9218	// format.
9219	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9220
9221	// Denied: The list of DENY rules specified by this firewall. Each rule
9222	// specifies a protocol and port-range tuple that describes a denied
9223	// connection.
9224	Denied []*FirewallDenied `json:"denied,omitempty"`
9225
9226	// Description: An optional description of this resource. Provide this
9227	// field when you create the resource.
9228	Description string `json:"description,omitempty"`
9229
9230	// DestinationRanges: If destination ranges are specified, the firewall
9231	// rule applies only to traffic that has destination IP address in these
9232	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
9233	// supported.
9234	DestinationRanges []string `json:"destinationRanges,omitempty"`
9235
9236	// Direction: Direction of traffic to which this firewall applies,
9237	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
9238	// traffic, you cannot specify the destinationRanges field, and for
9239	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
9240	// fields.
9241	//
9242	// Possible values:
9243	//   "EGRESS"
9244	//   "INGRESS"
9245	Direction string `json:"direction,omitempty"`
9246
9247	// Disabled: Denotes whether the firewall rule is disabled. When set to
9248	// true, the firewall rule is not enforced and the network behaves as if
9249	// it did not exist. If this is unspecified, the firewall rule will be
9250	// enabled.
9251	Disabled bool `json:"disabled,omitempty"`
9252
9253	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
9254	// denotes whether to enable logging for a particular firewall rule. If
9255	// logging is enabled, logs will be exported t Cloud Logging.
9256	EnableLogging bool `json:"enableLogging,omitempty"`
9257
9258	// Id: [Output Only] The unique identifier for the resource. This
9259	// identifier is defined by the server.
9260	Id uint64 `json:"id,omitempty,string"`
9261
9262	// Kind: [Output Only] Type of the resource. Always compute#firewall for
9263	// firewall rules.
9264	Kind string `json:"kind,omitempty"`
9265
9266	// LogConfig: This field denotes the logging options for a particular
9267	// firewall rule. If logging is enabled, logs will be exported to Cloud
9268	// Logging.
9269	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
9270
9271	// Name: Name of the resource; provided by the client when the resource
9272	// is created. The name must be 1-63 characters long, and comply with
9273	// RFC1035. Specifically, the name must be 1-63 characters long and
9274	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
9275	// character must be a lowercase letter, and all following characters
9276	// (except for the last character) must be a dash, lowercase letter, or
9277	// digit. The last character must be a lowercase letter or digit.
9278	Name string `json:"name,omitempty"`
9279
9280	// Network: URL of the network resource for this firewall rule. If not
9281	// specified when creating a firewall rule, the default network is
9282	// used:
9283	// global/networks/default
9284	// If you choose to specify this field, you can specify the network as a
9285	// full or partial URL. For example, the following are all valid URLs:
9286	//
9287	// -
9288	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
9289	// - projects/myproject/global/networks/my-network
9290	// - global/networks/default
9291	Network string `json:"network,omitempty"`
9292
9293	// Priority: Priority for this rule. This is an integer between `0` and
9294	// `65535`, both inclusive. The default value is `1000`. Relative
9295	// priorities determine which rule takes effect if multiple rules apply.
9296	// Lower values indicate higher priority. For example, a rule with
9297	// priority `0` has higher precedence than a rule with priority `1`.
9298	// DENY rules take precedence over ALLOW rules if they have equal
9299	// priority. Note that VPC networks have implied rules with a priority
9300	// of `65535`. To avoid conflicts with the implied rules, use a priority
9301	// number less than `65535`.
9302	Priority int64 `json:"priority,omitempty"`
9303
9304	// SelfLink: [Output Only] Server-defined URL for the resource.
9305	SelfLink string `json:"selfLink,omitempty"`
9306
9307	// SourceRanges: If source ranges are specified, the firewall rule
9308	// applies only to traffic that has a source IP address in these ranges.
9309	// These ranges must be expressed in CIDR format. One or both of
9310	// sourceRanges and sourceTags may be set. If both fields are set, the
9311	// rule applies to traffic that has a source IP address within
9312	// sourceRanges OR a source IP from a resource with a matching tag
9313	// listed in the sourceTags field. The connection does not need to match
9314	// both fields for the rule to apply. Only IPv4 is supported.
9315	SourceRanges []string `json:"sourceRanges,omitempty"`
9316
9317	// SourceServiceAccounts: If source service accounts are specified, the
9318	// firewall rules apply only to traffic originating from an instance
9319	// with a service account in this list. Source service accounts cannot
9320	// be used to control traffic to an instance's external IP address
9321	// because service accounts are associated with an instance, not an IP
9322	// address. sourceRanges can be set at the same time as
9323	// sourceServiceAccounts. If both are set, the firewall applies to
9324	// traffic that has a source IP address within the sourceRanges OR a
9325	// source IP that belongs to an instance with service account listed in
9326	// sourceServiceAccount. The connection does not need to match both
9327	// fields for the firewall to apply. sourceServiceAccounts cannot be
9328	// used at the same time as sourceTags or targetTags.
9329	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
9330
9331	// SourceTags: If source tags are specified, the firewall rule applies
9332	// only to traffic with source IPs that match the primary network
9333	// interfaces of VM instances that have the tag and are in the same VPC
9334	// network. Source tags cannot be used to control traffic to an
9335	// instance's external IP address, it only applies to traffic between
9336	// instances in the same virtual network. Because tags are associated
9337	// with instances, not IP addresses. One or both of sourceRanges and
9338	// sourceTags may be set. If both fields are set, the firewall applies
9339	// to traffic that has a source IP address within sourceRanges OR a
9340	// source IP from a resource with a matching tag listed in the
9341	// sourceTags field. The connection does not need to match both fields
9342	// for the firewall to apply.
9343	SourceTags []string `json:"sourceTags,omitempty"`
9344
9345	// TargetServiceAccounts: A list of service accounts indicating sets of
9346	// instances located in the network that may make network connections as
9347	// specified in allowed[]. targetServiceAccounts cannot be used at the
9348	// same time as targetTags or sourceTags. If neither
9349	// targetServiceAccounts nor targetTags are specified, the firewall rule
9350	// applies to all instances on the specified network.
9351	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
9352
9353	// TargetTags: A list of tags that controls which instances the firewall
9354	// rule applies to. If targetTags are specified, then the firewall rule
9355	// applies only to instances in the VPC network that have one of those
9356	// tags. If no targetTags are specified, the firewall rule applies to
9357	// all instances on the specified network.
9358	TargetTags []string `json:"targetTags,omitempty"`
9359
9360	// ServerResponse contains the HTTP response code and headers from the
9361	// server.
9362	googleapi.ServerResponse `json:"-"`
9363
9364	// ForceSendFields is a list of field names (e.g. "Allowed") to
9365	// unconditionally include in API requests. By default, fields with
9366	// empty values are omitted from API requests. However, any non-pointer,
9367	// non-interface field appearing in ForceSendFields will be sent to the
9368	// server regardless of whether the field is empty or not. This may be
9369	// used to include empty fields in Patch requests.
9370	ForceSendFields []string `json:"-"`
9371
9372	// NullFields is a list of field names (e.g. "Allowed") to include in
9373	// API requests with the JSON null value. By default, fields with empty
9374	// values are omitted from API requests. However, any field with an
9375	// empty value appearing in NullFields will be sent to the server as
9376	// null. It is an error if a field in this list has a non-empty value.
9377	// This may be used to include null fields in Patch requests.
9378	NullFields []string `json:"-"`
9379}
9380
9381func (s *Firewall) MarshalJSON() ([]byte, error) {
9382	type NoMethod Firewall
9383	raw := NoMethod(*s)
9384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9385}
9386
9387type FirewallAllowed struct {
9388	// IPProtocol: The IP protocol to which this rule applies. The protocol
9389	// type is required when creating a firewall rule. This value can either
9390	// be one of the following well known protocol strings (tcp, udp, icmp,
9391	// esp, ah, ipip, sctp) or the IP protocol number.
9392	IPProtocol string `json:"IPProtocol,omitempty"`
9393
9394	// Ports: An optional list of ports to which this rule applies. This
9395	// field is only applicable for the UDP or TCP protocol. Each entry must
9396	// be either an integer or a range. If not specified, this rule applies
9397	// to connections through any port.
9398	//
9399	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9400	Ports []string `json:"ports,omitempty"`
9401
9402	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9403	// unconditionally include in API requests. By default, fields with
9404	// empty values are omitted from API requests. However, any non-pointer,
9405	// non-interface field appearing in ForceSendFields will be sent to the
9406	// server regardless of whether the field is empty or not. This may be
9407	// used to include empty fields in Patch requests.
9408	ForceSendFields []string `json:"-"`
9409
9410	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9411	// API requests with the JSON null value. By default, fields with empty
9412	// values are omitted from API requests. However, any field with an
9413	// empty value appearing in NullFields will be sent to the server as
9414	// null. It is an error if a field in this list has a non-empty value.
9415	// This may be used to include null fields in Patch requests.
9416	NullFields []string `json:"-"`
9417}
9418
9419func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
9420	type NoMethod FirewallAllowed
9421	raw := NoMethod(*s)
9422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9423}
9424
9425type FirewallDenied struct {
9426	// IPProtocol: The IP protocol to which this rule applies. The protocol
9427	// type is required when creating a firewall rule. This value can either
9428	// be one of the following well known protocol strings (tcp, udp, icmp,
9429	// esp, ah, ipip, sctp) or the IP protocol number.
9430	IPProtocol string `json:"IPProtocol,omitempty"`
9431
9432	// Ports: An optional list of ports to which this rule applies. This
9433	// field is only applicable for the UDP or TCP protocol. Each entry must
9434	// be either an integer or a range. If not specified, this rule applies
9435	// to connections through any port.
9436	//
9437	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9438	Ports []string `json:"ports,omitempty"`
9439
9440	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9441	// unconditionally include in API requests. By default, fields with
9442	// empty values are omitted from API requests. However, any non-pointer,
9443	// non-interface field appearing in ForceSendFields will be sent to the
9444	// server regardless of whether the field is empty or not. This may be
9445	// used to include empty fields in Patch requests.
9446	ForceSendFields []string `json:"-"`
9447
9448	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9449	// API requests with the JSON null value. By default, fields with empty
9450	// values are omitted from API requests. However, any field with an
9451	// empty value appearing in NullFields will be sent to the server as
9452	// null. It is an error if a field in this list has a non-empty value.
9453	// This may be used to include null fields in Patch requests.
9454	NullFields []string `json:"-"`
9455}
9456
9457func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
9458	type NoMethod FirewallDenied
9459	raw := NoMethod(*s)
9460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9461}
9462
9463// FirewallList: Contains a list of firewalls.
9464type FirewallList struct {
9465	// Id: [Output Only] Unique identifier for the resource; defined by the
9466	// server.
9467	Id string `json:"id,omitempty"`
9468
9469	// Items: A list of Firewall resources.
9470	Items []*Firewall `json:"items,omitempty"`
9471
9472	// Kind: [Output Only] Type of resource. Always compute#firewallList for
9473	// lists of firewalls.
9474	Kind string `json:"kind,omitempty"`
9475
9476	// NextPageToken: [Output Only] This token allows you to get the next
9477	// page of results for list requests. If the number of results is larger
9478	// than maxResults, use the nextPageToken as a value for the query
9479	// parameter pageToken in the next list request. Subsequent list
9480	// requests will have their own nextPageToken to continue paging through
9481	// the results.
9482	NextPageToken string `json:"nextPageToken,omitempty"`
9483
9484	// SelfLink: [Output Only] Server-defined URL for this resource.
9485	SelfLink string `json:"selfLink,omitempty"`
9486
9487	// Warning: [Output Only] Informational warning message.
9488	Warning *FirewallListWarning `json:"warning,omitempty"`
9489
9490	// ServerResponse contains the HTTP response code and headers from the
9491	// server.
9492	googleapi.ServerResponse `json:"-"`
9493
9494	// ForceSendFields is a list of field names (e.g. "Id") to
9495	// unconditionally include in API requests. By default, fields with
9496	// empty values are omitted from API requests. However, any non-pointer,
9497	// non-interface field appearing in ForceSendFields will be sent to the
9498	// server regardless of whether the field is empty or not. This may be
9499	// used to include empty fields in Patch requests.
9500	ForceSendFields []string `json:"-"`
9501
9502	// NullFields is a list of field names (e.g. "Id") to include in API
9503	// requests with the JSON null value. By default, fields with empty
9504	// values are omitted from API requests. However, any field with an
9505	// empty value appearing in NullFields will be sent to the server as
9506	// null. It is an error if a field in this list has a non-empty value.
9507	// This may be used to include null fields in Patch requests.
9508	NullFields []string `json:"-"`
9509}
9510
9511func (s *FirewallList) MarshalJSON() ([]byte, error) {
9512	type NoMethod FirewallList
9513	raw := NoMethod(*s)
9514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9515}
9516
9517// FirewallListWarning: [Output Only] Informational warning message.
9518type FirewallListWarning struct {
9519	// Code: [Output Only] A warning code, if applicable. For example,
9520	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9521	// the response.
9522	//
9523	// Possible values:
9524	//   "CLEANUP_FAILED"
9525	//   "DEPRECATED_RESOURCE_USED"
9526	//   "DEPRECATED_TYPE_USED"
9527	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9528	//   "EXPERIMENTAL_TYPE_USED"
9529	//   "EXTERNAL_API_WARNING"
9530	//   "FIELD_VALUE_OVERRIDEN"
9531	//   "INJECTED_KERNELS_DEPRECATED"
9532	//   "MISSING_TYPE_DEPENDENCY"
9533	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9534	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9535	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9536	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9537	//   "NEXT_HOP_NOT_RUNNING"
9538	//   "NOT_CRITICAL_ERROR"
9539	//   "NO_RESULTS_ON_PAGE"
9540	//   "REQUIRED_TOS_AGREEMENT"
9541	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9542	//   "RESOURCE_NOT_DELETED"
9543	//   "SCHEMA_VALIDATION_IGNORED"
9544	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9545	//   "UNDECLARED_PROPERTIES"
9546	//   "UNREACHABLE"
9547	Code string `json:"code,omitempty"`
9548
9549	// Data: [Output Only] Metadata about this warning in key: value format.
9550	// For example:
9551	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9552	Data []*FirewallListWarningData `json:"data,omitempty"`
9553
9554	// Message: [Output Only] A human-readable description of the warning
9555	// code.
9556	Message string `json:"message,omitempty"`
9557
9558	// ForceSendFields is a list of field names (e.g. "Code") to
9559	// unconditionally include in API requests. By default, fields with
9560	// empty values are omitted from API requests. However, any non-pointer,
9561	// non-interface field appearing in ForceSendFields will be sent to the
9562	// server regardless of whether the field is empty or not. This may be
9563	// used to include empty fields in Patch requests.
9564	ForceSendFields []string `json:"-"`
9565
9566	// NullFields is a list of field names (e.g. "Code") to include in API
9567	// requests with the JSON null value. By default, fields with empty
9568	// values are omitted from API requests. However, any field with an
9569	// empty value appearing in NullFields will be sent to the server as
9570	// null. It is an error if a field in this list has a non-empty value.
9571	// This may be used to include null fields in Patch requests.
9572	NullFields []string `json:"-"`
9573}
9574
9575func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
9576	type NoMethod FirewallListWarning
9577	raw := NoMethod(*s)
9578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9579}
9580
9581type FirewallListWarningData struct {
9582	// Key: [Output Only] A key that provides more detail on the warning
9583	// being returned. For example, for warnings where there are no results
9584	// in a list request for a particular zone, this key might be scope and
9585	// the key value might be the zone name. Other examples might be a key
9586	// indicating a deprecated resource and a suggested replacement, or a
9587	// warning about invalid network settings (for example, if an instance
9588	// attempts to perform IP forwarding but is not enabled for IP
9589	// forwarding).
9590	Key string `json:"key,omitempty"`
9591
9592	// Value: [Output Only] A warning data value corresponding to the key.
9593	Value string `json:"value,omitempty"`
9594
9595	// ForceSendFields is a list of field names (e.g. "Key") to
9596	// unconditionally include in API requests. By default, fields with
9597	// empty values are omitted from API requests. However, any non-pointer,
9598	// non-interface field appearing in ForceSendFields will be sent to the
9599	// server regardless of whether the field is empty or not. This may be
9600	// used to include empty fields in Patch requests.
9601	ForceSendFields []string `json:"-"`
9602
9603	// NullFields is a list of field names (e.g. "Key") to include in API
9604	// requests with the JSON null value. By default, fields with empty
9605	// values are omitted from API requests. However, any field with an
9606	// empty value appearing in NullFields will be sent to the server as
9607	// null. It is an error if a field in this list has a non-empty value.
9608	// This may be used to include null fields in Patch requests.
9609	NullFields []string `json:"-"`
9610}
9611
9612func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
9613	type NoMethod FirewallListWarningData
9614	raw := NoMethod(*s)
9615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9616}
9617
9618// FirewallLogConfig: The available logging options for a firewall rule.
9619type FirewallLogConfig struct {
9620	// Enable: This field denotes whether to enable logging for a particular
9621	// firewall rule.
9622	Enable bool `json:"enable,omitempty"`
9623
9624	// Metadata: This field can only be specified for a particular firewall
9625	// rule if logging is enabled for that rule. This field denotes whether
9626	// to include or exclude metadata for firewall logs.
9627	//
9628	// Possible values:
9629	//   "EXCLUDE_ALL_METADATA"
9630	//   "INCLUDE_ALL_METADATA"
9631	Metadata string `json:"metadata,omitempty"`
9632
9633	// ForceSendFields is a list of field names (e.g. "Enable") to
9634	// unconditionally include in API requests. By default, fields with
9635	// empty values are omitted from API requests. However, any non-pointer,
9636	// non-interface field appearing in ForceSendFields will be sent to the
9637	// server regardless of whether the field is empty or not. This may be
9638	// used to include empty fields in Patch requests.
9639	ForceSendFields []string `json:"-"`
9640
9641	// NullFields is a list of field names (e.g. "Enable") to include in API
9642	// requests with the JSON null value. By default, fields with empty
9643	// values are omitted from API requests. However, any field with an
9644	// empty value appearing in NullFields will be sent to the server as
9645	// null. It is an error if a field in this list has a non-empty value.
9646	// This may be used to include null fields in Patch requests.
9647	NullFields []string `json:"-"`
9648}
9649
9650func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
9651	type NoMethod FirewallLogConfig
9652	raw := NoMethod(*s)
9653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9654}
9655
9656// FixedOrPercent: Encapsulates numeric value that can be either
9657// absolute or relative.
9658type FixedOrPercent struct {
9659	// Calculated: [Output Only] Absolute value of VM instances calculated
9660	// based on the specific mode.
9661	//
9662	//
9663	// - If the value is fixed, then the calculated value is equal to the
9664	// fixed value.
9665	// - If the value is a percent, then the calculated value is percent/100
9666	// * targetSize. For example, the calculated value of a 80% of a managed
9667	// instance group with 150 instances would be (80/100 * 150) = 120 VM
9668	// instances. If there is a remainder, the number is rounded up.
9669	Calculated int64 `json:"calculated,omitempty"`
9670
9671	// Fixed: Specifies a fixed number of VM instances. This must be a
9672	// positive integer.
9673	Fixed int64 `json:"fixed,omitempty"`
9674
9675	// Percent: Specifies a percentage of instances between 0 to 100%,
9676	// inclusive. For example, specify 80 for 80%.
9677	Percent int64 `json:"percent,omitempty"`
9678
9679	// ForceSendFields is a list of field names (e.g. "Calculated") to
9680	// unconditionally include in API requests. By default, fields with
9681	// empty values are omitted from API requests. However, any non-pointer,
9682	// non-interface field appearing in ForceSendFields will be sent to the
9683	// server regardless of whether the field is empty or not. This may be
9684	// used to include empty fields in Patch requests.
9685	ForceSendFields []string `json:"-"`
9686
9687	// NullFields is a list of field names (e.g. "Calculated") to include in
9688	// API requests with the JSON null value. By default, fields with empty
9689	// values are omitted from API requests. However, any field with an
9690	// empty value appearing in NullFields will be sent to the server as
9691	// null. It is an error if a field in this list has a non-empty value.
9692	// This may be used to include null fields in Patch requests.
9693	NullFields []string `json:"-"`
9694}
9695
9696func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
9697	type NoMethod FixedOrPercent
9698	raw := NoMethod(*s)
9699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9700}
9701
9702// ForwardingRule: Represents a Forwarding Rule resource.
9703//
9704// Forwarding rule resources in GCP can be either regional or global in
9705// scope:
9706//
9707// *
9708// [Global](/compute/docs/reference/rest/{$api_version}/globalForwardingR
9709// ules) *
9710// [Regional](/compute/docs/reference/rest/{$api_version}/forwardingRules
9711// )
9712//
9713// A forwarding rule and its corresponding IP address represent the
9714// frontend configuration of a Google Cloud Platform load balancer.
9715// Forwarding rules can also reference target instances and Cloud VPN
9716// Classic gateways (targetVpnGateway).
9717//
9718// For more information, read Forwarding rule concepts and Using
9719// protocol forwarding.
9720//
9721// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
9722// {$api_version}.globalForwardingRules ==) (== resource_for
9723// {$api_version}.regionForwardingRules ==)
9724type ForwardingRule struct {
9725	// IPAddress: IP address that this forwarding rule serves. When a client
9726	// sends traffic to this IP address, the forwarding rule directs the
9727	// traffic to the target that you specify in the forwarding rule.
9728	//
9729	// If you don't specify a reserved IP address, an ephemeral IP address
9730	// is assigned. Methods for specifying an IP address:
9731	//
9732	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
9733	// 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
9734	//
9735	// The loadBalancingScheme and the forwarding rule's target determine
9736	// the type of IP address that you can use. For detailed information,
9737	// refer to [IP address
9738	// specifications](/load-balancing/docs/forwarding-rule-concepts#ip_addre
9739	// ss_specifications).
9740	IPAddress string `json:"IPAddress,omitempty"`
9741
9742	// IPProtocol: The IP protocol to which this rule applies. For protocol
9743	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
9744	//
9745	// For Internal TCP/UDP Load Balancing, the load balancing scheme is
9746	// INTERNAL, and one of TCP or UDP are valid. For Traffic Director, the
9747	// load balancing scheme is INTERNAL_SELF_MANAGED, and only TCPis valid.
9748	// For Internal HTTP(S) Load Balancing, the load balancing scheme is
9749	// INTERNAL_MANAGED, and only TCP is valid. For HTTP(S), SSL Proxy, and
9750	// TCP Proxy Load Balancing, the load balancing scheme is EXTERNAL and
9751	// only TCP is valid. For Network TCP/UDP Load Balancing, the load
9752	// balancing scheme is EXTERNAL, and one of TCP or UDP is valid.
9753	//
9754	// Possible values:
9755	//   "AH"
9756	//   "ESP"
9757	//   "ICMP"
9758	//   "SCTP"
9759	//   "TCP"
9760	//   "UDP"
9761	IPProtocol string `json:"IPProtocol,omitempty"`
9762
9763	// AllPorts: This field is used along with the backend_service field for
9764	// internal load balancing or with the target field for internal
9765	// TargetInstance. This field cannot be used with port or portRange
9766	// fields.
9767	//
9768	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
9769	// specify this field to allow packets addressed to any ports will be
9770	// forwarded to the backends configured with this forwarding rule.
9771	AllPorts bool `json:"allPorts,omitempty"`
9772
9773	// AllowGlobalAccess: This field is used along with the backend_service
9774	// field for internal load balancing or with the target field for
9775	// internal TargetInstance. If the field is set to TRUE, clients can
9776	// access ILB from all regions. Otherwise only allows access from
9777	// clients in the same region as the internal load balancer.
9778	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
9779
9780	// BackendService: This field is only used for INTERNAL load
9781	// balancing.
9782	//
9783	// For internal load balancing, this field identifies the BackendService
9784	// resource to receive the matched traffic.
9785	BackendService string `json:"backendService,omitempty"`
9786
9787	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9788	// format.
9789	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9790
9791	// Description: An optional description of this resource. Provide this
9792	// property when you create the resource.
9793	Description string `json:"description,omitempty"`
9794
9795	// Fingerprint: Fingerprint of this resource. A hash of the contents
9796	// stored in this object. This field is used in optimistic locking. This
9797	// field will be ignored when inserting a ForwardingRule. Include the
9798	// fingerprint in patch request to ensure that you do not overwrite
9799	// changes that were applied from another concurrent request.
9800	//
9801	// To see the latest fingerprint, make a get() request to retrieve a
9802	// ForwardingRule.
9803	Fingerprint string `json:"fingerprint,omitempty"`
9804
9805	// Id: [Output Only] The unique identifier for the resource. This
9806	// identifier is defined by the server.
9807	Id uint64 `json:"id,omitempty,string"`
9808
9809	// IpVersion: The IP Version that will be used by this forwarding rule.
9810	// Valid options are IPV4 or IPV6. This can only be specified for an
9811	// external global forwarding rule.
9812	//
9813	// Possible values:
9814	//   "IPV4"
9815	//   "IPV6"
9816	//   "UNSPECIFIED_VERSION"
9817	IpVersion string `json:"ipVersion,omitempty"`
9818
9819	// IsMirroringCollector: Indicates whether or not this load balancer can
9820	// be used as a collector for packet mirroring. To prevent mirroring
9821	// loops, instances behind this load balancer will not have their
9822	// traffic mirrored even if a PacketMirroring rule applies to them. This
9823	// can only be set to true for load balancers that have their
9824	// loadBalancingScheme set to INTERNAL.
9825	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
9826
9827	// Kind: [Output Only] Type of the resource. Always
9828	// compute#forwardingRule for Forwarding Rule resources.
9829	Kind string `json:"kind,omitempty"`
9830
9831	// LabelFingerprint: A fingerprint for the labels being applied to this
9832	// resource, which is essentially a hash of the labels set used for
9833	// optimistic locking. The fingerprint is initially generated by Compute
9834	// Engine and changes after every request to modify or update labels.
9835	// You must always provide an up-to-date fingerprint hash in order to
9836	// update or change labels, otherwise the request will fail with error
9837	// 412 conditionNotMet.
9838	//
9839	// To see the latest fingerprint, make a get() request to retrieve a
9840	// ForwardingRule.
9841	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9842
9843	// Labels: Labels for this resource. These can only be added or modified
9844	// by the setLabels method. Each label key/value pair must comply with
9845	// RFC1035. Label values may be empty.
9846	Labels map[string]string `json:"labels,omitempty"`
9847
9848	// LoadBalancingScheme: Specifies the forwarding rule type.
9849	//
9850	//
9851	// - EXTERNAL is used for:
9852	// - Classic Cloud VPN gateways
9853	// - Protocol forwarding to VMs from an external IP address
9854	// - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and
9855	// Network TCP/UDP
9856	// - INTERNAL is used for:
9857	// - Protocol forwarding to VMs from an internal IP address
9858	// - Internal TCP/UDP load balancers
9859	// - INTERNAL_MANAGED is used for:
9860	// - Internal HTTP(S) load balancers
9861	// - INTERNAL_SELF_MANAGED is used for:
9862	// - Traffic Director
9863	//
9864	// For more information about forwarding rules, refer to Forwarding rule
9865	// concepts.
9866	//
9867	// Possible values:
9868	//   "EXTERNAL"
9869	//   "INTERNAL"
9870	//   "INTERNAL_MANAGED"
9871	//   "INTERNAL_SELF_MANAGED"
9872	//   "INVALID"
9873	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
9874
9875	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
9876	// restrict routing configuration to a limited set of xDS compliant
9877	// clients. In their xDS requests to Loadbalancer, xDS clients present
9878	// node metadata. If a match takes place, the relevant configuration is
9879	// made available to those proxies. Otherwise, all the resources (e.g.
9880	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
9881	// visible to those proxies.
9882	// For each metadataFilter in this list, if its filterMatchCriteria is
9883	// set to MATCH_ANY, at least one of the filterLabels must match the
9884	// corresponding label provided in the metadata. If its
9885	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
9886	// must match with corresponding labels provided in the
9887	// metadata.
9888	// metadataFilters specified here will be applifed before those
9889	// specified in the UrlMap that this ForwardingRule
9890	// references.
9891	// metadataFilters only applies to Loadbalancers that have their
9892	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
9893	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
9894
9895	// Name: Name of the resource; provided by the client when the resource
9896	// is created. The name must be 1-63 characters long, and comply with
9897	// RFC1035. Specifically, the name must be 1-63 characters long and
9898	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9899	// the first character must be a lowercase letter, and all following
9900	// characters must be a dash, lowercase letter, or digit, except the
9901	// last character, which cannot be a dash.
9902	Name string `json:"name,omitempty"`
9903
9904	// Network: This field is not used for external load balancing.
9905	//
9906	// For INTERNAL and INTERNAL_SELF_MANAGED load balancing, this field
9907	// identifies the network that the load balanced IP should belong to for
9908	// this Forwarding Rule. If this field is not specified, the default
9909	// network will be used.
9910	Network string `json:"network,omitempty"`
9911
9912	// NetworkTier: This signifies the networking tier used for configuring
9913	// this load balancer and can only take the following values: PREMIUM,
9914	// STANDARD.
9915	//
9916	// For regional ForwardingRule, the valid values are PREMIUM and
9917	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
9918	//
9919	// If this field is not specified, it is assumed to be PREMIUM. If
9920	// IPAddress is specified, this value must be equal to the networkTier
9921	// of the Address.
9922	//
9923	// Possible values:
9924	//   "PREMIUM"
9925	//   "STANDARD"
9926	NetworkTier string `json:"networkTier,omitempty"`
9927
9928	// PortRange: When the load balancing scheme is EXTERNAL,
9929	// INTERNAL_SELF_MANAGED and INTERNAL_MANAGED, you can specify a
9930	// port_range. Use with a forwarding rule that points to a target proxy
9931	// or a target pool. Do not use with a forwarding rule that points to a
9932	// backend service. This field is used along with the target field for
9933	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
9934	// TargetVpnGateway, TargetPool, TargetInstance.
9935	//
9936	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
9937	// addressed to ports in the specified range will be forwarded to
9938	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
9939	// must have disjoint port ranges.
9940	//
9941	// Some types of forwarding target have constraints on the acceptable
9942	// ports:
9943	// - TargetHttpProxy: 80, 8080
9944	// - TargetHttpsProxy: 443
9945	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
9946	// 995, 1688, 1883, 5222
9947	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
9948	// 995, 1688, 1883, 5222
9949	// - TargetVpnGateway: 500, 4500
9950	PortRange string `json:"portRange,omitempty"`
9951
9952	// Ports: This field is used along with the backend_service field for
9953	// internal load balancing.
9954	//
9955	// When the load balancing scheme is INTERNAL, a list of ports can be
9956	// configured, for example, ['80'], ['8000','9000']. Only packets
9957	// addressed to these ports are forwarded to the backends configured
9958	// with the forwarding rule.
9959	//
9960	// If the forwarding rule's loadBalancingScheme is INTERNAL, you can
9961	// specify ports in one of the following ways:
9962	//
9963	// * A list of up to five ports, which can be non-contiguous * Keyword
9964	// ALL, which causes the forwarding rule to forward traffic on any port
9965	// of the forwarding rule's protocol.
9966	Ports []string `json:"ports,omitempty"`
9967
9968	// Region: [Output Only] URL of the region where the regional forwarding
9969	// rule resides. This field is not applicable to global forwarding
9970	// rules. You must specify this field as part of the HTTP request URL.
9971	// It is not settable as a field in the request body.
9972	Region string `json:"region,omitempty"`
9973
9974	// SelfLink: [Output Only] Server-defined URL for the resource.
9975	SelfLink string `json:"selfLink,omitempty"`
9976
9977	// ServiceLabel: An optional prefix to the service name for this
9978	// Forwarding Rule. If specified, the prefix is the first label of the
9979	// fully qualified service name.
9980	//
9981	// The label must be 1-63 characters long, and comply with RFC1035.
9982	// Specifically, the label must be 1-63 characters long and match the
9983	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
9984	// character must be a lowercase letter, and all following characters
9985	// must be a dash, lowercase letter, or digit, except the last
9986	// character, which cannot be a dash.
9987	//
9988	// This field is only used for internal load balancing.
9989	ServiceLabel string `json:"serviceLabel,omitempty"`
9990
9991	// ServiceName: [Output Only] The internal fully qualified service name
9992	// for this Forwarding Rule.
9993	//
9994	// This field is only used for internal load balancing.
9995	ServiceName string `json:"serviceName,omitempty"`
9996
9997	// Subnetwork: This field is only used for INTERNAL load balancing.
9998	//
9999	// For internal load balancing, this field identifies the subnetwork
10000	// that the load balanced IP should belong to for this Forwarding
10001	// Rule.
10002	//
10003	// If the network specified is in auto subnet mode, this field is
10004	// optional. However, if the network is in custom subnet mode, a
10005	// subnetwork must be specified.
10006	Subnetwork string `json:"subnetwork,omitempty"`
10007
10008	// Target: The URL of the target resource to receive the matched
10009	// traffic. For regional forwarding rules, this target must live in the
10010	// same region as the forwarding rule. For global forwarding rules, this
10011	// target must be a global load balancing resource. The forwarded
10012	// traffic must be of a type appropriate to the target object. For
10013	// INTERNAL_SELF_MANAGED load balancing, only targetHttpProxy is valid,
10014	// not targetHttpsProxy.
10015	Target string `json:"target,omitempty"`
10016
10017	// ServerResponse contains the HTTP response code and headers from the
10018	// server.
10019	googleapi.ServerResponse `json:"-"`
10020
10021	// ForceSendFields is a list of field names (e.g. "IPAddress") to
10022	// unconditionally include in API requests. By default, fields with
10023	// empty values are omitted from API requests. However, any non-pointer,
10024	// non-interface field appearing in ForceSendFields will be sent to the
10025	// server regardless of whether the field is empty or not. This may be
10026	// used to include empty fields in Patch requests.
10027	ForceSendFields []string `json:"-"`
10028
10029	// NullFields is a list of field names (e.g. "IPAddress") to include in
10030	// API requests with the JSON null value. By default, fields with empty
10031	// values are omitted from API requests. However, any field with an
10032	// empty value appearing in NullFields will be sent to the server as
10033	// null. It is an error if a field in this list has a non-empty value.
10034	// This may be used to include null fields in Patch requests.
10035	NullFields []string `json:"-"`
10036}
10037
10038func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
10039	type NoMethod ForwardingRule
10040	raw := NoMethod(*s)
10041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10042}
10043
10044type ForwardingRuleAggregatedList struct {
10045	// Id: [Output Only] Unique identifier for the resource; defined by the
10046	// server.
10047	Id string `json:"id,omitempty"`
10048
10049	// Items: A list of ForwardingRulesScopedList resources.
10050	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
10051
10052	// Kind: [Output Only] Type of resource. Always
10053	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
10054	Kind string `json:"kind,omitempty"`
10055
10056	// NextPageToken: [Output Only] This token allows you to get the next
10057	// page of results for list requests. If the number of results is larger
10058	// than maxResults, use the nextPageToken as a value for the query
10059	// parameter pageToken in the next list request. Subsequent list
10060	// requests will have their own nextPageToken to continue paging through
10061	// the results.
10062	NextPageToken string `json:"nextPageToken,omitempty"`
10063
10064	// SelfLink: [Output Only] Server-defined URL for this resource.
10065	SelfLink string `json:"selfLink,omitempty"`
10066
10067	// Warning: [Output Only] Informational warning message.
10068	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
10069
10070	// ServerResponse contains the HTTP response code and headers from the
10071	// server.
10072	googleapi.ServerResponse `json:"-"`
10073
10074	// ForceSendFields is a list of field names (e.g. "Id") to
10075	// unconditionally include in API requests. By default, fields with
10076	// empty values are omitted from API requests. However, any non-pointer,
10077	// non-interface field appearing in ForceSendFields will be sent to the
10078	// server regardless of whether the field is empty or not. This may be
10079	// used to include empty fields in Patch requests.
10080	ForceSendFields []string `json:"-"`
10081
10082	// NullFields is a list of field names (e.g. "Id") to include in API
10083	// requests with the JSON null value. By default, fields with empty
10084	// values are omitted from API requests. However, any field with an
10085	// empty value appearing in NullFields will be sent to the server as
10086	// null. It is an error if a field in this list has a non-empty value.
10087	// This may be used to include null fields in Patch requests.
10088	NullFields []string `json:"-"`
10089}
10090
10091func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
10092	type NoMethod ForwardingRuleAggregatedList
10093	raw := NoMethod(*s)
10094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10095}
10096
10097// ForwardingRuleAggregatedListWarning: [Output Only] Informational
10098// warning message.
10099type ForwardingRuleAggregatedListWarning struct {
10100	// Code: [Output Only] A warning code, if applicable. For example,
10101	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10102	// the response.
10103	//
10104	// Possible values:
10105	//   "CLEANUP_FAILED"
10106	//   "DEPRECATED_RESOURCE_USED"
10107	//   "DEPRECATED_TYPE_USED"
10108	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10109	//   "EXPERIMENTAL_TYPE_USED"
10110	//   "EXTERNAL_API_WARNING"
10111	//   "FIELD_VALUE_OVERRIDEN"
10112	//   "INJECTED_KERNELS_DEPRECATED"
10113	//   "MISSING_TYPE_DEPENDENCY"
10114	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10115	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10116	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10117	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10118	//   "NEXT_HOP_NOT_RUNNING"
10119	//   "NOT_CRITICAL_ERROR"
10120	//   "NO_RESULTS_ON_PAGE"
10121	//   "REQUIRED_TOS_AGREEMENT"
10122	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10123	//   "RESOURCE_NOT_DELETED"
10124	//   "SCHEMA_VALIDATION_IGNORED"
10125	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10126	//   "UNDECLARED_PROPERTIES"
10127	//   "UNREACHABLE"
10128	Code string `json:"code,omitempty"`
10129
10130	// Data: [Output Only] Metadata about this warning in key: value format.
10131	// For example:
10132	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10133	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
10134
10135	// Message: [Output Only] A human-readable description of the warning
10136	// code.
10137	Message string `json:"message,omitempty"`
10138
10139	// ForceSendFields is a list of field names (e.g. "Code") to
10140	// unconditionally include in API requests. By default, fields with
10141	// empty values are omitted from API requests. However, any non-pointer,
10142	// non-interface field appearing in ForceSendFields will be sent to the
10143	// server regardless of whether the field is empty or not. This may be
10144	// used to include empty fields in Patch requests.
10145	ForceSendFields []string `json:"-"`
10146
10147	// NullFields is a list of field names (e.g. "Code") to include in API
10148	// requests with the JSON null value. By default, fields with empty
10149	// values are omitted from API requests. However, any field with an
10150	// empty value appearing in NullFields will be sent to the server as
10151	// null. It is an error if a field in this list has a non-empty value.
10152	// This may be used to include null fields in Patch requests.
10153	NullFields []string `json:"-"`
10154}
10155
10156func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
10157	type NoMethod ForwardingRuleAggregatedListWarning
10158	raw := NoMethod(*s)
10159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10160}
10161
10162type ForwardingRuleAggregatedListWarningData struct {
10163	// Key: [Output Only] A key that provides more detail on the warning
10164	// being returned. For example, for warnings where there are no results
10165	// in a list request for a particular zone, this key might be scope and
10166	// the key value might be the zone name. Other examples might be a key
10167	// indicating a deprecated resource and a suggested replacement, or a
10168	// warning about invalid network settings (for example, if an instance
10169	// attempts to perform IP forwarding but is not enabled for IP
10170	// forwarding).
10171	Key string `json:"key,omitempty"`
10172
10173	// Value: [Output Only] A warning data value corresponding to the key.
10174	Value string `json:"value,omitempty"`
10175
10176	// ForceSendFields is a list of field names (e.g. "Key") to
10177	// unconditionally include in API requests. By default, fields with
10178	// empty values are omitted from API requests. However, any non-pointer,
10179	// non-interface field appearing in ForceSendFields will be sent to the
10180	// server regardless of whether the field is empty or not. This may be
10181	// used to include empty fields in Patch requests.
10182	ForceSendFields []string `json:"-"`
10183
10184	// NullFields is a list of field names (e.g. "Key") to include in API
10185	// requests with the JSON null value. By default, fields with empty
10186	// values are omitted from API requests. However, any field with an
10187	// empty value appearing in NullFields will be sent to the server as
10188	// null. It is an error if a field in this list has a non-empty value.
10189	// This may be used to include null fields in Patch requests.
10190	NullFields []string `json:"-"`
10191}
10192
10193func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
10194	type NoMethod ForwardingRuleAggregatedListWarningData
10195	raw := NoMethod(*s)
10196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10197}
10198
10199// ForwardingRuleList: Contains a list of ForwardingRule resources.
10200type ForwardingRuleList struct {
10201	// Id: [Output Only] Unique identifier for the resource; defined by the
10202	// server.
10203	Id string `json:"id,omitempty"`
10204
10205	// Items: A list of ForwardingRule resources.
10206	Items []*ForwardingRule `json:"items,omitempty"`
10207
10208	// Kind: Type of resource.
10209	Kind string `json:"kind,omitempty"`
10210
10211	// NextPageToken: [Output Only] This token allows you to get the next
10212	// page of results for list requests. If the number of results is larger
10213	// than maxResults, use the nextPageToken as a value for the query
10214	// parameter pageToken in the next list request. Subsequent list
10215	// requests will have their own nextPageToken to continue paging through
10216	// the results.
10217	NextPageToken string `json:"nextPageToken,omitempty"`
10218
10219	// SelfLink: [Output Only] Server-defined URL for this resource.
10220	SelfLink string `json:"selfLink,omitempty"`
10221
10222	// Warning: [Output Only] Informational warning message.
10223	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
10224
10225	// ServerResponse contains the HTTP response code and headers from the
10226	// server.
10227	googleapi.ServerResponse `json:"-"`
10228
10229	// ForceSendFields is a list of field names (e.g. "Id") to
10230	// unconditionally include in API requests. By default, fields with
10231	// empty values are omitted from API requests. However, any non-pointer,
10232	// non-interface field appearing in ForceSendFields will be sent to the
10233	// server regardless of whether the field is empty or not. This may be
10234	// used to include empty fields in Patch requests.
10235	ForceSendFields []string `json:"-"`
10236
10237	// NullFields is a list of field names (e.g. "Id") to include in API
10238	// requests with the JSON null value. By default, fields with empty
10239	// values are omitted from API requests. However, any field with an
10240	// empty value appearing in NullFields will be sent to the server as
10241	// null. It is an error if a field in this list has a non-empty value.
10242	// This may be used to include null fields in Patch requests.
10243	NullFields []string `json:"-"`
10244}
10245
10246func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
10247	type NoMethod ForwardingRuleList
10248	raw := NoMethod(*s)
10249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10250}
10251
10252// ForwardingRuleListWarning: [Output Only] Informational warning
10253// message.
10254type ForwardingRuleListWarning struct {
10255	// Code: [Output Only] A warning code, if applicable. For example,
10256	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10257	// the response.
10258	//
10259	// Possible values:
10260	//   "CLEANUP_FAILED"
10261	//   "DEPRECATED_RESOURCE_USED"
10262	//   "DEPRECATED_TYPE_USED"
10263	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10264	//   "EXPERIMENTAL_TYPE_USED"
10265	//   "EXTERNAL_API_WARNING"
10266	//   "FIELD_VALUE_OVERRIDEN"
10267	//   "INJECTED_KERNELS_DEPRECATED"
10268	//   "MISSING_TYPE_DEPENDENCY"
10269	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10270	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10271	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10272	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10273	//   "NEXT_HOP_NOT_RUNNING"
10274	//   "NOT_CRITICAL_ERROR"
10275	//   "NO_RESULTS_ON_PAGE"
10276	//   "REQUIRED_TOS_AGREEMENT"
10277	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10278	//   "RESOURCE_NOT_DELETED"
10279	//   "SCHEMA_VALIDATION_IGNORED"
10280	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10281	//   "UNDECLARED_PROPERTIES"
10282	//   "UNREACHABLE"
10283	Code string `json:"code,omitempty"`
10284
10285	// Data: [Output Only] Metadata about this warning in key: value format.
10286	// For example:
10287	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10288	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
10289
10290	// Message: [Output Only] A human-readable description of the warning
10291	// code.
10292	Message string `json:"message,omitempty"`
10293
10294	// ForceSendFields is a list of field names (e.g. "Code") to
10295	// unconditionally include in API requests. By default, fields with
10296	// empty values are omitted from API requests. However, any non-pointer,
10297	// non-interface field appearing in ForceSendFields will be sent to the
10298	// server regardless of whether the field is empty or not. This may be
10299	// used to include empty fields in Patch requests.
10300	ForceSendFields []string `json:"-"`
10301
10302	// NullFields is a list of field names (e.g. "Code") to include in API
10303	// requests with the JSON null value. By default, fields with empty
10304	// values are omitted from API requests. However, any field with an
10305	// empty value appearing in NullFields will be sent to the server as
10306	// null. It is an error if a field in this list has a non-empty value.
10307	// This may be used to include null fields in Patch requests.
10308	NullFields []string `json:"-"`
10309}
10310
10311func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
10312	type NoMethod ForwardingRuleListWarning
10313	raw := NoMethod(*s)
10314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10315}
10316
10317type ForwardingRuleListWarningData struct {
10318	// Key: [Output Only] A key that provides more detail on the warning
10319	// being returned. For example, for warnings where there are no results
10320	// in a list request for a particular zone, this key might be scope and
10321	// the key value might be the zone name. Other examples might be a key
10322	// indicating a deprecated resource and a suggested replacement, or a
10323	// warning about invalid network settings (for example, if an instance
10324	// attempts to perform IP forwarding but is not enabled for IP
10325	// forwarding).
10326	Key string `json:"key,omitempty"`
10327
10328	// Value: [Output Only] A warning data value corresponding to the key.
10329	Value string `json:"value,omitempty"`
10330
10331	// ForceSendFields is a list of field names (e.g. "Key") to
10332	// unconditionally include in API requests. By default, fields with
10333	// empty values are omitted from API requests. However, any non-pointer,
10334	// non-interface field appearing in ForceSendFields will be sent to the
10335	// server regardless of whether the field is empty or not. This may be
10336	// used to include empty fields in Patch requests.
10337	ForceSendFields []string `json:"-"`
10338
10339	// NullFields is a list of field names (e.g. "Key") to include in API
10340	// requests with the JSON null value. By default, fields with empty
10341	// values are omitted from API requests. However, any field with an
10342	// empty value appearing in NullFields will be sent to the server as
10343	// null. It is an error if a field in this list has a non-empty value.
10344	// This may be used to include null fields in Patch requests.
10345	NullFields []string `json:"-"`
10346}
10347
10348func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
10349	type NoMethod ForwardingRuleListWarningData
10350	raw := NoMethod(*s)
10351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10352}
10353
10354type ForwardingRuleReference struct {
10355	ForwardingRule string `json:"forwardingRule,omitempty"`
10356
10357	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
10358	// unconditionally include in API requests. By default, fields with
10359	// empty values are omitted from API requests. However, any non-pointer,
10360	// non-interface field appearing in ForceSendFields will be sent to the
10361	// server regardless of whether the field is empty or not. This may be
10362	// used to include empty fields in Patch requests.
10363	ForceSendFields []string `json:"-"`
10364
10365	// NullFields is a list of field names (e.g. "ForwardingRule") to
10366	// include in API requests with the JSON null value. By default, fields
10367	// with empty values are omitted from API requests. However, any field
10368	// with an empty value appearing in NullFields will be sent to the
10369	// server as null. It is an error if a field in this list has a
10370	// non-empty value. This may be used to include null fields in Patch
10371	// requests.
10372	NullFields []string `json:"-"`
10373}
10374
10375func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
10376	type NoMethod ForwardingRuleReference
10377	raw := NoMethod(*s)
10378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10379}
10380
10381type ForwardingRulesScopedList struct {
10382	// ForwardingRules: A list of forwarding rules contained in this scope.
10383	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
10384
10385	// Warning: Informational warning which replaces the list of forwarding
10386	// rules when the list is empty.
10387	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
10388
10389	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
10390	// unconditionally include in API requests. By default, fields with
10391	// empty values are omitted from API requests. However, any non-pointer,
10392	// non-interface field appearing in ForceSendFields will be sent to the
10393	// server regardless of whether the field is empty or not. This may be
10394	// used to include empty fields in Patch requests.
10395	ForceSendFields []string `json:"-"`
10396
10397	// NullFields is a list of field names (e.g. "ForwardingRules") to
10398	// include in API requests with the JSON null value. By default, fields
10399	// with empty values are omitted from API requests. However, any field
10400	// with an empty value appearing in NullFields will be sent to the
10401	// server as null. It is an error if a field in this list has a
10402	// non-empty value. This may be used to include null fields in Patch
10403	// requests.
10404	NullFields []string `json:"-"`
10405}
10406
10407func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
10408	type NoMethod ForwardingRulesScopedList
10409	raw := NoMethod(*s)
10410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10411}
10412
10413// ForwardingRulesScopedListWarning: Informational warning which
10414// replaces the list of forwarding rules when the list is empty.
10415type ForwardingRulesScopedListWarning struct {
10416	// Code: [Output Only] A warning code, if applicable. For example,
10417	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10418	// the response.
10419	//
10420	// Possible values:
10421	//   "CLEANUP_FAILED"
10422	//   "DEPRECATED_RESOURCE_USED"
10423	//   "DEPRECATED_TYPE_USED"
10424	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10425	//   "EXPERIMENTAL_TYPE_USED"
10426	//   "EXTERNAL_API_WARNING"
10427	//   "FIELD_VALUE_OVERRIDEN"
10428	//   "INJECTED_KERNELS_DEPRECATED"
10429	//   "MISSING_TYPE_DEPENDENCY"
10430	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10431	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10432	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10433	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10434	//   "NEXT_HOP_NOT_RUNNING"
10435	//   "NOT_CRITICAL_ERROR"
10436	//   "NO_RESULTS_ON_PAGE"
10437	//   "REQUIRED_TOS_AGREEMENT"
10438	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10439	//   "RESOURCE_NOT_DELETED"
10440	//   "SCHEMA_VALIDATION_IGNORED"
10441	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10442	//   "UNDECLARED_PROPERTIES"
10443	//   "UNREACHABLE"
10444	Code string `json:"code,omitempty"`
10445
10446	// Data: [Output Only] Metadata about this warning in key: value format.
10447	// For example:
10448	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10449	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
10450
10451	// Message: [Output Only] A human-readable description of the warning
10452	// code.
10453	Message string `json:"message,omitempty"`
10454
10455	// ForceSendFields is a list of field names (e.g. "Code") to
10456	// unconditionally include in API requests. By default, fields with
10457	// empty values are omitted from API requests. However, any non-pointer,
10458	// non-interface field appearing in ForceSendFields will be sent to the
10459	// server regardless of whether the field is empty or not. This may be
10460	// used to include empty fields in Patch requests.
10461	ForceSendFields []string `json:"-"`
10462
10463	// NullFields is a list of field names (e.g. "Code") to include in API
10464	// requests with the JSON null value. By default, fields with empty
10465	// values are omitted from API requests. However, any field with an
10466	// empty value appearing in NullFields will be sent to the server as
10467	// null. It is an error if a field in this list has a non-empty value.
10468	// This may be used to include null fields in Patch requests.
10469	NullFields []string `json:"-"`
10470}
10471
10472func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
10473	type NoMethod ForwardingRulesScopedListWarning
10474	raw := NoMethod(*s)
10475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10476}
10477
10478type ForwardingRulesScopedListWarningData struct {
10479	// Key: [Output Only] A key that provides more detail on the warning
10480	// being returned. For example, for warnings where there are no results
10481	// in a list request for a particular zone, this key might be scope and
10482	// the key value might be the zone name. Other examples might be a key
10483	// indicating a deprecated resource and a suggested replacement, or a
10484	// warning about invalid network settings (for example, if an instance
10485	// attempts to perform IP forwarding but is not enabled for IP
10486	// forwarding).
10487	Key string `json:"key,omitempty"`
10488
10489	// Value: [Output Only] A warning data value corresponding to the key.
10490	Value string `json:"value,omitempty"`
10491
10492	// ForceSendFields is a list of field names (e.g. "Key") to
10493	// unconditionally include in API requests. By default, fields with
10494	// empty values are omitted from API requests. However, any non-pointer,
10495	// non-interface field appearing in ForceSendFields will be sent to the
10496	// server regardless of whether the field is empty or not. This may be
10497	// used to include empty fields in Patch requests.
10498	ForceSendFields []string `json:"-"`
10499
10500	// NullFields is a list of field names (e.g. "Key") to include in API
10501	// requests with the JSON null value. By default, fields with empty
10502	// values are omitted from API requests. However, any field with an
10503	// empty value appearing in NullFields will be sent to the server as
10504	// null. It is an error if a field in this list has a non-empty value.
10505	// This may be used to include null fields in Patch requests.
10506	NullFields []string `json:"-"`
10507}
10508
10509func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
10510	type NoMethod ForwardingRulesScopedListWarningData
10511	raw := NoMethod(*s)
10512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10513}
10514
10515type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
10516	// NetworkEndpoints: The list of network endpoints to be attached.
10517	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10518
10519	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10520	// unconditionally include in API requests. By default, fields with
10521	// empty values are omitted from API requests. However, any non-pointer,
10522	// non-interface field appearing in ForceSendFields will be sent to the
10523	// server regardless of whether the field is empty or not. This may be
10524	// used to include empty fields in Patch requests.
10525	ForceSendFields []string `json:"-"`
10526
10527	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10528	// include in API requests with the JSON null value. By default, fields
10529	// with empty values are omitted from API requests. However, any field
10530	// with an empty value appearing in NullFields will be sent to the
10531	// server as null. It is an error if a field in this list has a
10532	// non-empty value. This may be used to include null fields in Patch
10533	// requests.
10534	NullFields []string `json:"-"`
10535}
10536
10537func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
10538	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
10539	raw := NoMethod(*s)
10540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10541}
10542
10543type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
10544	// NetworkEndpoints: The list of network endpoints to be detached.
10545	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10546
10547	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10548	// unconditionally include in API requests. By default, fields with
10549	// empty values are omitted from API requests. However, any non-pointer,
10550	// non-interface field appearing in ForceSendFields will be sent to the
10551	// server regardless of whether the field is empty or not. This may be
10552	// used to include empty fields in Patch requests.
10553	ForceSendFields []string `json:"-"`
10554
10555	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10556	// include in API requests with the JSON null value. By default, fields
10557	// with empty values are omitted from API requests. However, any field
10558	// with an empty value appearing in NullFields will be sent to the
10559	// server as null. It is an error if a field in this list has a
10560	// non-empty value. This may be used to include null fields in Patch
10561	// requests.
10562	NullFields []string `json:"-"`
10563}
10564
10565func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
10566	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
10567	raw := NoMethod(*s)
10568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10569}
10570
10571type GlobalSetLabelsRequest struct {
10572	// LabelFingerprint: The fingerprint of the previous set of labels for
10573	// this resource, used to detect conflicts. The fingerprint is initially
10574	// generated by Compute Engine and changes after every request to modify
10575	// or update labels. You must always provide an up-to-date fingerprint
10576	// hash when updating or changing labels, otherwise the request will
10577	// fail with error 412 conditionNotMet. Make a get() request to the
10578	// resource to get the latest fingerprint.
10579	LabelFingerprint string `json:"labelFingerprint,omitempty"`
10580
10581	// Labels: A list of labels to apply for this resource. Each label key &
10582	// value must comply with RFC1035. Specifically, the name must be 1-63
10583	// characters long and match the regular expression
10584	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
10585	// a lowercase letter, and all following characters must be a dash,
10586	// lowercase letter, or digit, except the last character, which cannot
10587	// be a dash. For example, "webserver-frontend": "images". A label value
10588	// can also be empty (e.g. "my-label": "").
10589	Labels map[string]string `json:"labels,omitempty"`
10590
10591	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
10592	// unconditionally include in API requests. By default, fields with
10593	// empty values are omitted from API requests. However, any non-pointer,
10594	// non-interface field appearing in ForceSendFields will be sent to the
10595	// server regardless of whether the field is empty or not. This may be
10596	// used to include empty fields in Patch requests.
10597	ForceSendFields []string `json:"-"`
10598
10599	// NullFields is a list of field names (e.g. "LabelFingerprint") to
10600	// include in API requests with the JSON null value. By default, fields
10601	// with empty values are omitted from API requests. However, any field
10602	// with an empty value appearing in NullFields will be sent to the
10603	// server as null. It is an error if a field in this list has a
10604	// non-empty value. This may be used to include null fields in Patch
10605	// requests.
10606	NullFields []string `json:"-"`
10607}
10608
10609func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
10610	type NoMethod GlobalSetLabelsRequest
10611	raw := NoMethod(*s)
10612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10613}
10614
10615type GlobalSetPolicyRequest struct {
10616	// Bindings: Flatten Policy to create a backward compatible wire-format.
10617	// Deprecated. Use 'policy' to specify bindings.
10618	Bindings []*Binding `json:"bindings,omitempty"`
10619
10620	// Etag: Flatten Policy to create a backward compatible wire-format.
10621	// Deprecated. Use 'policy' to specify the etag.
10622	Etag string `json:"etag,omitempty"`
10623
10624	// Policy: REQUIRED: The complete policy to be applied to the
10625	// 'resource'. The size of the policy is limited to a few 10s of KB. An
10626	// empty policy is in general a valid policy but certain services (like
10627	// Projects) might reject them.
10628	Policy *Policy `json:"policy,omitempty"`
10629
10630	// ForceSendFields is a list of field names (e.g. "Bindings") to
10631	// unconditionally include in API requests. By default, fields with
10632	// empty values are omitted from API requests. However, any non-pointer,
10633	// non-interface field appearing in ForceSendFields will be sent to the
10634	// server regardless of whether the field is empty or not. This may be
10635	// used to include empty fields in Patch requests.
10636	ForceSendFields []string `json:"-"`
10637
10638	// NullFields is a list of field names (e.g. "Bindings") to include in
10639	// API requests with the JSON null value. By default, fields with empty
10640	// values are omitted from API requests. However, any field with an
10641	// empty value appearing in NullFields will be sent to the server as
10642	// null. It is an error if a field in this list has a non-empty value.
10643	// This may be used to include null fields in Patch requests.
10644	NullFields []string `json:"-"`
10645}
10646
10647func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
10648	type NoMethod GlobalSetPolicyRequest
10649	raw := NoMethod(*s)
10650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10651}
10652
10653// GuestAttributes: A guest attributes entry.
10654type GuestAttributes struct {
10655	// Kind: [Output Only] Type of the resource. Always
10656	// compute#guestAttributes for guest attributes entry.
10657	Kind string `json:"kind,omitempty"`
10658
10659	// QueryPath: The path to be queried. This can be the default namespace
10660	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
10661	QueryPath string `json:"queryPath,omitempty"`
10662
10663	// QueryValue: [Output Only] The value of the requested queried path.
10664	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
10665
10666	// SelfLink: [Output Only] Server-defined URL for this resource.
10667	SelfLink string `json:"selfLink,omitempty"`
10668
10669	// VariableKey: The key to search for.
10670	VariableKey string `json:"variableKey,omitempty"`
10671
10672	// VariableValue: [Output Only] The value found for the requested key.
10673	VariableValue string `json:"variableValue,omitempty"`
10674
10675	// ServerResponse contains the HTTP response code and headers from the
10676	// server.
10677	googleapi.ServerResponse `json:"-"`
10678
10679	// ForceSendFields is a list of field names (e.g. "Kind") to
10680	// unconditionally include in API requests. By default, fields with
10681	// empty values are omitted from API requests. However, any non-pointer,
10682	// non-interface field appearing in ForceSendFields will be sent to the
10683	// server regardless of whether the field is empty or not. This may be
10684	// used to include empty fields in Patch requests.
10685	ForceSendFields []string `json:"-"`
10686
10687	// NullFields is a list of field names (e.g. "Kind") to include in API
10688	// requests with the JSON null value. By default, fields with empty
10689	// values are omitted from API requests. However, any field with an
10690	// empty value appearing in NullFields will be sent to the server as
10691	// null. It is an error if a field in this list has a non-empty value.
10692	// This may be used to include null fields in Patch requests.
10693	NullFields []string `json:"-"`
10694}
10695
10696func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
10697	type NoMethod GuestAttributes
10698	raw := NoMethod(*s)
10699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10700}
10701
10702// GuestAttributesEntry: A guest attributes namespace/key/value entry.
10703type GuestAttributesEntry struct {
10704	// Key: Key for the guest attribute entry.
10705	Key string `json:"key,omitempty"`
10706
10707	// Namespace: Namespace for the guest attribute entry.
10708	Namespace string `json:"namespace,omitempty"`
10709
10710	// Value: Value for the guest attribute entry.
10711	Value string `json:"value,omitempty"`
10712
10713	// ForceSendFields is a list of field names (e.g. "Key") to
10714	// unconditionally include in API requests. By default, fields with
10715	// empty values are omitted from API requests. However, any non-pointer,
10716	// non-interface field appearing in ForceSendFields will be sent to the
10717	// server regardless of whether the field is empty or not. This may be
10718	// used to include empty fields in Patch requests.
10719	ForceSendFields []string `json:"-"`
10720
10721	// NullFields is a list of field names (e.g. "Key") to include in API
10722	// requests with the JSON null value. By default, fields with empty
10723	// values are omitted from API requests. However, any field with an
10724	// empty value appearing in NullFields will be sent to the server as
10725	// null. It is an error if a field in this list has a non-empty value.
10726	// This may be used to include null fields in Patch requests.
10727	NullFields []string `json:"-"`
10728}
10729
10730func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
10731	type NoMethod GuestAttributesEntry
10732	raw := NoMethod(*s)
10733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10734}
10735
10736// GuestAttributesValue: Array of guest attribute namespace/key/value
10737// tuples.
10738type GuestAttributesValue struct {
10739	Items []*GuestAttributesEntry `json:"items,omitempty"`
10740
10741	// ForceSendFields is a list of field names (e.g. "Items") to
10742	// unconditionally include in API requests. By default, fields with
10743	// empty values are omitted from API requests. However, any non-pointer,
10744	// non-interface field appearing in ForceSendFields will be sent to the
10745	// server regardless of whether the field is empty or not. This may be
10746	// used to include empty fields in Patch requests.
10747	ForceSendFields []string `json:"-"`
10748
10749	// NullFields is a list of field names (e.g. "Items") to include in API
10750	// requests with the JSON null value. By default, fields with empty
10751	// values are omitted from API requests. However, any field with an
10752	// empty value appearing in NullFields will be sent to the server as
10753	// null. It is an error if a field in this list has a non-empty value.
10754	// This may be used to include null fields in Patch requests.
10755	NullFields []string `json:"-"`
10756}
10757
10758func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
10759	type NoMethod GuestAttributesValue
10760	raw := NoMethod(*s)
10761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10762}
10763
10764// GuestOsFeature: Guest OS features.
10765type GuestOsFeature struct {
10766	// Type: The ID of a supported feature. Read  Enabling guest operating
10767	// system features to see a list of available options.
10768	//
10769	// Possible values:
10770	//   "FEATURE_TYPE_UNSPECIFIED"
10771	//   "GVNIC"
10772	//   "MULTI_IP_SUBNET"
10773	//   "SECURE_BOOT"
10774	//   "SEV_CAPABLE"
10775	//   "UEFI_COMPATIBLE"
10776	//   "VIRTIO_SCSI_MULTIQUEUE"
10777	//   "WINDOWS"
10778	Type string `json:"type,omitempty"`
10779
10780	// ForceSendFields is a list of field names (e.g. "Type") to
10781	// unconditionally include in API requests. By default, fields with
10782	// empty values are omitted from API requests. However, any non-pointer,
10783	// non-interface field appearing in ForceSendFields will be sent to the
10784	// server regardless of whether the field is empty or not. This may be
10785	// used to include empty fields in Patch requests.
10786	ForceSendFields []string `json:"-"`
10787
10788	// NullFields is a list of field names (e.g. "Type") to include in API
10789	// requests with the JSON null value. By default, fields with empty
10790	// values are omitted from API requests. However, any field with an
10791	// empty value appearing in NullFields will be sent to the server as
10792	// null. It is an error if a field in this list has a non-empty value.
10793	// This may be used to include null fields in Patch requests.
10794	NullFields []string `json:"-"`
10795}
10796
10797func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
10798	type NoMethod GuestOsFeature
10799	raw := NoMethod(*s)
10800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10801}
10802
10803type HTTP2HealthCheck struct {
10804	// Host: The value of the host header in the HTTP/2 health check
10805	// request. If left empty (default value), the IP on behalf of which
10806	// this health check is performed will be used.
10807	Host string `json:"host,omitempty"`
10808
10809	// Port: The TCP port number for the health check request. The default
10810	// value is 443. Valid values are 1 through 65535.
10811	Port int64 `json:"port,omitempty"`
10812
10813	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10814	// both port and port_name are defined, port takes precedence.
10815	PortName string `json:"portName,omitempty"`
10816
10817	// PortSpecification: Specifies how port is selected for health
10818	// checking, can be one of following values:
10819	// USE_FIXED_PORT: The port number in port is used for health
10820	// checking.
10821	// USE_NAMED_PORT: The portName is used for health
10822	// checking.
10823	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10824	// each network endpoint is used for health checking. For other
10825	// backends, the port or named port specified in the Backend Service is
10826	// used for health checking.
10827	//
10828	//
10829	// If not specified, HTTP2 health check follows behavior specified in
10830	// port and portName fields.
10831	//
10832	// Possible values:
10833	//   "USE_FIXED_PORT"
10834	//   "USE_NAMED_PORT"
10835	//   "USE_SERVING_PORT"
10836	PortSpecification string `json:"portSpecification,omitempty"`
10837
10838	// ProxyHeader: Specifies the type of proxy header to append before
10839	// sending data to the backend, either NONE or PROXY_V1. The default is
10840	// NONE.
10841	//
10842	// Possible values:
10843	//   "NONE"
10844	//   "PROXY_V1"
10845	ProxyHeader string `json:"proxyHeader,omitempty"`
10846
10847	// RequestPath: The request path of the HTTP/2 health check request. The
10848	// default value is /.
10849	RequestPath string `json:"requestPath,omitempty"`
10850
10851	// Response: The string to match anywhere in the first 1024 bytes of the
10852	// response body. If left empty (the default value), the status code
10853	// determines health. The response data can only be ASCII.
10854	Response string `json:"response,omitempty"`
10855
10856	// ForceSendFields is a list of field names (e.g. "Host") to
10857	// unconditionally include in API requests. By default, fields with
10858	// empty values are omitted from API requests. However, any non-pointer,
10859	// non-interface field appearing in ForceSendFields will be sent to the
10860	// server regardless of whether the field is empty or not. This may be
10861	// used to include empty fields in Patch requests.
10862	ForceSendFields []string `json:"-"`
10863
10864	// NullFields is a list of field names (e.g. "Host") to include in API
10865	// requests with the JSON null value. By default, fields with empty
10866	// values are omitted from API requests. However, any field with an
10867	// empty value appearing in NullFields will be sent to the server as
10868	// null. It is an error if a field in this list has a non-empty value.
10869	// This may be used to include null fields in Patch requests.
10870	NullFields []string `json:"-"`
10871}
10872
10873func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
10874	type NoMethod HTTP2HealthCheck
10875	raw := NoMethod(*s)
10876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10877}
10878
10879type HTTPHealthCheck struct {
10880	// Host: The value of the host header in the HTTP health check request.
10881	// If left empty (default value), the IP on behalf of which this health
10882	// check is performed will be used.
10883	Host string `json:"host,omitempty"`
10884
10885	// Port: The TCP port number for the health check request. The default
10886	// value is 80. Valid values are 1 through 65535.
10887	Port int64 `json:"port,omitempty"`
10888
10889	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10890	// both port and port_name are defined, port takes precedence.
10891	PortName string `json:"portName,omitempty"`
10892
10893	// PortSpecification: Specifies how port is selected for health
10894	// checking, can be one of following values:
10895	// USE_FIXED_PORT: The port number in port is used for health
10896	// checking.
10897	// USE_NAMED_PORT: The portName is used for health
10898	// checking.
10899	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10900	// each network endpoint is used for health checking. For other
10901	// backends, the port or named port specified in the Backend Service is
10902	// used for health checking.
10903	//
10904	//
10905	// If not specified, HTTP health check follows behavior specified in
10906	// port and portName fields.
10907	//
10908	// Possible values:
10909	//   "USE_FIXED_PORT"
10910	//   "USE_NAMED_PORT"
10911	//   "USE_SERVING_PORT"
10912	PortSpecification string `json:"portSpecification,omitempty"`
10913
10914	// ProxyHeader: Specifies the type of proxy header to append before
10915	// sending data to the backend, either NONE or PROXY_V1. The default is
10916	// NONE.
10917	//
10918	// Possible values:
10919	//   "NONE"
10920	//   "PROXY_V1"
10921	ProxyHeader string `json:"proxyHeader,omitempty"`
10922
10923	// RequestPath: The request path of the HTTP health check request. The
10924	// default value is /.
10925	RequestPath string `json:"requestPath,omitempty"`
10926
10927	// Response: The string to match anywhere in the first 1024 bytes of the
10928	// response body. If left empty (the default value), the status code
10929	// determines health. The response data can only be ASCII.
10930	Response string `json:"response,omitempty"`
10931
10932	// ForceSendFields is a list of field names (e.g. "Host") to
10933	// unconditionally include in API requests. By default, fields with
10934	// empty values are omitted from API requests. However, any non-pointer,
10935	// non-interface field appearing in ForceSendFields will be sent to the
10936	// server regardless of whether the field is empty or not. This may be
10937	// used to include empty fields in Patch requests.
10938	ForceSendFields []string `json:"-"`
10939
10940	// NullFields is a list of field names (e.g. "Host") to include in API
10941	// requests with the JSON null value. By default, fields with empty
10942	// values are omitted from API requests. However, any field with an
10943	// empty value appearing in NullFields will be sent to the server as
10944	// null. It is an error if a field in this list has a non-empty value.
10945	// This may be used to include null fields in Patch requests.
10946	NullFields []string `json:"-"`
10947}
10948
10949func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
10950	type NoMethod HTTPHealthCheck
10951	raw := NoMethod(*s)
10952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10953}
10954
10955type HTTPSHealthCheck struct {
10956	// Host: The value of the host header in the HTTPS health check request.
10957	// If left empty (default value), the IP on behalf of which this health
10958	// check is performed will be used.
10959	Host string `json:"host,omitempty"`
10960
10961	// Port: The TCP port number for the health check request. The default
10962	// value is 443. Valid values are 1 through 65535.
10963	Port int64 `json:"port,omitempty"`
10964
10965	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10966	// both port and port_name are defined, port takes precedence.
10967	PortName string `json:"portName,omitempty"`
10968
10969	// PortSpecification: Specifies how port is selected for health
10970	// checking, can be one of following values:
10971	// USE_FIXED_PORT: The port number in port is used for health
10972	// checking.
10973	// USE_NAMED_PORT: The portName is used for health
10974	// checking.
10975	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10976	// each network endpoint is used for health checking. For other
10977	// backends, the port or named port specified in the Backend Service is
10978	// used for health checking.
10979	//
10980	//
10981	// If not specified, HTTPS health check follows behavior specified in
10982	// port and portName fields.
10983	//
10984	// Possible values:
10985	//   "USE_FIXED_PORT"
10986	//   "USE_NAMED_PORT"
10987	//   "USE_SERVING_PORT"
10988	PortSpecification string `json:"portSpecification,omitempty"`
10989
10990	// ProxyHeader: Specifies the type of proxy header to append before
10991	// sending data to the backend, either NONE or PROXY_V1. The default is
10992	// NONE.
10993	//
10994	// Possible values:
10995	//   "NONE"
10996	//   "PROXY_V1"
10997	ProxyHeader string `json:"proxyHeader,omitempty"`
10998
10999	// RequestPath: The request path of the HTTPS health check request. The
11000	// default value is /.
11001	RequestPath string `json:"requestPath,omitempty"`
11002
11003	// Response: The string to match anywhere in the first 1024 bytes of the
11004	// response body. If left empty (the default value), the status code
11005	// determines health. The response data can only be ASCII.
11006	Response string `json:"response,omitempty"`
11007
11008	// ForceSendFields is a list of field names (e.g. "Host") to
11009	// unconditionally include in API requests. By default, fields with
11010	// empty values are omitted from API requests. However, any non-pointer,
11011	// non-interface field appearing in ForceSendFields will be sent to the
11012	// server regardless of whether the field is empty or not. This may be
11013	// used to include empty fields in Patch requests.
11014	ForceSendFields []string `json:"-"`
11015
11016	// NullFields is a list of field names (e.g. "Host") to include in API
11017	// requests with the JSON null value. By default, fields with empty
11018	// values are omitted from API requests. However, any field with an
11019	// empty value appearing in NullFields will be sent to the server as
11020	// null. It is an error if a field in this list has a non-empty value.
11021	// This may be used to include null fields in Patch requests.
11022	NullFields []string `json:"-"`
11023}
11024
11025func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
11026	type NoMethod HTTPSHealthCheck
11027	raw := NoMethod(*s)
11028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11029}
11030
11031// HealthCheck: Represents a Health Check resource.
11032//
11033// Google Compute Engine has two Health Check resources:
11034//
11035// * [Global](/compute/docs/reference/rest/{$api_version}/healthChecks)
11036// *
11037// [Regional](/compute/docs/reference/rest/{$api_version}/regionHealthChe
11038// cks)
11039//
11040// Internal HTTP(S) load balancers use regional health checks. All other
11041// types of GCP load balancers and managed instance group auto-healing
11042// use global health checks. For more information, read Health Check
11043// Concepts.
11044//
11045// To perform health checks on network load balancers, you must use
11046// either httpHealthChecks or httpsHealthChecks.
11047type HealthCheck struct {
11048	// CheckIntervalSec: How often (in seconds) to send a health check. The
11049	// default value is 5 seconds.
11050	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
11051
11052	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
11053	// format.
11054	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11055
11056	// Description: An optional description of this resource. Provide this
11057	// property when you create the resource.
11058	Description string `json:"description,omitempty"`
11059
11060	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
11061	// after this many consecutive successes. The default value is 2.
11062	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
11063
11064	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
11065
11066	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
11067
11068	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
11069
11070	// Id: [Output Only] The unique identifier for the resource. This
11071	// identifier is defined by the server.
11072	Id uint64 `json:"id,omitempty,string"`
11073
11074	// Kind: Type of the resource.
11075	Kind string `json:"kind,omitempty"`
11076
11077	// LogConfig: Configure logging on this health check.
11078	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
11079
11080	// Name: Name of the resource. Provided by the client when the resource
11081	// is created. The name must be 1-63 characters long, and comply with
11082	// RFC1035. Specifically, the name must be 1-63 characters long and
11083	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11084	// the first character must be a lowercase letter, and all following
11085	// characters must be a dash, lowercase letter, or digit, except the
11086	// last character, which cannot be a dash.
11087	Name string `json:"name,omitempty"`
11088
11089	// Region: [Output Only] Region where the health check resides. Not
11090	// applicable to global health checks.
11091	Region string `json:"region,omitempty"`
11092
11093	// SelfLink: [Output Only] Server-defined URL for the resource.
11094	SelfLink string `json:"selfLink,omitempty"`
11095
11096	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
11097
11098	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
11099
11100	// TimeoutSec: How long (in seconds) to wait before claiming failure.
11101	// The default value is 5 seconds. It is invalid for timeoutSec to have
11102	// greater value than checkIntervalSec.
11103	TimeoutSec int64 `json:"timeoutSec,omitempty"`
11104
11105	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
11106	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
11107	// the protocol-specific health check field must be specified, which
11108	// must match type field.
11109	//
11110	// Possible values:
11111	//   "HTTP"
11112	//   "HTTP2"
11113	//   "HTTPS"
11114	//   "INVALID"
11115	//   "SSL"
11116	//   "TCP"
11117	Type string `json:"type,omitempty"`
11118
11119	// UnhealthyThreshold: A so-far healthy instance will be marked
11120	// unhealthy after this many consecutive failures. The default value is
11121	// 2.
11122	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
11123
11124	// ServerResponse contains the HTTP response code and headers from the
11125	// server.
11126	googleapi.ServerResponse `json:"-"`
11127
11128	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
11129	// unconditionally include in API requests. By default, fields with
11130	// empty values are omitted from API requests. However, any non-pointer,
11131	// non-interface field appearing in ForceSendFields will be sent to the
11132	// server regardless of whether the field is empty or not. This may be
11133	// used to include empty fields in Patch requests.
11134	ForceSendFields []string `json:"-"`
11135
11136	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
11137	// include in API requests with the JSON null value. By default, fields
11138	// with empty values are omitted from API requests. However, any field
11139	// with an empty value appearing in NullFields will be sent to the
11140	// server as null. It is an error if a field in this list has a
11141	// non-empty value. This may be used to include null fields in Patch
11142	// requests.
11143	NullFields []string `json:"-"`
11144}
11145
11146func (s *HealthCheck) MarshalJSON() ([]byte, error) {
11147	type NoMethod HealthCheck
11148	raw := NoMethod(*s)
11149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11150}
11151
11152// HealthCheckList: Contains a list of HealthCheck resources.
11153type HealthCheckList struct {
11154	// Id: [Output Only] Unique identifier for the resource; defined by the
11155	// server.
11156	Id string `json:"id,omitempty"`
11157
11158	// Items: A list of HealthCheck resources.
11159	Items []*HealthCheck `json:"items,omitempty"`
11160
11161	// Kind: Type of resource.
11162	Kind string `json:"kind,omitempty"`
11163
11164	// NextPageToken: [Output Only] This token allows you to get the next
11165	// page of results for list requests. If the number of results is larger
11166	// than maxResults, use the nextPageToken as a value for the query
11167	// parameter pageToken in the next list request. Subsequent list
11168	// requests will have their own nextPageToken to continue paging through
11169	// the results.
11170	NextPageToken string `json:"nextPageToken,omitempty"`
11171
11172	// SelfLink: [Output Only] Server-defined URL for this resource.
11173	SelfLink string `json:"selfLink,omitempty"`
11174
11175	// Warning: [Output Only] Informational warning message.
11176	Warning *HealthCheckListWarning `json:"warning,omitempty"`
11177
11178	// ServerResponse contains the HTTP response code and headers from the
11179	// server.
11180	googleapi.ServerResponse `json:"-"`
11181
11182	// ForceSendFields is a list of field names (e.g. "Id") to
11183	// unconditionally include in API requests. By default, fields with
11184	// empty values are omitted from API requests. However, any non-pointer,
11185	// non-interface field appearing in ForceSendFields will be sent to the
11186	// server regardless of whether the field is empty or not. This may be
11187	// used to include empty fields in Patch requests.
11188	ForceSendFields []string `json:"-"`
11189
11190	// NullFields is a list of field names (e.g. "Id") to include in API
11191	// requests with the JSON null value. By default, fields with empty
11192	// values are omitted from API requests. However, any field with an
11193	// empty value appearing in NullFields will be sent to the server as
11194	// null. It is an error if a field in this list has a non-empty value.
11195	// This may be used to include null fields in Patch requests.
11196	NullFields []string `json:"-"`
11197}
11198
11199func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
11200	type NoMethod HealthCheckList
11201	raw := NoMethod(*s)
11202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11203}
11204
11205// HealthCheckListWarning: [Output Only] Informational warning message.
11206type HealthCheckListWarning struct {
11207	// Code: [Output Only] A warning code, if applicable. For example,
11208	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11209	// the response.
11210	//
11211	// Possible values:
11212	//   "CLEANUP_FAILED"
11213	//   "DEPRECATED_RESOURCE_USED"
11214	//   "DEPRECATED_TYPE_USED"
11215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11216	//   "EXPERIMENTAL_TYPE_USED"
11217	//   "EXTERNAL_API_WARNING"
11218	//   "FIELD_VALUE_OVERRIDEN"
11219	//   "INJECTED_KERNELS_DEPRECATED"
11220	//   "MISSING_TYPE_DEPENDENCY"
11221	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11222	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11223	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11224	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11225	//   "NEXT_HOP_NOT_RUNNING"
11226	//   "NOT_CRITICAL_ERROR"
11227	//   "NO_RESULTS_ON_PAGE"
11228	//   "REQUIRED_TOS_AGREEMENT"
11229	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11230	//   "RESOURCE_NOT_DELETED"
11231	//   "SCHEMA_VALIDATION_IGNORED"
11232	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11233	//   "UNDECLARED_PROPERTIES"
11234	//   "UNREACHABLE"
11235	Code string `json:"code,omitempty"`
11236
11237	// Data: [Output Only] Metadata about this warning in key: value format.
11238	// For example:
11239	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11240	Data []*HealthCheckListWarningData `json:"data,omitempty"`
11241
11242	// Message: [Output Only] A human-readable description of the warning
11243	// code.
11244	Message string `json:"message,omitempty"`
11245
11246	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") to include in API
11255	// requests with the JSON null value. By default, fields with empty
11256	// values are omitted from API requests. However, any field with an
11257	// empty value appearing in NullFields will be sent to the server as
11258	// null. It is an error if a field in this list has a non-empty value.
11259	// This may be used to include null fields in Patch requests.
11260	NullFields []string `json:"-"`
11261}
11262
11263func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
11264	type NoMethod HealthCheckListWarning
11265	raw := NoMethod(*s)
11266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11267}
11268
11269type HealthCheckListWarningData struct {
11270	// Key: [Output Only] A key that provides more detail on the warning
11271	// being returned. For example, for warnings where there are no results
11272	// in a list request for a particular zone, this key might be scope and
11273	// the key value might be the zone name. Other examples might be a key
11274	// indicating a deprecated resource and a suggested replacement, or a
11275	// warning about invalid network settings (for example, if an instance
11276	// attempts to perform IP forwarding but is not enabled for IP
11277	// forwarding).
11278	Key string `json:"key,omitempty"`
11279
11280	// Value: [Output Only] A warning data value corresponding to the key.
11281	Value string `json:"value,omitempty"`
11282
11283	// ForceSendFields is a list of field names (e.g. "Key") to
11284	// unconditionally include in API requests. By default, fields with
11285	// empty values are omitted from API requests. However, any non-pointer,
11286	// non-interface field appearing in ForceSendFields will be sent to the
11287	// server regardless of whether the field is empty or not. This may be
11288	// used to include empty fields in Patch requests.
11289	ForceSendFields []string `json:"-"`
11290
11291	// NullFields is a list of field names (e.g. "Key") to include in API
11292	// requests with the JSON null value. By default, fields with empty
11293	// values are omitted from API requests. However, any field with an
11294	// empty value appearing in NullFields will be sent to the server as
11295	// null. It is an error if a field in this list has a non-empty value.
11296	// This may be used to include null fields in Patch requests.
11297	NullFields []string `json:"-"`
11298}
11299
11300func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
11301	type NoMethod HealthCheckListWarningData
11302	raw := NoMethod(*s)
11303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11304}
11305
11306// HealthCheckLogConfig: Configuration of logging on a health check. If
11307// logging is enabled, logs will be exported to Stackdriver.
11308type HealthCheckLogConfig struct {
11309	// Enable: Indicates whether or not to export logs. This is false by
11310	// default, which means no health check logging will be done.
11311	Enable bool `json:"enable,omitempty"`
11312
11313	// ForceSendFields is a list of field names (e.g. "Enable") to
11314	// unconditionally include in API requests. By default, fields with
11315	// empty values are omitted from API requests. However, any non-pointer,
11316	// non-interface field appearing in ForceSendFields will be sent to the
11317	// server regardless of whether the field is empty or not. This may be
11318	// used to include empty fields in Patch requests.
11319	ForceSendFields []string `json:"-"`
11320
11321	// NullFields is a list of field names (e.g. "Enable") to include in API
11322	// requests with the JSON null value. By default, fields with empty
11323	// values are omitted from API requests. However, any field with an
11324	// empty value appearing in NullFields will be sent to the server as
11325	// null. It is an error if a field in this list has a non-empty value.
11326	// This may be used to include null fields in Patch requests.
11327	NullFields []string `json:"-"`
11328}
11329
11330func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
11331	type NoMethod HealthCheckLogConfig
11332	raw := NoMethod(*s)
11333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11334}
11335
11336// HealthCheckReference: A full or valid partial URL to a health check.
11337// For example, the following are valid URLs:
11338// -
11339// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
11340// - projects/project-id/global/httpHealthChecks/health-check
11341// - global/httpHealthChecks/health-check
11342type HealthCheckReference struct {
11343	HealthCheck string `json:"healthCheck,omitempty"`
11344
11345	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
11346	// unconditionally include in API requests. By default, fields with
11347	// empty values are omitted from API requests. However, any non-pointer,
11348	// non-interface field appearing in ForceSendFields will be sent to the
11349	// server regardless of whether the field is empty or not. This may be
11350	// used to include empty fields in Patch requests.
11351	ForceSendFields []string `json:"-"`
11352
11353	// NullFields is a list of field names (e.g. "HealthCheck") to include
11354	// in API requests with the JSON null value. By default, fields with
11355	// empty values are omitted from API requests. However, any field with
11356	// an empty value appearing in NullFields will be sent to the server as
11357	// null. It is an error if a field in this list has a non-empty value.
11358	// This may be used to include null fields in Patch requests.
11359	NullFields []string `json:"-"`
11360}
11361
11362func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
11363	type NoMethod HealthCheckReference
11364	raw := NoMethod(*s)
11365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11366}
11367
11368// HealthCheckService: Represents a Health-Check as a Service
11369// resource.
11370//
11371// (== resource_for {$api_version}.regionHealthCheckServices ==)
11372type HealthCheckService struct {
11373	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11374	// format.
11375	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11376
11377	// Description: An optional description of this resource. Provide this
11378	// property when you create the resource.
11379	Description string `json:"description,omitempty"`
11380
11381	// Fingerprint: Fingerprint of this resource. A hash of the contents
11382	// stored in this object. This field is used in optimistic locking. This
11383	// field will be ignored when inserting a HealthCheckService. An
11384	// up-to-date fingerprint must be provided in order to patch/update the
11385	// HealthCheckService; Otherwise, the request will fail with error 412
11386	// conditionNotMet. To see the latest fingerprint, make a get() request
11387	// to retrieve the HealthCheckService.
11388	Fingerprint string `json:"fingerprint,omitempty"`
11389
11390	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
11391	// least one HealthCheck, and not more than 10. HealthCheck resources
11392	// must have portSpecification=USE_SERVING_PORT. For regional
11393	// HealthCheckService, the HealthCheck must be regional and in the same
11394	// region. For global HealthCheckService, HealthCheck must be global.
11395	// Mix of regional and global HealthChecks is not supported. Multiple
11396	// regional HealthChecks must belong to the same region. Regional
11397	// HealthChecks</code? must belong to the same region as zones of NEGs.
11398	HealthChecks []string `json:"healthChecks,omitempty"`
11399
11400	// HealthStatusAggregationPolicy: Optional. Policy for how the results
11401	// from multiple health checks for the same endpoint are aggregated.
11402	// Defaults to NO_AGGREGATION if unspecified.
11403	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11404	// backend in the health check service.
11405	// - AND. If any backend's health check reports UNHEALTHY, then
11406	// UNHEALTHY is the HealthState of the entire health check service. If
11407	// all backend's are healthy, the HealthState of the health check
11408	// service is HEALTHY. .
11409	//
11410	// Possible values:
11411	//   "AND"
11412	//   "NO_AGGREGATION"
11413	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
11414
11415	// HealthStatusAggregationStrategy: This field is deprecated. Use
11416	// health_status_aggregation_policy instead.
11417	//
11418	// Policy for how the results from multiple health checks for the same
11419	// endpoint are aggregated.
11420	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11421	// backend in the health check service.
11422	// - AND. If any backend's health check reports UNHEALTHY, then
11423	// UNHEALTHY is the HealthState of the entire health check service. If
11424	// all backend's are healthy, the HealthState of the health check
11425	// service is HEALTHY. .
11426	//
11427	// Possible values:
11428	//   "AND"
11429	//   "NO_AGGREGATION"
11430	HealthStatusAggregationStrategy string `json:"healthStatusAggregationStrategy,omitempty"`
11431
11432	// Id: [Output Only] The unique identifier for the resource. This
11433	// identifier is defined by the server.
11434	Id uint64 `json:"id,omitempty,string"`
11435
11436	// Kind: [Output only] Type of the resource. Always
11437	// compute#healthCheckServicefor health check services.
11438	Kind string `json:"kind,omitempty"`
11439
11440	// Name: Name of the resource. The name must be 1-63 characters long,
11441	// and comply with RFC1035. Specifically, the name must be 1-63
11442	// characters long and match the regular expression
11443	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11444	// a lowercase letter, and all following characters must be a dash,
11445	// lowercase letter, or digit, except the last character, which cannot
11446	// be a dash.
11447	Name string `json:"name,omitempty"`
11448
11449	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
11450	// resources. Must not have more than 100. For regional
11451	// HealthCheckService, NEGs must be in zones in the region of the
11452	// HealthCheckService.
11453	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
11454
11455	// NotificationEndpoints: List of URLs to the NotificationEndpoint
11456	// resources. Must not have more than 10. A list of endpoints for
11457	// receiving notifications of change in health status. For regional
11458	// HealthCheckService, NotificationEndpoint must be regional and in the
11459	// same region. For global HealthCheckService, NotificationEndpoint must
11460	// be global.
11461	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
11462
11463	// Region: [Output Only] URL of the region where the health check
11464	// service resides. This field is not applicable to global health check
11465	// services. You must specify this field as part of the HTTP request
11466	// URL. It is not settable as a field in the request body.
11467	Region string `json:"region,omitempty"`
11468
11469	// SelfLink: [Output Only] Server-defined URL for the resource.
11470	SelfLink string `json:"selfLink,omitempty"`
11471
11472	// ServerResponse contains the HTTP response code and headers from the
11473	// server.
11474	googleapi.ServerResponse `json:"-"`
11475
11476	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
11477	// to unconditionally include in API requests. By default, fields with
11478	// empty values are omitted from API requests. However, any non-pointer,
11479	// non-interface field appearing in ForceSendFields will be sent to the
11480	// server regardless of whether the field is empty or not. This may be
11481	// used to include empty fields in Patch requests.
11482	ForceSendFields []string `json:"-"`
11483
11484	// NullFields is a list of field names (e.g. "CreationTimestamp") to
11485	// include in API requests with the JSON null value. By default, fields
11486	// with empty values are omitted from API requests. However, any field
11487	// with an empty value appearing in NullFields will be sent to the
11488	// server as null. It is an error if a field in this list has a
11489	// non-empty value. This may be used to include null fields in Patch
11490	// requests.
11491	NullFields []string `json:"-"`
11492}
11493
11494func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
11495	type NoMethod HealthCheckService
11496	raw := NoMethod(*s)
11497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11498}
11499
11500// HealthCheckServiceReference: A full or valid partial URL to a health
11501// check service. For example, the following are valid URLs:
11502// -
11503// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
11504// -
11505// projects/project-id/regions/us-west1/healthCheckServices/health-check-
11506// service
11507// - regions/us-west1/healthCheckServices/health-check-service
11508type HealthCheckServiceReference struct {
11509	HealthCheckService string `json:"healthCheckService,omitempty"`
11510
11511	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
11512	// to unconditionally include in API requests. By default, fields with
11513	// empty values are omitted from API requests. However, any non-pointer,
11514	// non-interface field appearing in ForceSendFields will be sent to the
11515	// server regardless of whether the field is empty or not. This may be
11516	// used to include empty fields in Patch requests.
11517	ForceSendFields []string `json:"-"`
11518
11519	// NullFields is a list of field names (e.g. "HealthCheckService") to
11520	// include in API requests with the JSON null value. By default, fields
11521	// with empty values are omitted from API requests. However, any field
11522	// with an empty value appearing in NullFields will be sent to the
11523	// server as null. It is an error if a field in this list has a
11524	// non-empty value. This may be used to include null fields in Patch
11525	// requests.
11526	NullFields []string `json:"-"`
11527}
11528
11529func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
11530	type NoMethod HealthCheckServiceReference
11531	raw := NoMethod(*s)
11532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11533}
11534
11535type HealthCheckServicesList struct {
11536	// Id: [Output Only] Unique identifier for the resource; defined by the
11537	// server.
11538	Id string `json:"id,omitempty"`
11539
11540	// Items: A list of HealthCheckService resources.
11541	Items []*HealthCheckService `json:"items,omitempty"`
11542
11543	// Kind: [Output Only] Type of the resource. Always
11544	// compute#healthCheckServicesList for lists of HealthCheckServices.
11545	Kind string `json:"kind,omitempty"`
11546
11547	// NextPageToken: [Output Only] This token allows you to get the next
11548	// page of results for list requests. If the number of results is larger
11549	// than maxResults, use the nextPageToken as a value for the query
11550	// parameter pageToken in the next list request. Subsequent list
11551	// requests will have their own nextPageToken to continue paging through
11552	// the results.
11553	NextPageToken string `json:"nextPageToken,omitempty"`
11554
11555	// SelfLink: [Output Only] Server-defined URL for this resource.
11556	SelfLink string `json:"selfLink,omitempty"`
11557
11558	// Warning: [Output Only] Informational warning message.
11559	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
11560
11561	// ServerResponse contains the HTTP response code and headers from the
11562	// server.
11563	googleapi.ServerResponse `json:"-"`
11564
11565	// ForceSendFields is a list of field names (e.g. "Id") to
11566	// unconditionally include in API requests. By default, fields with
11567	// empty values are omitted from API requests. However, any non-pointer,
11568	// non-interface field appearing in ForceSendFields will be sent to the
11569	// server regardless of whether the field is empty or not. This may be
11570	// used to include empty fields in Patch requests.
11571	ForceSendFields []string `json:"-"`
11572
11573	// NullFields is a list of field names (e.g. "Id") to include in API
11574	// requests with the JSON null value. By default, fields with empty
11575	// values are omitted from API requests. However, any field with an
11576	// empty value appearing in NullFields will be sent to the server as
11577	// null. It is an error if a field in this list has a non-empty value.
11578	// This may be used to include null fields in Patch requests.
11579	NullFields []string `json:"-"`
11580}
11581
11582func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
11583	type NoMethod HealthCheckServicesList
11584	raw := NoMethod(*s)
11585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11586}
11587
11588// HealthCheckServicesListWarning: [Output Only] Informational warning
11589// message.
11590type HealthCheckServicesListWarning struct {
11591	// Code: [Output Only] A warning code, if applicable. For example,
11592	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11593	// the response.
11594	//
11595	// Possible values:
11596	//   "CLEANUP_FAILED"
11597	//   "DEPRECATED_RESOURCE_USED"
11598	//   "DEPRECATED_TYPE_USED"
11599	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11600	//   "EXPERIMENTAL_TYPE_USED"
11601	//   "EXTERNAL_API_WARNING"
11602	//   "FIELD_VALUE_OVERRIDEN"
11603	//   "INJECTED_KERNELS_DEPRECATED"
11604	//   "MISSING_TYPE_DEPENDENCY"
11605	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11606	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11607	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11608	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11609	//   "NEXT_HOP_NOT_RUNNING"
11610	//   "NOT_CRITICAL_ERROR"
11611	//   "NO_RESULTS_ON_PAGE"
11612	//   "REQUIRED_TOS_AGREEMENT"
11613	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11614	//   "RESOURCE_NOT_DELETED"
11615	//   "SCHEMA_VALIDATION_IGNORED"
11616	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11617	//   "UNDECLARED_PROPERTIES"
11618	//   "UNREACHABLE"
11619	Code string `json:"code,omitempty"`
11620
11621	// Data: [Output Only] Metadata about this warning in key: value format.
11622	// For example:
11623	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11624	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
11625
11626	// Message: [Output Only] A human-readable description of the warning
11627	// code.
11628	Message string `json:"message,omitempty"`
11629
11630	// ForceSendFields is a list of field names (e.g. "Code") to
11631	// unconditionally include in API requests. By default, fields with
11632	// empty values are omitted from API requests. However, any non-pointer,
11633	// non-interface field appearing in ForceSendFields will be sent to the
11634	// server regardless of whether the field is empty or not. This may be
11635	// used to include empty fields in Patch requests.
11636	ForceSendFields []string `json:"-"`
11637
11638	// NullFields is a list of field names (e.g. "Code") to include in API
11639	// requests with the JSON null value. By default, fields with empty
11640	// values are omitted from API requests. However, any field with an
11641	// empty value appearing in NullFields will be sent to the server as
11642	// null. It is an error if a field in this list has a non-empty value.
11643	// This may be used to include null fields in Patch requests.
11644	NullFields []string `json:"-"`
11645}
11646
11647func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
11648	type NoMethod HealthCheckServicesListWarning
11649	raw := NoMethod(*s)
11650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11651}
11652
11653type HealthCheckServicesListWarningData struct {
11654	// Key: [Output Only] A key that provides more detail on the warning
11655	// being returned. For example, for warnings where there are no results
11656	// in a list request for a particular zone, this key might be scope and
11657	// the key value might be the zone name. Other examples might be a key
11658	// indicating a deprecated resource and a suggested replacement, or a
11659	// warning about invalid network settings (for example, if an instance
11660	// attempts to perform IP forwarding but is not enabled for IP
11661	// forwarding).
11662	Key string `json:"key,omitempty"`
11663
11664	// Value: [Output Only] A warning data value corresponding to the key.
11665	Value string `json:"value,omitempty"`
11666
11667	// ForceSendFields is a list of field names (e.g. "Key") to
11668	// unconditionally include in API requests. By default, fields with
11669	// empty values are omitted from API requests. However, any non-pointer,
11670	// non-interface field appearing in ForceSendFields will be sent to the
11671	// server regardless of whether the field is empty or not. This may be
11672	// used to include empty fields in Patch requests.
11673	ForceSendFields []string `json:"-"`
11674
11675	// NullFields is a list of field names (e.g. "Key") to include in API
11676	// requests with the JSON null value. By default, fields with empty
11677	// values are omitted from API requests. However, any field with an
11678	// empty value appearing in NullFields will be sent to the server as
11679	// null. It is an error if a field in this list has a non-empty value.
11680	// This may be used to include null fields in Patch requests.
11681	NullFields []string `json:"-"`
11682}
11683
11684func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
11685	type NoMethod HealthCheckServicesListWarningData
11686	raw := NoMethod(*s)
11687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11688}
11689
11690type HealthChecksAggregatedList struct {
11691	// Id: [Output Only] Unique identifier for the resource; defined by the
11692	// server.
11693	Id string `json:"id,omitempty"`
11694
11695	// Items: A list of HealthChecksScopedList resources.
11696	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
11697
11698	// Kind: Type of resource.
11699	Kind string `json:"kind,omitempty"`
11700
11701	// NextPageToken: [Output Only] This token allows you to get the next
11702	// page of results for list requests. If the number of results is larger
11703	// than maxResults, use the nextPageToken as a value for the query
11704	// parameter pageToken in the next list request. Subsequent list
11705	// requests will have their own nextPageToken to continue paging through
11706	// the results.
11707	NextPageToken string `json:"nextPageToken,omitempty"`
11708
11709	// SelfLink: [Output Only] Server-defined URL for this resource.
11710	SelfLink string `json:"selfLink,omitempty"`
11711
11712	// Warning: [Output Only] Informational warning message.
11713	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
11714
11715	// ServerResponse contains the HTTP response code and headers from the
11716	// server.
11717	googleapi.ServerResponse `json:"-"`
11718
11719	// ForceSendFields is a list of field names (e.g. "Id") to
11720	// unconditionally include in API requests. By default, fields with
11721	// empty values are omitted from API requests. However, any non-pointer,
11722	// non-interface field appearing in ForceSendFields will be sent to the
11723	// server regardless of whether the field is empty or not. This may be
11724	// used to include empty fields in Patch requests.
11725	ForceSendFields []string `json:"-"`
11726
11727	// NullFields is a list of field names (e.g. "Id") to include in API
11728	// requests with the JSON null value. By default, fields with empty
11729	// values are omitted from API requests. However, any field with an
11730	// empty value appearing in NullFields will be sent to the server as
11731	// null. It is an error if a field in this list has a non-empty value.
11732	// This may be used to include null fields in Patch requests.
11733	NullFields []string `json:"-"`
11734}
11735
11736func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
11737	type NoMethod HealthChecksAggregatedList
11738	raw := NoMethod(*s)
11739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11740}
11741
11742// HealthChecksAggregatedListWarning: [Output Only] Informational
11743// warning message.
11744type HealthChecksAggregatedListWarning struct {
11745	// Code: [Output Only] A warning code, if applicable. For example,
11746	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11747	// the response.
11748	//
11749	// Possible values:
11750	//   "CLEANUP_FAILED"
11751	//   "DEPRECATED_RESOURCE_USED"
11752	//   "DEPRECATED_TYPE_USED"
11753	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11754	//   "EXPERIMENTAL_TYPE_USED"
11755	//   "EXTERNAL_API_WARNING"
11756	//   "FIELD_VALUE_OVERRIDEN"
11757	//   "INJECTED_KERNELS_DEPRECATED"
11758	//   "MISSING_TYPE_DEPENDENCY"
11759	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11760	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11761	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11762	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11763	//   "NEXT_HOP_NOT_RUNNING"
11764	//   "NOT_CRITICAL_ERROR"
11765	//   "NO_RESULTS_ON_PAGE"
11766	//   "REQUIRED_TOS_AGREEMENT"
11767	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11768	//   "RESOURCE_NOT_DELETED"
11769	//   "SCHEMA_VALIDATION_IGNORED"
11770	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11771	//   "UNDECLARED_PROPERTIES"
11772	//   "UNREACHABLE"
11773	Code string `json:"code,omitempty"`
11774
11775	// Data: [Output Only] Metadata about this warning in key: value format.
11776	// For example:
11777	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11778	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
11779
11780	// Message: [Output Only] A human-readable description of the warning
11781	// code.
11782	Message string `json:"message,omitempty"`
11783
11784	// ForceSendFields is a list of field names (e.g. "Code") to
11785	// unconditionally include in API requests. By default, fields with
11786	// empty values are omitted from API requests. However, any non-pointer,
11787	// non-interface field appearing in ForceSendFields will be sent to the
11788	// server regardless of whether the field is empty or not. This may be
11789	// used to include empty fields in Patch requests.
11790	ForceSendFields []string `json:"-"`
11791
11792	// NullFields is a list of field names (e.g. "Code") to include in API
11793	// requests with the JSON null value. By default, fields with empty
11794	// values are omitted from API requests. However, any field with an
11795	// empty value appearing in NullFields will be sent to the server as
11796	// null. It is an error if a field in this list has a non-empty value.
11797	// This may be used to include null fields in Patch requests.
11798	NullFields []string `json:"-"`
11799}
11800
11801func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
11802	type NoMethod HealthChecksAggregatedListWarning
11803	raw := NoMethod(*s)
11804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11805}
11806
11807type HealthChecksAggregatedListWarningData struct {
11808	// Key: [Output Only] A key that provides more detail on the warning
11809	// being returned. For example, for warnings where there are no results
11810	// in a list request for a particular zone, this key might be scope and
11811	// the key value might be the zone name. Other examples might be a key
11812	// indicating a deprecated resource and a suggested replacement, or a
11813	// warning about invalid network settings (for example, if an instance
11814	// attempts to perform IP forwarding but is not enabled for IP
11815	// forwarding).
11816	Key string `json:"key,omitempty"`
11817
11818	// Value: [Output Only] A warning data value corresponding to the key.
11819	Value string `json:"value,omitempty"`
11820
11821	// ForceSendFields is a list of field names (e.g. "Key") to
11822	// unconditionally include in API requests. By default, fields with
11823	// empty values are omitted from API requests. However, any non-pointer,
11824	// non-interface field appearing in ForceSendFields will be sent to the
11825	// server regardless of whether the field is empty or not. This may be
11826	// used to include empty fields in Patch requests.
11827	ForceSendFields []string `json:"-"`
11828
11829	// NullFields is a list of field names (e.g. "Key") to include in API
11830	// requests with the JSON null value. By default, fields with empty
11831	// values are omitted from API requests. However, any field with an
11832	// empty value appearing in NullFields will be sent to the server as
11833	// null. It is an error if a field in this list has a non-empty value.
11834	// This may be used to include null fields in Patch requests.
11835	NullFields []string `json:"-"`
11836}
11837
11838func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11839	type NoMethod HealthChecksAggregatedListWarningData
11840	raw := NoMethod(*s)
11841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11842}
11843
11844type HealthChecksScopedList struct {
11845	// HealthChecks: A list of HealthChecks contained in this scope.
11846	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
11847
11848	// Warning: Informational warning which replaces the list of backend
11849	// services when the list is empty.
11850	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
11851
11852	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
11853	// unconditionally include in API requests. By default, fields with
11854	// empty values are omitted from API requests. However, any non-pointer,
11855	// non-interface field appearing in ForceSendFields will be sent to the
11856	// server regardless of whether the field is empty or not. This may be
11857	// used to include empty fields in Patch requests.
11858	ForceSendFields []string `json:"-"`
11859
11860	// NullFields is a list of field names (e.g. "HealthChecks") to include
11861	// in API requests with the JSON null value. By default, fields with
11862	// empty values are omitted from API requests. However, any field with
11863	// an empty value appearing in NullFields will be sent to the server as
11864	// null. It is an error if a field in this list has a non-empty value.
11865	// This may be used to include null fields in Patch requests.
11866	NullFields []string `json:"-"`
11867}
11868
11869func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
11870	type NoMethod HealthChecksScopedList
11871	raw := NoMethod(*s)
11872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11873}
11874
11875// HealthChecksScopedListWarning: Informational warning which replaces
11876// the list of backend services when the list is empty.
11877type HealthChecksScopedListWarning struct {
11878	// Code: [Output Only] A warning code, if applicable. For example,
11879	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11880	// the response.
11881	//
11882	// Possible values:
11883	//   "CLEANUP_FAILED"
11884	//   "DEPRECATED_RESOURCE_USED"
11885	//   "DEPRECATED_TYPE_USED"
11886	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11887	//   "EXPERIMENTAL_TYPE_USED"
11888	//   "EXTERNAL_API_WARNING"
11889	//   "FIELD_VALUE_OVERRIDEN"
11890	//   "INJECTED_KERNELS_DEPRECATED"
11891	//   "MISSING_TYPE_DEPENDENCY"
11892	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11893	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11894	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11895	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11896	//   "NEXT_HOP_NOT_RUNNING"
11897	//   "NOT_CRITICAL_ERROR"
11898	//   "NO_RESULTS_ON_PAGE"
11899	//   "REQUIRED_TOS_AGREEMENT"
11900	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11901	//   "RESOURCE_NOT_DELETED"
11902	//   "SCHEMA_VALIDATION_IGNORED"
11903	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11904	//   "UNDECLARED_PROPERTIES"
11905	//   "UNREACHABLE"
11906	Code string `json:"code,omitempty"`
11907
11908	// Data: [Output Only] Metadata about this warning in key: value format.
11909	// For example:
11910	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11911	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
11912
11913	// Message: [Output Only] A human-readable description of the warning
11914	// code.
11915	Message string `json:"message,omitempty"`
11916
11917	// ForceSendFields is a list of field names (e.g. "Code") to
11918	// unconditionally include in API requests. By default, fields with
11919	// empty values are omitted from API requests. However, any non-pointer,
11920	// non-interface field appearing in ForceSendFields will be sent to the
11921	// server regardless of whether the field is empty or not. This may be
11922	// used to include empty fields in Patch requests.
11923	ForceSendFields []string `json:"-"`
11924
11925	// NullFields is a list of field names (e.g. "Code") to include in API
11926	// requests with the JSON null value. By default, fields with empty
11927	// values are omitted from API requests. However, any field with an
11928	// empty value appearing in NullFields will be sent to the server as
11929	// null. It is an error if a field in this list has a non-empty value.
11930	// This may be used to include null fields in Patch requests.
11931	NullFields []string `json:"-"`
11932}
11933
11934func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
11935	type NoMethod HealthChecksScopedListWarning
11936	raw := NoMethod(*s)
11937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11938}
11939
11940type HealthChecksScopedListWarningData struct {
11941	// Key: [Output Only] A key that provides more detail on the warning
11942	// being returned. For example, for warnings where there are no results
11943	// in a list request for a particular zone, this key might be scope and
11944	// the key value might be the zone name. Other examples might be a key
11945	// indicating a deprecated resource and a suggested replacement, or a
11946	// warning about invalid network settings (for example, if an instance
11947	// attempts to perform IP forwarding but is not enabled for IP
11948	// forwarding).
11949	Key string `json:"key,omitempty"`
11950
11951	// Value: [Output Only] A warning data value corresponding to the key.
11952	Value string `json:"value,omitempty"`
11953
11954	// ForceSendFields is a list of field names (e.g. "Key") to
11955	// unconditionally include in API requests. By default, fields with
11956	// empty values are omitted from API requests. However, any non-pointer,
11957	// non-interface field appearing in ForceSendFields will be sent to the
11958	// server regardless of whether the field is empty or not. This may be
11959	// used to include empty fields in Patch requests.
11960	ForceSendFields []string `json:"-"`
11961
11962	// NullFields is a list of field names (e.g. "Key") to include in API
11963	// requests with the JSON null value. By default, fields with empty
11964	// values are omitted from API requests. However, any field with an
11965	// empty value appearing in NullFields will be sent to the server as
11966	// null. It is an error if a field in this list has a non-empty value.
11967	// This may be used to include null fields in Patch requests.
11968	NullFields []string `json:"-"`
11969}
11970
11971func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
11972	type NoMethod HealthChecksScopedListWarningData
11973	raw := NoMethod(*s)
11974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11975}
11976
11977type HealthStatus struct {
11978	// Annotations: Metadata defined as annotations for network endpoint.
11979	Annotations map[string]string `json:"annotations,omitempty"`
11980
11981	// HealthState: Health state of the instance.
11982	//
11983	// Possible values:
11984	//   "HEALTHY"
11985	//   "UNHEALTHY"
11986	HealthState string `json:"healthState,omitempty"`
11987
11988	// Instance: URL of the instance resource.
11989	Instance string `json:"instance,omitempty"`
11990
11991	// IpAddress: A forwarding rule IP address assigned to this instance.
11992	IpAddress string `json:"ipAddress,omitempty"`
11993
11994	// Port: The named port of the instance group, not necessarily the port
11995	// that is health-checked.
11996	Port int64 `json:"port,omitempty"`
11997
11998	// ForceSendFields is a list of field names (e.g. "Annotations") to
11999	// unconditionally include in API requests. By default, fields with
12000	// empty values are omitted from API requests. However, any non-pointer,
12001	// non-interface field appearing in ForceSendFields will be sent to the
12002	// server regardless of whether the field is empty or not. This may be
12003	// used to include empty fields in Patch requests.
12004	ForceSendFields []string `json:"-"`
12005
12006	// NullFields is a list of field names (e.g. "Annotations") to include
12007	// in API requests with the JSON null value. By default, fields with
12008	// empty values are omitted from API requests. However, any field with
12009	// an empty value appearing in NullFields will be sent to the server as
12010	// null. It is an error if a field in this list has a non-empty value.
12011	// This may be used to include null fields in Patch requests.
12012	NullFields []string `json:"-"`
12013}
12014
12015func (s *HealthStatus) MarshalJSON() ([]byte, error) {
12016	type NoMethod HealthStatus
12017	raw := NoMethod(*s)
12018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12019}
12020
12021type HealthStatusForNetworkEndpoint struct {
12022	// BackendService: URL of the backend service associated with the health
12023	// state of the network endpoint.
12024	BackendService *BackendServiceReference `json:"backendService,omitempty"`
12025
12026	// ForwardingRule: URL of the forwarding rule associated with the health
12027	// state of the network endpoint.
12028	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
12029
12030	// HealthCheck: URL of the health check associated with the health state
12031	// of the network endpoint.
12032	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
12033
12034	// HealthCheckService: URL of the health check service associated with
12035	// the health state of the network endpoint.
12036	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
12037
12038	// HealthState: Health state of the network endpoint determined based on
12039	// the health checks configured.
12040	//
12041	// Possible values:
12042	//   "DRAINING"
12043	//   "HEALTHY"
12044	//   "UNHEALTHY"
12045	//   "UNKNOWN"
12046	HealthState string `json:"healthState,omitempty"`
12047
12048	// ForceSendFields is a list of field names (e.g. "BackendService") 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. "BackendService") to
12057	// include in API requests with the JSON null value. By default, fields
12058	// with empty values are omitted from API requests. However, any field
12059	// with an empty value appearing in NullFields will be sent to the
12060	// server as null. It is an error if a field in this list has a
12061	// non-empty value. This may be used to include null fields in Patch
12062	// requests.
12063	NullFields []string `json:"-"`
12064}
12065
12066func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
12067	type NoMethod HealthStatusForNetworkEndpoint
12068	raw := NoMethod(*s)
12069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12070}
12071
12072// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
12073// use the named PathMatcher to select the BackendService.
12074type HostRule struct {
12075	// Description: An optional description of this resource. Provide this
12076	// property when you create the resource.
12077	Description string `json:"description,omitempty"`
12078
12079	// Hosts: The list of host patterns to match. They must be valid
12080	// hostnames with optional port numbers in the format host:port. *
12081	// matches any string of ([a-z0-9-.]*). In that case, * must be the
12082	// first character and must be followed in the pattern by either - or ..
12083	Hosts []string `json:"hosts,omitempty"`
12084
12085	// PathMatcher: The name of the PathMatcher to use to match the path
12086	// portion of the URL if the hostRule matches the URL's host portion.
12087	PathMatcher string `json:"pathMatcher,omitempty"`
12088
12089	// ForceSendFields is a list of field names (e.g. "Description") to
12090	// unconditionally include in API requests. By default, fields with
12091	// empty values are omitted from API requests. However, any non-pointer,
12092	// non-interface field appearing in ForceSendFields will be sent to the
12093	// server regardless of whether the field is empty or not. This may be
12094	// used to include empty fields in Patch requests.
12095	ForceSendFields []string `json:"-"`
12096
12097	// NullFields is a list of field names (e.g. "Description") to include
12098	// in API requests with the JSON null value. By default, fields with
12099	// empty values are omitted from API requests. However, any field with
12100	// an empty value appearing in NullFields will be sent to the server as
12101	// null. It is an error if a field in this list has a non-empty value.
12102	// This may be used to include null fields in Patch requests.
12103	NullFields []string `json:"-"`
12104}
12105
12106func (s *HostRule) MarshalJSON() ([]byte, error) {
12107	type NoMethod HostRule
12108	raw := NoMethod(*s)
12109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12110}
12111
12112// HttpFaultAbort: Specification for how requests are aborted as part of
12113// fault injection.
12114type HttpFaultAbort struct {
12115	// HttpStatus: The HTTP status code used to abort the request.
12116	// The value must be between 200 and 599 inclusive.
12117	HttpStatus int64 `json:"httpStatus,omitempty"`
12118
12119	// Percentage: The percentage of traffic
12120	// (connections/operations/requests) which will be aborted as part of
12121	// fault injection.
12122	// The value must be between 0.0 and 100.0 inclusive.
12123	Percentage float64 `json:"percentage,omitempty"`
12124
12125	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
12126	// unconditionally include in API requests. By default, fields with
12127	// empty values are omitted from API requests. However, any non-pointer,
12128	// non-interface field appearing in ForceSendFields will be sent to the
12129	// server regardless of whether the field is empty or not. This may be
12130	// used to include empty fields in Patch requests.
12131	ForceSendFields []string `json:"-"`
12132
12133	// NullFields is a list of field names (e.g. "HttpStatus") to include in
12134	// API requests with the JSON null value. By default, fields with empty
12135	// values are omitted from API requests. However, any field with an
12136	// empty value appearing in NullFields will be sent to the server as
12137	// null. It is an error if a field in this list has a non-empty value.
12138	// This may be used to include null fields in Patch requests.
12139	NullFields []string `json:"-"`
12140}
12141
12142func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
12143	type NoMethod HttpFaultAbort
12144	raw := NoMethod(*s)
12145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12146}
12147
12148func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
12149	type NoMethod HttpFaultAbort
12150	var s1 struct {
12151		Percentage gensupport.JSONFloat64 `json:"percentage"`
12152		*NoMethod
12153	}
12154	s1.NoMethod = (*NoMethod)(s)
12155	if err := json.Unmarshal(data, &s1); err != nil {
12156		return err
12157	}
12158	s.Percentage = float64(s1.Percentage)
12159	return nil
12160}
12161
12162// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
12163// forwarding the request to the backend service as part of fault
12164// injection.
12165type HttpFaultDelay struct {
12166	// FixedDelay: Specifies the value of the fixed delay interval.
12167	FixedDelay *Duration `json:"fixedDelay,omitempty"`
12168
12169	// Percentage: The percentage of traffic
12170	// (connections/operations/requests) on which delay will be introduced
12171	// as part of fault injection.
12172	// The value must be between 0.0 and 100.0 inclusive.
12173	Percentage float64 `json:"percentage,omitempty"`
12174
12175	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
12176	// unconditionally include in API requests. By default, fields with
12177	// empty values are omitted from API requests. However, any non-pointer,
12178	// non-interface field appearing in ForceSendFields will be sent to the
12179	// server regardless of whether the field is empty or not. This may be
12180	// used to include empty fields in Patch requests.
12181	ForceSendFields []string `json:"-"`
12182
12183	// NullFields is a list of field names (e.g. "FixedDelay") to include in
12184	// API requests with the JSON null value. By default, fields with empty
12185	// values are omitted from API requests. However, any field with an
12186	// empty value appearing in NullFields will be sent to the server as
12187	// null. It is an error if a field in this list has a non-empty value.
12188	// This may be used to include null fields in Patch requests.
12189	NullFields []string `json:"-"`
12190}
12191
12192func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
12193	type NoMethod HttpFaultDelay
12194	raw := NoMethod(*s)
12195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12196}
12197
12198func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
12199	type NoMethod HttpFaultDelay
12200	var s1 struct {
12201		Percentage gensupport.JSONFloat64 `json:"percentage"`
12202		*NoMethod
12203	}
12204	s1.NoMethod = (*NoMethod)(s)
12205	if err := json.Unmarshal(data, &s1); err != nil {
12206		return err
12207	}
12208	s.Percentage = float64(s1.Percentage)
12209	return nil
12210}
12211
12212// HttpFaultInjection: The specification for fault injection introduced
12213// into traffic to test the resiliency of clients to backend service
12214// failure. As part of fault injection, when clients send requests to a
12215// backend service, delays can be introduced by Loadbalancer on a
12216// percentage of requests before sending those request to the backend
12217// service. Similarly requests from clients can be aborted by the
12218// Loadbalancer for a percentage of requests.
12219type HttpFaultInjection struct {
12220	// Abort: The specification for how client requests are aborted as part
12221	// of fault injection.
12222	Abort *HttpFaultAbort `json:"abort,omitempty"`
12223
12224	// Delay: The specification for how client requests are delayed as part
12225	// of fault injection, before being sent to a backend service.
12226	Delay *HttpFaultDelay `json:"delay,omitempty"`
12227
12228	// ForceSendFields is a list of field names (e.g. "Abort") to
12229	// unconditionally include in API requests. By default, fields with
12230	// empty values are omitted from API requests. However, any non-pointer,
12231	// non-interface field appearing in ForceSendFields will be sent to the
12232	// server regardless of whether the field is empty or not. This may be
12233	// used to include empty fields in Patch requests.
12234	ForceSendFields []string `json:"-"`
12235
12236	// NullFields is a list of field names (e.g. "Abort") to include in API
12237	// requests with the JSON null value. By default, fields with empty
12238	// values are omitted from API requests. However, any field with an
12239	// empty value appearing in NullFields will be sent to the server as
12240	// null. It is an error if a field in this list has a non-empty value.
12241	// This may be used to include null fields in Patch requests.
12242	NullFields []string `json:"-"`
12243}
12244
12245func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
12246	type NoMethod HttpFaultInjection
12247	raw := NoMethod(*s)
12248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12249}
12250
12251// HttpHeaderAction: The request and response header transformations
12252// that take effect before the request is passed along to the selected
12253// backendService.
12254type HttpHeaderAction struct {
12255	// RequestHeadersToAdd: Headers to add to a matching request prior to
12256	// forwarding the request to the backendService.
12257	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
12258
12259	// RequestHeadersToRemove: A list of header names for headers that need
12260	// to be removed from the request prior to forwarding the request to the
12261	// backendService.
12262	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
12263
12264	// ResponseHeadersToAdd: Headers to add the response prior to sending
12265	// the response back to the client.
12266	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
12267
12268	// ResponseHeadersToRemove: A list of header names for headers that need
12269	// to be removed from the response prior to sending the response back to
12270	// the client.
12271	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
12272
12273	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
12274	// to unconditionally include in API requests. By default, fields with
12275	// empty values are omitted from API requests. However, any non-pointer,
12276	// non-interface field appearing in ForceSendFields will be sent to the
12277	// server regardless of whether the field is empty or not. This may be
12278	// used to include empty fields in Patch requests.
12279	ForceSendFields []string `json:"-"`
12280
12281	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
12282	// include in API requests with the JSON null value. By default, fields
12283	// with empty values are omitted from API requests. However, any field
12284	// with an empty value appearing in NullFields will be sent to the
12285	// server as null. It is an error if a field in this list has a
12286	// non-empty value. This may be used to include null fields in Patch
12287	// requests.
12288	NullFields []string `json:"-"`
12289}
12290
12291func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
12292	type NoMethod HttpHeaderAction
12293	raw := NoMethod(*s)
12294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12295}
12296
12297// HttpHeaderMatch: matchRule criteria for request header matches.
12298type HttpHeaderMatch struct {
12299	// ExactMatch: The value should exactly match contents of
12300	// exactMatch.
12301	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12302	// presentMatch or rangeMatch must be set.
12303	ExactMatch string `json:"exactMatch,omitempty"`
12304
12305	// HeaderName: The name of the HTTP header to match.
12306	// For matching against the HTTP request's authority, use a headerMatch
12307	// with the header name ":authority".
12308	// For matching a request's method, use the headerName ":method".
12309	HeaderName string `json:"headerName,omitempty"`
12310
12311	// InvertMatch: If set to false, the headerMatch is considered a match
12312	// if the match criteria above are met. If set to true, the headerMatch
12313	// is considered a match if the match criteria above are NOT met.
12314	// The default setting is false.
12315	InvertMatch bool `json:"invertMatch,omitempty"`
12316
12317	// PrefixMatch: The value of the header must start with the contents of
12318	// prefixMatch.
12319	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12320	// presentMatch or rangeMatch must be set.
12321	PrefixMatch string `json:"prefixMatch,omitempty"`
12322
12323	// PresentMatch: A header with the contents of headerName must exist.
12324	// The match takes place whether or not the request's header has a
12325	// value.
12326	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12327	// presentMatch or rangeMatch must be set.
12328	PresentMatch bool `json:"presentMatch,omitempty"`
12329
12330	// RangeMatch: The header value must be an integer and its value must be
12331	// in the range specified in rangeMatch. If the header does not contain
12332	// an integer, number or is empty, the match fails.
12333	// For example for a range [-5, 0]
12334	// - -3 will match.
12335	// - 0 will not match.
12336	// - 0.25 will not match.
12337	// - -3someString will not match.
12338	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12339	// presentMatch or rangeMatch must be set.
12340	// Note that rangeMatch is not supported for Loadbalancers that have
12341	// their loadBalancingScheme set to EXTERNAL.
12342	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
12343
12344	// RegexMatch: The value of the header must match the regular expression
12345	// specified in regexMatch. For regular expression grammar, please see:
12346	// en.cppreference.com/w/cpp/regex/ecmascript
12347	// For matching against a port specified in the HTTP request, use a
12348	// headerMatch with headerName set to PORT and a regular expression that
12349	// satisfies the RFC2616 Host header's port specifier.
12350	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12351	// presentMatch or rangeMatch must be set.
12352	// Note that regexMatch only applies to Loadbalancers that have their
12353	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
12354	RegexMatch string `json:"regexMatch,omitempty"`
12355
12356	// SuffixMatch: The value of the header must end with the contents of
12357	// suffixMatch.
12358	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12359	// presentMatch or rangeMatch must be set.
12360	SuffixMatch string `json:"suffixMatch,omitempty"`
12361
12362	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
12363	// unconditionally include in API requests. By default, fields with
12364	// empty values are omitted from API requests. However, any non-pointer,
12365	// non-interface field appearing in ForceSendFields will be sent to the
12366	// server regardless of whether the field is empty or not. This may be
12367	// used to include empty fields in Patch requests.
12368	ForceSendFields []string `json:"-"`
12369
12370	// NullFields is a list of field names (e.g. "ExactMatch") to include in
12371	// API requests with the JSON null value. By default, fields with empty
12372	// values are omitted from API requests. However, any field with an
12373	// empty value appearing in NullFields will be sent to the server as
12374	// null. It is an error if a field in this list has a non-empty value.
12375	// This may be used to include null fields in Patch requests.
12376	NullFields []string `json:"-"`
12377}
12378
12379func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
12380	type NoMethod HttpHeaderMatch
12381	raw := NoMethod(*s)
12382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12383}
12384
12385// HttpHeaderOption: Specification determining how headers are added to
12386// requests or responses.
12387type HttpHeaderOption struct {
12388	// HeaderName: The name of the header.
12389	HeaderName string `json:"headerName,omitempty"`
12390
12391	// HeaderValue: The value of the header to add.
12392	HeaderValue string `json:"headerValue,omitempty"`
12393
12394	// Replace: If false, headerValue is appended to any values that already
12395	// exist for the header. If true, headerValue is set for the header,
12396	// discarding any values that were set for that header.
12397	// The default value is false.
12398	Replace bool `json:"replace,omitempty"`
12399
12400	// ForceSendFields is a list of field names (e.g. "HeaderName") to
12401	// unconditionally include in API requests. By default, fields with
12402	// empty values are omitted from API requests. However, any non-pointer,
12403	// non-interface field appearing in ForceSendFields will be sent to the
12404	// server regardless of whether the field is empty or not. This may be
12405	// used to include empty fields in Patch requests.
12406	ForceSendFields []string `json:"-"`
12407
12408	// NullFields is a list of field names (e.g. "HeaderName") to include in
12409	// API requests with the JSON null value. By default, fields with empty
12410	// values are omitted from API requests. However, any field with an
12411	// empty value appearing in NullFields will be sent to the server as
12412	// null. It is an error if a field in this list has a non-empty value.
12413	// This may be used to include null fields in Patch requests.
12414	NullFields []string `json:"-"`
12415}
12416
12417func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
12418	type NoMethod HttpHeaderOption
12419	raw := NoMethod(*s)
12420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12421}
12422
12423// HttpHealthCheck: Represents a legacy HTTP Health Check
12424// resource.
12425//
12426// Legacy health checks are required by network load balancers. For more
12427// information, read Health Check Concepts.
12428type HttpHealthCheck struct {
12429	// CheckIntervalSec: How often (in seconds) to send a health check. The
12430	// default value is 5 seconds.
12431	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12432
12433	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12434	// format.
12435	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12436
12437	// Description: An optional description of this resource. Provide this
12438	// property when you create the resource.
12439	Description string `json:"description,omitempty"`
12440
12441	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12442	// after this many consecutive successes. The default value is 2.
12443	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12444
12445	// Host: The value of the host header in the HTTP health check request.
12446	// If left empty (default value), the public IP on behalf of which this
12447	// health check is performed will be used.
12448	Host string `json:"host,omitempty"`
12449
12450	// Id: [Output Only] The unique identifier for the resource. This
12451	// identifier is defined by the server.
12452	Id uint64 `json:"id,omitempty,string"`
12453
12454	// Kind: [Output Only] Type of the resource. Always
12455	// compute#httpHealthCheck for HTTP health checks.
12456	Kind string `json:"kind,omitempty"`
12457
12458	// Name: Name of the resource. Provided by the client when the resource
12459	// is created. The name must be 1-63 characters long, and comply with
12460	// RFC1035. Specifically, the name must be 1-63 characters long and
12461	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
12462	// the first character must be a lowercase letter, and all following
12463	// characters must be a dash, lowercase letter, or digit, except the
12464	// last character, which cannot be a dash.
12465	Name string `json:"name,omitempty"`
12466
12467	// Port: The TCP port number for the HTTP health check request. The
12468	// default value is 80.
12469	Port int64 `json:"port,omitempty"`
12470
12471	// RequestPath: The request path of the HTTP health check request. The
12472	// default value is /. This field does not support query parameters.
12473	RequestPath string `json:"requestPath,omitempty"`
12474
12475	// SelfLink: [Output Only] Server-defined URL for the resource.
12476	SelfLink string `json:"selfLink,omitempty"`
12477
12478	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12479	// The default value is 5 seconds. It is invalid for timeoutSec to have
12480	// greater value than checkIntervalSec.
12481	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12482
12483	// UnhealthyThreshold: A so-far healthy instance will be marked
12484	// unhealthy after this many consecutive failures. The default value is
12485	// 2.
12486	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12487
12488	// ServerResponse contains the HTTP response code and headers from the
12489	// server.
12490	googleapi.ServerResponse `json:"-"`
12491
12492	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12493	// unconditionally include in API requests. By default, fields with
12494	// empty values are omitted from API requests. However, any non-pointer,
12495	// non-interface field appearing in ForceSendFields will be sent to the
12496	// server regardless of whether the field is empty or not. This may be
12497	// used to include empty fields in Patch requests.
12498	ForceSendFields []string `json:"-"`
12499
12500	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12501	// include in API requests with the JSON null value. By default, fields
12502	// with empty values are omitted from API requests. However, any field
12503	// with an empty value appearing in NullFields will be sent to the
12504	// server as null. It is an error if a field in this list has a
12505	// non-empty value. This may be used to include null fields in Patch
12506	// requests.
12507	NullFields []string `json:"-"`
12508}
12509
12510func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
12511	type NoMethod HttpHealthCheck
12512	raw := NoMethod(*s)
12513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12514}
12515
12516// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
12517type HttpHealthCheckList struct {
12518	// Id: [Output Only] Unique identifier for the resource; defined by the
12519	// server.
12520	Id string `json:"id,omitempty"`
12521
12522	// Items: A list of HttpHealthCheck resources.
12523	Items []*HttpHealthCheck `json:"items,omitempty"`
12524
12525	// Kind: Type of resource.
12526	Kind string `json:"kind,omitempty"`
12527
12528	// NextPageToken: [Output Only] This token allows you to get the next
12529	// page of results for list requests. If the number of results is larger
12530	// than maxResults, use the nextPageToken as a value for the query
12531	// parameter pageToken in the next list request. Subsequent list
12532	// requests will have their own nextPageToken to continue paging through
12533	// the results.
12534	NextPageToken string `json:"nextPageToken,omitempty"`
12535
12536	// SelfLink: [Output Only] Server-defined URL for this resource.
12537	SelfLink string `json:"selfLink,omitempty"`
12538
12539	// Warning: [Output Only] Informational warning message.
12540	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
12541
12542	// ServerResponse contains the HTTP response code and headers from the
12543	// server.
12544	googleapi.ServerResponse `json:"-"`
12545
12546	// ForceSendFields is a list of field names (e.g. "Id") to
12547	// unconditionally include in API requests. By default, fields with
12548	// empty values are omitted from API requests. However, any non-pointer,
12549	// non-interface field appearing in ForceSendFields will be sent to the
12550	// server regardless of whether the field is empty or not. This may be
12551	// used to include empty fields in Patch requests.
12552	ForceSendFields []string `json:"-"`
12553
12554	// NullFields is a list of field names (e.g. "Id") to include in API
12555	// requests with the JSON null value. By default, fields with empty
12556	// values are omitted from API requests. However, any field with an
12557	// empty value appearing in NullFields will be sent to the server as
12558	// null. It is an error if a field in this list has a non-empty value.
12559	// This may be used to include null fields in Patch requests.
12560	NullFields []string `json:"-"`
12561}
12562
12563func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
12564	type NoMethod HttpHealthCheckList
12565	raw := NoMethod(*s)
12566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12567}
12568
12569// HttpHealthCheckListWarning: [Output Only] Informational warning
12570// message.
12571type HttpHealthCheckListWarning struct {
12572	// Code: [Output Only] A warning code, if applicable. For example,
12573	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12574	// the response.
12575	//
12576	// Possible values:
12577	//   "CLEANUP_FAILED"
12578	//   "DEPRECATED_RESOURCE_USED"
12579	//   "DEPRECATED_TYPE_USED"
12580	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12581	//   "EXPERIMENTAL_TYPE_USED"
12582	//   "EXTERNAL_API_WARNING"
12583	//   "FIELD_VALUE_OVERRIDEN"
12584	//   "INJECTED_KERNELS_DEPRECATED"
12585	//   "MISSING_TYPE_DEPENDENCY"
12586	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12587	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12588	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12589	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12590	//   "NEXT_HOP_NOT_RUNNING"
12591	//   "NOT_CRITICAL_ERROR"
12592	//   "NO_RESULTS_ON_PAGE"
12593	//   "REQUIRED_TOS_AGREEMENT"
12594	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12595	//   "RESOURCE_NOT_DELETED"
12596	//   "SCHEMA_VALIDATION_IGNORED"
12597	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12598	//   "UNDECLARED_PROPERTIES"
12599	//   "UNREACHABLE"
12600	Code string `json:"code,omitempty"`
12601
12602	// Data: [Output Only] Metadata about this warning in key: value format.
12603	// For example:
12604	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12605	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
12606
12607	// Message: [Output Only] A human-readable description of the warning
12608	// code.
12609	Message string `json:"message,omitempty"`
12610
12611	// ForceSendFields is a list of field names (e.g. "Code") to
12612	// unconditionally include in API requests. By default, fields with
12613	// empty values are omitted from API requests. However, any non-pointer,
12614	// non-interface field appearing in ForceSendFields will be sent to the
12615	// server regardless of whether the field is empty or not. This may be
12616	// used to include empty fields in Patch requests.
12617	ForceSendFields []string `json:"-"`
12618
12619	// NullFields is a list of field names (e.g. "Code") to include in API
12620	// requests with the JSON null value. By default, fields with empty
12621	// values are omitted from API requests. However, any field with an
12622	// empty value appearing in NullFields will be sent to the server as
12623	// null. It is an error if a field in this list has a non-empty value.
12624	// This may be used to include null fields in Patch requests.
12625	NullFields []string `json:"-"`
12626}
12627
12628func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
12629	type NoMethod HttpHealthCheckListWarning
12630	raw := NoMethod(*s)
12631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12632}
12633
12634type HttpHealthCheckListWarningData struct {
12635	// Key: [Output Only] A key that provides more detail on the warning
12636	// being returned. For example, for warnings where there are no results
12637	// in a list request for a particular zone, this key might be scope and
12638	// the key value might be the zone name. Other examples might be a key
12639	// indicating a deprecated resource and a suggested replacement, or a
12640	// warning about invalid network settings (for example, if an instance
12641	// attempts to perform IP forwarding but is not enabled for IP
12642	// forwarding).
12643	Key string `json:"key,omitempty"`
12644
12645	// Value: [Output Only] A warning data value corresponding to the key.
12646	Value string `json:"value,omitempty"`
12647
12648	// ForceSendFields is a list of field names (e.g. "Key") to
12649	// unconditionally include in API requests. By default, fields with
12650	// empty values are omitted from API requests. However, any non-pointer,
12651	// non-interface field appearing in ForceSendFields will be sent to the
12652	// server regardless of whether the field is empty or not. This may be
12653	// used to include empty fields in Patch requests.
12654	ForceSendFields []string `json:"-"`
12655
12656	// NullFields is a list of field names (e.g. "Key") to include in API
12657	// requests with the JSON null value. By default, fields with empty
12658	// values are omitted from API requests. However, any field with an
12659	// empty value appearing in NullFields will be sent to the server as
12660	// null. It is an error if a field in this list has a non-empty value.
12661	// This may be used to include null fields in Patch requests.
12662	NullFields []string `json:"-"`
12663}
12664
12665func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
12666	type NoMethod HttpHealthCheckListWarningData
12667	raw := NoMethod(*s)
12668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12669}
12670
12671// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
12672// query parameter.
12673type HttpQueryParameterMatch struct {
12674	// ExactMatch: The queryParameterMatch matches if the value of the
12675	// parameter exactly matches the contents of exactMatch.
12676	// Only one of presentMatch, exactMatch or regexMatch must be set.
12677	ExactMatch string `json:"exactMatch,omitempty"`
12678
12679	// Name: The name of the query parameter to match. The query parameter
12680	// must exist in the request, in the absence of which the request match
12681	// fails.
12682	Name string `json:"name,omitempty"`
12683
12684	// PresentMatch: Specifies that the queryParameterMatch matches if the
12685	// request contains the query parameter, irrespective of whether the
12686	// parameter has a value or not.
12687	// Only one of presentMatch, exactMatch or regexMatch must be set.
12688	PresentMatch bool `json:"presentMatch,omitempty"`
12689
12690	// RegexMatch: The queryParameterMatch matches if the value of the
12691	// parameter matches the regular expression specified by regexMatch. For
12692	// the regular expression grammar, please see
12693	// en.cppreference.com/w/cpp/regex/ecmascript
12694	// Only one of presentMatch, exactMatch or regexMatch must be set.
12695	// Note that regexMatch only applies when the loadBalancingScheme is set
12696	// to INTERNAL_SELF_MANAGED.
12697	RegexMatch string `json:"regexMatch,omitempty"`
12698
12699	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
12700	// unconditionally include in API requests. By default, fields with
12701	// empty values are omitted from API requests. However, any non-pointer,
12702	// non-interface field appearing in ForceSendFields will be sent to the
12703	// server regardless of whether the field is empty or not. This may be
12704	// used to include empty fields in Patch requests.
12705	ForceSendFields []string `json:"-"`
12706
12707	// NullFields is a list of field names (e.g. "ExactMatch") to include in
12708	// API requests with the JSON null value. By default, fields with empty
12709	// values are omitted from API requests. However, any field with an
12710	// empty value appearing in NullFields will be sent to the server as
12711	// null. It is an error if a field in this list has a non-empty value.
12712	// This may be used to include null fields in Patch requests.
12713	NullFields []string `json:"-"`
12714}
12715
12716func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
12717	type NoMethod HttpQueryParameterMatch
12718	raw := NoMethod(*s)
12719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12720}
12721
12722// HttpRedirectAction: Specifies settings for an HTTP redirect.
12723type HttpRedirectAction struct {
12724	// HostRedirect: The host that will be used in the redirect response
12725	// instead of the one that was supplied in the request.
12726	// The value must be between 1 and 255 characters.
12727	HostRedirect string `json:"hostRedirect,omitempty"`
12728
12729	// HttpsRedirect: If set to true, the URL scheme in the redirected
12730	// request is set to https. If set to false, the URL scheme of the
12731	// redirected request will remain the same as that of the request.
12732	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
12733	// this true for TargetHttpsProxy is not permitted.
12734	// The default is set to false.
12735	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
12736
12737	// PathRedirect: The path that will be used in the redirect response
12738	// instead of the one that was supplied in the request.
12739	// pathRedirect cannot be supplied together with prefixRedirect. Supply
12740	// one alone or neither. If neither is supplied, the path of the
12741	// original request will be used for the redirect.
12742	// The value must be between 1 and 1024 characters.
12743	PathRedirect string `json:"pathRedirect,omitempty"`
12744
12745	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
12746	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
12747	// before redirecting the request.
12748	// prefixRedirect cannot be supplied together with pathRedirect. Supply
12749	// one alone or neither. If neither is supplied, the path of the
12750	// original request will be used for the redirect.
12751	// The value must be between 1 and 1024 characters.
12752	PrefixRedirect string `json:"prefixRedirect,omitempty"`
12753
12754	// RedirectResponseCode: The HTTP Status code to use for this
12755	// RedirectAction.
12756	// Supported values are:
12757	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
12758	// corresponds to 301.
12759	// - FOUND, which corresponds to 302.
12760	// - SEE_OTHER which corresponds to 303.
12761	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
12762	// request method will be retained.
12763	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
12764	// request method will be retained.
12765	//
12766	// Possible values:
12767	//   "FOUND"
12768	//   "MOVED_PERMANENTLY_DEFAULT"
12769	//   "PERMANENT_REDIRECT"
12770	//   "SEE_OTHER"
12771	//   "TEMPORARY_REDIRECT"
12772	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
12773
12774	// StripQuery: If set to true, any accompanying query portion of the
12775	// original URL is removed prior to redirecting the request. If set to
12776	// false, the query portion of the original URL is retained.
12777	// The default is set to false.
12778	StripQuery bool `json:"stripQuery,omitempty"`
12779
12780	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
12781	// unconditionally include in API requests. By default, fields with
12782	// empty values are omitted from API requests. However, any non-pointer,
12783	// non-interface field appearing in ForceSendFields will be sent to the
12784	// server regardless of whether the field is empty or not. This may be
12785	// used to include empty fields in Patch requests.
12786	ForceSendFields []string `json:"-"`
12787
12788	// NullFields is a list of field names (e.g. "HostRedirect") to include
12789	// in API requests with the JSON null value. By default, fields with
12790	// empty values are omitted from API requests. However, any field with
12791	// an empty value appearing in NullFields will be sent to the server as
12792	// null. It is an error if a field in this list has a non-empty value.
12793	// This may be used to include null fields in Patch requests.
12794	NullFields []string `json:"-"`
12795}
12796
12797func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
12798	type NoMethod HttpRedirectAction
12799	raw := NoMethod(*s)
12800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12801}
12802
12803// HttpRetryPolicy: The retry policy associates with HttpRouteRule
12804type HttpRetryPolicy struct {
12805	// NumRetries: Specifies the allowed number retries. This number must be
12806	// > 0. If not specified, defaults to 1.
12807	NumRetries int64 `json:"numRetries,omitempty"`
12808
12809	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
12810	// If not specified, will use the timeout set in HttpRouteAction. If
12811	// timeout in HttpRouteAction is not set, will use the largest timeout
12812	// among all backend services associated with the route.
12813	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
12814
12815	// RetryConditions: Specfies one or more conditions when this retry rule
12816	// applies. Valid values are:
12817	// - 5xx: Loadbalancer will attempt a retry if the backend service
12818	// responds with any 5xx response code, or if the backend service does
12819	// not respond at all, example: disconnects, reset, read timeout,
12820	// connection failure, and refused streams.
12821	// - gateway-error: Similar to 5xx, but only applies to response codes
12822	// 502, 503 or 504.
12823	// -
12824	// - connect-failure: Loadbalancer will retry on failures connecting to
12825	// backend services, for example due to connection timeouts.
12826	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
12827	// codes. Currently the only retriable error supported is 409.
12828	// - refused-stream:Loadbalancer will retry if the backend service
12829	// resets the stream with a REFUSED_STREAM error code. This reset type
12830	// indicates that it is safe to retry.
12831	// - cancelledLoadbalancer will retry if the gRPC status code in the
12832	// response header is set to cancelled
12833	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
12834	// in the response header is set to deadline-exceeded
12835	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
12836	// in the response header is set to resource-exhausted
12837	// - unavailable: Loadbalancer will retry if the gRPC status code in the
12838	// response header is set to unavailable
12839	RetryConditions []string `json:"retryConditions,omitempty"`
12840
12841	// ForceSendFields is a list of field names (e.g. "NumRetries") to
12842	// unconditionally include in API requests. By default, fields with
12843	// empty values are omitted from API requests. However, any non-pointer,
12844	// non-interface field appearing in ForceSendFields will be sent to the
12845	// server regardless of whether the field is empty or not. This may be
12846	// used to include empty fields in Patch requests.
12847	ForceSendFields []string `json:"-"`
12848
12849	// NullFields is a list of field names (e.g. "NumRetries") to include in
12850	// API requests with the JSON null value. By default, fields with empty
12851	// values are omitted from API requests. However, any field with an
12852	// empty value appearing in NullFields will be sent to the server as
12853	// null. It is an error if a field in this list has a non-empty value.
12854	// This may be used to include null fields in Patch requests.
12855	NullFields []string `json:"-"`
12856}
12857
12858func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
12859	type NoMethod HttpRetryPolicy
12860	raw := NoMethod(*s)
12861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12862}
12863
12864type HttpRouteAction struct {
12865	// CorsPolicy: The specification for allowing client side cross-origin
12866	// requests. Please see W3C Recommendation for Cross Origin Resource
12867	// Sharing
12868	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
12869
12870	// FaultInjectionPolicy: The specification for fault injection
12871	// introduced into traffic to test the resiliency of clients to backend
12872	// service failure. As part of fault injection, when clients send
12873	// requests to a backend service, delays can be introduced by
12874	// Loadbalancer on a percentage of requests before sending those request
12875	// to the backend service. Similarly requests from clients can be
12876	// aborted by the Loadbalancer for a percentage of requests.
12877	// timeout and retry_policy will be ignored by clients that are
12878	// configured with a fault_injection_policy.
12879	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
12880
12881	// RequestMirrorPolicy: Specifies the policy on how requests intended
12882	// for the route's backends are shadowed to a separate mirrored backend
12883	// service. Loadbalancer does not wait for responses from the shadow
12884	// service. Prior to sending traffic to the shadow service, the host /
12885	// authority header is suffixed with -shadow.
12886	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
12887
12888	// RetryPolicy: Specifies the retry policy associated with this route.
12889	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
12890
12891	// Timeout: Specifies the timeout for the selected route. Timeout is
12892	// computed from the time the request has been fully processed (i.e.
12893	// end-of-stream) up until the response has been completely processed.
12894	// Timeout includes all retries.
12895	// If not specified, will use the largest timeout among all backend
12896	// services associated with the route.
12897	Timeout *Duration `json:"timeout,omitempty"`
12898
12899	// UrlRewrite: The spec to modify the URL of the request, prior to
12900	// forwarding the request to the matched service.
12901	// urlRewrite is the only action supported in UrlMaps for external
12902	// HTTP(S) load balancers.
12903	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
12904
12905	// WeightedBackendServices: A list of weighted backend services to send
12906	// traffic to when a route match occurs. The weights determine the
12907	// fraction of traffic that flows to their corresponding backend
12908	// service. If all traffic needs to go to a single backend service,
12909	// there must be one  weightedBackendService with weight set to a non 0
12910	// number.
12911	// Once a backendService is identified and before forwarding the request
12912	// to the backend service, advanced routing actions like Url rewrites
12913	// and header transformations are applied depending on additional
12914	// settings specified in this HttpRouteAction.
12915	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
12916
12917	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
12918	// unconditionally include in API requests. By default, fields with
12919	// empty values are omitted from API requests. However, any non-pointer,
12920	// non-interface field appearing in ForceSendFields will be sent to the
12921	// server regardless of whether the field is empty or not. This may be
12922	// used to include empty fields in Patch requests.
12923	ForceSendFields []string `json:"-"`
12924
12925	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
12926	// API requests with the JSON null value. By default, fields with empty
12927	// values are omitted from API requests. However, any field with an
12928	// empty value appearing in NullFields will be sent to the server as
12929	// null. It is an error if a field in this list has a non-empty value.
12930	// This may be used to include null fields in Patch requests.
12931	NullFields []string `json:"-"`
12932}
12933
12934func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
12935	type NoMethod HttpRouteAction
12936	raw := NoMethod(*s)
12937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12938}
12939
12940// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
12941// request and the corresponding routing action that load balancing
12942// proxies will perform.
12943type HttpRouteRule struct {
12944	// Description: The short description conveying the intent of this
12945	// routeRule.
12946	// The description can have a maximum length of 1024 characters.
12947	Description string `json:"description,omitempty"`
12948
12949	// HeaderAction: Specifies changes to request and response headers that
12950	// need to take effect for the selected backendService.
12951	// The headerAction specified here are applied before the matching
12952	// pathMatchers[].headerAction and after
12953	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
12954	// ServiceWeightAction[].headerAction
12955	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
12956
12957	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
12958
12959	// Priority: For routeRules within a given pathMatcher, priority
12960	// determines the order in which load balancer will interpret
12961	// routeRules. RouteRules are evaluated in order of priority, from the
12962	// lowest to highest number. The priority of a rule decreases as its
12963	// number increases (1, 2, 3, N+1). The first rule that matches the
12964	// request is applied.
12965	// You cannot configure two or more routeRules with the same priority.
12966	// Priority for each rule must be set to a number between 0 and
12967	// 2147483647 inclusive.
12968	// Priority numbers can have gaps, which enable you to add or remove
12969	// rules in the future without affecting the rest of the rules. For
12970	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
12971	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
12972	// and 13 to 15 in the future without any impact on existing rules.
12973	Priority int64 `json:"priority,omitempty"`
12974
12975	// RouteAction: In response to a matching matchRule, the load balancer
12976	// performs advanced routing actions like URL rewrites, header
12977	// transformations, etc. prior to forwarding the request to the selected
12978	// backend. If  routeAction specifies any  weightedBackendServices,
12979	// service must not be set. Conversely if service is set, routeAction
12980	// cannot contain any  weightedBackendServices.
12981	// Only one of urlRedirect, service or
12982	// routeAction.weightedBackendService must be set.
12983	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
12984
12985	// Service: The full or partial URL of the backend service resource to
12986	// which traffic is directed if this rule is matched. If routeAction is
12987	// additionally specified, advanced routing actions like URL Rewrites,
12988	// etc. take effect prior to sending the request to the backend.
12989	// However, if service is specified, routeAction cannot contain any
12990	// weightedBackendService s. Conversely, if routeAction specifies any
12991	// weightedBackendServices, service must not be specified.
12992	// Only one of urlRedirect, service or
12993	// routeAction.weightedBackendService must be set.
12994	Service string `json:"service,omitempty"`
12995
12996	// UrlRedirect: When this rule is matched, the request is redirected to
12997	// a URL specified by urlRedirect.
12998	// If urlRedirect is specified, service or routeAction must not be set.
12999	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
13000
13001	// ForceSendFields is a list of field names (e.g. "Description") to
13002	// unconditionally include in API requests. By default, fields with
13003	// empty values are omitted from API requests. However, any non-pointer,
13004	// non-interface field appearing in ForceSendFields will be sent to the
13005	// server regardless of whether the field is empty or not. This may be
13006	// used to include empty fields in Patch requests.
13007	ForceSendFields []string `json:"-"`
13008
13009	// NullFields is a list of field names (e.g. "Description") to include
13010	// in API requests with the JSON null value. By default, fields with
13011	// empty values are omitted from API requests. However, any field with
13012	// an empty value appearing in NullFields will be sent to the server as
13013	// null. It is an error if a field in this list has a non-empty value.
13014	// This may be used to include null fields in Patch requests.
13015	NullFields []string `json:"-"`
13016}
13017
13018func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
13019	type NoMethod HttpRouteRule
13020	raw := NoMethod(*s)
13021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13022}
13023
13024// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
13025// for matching requests to an HttpRouteRule. All specified criteria
13026// must be satisfied for a match to occur.
13027type HttpRouteRuleMatch struct {
13028	// FullPathMatch: For satisfying the matchRule condition, the path of
13029	// the request must exactly match the value specified in fullPathMatch
13030	// after removing any query parameters and anchor that may be part of
13031	// the original URL.
13032	// fullPathMatch must be between 1 and 1024 characters.
13033	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13034	// specified.
13035	FullPathMatch string `json:"fullPathMatch,omitempty"`
13036
13037	// HeaderMatches: Specifies a list of header match criteria, all of
13038	// which must match corresponding headers in the request.
13039	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
13040
13041	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
13042	// case sensitive.
13043	// The default value is false.
13044	// ignoreCase must not be used with regexMatch.
13045	IgnoreCase bool `json:"ignoreCase,omitempty"`
13046
13047	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
13048	// restrict routing configuration to a limited set of xDS compliant
13049	// clients. In their xDS requests to Loadbalancer, xDS clients present
13050	// node metadata. If a match takes place, the relevant routing
13051	// configuration is made available to those proxies.
13052	// For each metadataFilter in this list, if its filterMatchCriteria is
13053	// set to MATCH_ANY, at least one of the filterLabels must match the
13054	// corresponding label provided in the metadata. If its
13055	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
13056	// must match with corresponding labels provided in the
13057	// metadata.
13058	// metadataFilters specified here will be applied after those specified
13059	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
13060	// belongs to.
13061	// metadataFilters only applies to Loadbalancers that have their
13062	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13063	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
13064
13065	// PrefixMatch: For satisfying the matchRule condition, the request's
13066	// path must begin with the specified prefixMatch. prefixMatch must
13067	// begin with a /.
13068	// The value must be between 1 and 1024 characters.
13069	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13070	// specified.
13071	PrefixMatch string `json:"prefixMatch,omitempty"`
13072
13073	// QueryParameterMatches: Specifies a list of query parameter match
13074	// criteria, all of which must match corresponding query parameters in
13075	// the request.
13076	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
13077
13078	// RegexMatch: For satisfying the matchRule condition, the path of the
13079	// request must satisfy the regular expression specified in regexMatch
13080	// after removing any query parameters and anchor supplied with the
13081	// original URL. For regular expression grammar please see
13082	// en.cppreference.com/w/cpp/regex/ecmascript
13083	// Only one of prefixMatch, fullPathMatch or regexMatch must be
13084	// specified.
13085	// Note that regexMatch only applies to Loadbalancers that have their
13086	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13087	RegexMatch string `json:"regexMatch,omitempty"`
13088
13089	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
13090	// unconditionally include in API requests. By default, fields with
13091	// empty values are omitted from API requests. However, any non-pointer,
13092	// non-interface field appearing in ForceSendFields will be sent to the
13093	// server regardless of whether the field is empty or not. This may be
13094	// used to include empty fields in Patch requests.
13095	ForceSendFields []string `json:"-"`
13096
13097	// NullFields is a list of field names (e.g. "FullPathMatch") to include
13098	// in API requests with the JSON null value. By default, fields with
13099	// empty values are omitted from API requests. However, any field with
13100	// an empty value appearing in NullFields will be sent to the server as
13101	// null. It is an error if a field in this list has a non-empty value.
13102	// This may be used to include null fields in Patch requests.
13103	NullFields []string `json:"-"`
13104}
13105
13106func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
13107	type NoMethod HttpRouteRuleMatch
13108	raw := NoMethod(*s)
13109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13110}
13111
13112// HttpsHealthCheck: Represents a legacy HTTPS Health Check
13113// resource.
13114//
13115// Legacy health checks are required by network load balancers. For more
13116// information, read Health Check Concepts.
13117type HttpsHealthCheck struct {
13118	// CheckIntervalSec: How often (in seconds) to send a health check. The
13119	// default value is 5 seconds.
13120	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
13121
13122	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13123	// format.
13124	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13125
13126	// Description: An optional description of this resource. Provide this
13127	// property when you create the resource.
13128	Description string `json:"description,omitempty"`
13129
13130	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
13131	// after this many consecutive successes. The default value is 2.
13132	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
13133
13134	// Host: The value of the host header in the HTTPS health check request.
13135	// If left empty (default value), the public IP on behalf of which this
13136	// health check is performed will be used.
13137	Host string `json:"host,omitempty"`
13138
13139	// Id: [Output Only] The unique identifier for the resource. This
13140	// identifier is defined by the server.
13141	Id uint64 `json:"id,omitempty,string"`
13142
13143	// Kind: Type of the resource.
13144	Kind string `json:"kind,omitempty"`
13145
13146	// Name: Name of the resource. Provided by the client when the resource
13147	// is created. The name must be 1-63 characters long, and comply with
13148	// RFC1035. Specifically, the name must be 1-63 characters long and
13149	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13150	// the first character must be a lowercase letter, and all following
13151	// characters must be a dash, lowercase letter, or digit, except the
13152	// last character, which cannot be a dash.
13153	Name string `json:"name,omitempty"`
13154
13155	// Port: The TCP port number for the HTTPS health check request. The
13156	// default value is 443.
13157	Port int64 `json:"port,omitempty"`
13158
13159	// RequestPath: The request path of the HTTPS health check request. The
13160	// default value is "/".
13161	RequestPath string `json:"requestPath,omitempty"`
13162
13163	// SelfLink: [Output Only] Server-defined URL for the resource.
13164	SelfLink string `json:"selfLink,omitempty"`
13165
13166	// TimeoutSec: How long (in seconds) to wait before claiming failure.
13167	// The default value is 5 seconds. It is invalid for timeoutSec to have
13168	// a greater value than checkIntervalSec.
13169	TimeoutSec int64 `json:"timeoutSec,omitempty"`
13170
13171	// UnhealthyThreshold: A so-far healthy instance will be marked
13172	// unhealthy after this many consecutive failures. The default value is
13173	// 2.
13174	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
13175
13176	// ServerResponse contains the HTTP response code and headers from the
13177	// server.
13178	googleapi.ServerResponse `json:"-"`
13179
13180	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
13181	// unconditionally include in API requests. By default, fields with
13182	// empty values are omitted from API requests. However, any non-pointer,
13183	// non-interface field appearing in ForceSendFields will be sent to the
13184	// server regardless of whether the field is empty or not. This may be
13185	// used to include empty fields in Patch requests.
13186	ForceSendFields []string `json:"-"`
13187
13188	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
13189	// include in API requests with the JSON null value. By default, fields
13190	// with empty values are omitted from API requests. However, any field
13191	// with an empty value appearing in NullFields will be sent to the
13192	// server as null. It is an error if a field in this list has a
13193	// non-empty value. This may be used to include null fields in Patch
13194	// requests.
13195	NullFields []string `json:"-"`
13196}
13197
13198func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
13199	type NoMethod HttpsHealthCheck
13200	raw := NoMethod(*s)
13201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13202}
13203
13204// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
13205type HttpsHealthCheckList struct {
13206	// Id: [Output Only] Unique identifier for the resource; defined by the
13207	// server.
13208	Id string `json:"id,omitempty"`
13209
13210	// Items: A list of HttpsHealthCheck resources.
13211	Items []*HttpsHealthCheck `json:"items,omitempty"`
13212
13213	// Kind: Type of resource.
13214	Kind string `json:"kind,omitempty"`
13215
13216	// NextPageToken: [Output Only] This token allows you to get the next
13217	// page of results for list requests. If the number of results is larger
13218	// than maxResults, use the nextPageToken as a value for the query
13219	// parameter pageToken in the next list request. Subsequent list
13220	// requests will have their own nextPageToken to continue paging through
13221	// the results.
13222	NextPageToken string `json:"nextPageToken,omitempty"`
13223
13224	// SelfLink: [Output Only] Server-defined URL for this resource.
13225	SelfLink string `json:"selfLink,omitempty"`
13226
13227	// Warning: [Output Only] Informational warning message.
13228	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
13229
13230	// ServerResponse contains the HTTP response code and headers from the
13231	// server.
13232	googleapi.ServerResponse `json:"-"`
13233
13234	// ForceSendFields is a list of field names (e.g. "Id") to
13235	// unconditionally include in API requests. By default, fields with
13236	// empty values are omitted from API requests. However, any non-pointer,
13237	// non-interface field appearing in ForceSendFields will be sent to the
13238	// server regardless of whether the field is empty or not. This may be
13239	// used to include empty fields in Patch requests.
13240	ForceSendFields []string `json:"-"`
13241
13242	// NullFields is a list of field names (e.g. "Id") to include in API
13243	// requests with the JSON null value. By default, fields with empty
13244	// values are omitted from API requests. However, any field with an
13245	// empty value appearing in NullFields will be sent to the server as
13246	// null. It is an error if a field in this list has a non-empty value.
13247	// This may be used to include null fields in Patch requests.
13248	NullFields []string `json:"-"`
13249}
13250
13251func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
13252	type NoMethod HttpsHealthCheckList
13253	raw := NoMethod(*s)
13254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13255}
13256
13257// HttpsHealthCheckListWarning: [Output Only] Informational warning
13258// message.
13259type HttpsHealthCheckListWarning struct {
13260	// Code: [Output Only] A warning code, if applicable. For example,
13261	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13262	// the response.
13263	//
13264	// Possible values:
13265	//   "CLEANUP_FAILED"
13266	//   "DEPRECATED_RESOURCE_USED"
13267	//   "DEPRECATED_TYPE_USED"
13268	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13269	//   "EXPERIMENTAL_TYPE_USED"
13270	//   "EXTERNAL_API_WARNING"
13271	//   "FIELD_VALUE_OVERRIDEN"
13272	//   "INJECTED_KERNELS_DEPRECATED"
13273	//   "MISSING_TYPE_DEPENDENCY"
13274	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13275	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13276	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13277	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13278	//   "NEXT_HOP_NOT_RUNNING"
13279	//   "NOT_CRITICAL_ERROR"
13280	//   "NO_RESULTS_ON_PAGE"
13281	//   "REQUIRED_TOS_AGREEMENT"
13282	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13283	//   "RESOURCE_NOT_DELETED"
13284	//   "SCHEMA_VALIDATION_IGNORED"
13285	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13286	//   "UNDECLARED_PROPERTIES"
13287	//   "UNREACHABLE"
13288	Code string `json:"code,omitempty"`
13289
13290	// Data: [Output Only] Metadata about this warning in key: value format.
13291	// For example:
13292	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13293	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
13294
13295	// Message: [Output Only] A human-readable description of the warning
13296	// code.
13297	Message string `json:"message,omitempty"`
13298
13299	// ForceSendFields is a list of field names (e.g. "Code") to
13300	// unconditionally include in API requests. By default, fields with
13301	// empty values are omitted from API requests. However, any non-pointer,
13302	// non-interface field appearing in ForceSendFields will be sent to the
13303	// server regardless of whether the field is empty or not. This may be
13304	// used to include empty fields in Patch requests.
13305	ForceSendFields []string `json:"-"`
13306
13307	// NullFields is a list of field names (e.g. "Code") to include in API
13308	// requests with the JSON null value. By default, fields with empty
13309	// values are omitted from API requests. However, any field with an
13310	// empty value appearing in NullFields will be sent to the server as
13311	// null. It is an error if a field in this list has a non-empty value.
13312	// This may be used to include null fields in Patch requests.
13313	NullFields []string `json:"-"`
13314}
13315
13316func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
13317	type NoMethod HttpsHealthCheckListWarning
13318	raw := NoMethod(*s)
13319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13320}
13321
13322type HttpsHealthCheckListWarningData struct {
13323	// Key: [Output Only] A key that provides more detail on the warning
13324	// being returned. For example, for warnings where there are no results
13325	// in a list request for a particular zone, this key might be scope and
13326	// the key value might be the zone name. Other examples might be a key
13327	// indicating a deprecated resource and a suggested replacement, or a
13328	// warning about invalid network settings (for example, if an instance
13329	// attempts to perform IP forwarding but is not enabled for IP
13330	// forwarding).
13331	Key string `json:"key,omitempty"`
13332
13333	// Value: [Output Only] A warning data value corresponding to the key.
13334	Value string `json:"value,omitempty"`
13335
13336	// ForceSendFields is a list of field names (e.g. "Key") to
13337	// unconditionally include in API requests. By default, fields with
13338	// empty values are omitted from API requests. However, any non-pointer,
13339	// non-interface field appearing in ForceSendFields will be sent to the
13340	// server regardless of whether the field is empty or not. This may be
13341	// used to include empty fields in Patch requests.
13342	ForceSendFields []string `json:"-"`
13343
13344	// NullFields is a list of field names (e.g. "Key") to include in API
13345	// requests with the JSON null value. By default, fields with empty
13346	// values are omitted from API requests. However, any field with an
13347	// empty value appearing in NullFields will be sent to the server as
13348	// null. It is an error if a field in this list has a non-empty value.
13349	// This may be used to include null fields in Patch requests.
13350	NullFields []string `json:"-"`
13351}
13352
13353func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13354	type NoMethod HttpsHealthCheckListWarningData
13355	raw := NoMethod(*s)
13356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13357}
13358
13359// Image: Represents an Image resource.
13360//
13361// You can use images to create boot disks for your VM instances. For
13362// more information, read Images. (== resource_for {$api_version}.images
13363// ==)
13364type Image struct {
13365	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
13366	// Cloud Storage (in bytes).
13367	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
13368
13369	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13370	// format.
13371	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13372
13373	// Deprecated: The deprecation status associated with this image.
13374	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
13375
13376	// Description: An optional description of this resource. Provide this
13377	// property when you create the resource.
13378	Description string `json:"description,omitempty"`
13379
13380	// DiskSizeGb: Size of the image when restored onto a persistent disk
13381	// (in GB).
13382	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
13383
13384	// Family: The name of the image family to which this image belongs. You
13385	// can create disks by specifying an image family instead of a specific
13386	// image name. The image family always returns its latest image that is
13387	// not deprecated. The name of the image family must comply with
13388	// RFC1035.
13389	Family string `json:"family,omitempty"`
13390
13391	// GuestOsFeatures: A list of features to enable on the guest operating
13392	// system. Applicable only for bootable images. Read  Enabling guest
13393	// operating system features to see a list of available options.
13394	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
13395
13396	// Id: [Output Only] The unique identifier for the resource. This
13397	// identifier is defined by the server.
13398	Id uint64 `json:"id,omitempty,string"`
13399
13400	// ImageEncryptionKey: Encrypts the image using a customer-supplied
13401	// encryption key.
13402	//
13403	// After you encrypt an image with a customer-supplied key, you must
13404	// provide the same key if you use the image later (e.g. to create a
13405	// disk from the image).
13406	//
13407	// Customer-supplied encryption keys do not protect access to metadata
13408	// of the disk.
13409	//
13410	// If you do not provide an encryption key when creating the image, then
13411	// the disk will be encrypted using an automatically generated key and
13412	// you do not need to provide a key to use the image later.
13413	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
13414
13415	// Kind: [Output Only] Type of the resource. Always compute#image for
13416	// images.
13417	Kind string `json:"kind,omitempty"`
13418
13419	// LabelFingerprint: A fingerprint for the labels being applied to this
13420	// image, which is essentially a hash of the labels used for optimistic
13421	// locking. The fingerprint is initially generated by Compute Engine and
13422	// changes after every request to modify or update labels. You must
13423	// always provide an up-to-date fingerprint hash in order to update or
13424	// change labels, otherwise the request will fail with error 412
13425	// conditionNotMet.
13426	//
13427	// To see the latest fingerprint, make a get() request to retrieve an
13428	// image.
13429	LabelFingerprint string `json:"labelFingerprint,omitempty"`
13430
13431	// Labels: Labels to apply to this image. These can be later modified by
13432	// the setLabels method.
13433	Labels map[string]string `json:"labels,omitempty"`
13434
13435	// LicenseCodes: Integer license codes indicating which licenses are
13436	// attached to this image.
13437	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
13438
13439	// Licenses: Any applicable license URI.
13440	Licenses []string `json:"licenses,omitempty"`
13441
13442	// Name: Name of the resource; provided by the client when the resource
13443	// is created. The name must be 1-63 characters long, and comply with
13444	// RFC1035. Specifically, the name must be 1-63 characters long and
13445	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13446	// the first character must be a lowercase letter, and all following
13447	// characters must be a dash, lowercase letter, or digit, except the
13448	// last character, which cannot be a dash.
13449	Name string `json:"name,omitempty"`
13450
13451	// RawDisk: The parameters of the raw disk image.
13452	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
13453
13454	// SelfLink: [Output Only] Server-defined URL for the resource.
13455	SelfLink string `json:"selfLink,omitempty"`
13456
13457	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
13458	// instance.
13459	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
13460
13461	// SourceDisk: URL of the source disk used to create this image. This
13462	// can be a full or valid partial URL. You must provide either this
13463	// property or the rawDisk.source property but not both to create an
13464	// image. For example, the following are valid values:
13465	// -
13466	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
13467	// - projects/project/zones/zone/disks/disk
13468	// - zones/zone/disks/disk
13469	SourceDisk string `json:"sourceDisk,omitempty"`
13470
13471	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
13472	// source disk. Required if the source disk is protected by a
13473	// customer-supplied encryption key.
13474	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
13475
13476	// SourceDiskId: [Output Only] The ID value of the disk used to create
13477	// this image. This value may be used to determine whether the image was
13478	// taken from the current or a previous instance of a given disk name.
13479	SourceDiskId string `json:"sourceDiskId,omitempty"`
13480
13481	// SourceImage: URL of the source image used to create this image.
13482	//
13483	// In order to create an image, you must provide the full or partial URL
13484	// of one of the following:
13485	// - The selfLink URL
13486	// - This property
13487	// - The rawDisk.source URL
13488	// - The sourceDisk URL
13489	SourceImage string `json:"sourceImage,omitempty"`
13490
13491	// SourceImageEncryptionKey: The customer-supplied encryption key of the
13492	// source image. Required if the source image is protected by a
13493	// customer-supplied encryption key.
13494	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
13495
13496	// SourceImageId: [Output Only] The ID value of the image used to create
13497	// this image. This value may be used to determine whether the image was
13498	// taken from the current or a previous instance of a given image name.
13499	SourceImageId string `json:"sourceImageId,omitempty"`
13500
13501	// SourceSnapshot: URL of the source snapshot used to create this
13502	// image.
13503	//
13504	// In order to create an image, you must provide the full or partial URL
13505	// of one of the following:
13506	// - The selfLink URL
13507	// - This property
13508	// - The sourceImage URL
13509	// - The rawDisk.source URL
13510	// - The sourceDisk URL
13511	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
13512
13513	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
13514	// the source snapshot. Required if the source snapshot is protected by
13515	// a customer-supplied encryption key.
13516	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
13517
13518	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
13519	// create this image. This value may be used to determine whether the
13520	// snapshot was taken from the current or a previous instance of a given
13521	// snapshot name.
13522	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
13523
13524	// SourceType: The type of the image used to create this disk. The
13525	// default and only value is RAW
13526	//
13527	// Possible values:
13528	//   "RAW" (default)
13529	SourceType string `json:"sourceType,omitempty"`
13530
13531	// Status: [Output Only] The status of the image. An image can be used
13532	// to create other resources, such as instances, only after the image
13533	// has been successfully created and the status is set to READY.
13534	// Possible values are FAILED, PENDING, or READY.
13535	//
13536	// Possible values:
13537	//   "DELETING"
13538	//   "FAILED"
13539	//   "PENDING"
13540	//   "READY"
13541	Status string `json:"status,omitempty"`
13542
13543	// StorageLocations: Cloud Storage bucket storage location of the image
13544	// (regional or multi-regional).
13545	StorageLocations []string `json:"storageLocations,omitempty"`
13546
13547	// ServerResponse contains the HTTP response code and headers from the
13548	// server.
13549	googleapi.ServerResponse `json:"-"`
13550
13551	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
13552	// unconditionally include in API requests. By default, fields with
13553	// empty values are omitted from API requests. However, any non-pointer,
13554	// non-interface field appearing in ForceSendFields will be sent to the
13555	// server regardless of whether the field is empty or not. This may be
13556	// used to include empty fields in Patch requests.
13557	ForceSendFields []string `json:"-"`
13558
13559	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
13560	// include in API requests with the JSON null value. By default, fields
13561	// with empty values are omitted from API requests. However, any field
13562	// with an empty value appearing in NullFields will be sent to the
13563	// server as null. It is an error if a field in this list has a
13564	// non-empty value. This may be used to include null fields in Patch
13565	// requests.
13566	NullFields []string `json:"-"`
13567}
13568
13569func (s *Image) MarshalJSON() ([]byte, error) {
13570	type NoMethod Image
13571	raw := NoMethod(*s)
13572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13573}
13574
13575// ImageRawDisk: The parameters of the raw disk image.
13576type ImageRawDisk struct {
13577	// ContainerType: The format used to encode and transmit the block
13578	// device, which should be TAR. This is just a container and
13579	// transmission format and not a runtime format. Provided by the client
13580	// when the disk image is created.
13581	//
13582	// Possible values:
13583	//   "TAR"
13584	ContainerType string `json:"containerType,omitempty"`
13585
13586	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
13587	// checksum of the disk image before unpackaging provided by the client
13588	// when the disk image is created.
13589	Sha1Checksum string `json:"sha1Checksum,omitempty"`
13590
13591	// Source: The full Google Cloud Storage URL where the disk image is
13592	// stored. You must provide either this property or the sourceDisk
13593	// property but not both.
13594	Source string `json:"source,omitempty"`
13595
13596	// ForceSendFields is a list of field names (e.g. "ContainerType") to
13597	// unconditionally include in API requests. By default, fields with
13598	// empty values are omitted from API requests. However, any non-pointer,
13599	// non-interface field appearing in ForceSendFields will be sent to the
13600	// server regardless of whether the field is empty or not. This may be
13601	// used to include empty fields in Patch requests.
13602	ForceSendFields []string `json:"-"`
13603
13604	// NullFields is a list of field names (e.g. "ContainerType") to include
13605	// in API requests with the JSON null value. By default, fields with
13606	// empty values are omitted from API requests. However, any field with
13607	// an empty value appearing in NullFields will be sent to the server as
13608	// null. It is an error if a field in this list has a non-empty value.
13609	// This may be used to include null fields in Patch requests.
13610	NullFields []string `json:"-"`
13611}
13612
13613func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
13614	type NoMethod ImageRawDisk
13615	raw := NoMethod(*s)
13616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13617}
13618
13619// ImageList: Contains a list of images.
13620type ImageList struct {
13621	// Id: [Output Only] Unique identifier for the resource; defined by the
13622	// server.
13623	Id string `json:"id,omitempty"`
13624
13625	// Items: A list of Image resources.
13626	Items []*Image `json:"items,omitempty"`
13627
13628	// Kind: Type of resource.
13629	Kind string `json:"kind,omitempty"`
13630
13631	// NextPageToken: [Output Only] This token allows you to get the next
13632	// page of results for list requests. If the number of results is larger
13633	// than maxResults, use the nextPageToken as a value for the query
13634	// parameter pageToken in the next list request. Subsequent list
13635	// requests will have their own nextPageToken to continue paging through
13636	// the results.
13637	NextPageToken string `json:"nextPageToken,omitempty"`
13638
13639	// SelfLink: [Output Only] Server-defined URL for this resource.
13640	SelfLink string `json:"selfLink,omitempty"`
13641
13642	// Warning: [Output Only] Informational warning message.
13643	Warning *ImageListWarning `json:"warning,omitempty"`
13644
13645	// ServerResponse contains the HTTP response code and headers from the
13646	// server.
13647	googleapi.ServerResponse `json:"-"`
13648
13649	// ForceSendFields is a list of field names (e.g. "Id") to
13650	// unconditionally include in API requests. By default, fields with
13651	// empty values are omitted from API requests. However, any non-pointer,
13652	// non-interface field appearing in ForceSendFields will be sent to the
13653	// server regardless of whether the field is empty or not. This may be
13654	// used to include empty fields in Patch requests.
13655	ForceSendFields []string `json:"-"`
13656
13657	// NullFields is a list of field names (e.g. "Id") to include in API
13658	// requests with the JSON null value. By default, fields with empty
13659	// values are omitted from API requests. However, any field with an
13660	// empty value appearing in NullFields will be sent to the server as
13661	// null. It is an error if a field in this list has a non-empty value.
13662	// This may be used to include null fields in Patch requests.
13663	NullFields []string `json:"-"`
13664}
13665
13666func (s *ImageList) MarshalJSON() ([]byte, error) {
13667	type NoMethod ImageList
13668	raw := NoMethod(*s)
13669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13670}
13671
13672// ImageListWarning: [Output Only] Informational warning message.
13673type ImageListWarning struct {
13674	// Code: [Output Only] A warning code, if applicable. For example,
13675	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13676	// the response.
13677	//
13678	// Possible values:
13679	//   "CLEANUP_FAILED"
13680	//   "DEPRECATED_RESOURCE_USED"
13681	//   "DEPRECATED_TYPE_USED"
13682	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13683	//   "EXPERIMENTAL_TYPE_USED"
13684	//   "EXTERNAL_API_WARNING"
13685	//   "FIELD_VALUE_OVERRIDEN"
13686	//   "INJECTED_KERNELS_DEPRECATED"
13687	//   "MISSING_TYPE_DEPENDENCY"
13688	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13689	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13690	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13691	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13692	//   "NEXT_HOP_NOT_RUNNING"
13693	//   "NOT_CRITICAL_ERROR"
13694	//   "NO_RESULTS_ON_PAGE"
13695	//   "REQUIRED_TOS_AGREEMENT"
13696	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13697	//   "RESOURCE_NOT_DELETED"
13698	//   "SCHEMA_VALIDATION_IGNORED"
13699	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13700	//   "UNDECLARED_PROPERTIES"
13701	//   "UNREACHABLE"
13702	Code string `json:"code,omitempty"`
13703
13704	// Data: [Output Only] Metadata about this warning in key: value format.
13705	// For example:
13706	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13707	Data []*ImageListWarningData `json:"data,omitempty"`
13708
13709	// Message: [Output Only] A human-readable description of the warning
13710	// code.
13711	Message string `json:"message,omitempty"`
13712
13713	// ForceSendFields is a list of field names (e.g. "Code") to
13714	// unconditionally include in API requests. By default, fields with
13715	// empty values are omitted from API requests. However, any non-pointer,
13716	// non-interface field appearing in ForceSendFields will be sent to the
13717	// server regardless of whether the field is empty or not. This may be
13718	// used to include empty fields in Patch requests.
13719	ForceSendFields []string `json:"-"`
13720
13721	// NullFields is a list of field names (e.g. "Code") to include in API
13722	// requests with the JSON null value. By default, fields with empty
13723	// values are omitted from API requests. However, any field with an
13724	// empty value appearing in NullFields will be sent to the server as
13725	// null. It is an error if a field in this list has a non-empty value.
13726	// This may be used to include null fields in Patch requests.
13727	NullFields []string `json:"-"`
13728}
13729
13730func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
13731	type NoMethod ImageListWarning
13732	raw := NoMethod(*s)
13733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13734}
13735
13736type ImageListWarningData struct {
13737	// Key: [Output Only] A key that provides more detail on the warning
13738	// being returned. For example, for warnings where there are no results
13739	// in a list request for a particular zone, this key might be scope and
13740	// the key value might be the zone name. Other examples might be a key
13741	// indicating a deprecated resource and a suggested replacement, or a
13742	// warning about invalid network settings (for example, if an instance
13743	// attempts to perform IP forwarding but is not enabled for IP
13744	// forwarding).
13745	Key string `json:"key,omitempty"`
13746
13747	// Value: [Output Only] A warning data value corresponding to the key.
13748	Value string `json:"value,omitempty"`
13749
13750	// ForceSendFields is a list of field names (e.g. "Key") to
13751	// unconditionally include in API requests. By default, fields with
13752	// empty values are omitted from API requests. However, any non-pointer,
13753	// non-interface field appearing in ForceSendFields will be sent to the
13754	// server regardless of whether the field is empty or not. This may be
13755	// used to include empty fields in Patch requests.
13756	ForceSendFields []string `json:"-"`
13757
13758	// NullFields is a list of field names (e.g. "Key") to include in API
13759	// requests with the JSON null value. By default, fields with empty
13760	// values are omitted from API requests. However, any field with an
13761	// empty value appearing in NullFields will be sent to the server as
13762	// null. It is an error if a field in this list has a non-empty value.
13763	// This may be used to include null fields in Patch requests.
13764	NullFields []string `json:"-"`
13765}
13766
13767func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
13768	type NoMethod ImageListWarningData
13769	raw := NoMethod(*s)
13770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13771}
13772
13773// InitialStateConfig: Initial State for shielded instance, these are
13774// public keys which are safe to store in public
13775type InitialStateConfig struct {
13776	// Dbs: The Key Database (db).
13777	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
13778
13779	// Dbxs: The forbidden key database (dbx).
13780	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
13781
13782	// Keks: The Key Exchange Key (KEK).
13783	Keks []*FileContentBuffer `json:"keks,omitempty"`
13784
13785	// Pk: The Platform Key (PK).
13786	Pk *FileContentBuffer `json:"pk,omitempty"`
13787
13788	// ForceSendFields is a list of field names (e.g. "Dbs") to
13789	// unconditionally include in API requests. By default, fields with
13790	// empty values are omitted from API requests. However, any non-pointer,
13791	// non-interface field appearing in ForceSendFields will be sent to the
13792	// server regardless of whether the field is empty or not. This may be
13793	// used to include empty fields in Patch requests.
13794	ForceSendFields []string `json:"-"`
13795
13796	// NullFields is a list of field names (e.g. "Dbs") to include in API
13797	// requests with the JSON null value. By default, fields with empty
13798	// values are omitted from API requests. However, any field with an
13799	// empty value appearing in NullFields will be sent to the server as
13800	// null. It is an error if a field in this list has a non-empty value.
13801	// This may be used to include null fields in Patch requests.
13802	NullFields []string `json:"-"`
13803}
13804
13805func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
13806	type NoMethod InitialStateConfig
13807	raw := NoMethod(*s)
13808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13809}
13810
13811// Instance: Represents an Instance resource.
13812//
13813// An instance is a virtual machine that is hosted on Google Cloud
13814// Platform. For more information, read Virtual Machine Instances. (==
13815// resource_for {$api_version}.instances ==)
13816type Instance struct {
13817	// CanIpForward: Allows this instance to send and receive packets with
13818	// non-matching destination or source IPs. This is required if you plan
13819	// to use this instance to forward routes. For more information, see
13820	// Enabling IP Forwarding.
13821	CanIpForward bool `json:"canIpForward,omitempty"`
13822
13823	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
13824
13825	// CpuPlatform: [Output Only] The CPU platform used by this instance.
13826	CpuPlatform string `json:"cpuPlatform,omitempty"`
13827
13828	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13829	// format.
13830	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13831
13832	// DeletionProtection: Whether the resource should be protected against
13833	// deletion.
13834	DeletionProtection bool `json:"deletionProtection,omitempty"`
13835
13836	// Description: An optional description of this resource. Provide this
13837	// property when you create the resource.
13838	Description string `json:"description,omitempty"`
13839
13840	// Disks: Array of disks associated with this instance. Persistent disks
13841	// must be created before you can assign them.
13842	Disks []*AttachedDisk `json:"disks,omitempty"`
13843
13844	// DisplayDevice: Enables display device for the instance.
13845	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
13846
13847	// EraseWindowsVssSignature: Specifies whether the disks restored from
13848	// source snapshots or source machine image should erase Windows
13849	// specific VSS signature.
13850	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
13851
13852	// Fingerprint: Specifies a fingerprint for this resource, which is
13853	// essentially a hash of the instance's contents and used for optimistic
13854	// locking. The fingerprint is initially generated by Compute Engine and
13855	// changes after every request to modify or update the instance. You
13856	// must always provide an up-to-date fingerprint hash in order to update
13857	// the instance.
13858	//
13859	// To see the latest fingerprint, make get() request to the instance.
13860	Fingerprint string `json:"fingerprint,omitempty"`
13861
13862	// GuestAccelerators: A list of the type and count of accelerator cards
13863	// attached to the instance.
13864	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
13865
13866	// Hostname: Specifies the hostname of the instance. The specified
13867	// hostname must be RFC1035 compliant. If hostname is not specified, the
13868	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
13869	// using the global DNS, and
13870	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
13871	Hostname string `json:"hostname,omitempty"`
13872
13873	// Id: [Output Only] The unique identifier for the resource. This
13874	// identifier is defined by the server.
13875	Id uint64 `json:"id,omitempty,string"`
13876
13877	// Kind: [Output Only] Type of the resource. Always compute#instance for
13878	// instances.
13879	Kind string `json:"kind,omitempty"`
13880
13881	// LabelFingerprint: A fingerprint for this request, which is
13882	// essentially a hash of the label's contents and used for optimistic
13883	// locking. The fingerprint is initially generated by Compute Engine and
13884	// changes after every request to modify or update labels. You must
13885	// always provide an up-to-date fingerprint hash in order to update or
13886	// change labels.
13887	//
13888	// To see the latest fingerprint, make get() request to the instance.
13889	LabelFingerprint string `json:"labelFingerprint,omitempty"`
13890
13891	// Labels: Labels to apply to this instance. These can be later modified
13892	// by the setLabels method.
13893	Labels map[string]string `json:"labels,omitempty"`
13894
13895	// MachineType: Full or partial URL of the machine type resource to use
13896	// for this instance, in the format:
13897	// zones/zone/machineTypes/machine-type. This is provided by the client
13898	// when the instance is created. For example, the following is a valid
13899	// partial url to a predefined machine
13900	// type:
13901	// zones/us-central1-f/machineTypes/n1-standard-1
13902	//
13903	//
13904	// To create a custom machine type, provide a URL to a machine type in
13905	// the following format, where CPUS is 1 or an even number up to 32 (2,
13906	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
13907	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
13908	// 5 GB of memory is 5120
13909	// MB):
13910	// zones/zone/machineTypes/custom-CPUS-MEMORY
13911	//
13912	//
13913	// For example: zones/us-central1-f/machineTypes/custom-4-5120
13914	//
13915	// For a full list of restrictions, read the Specifications for custom
13916	// machine types.
13917	MachineType string `json:"machineType,omitempty"`
13918
13919	// Metadata: The metadata key/value pairs assigned to this instance.
13920	// This includes custom metadata and predefined keys.
13921	Metadata *Metadata `json:"metadata,omitempty"`
13922
13923	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
13924	// Applicable values are the friendly names of CPU platforms, such as
13925	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
13926	// Bridge".
13927	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
13928
13929	// Name: The name of the resource, provided by the client when initially
13930	// creating the resource. The resource name must be 1-63 characters
13931	// long, and comply with RFC1035. Specifically, the name must be 1-63
13932	// characters long and match the regular expression
13933	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
13934	// a lowercase letter, and all following characters must be a dash,
13935	// lowercase letter, or digit, except the last character, which cannot
13936	// be a dash.
13937	Name string `json:"name,omitempty"`
13938
13939	// NetworkInterfaces: An array of network configurations for this
13940	// instance. These specify how interfaces are configured to interact
13941	// with other network services, such as connecting to the internet.
13942	// Multiple interfaces are supported per instance.
13943	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
13944
13945	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
13946	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
13947	//
13948	// Possible values:
13949	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
13950	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
13951	//   "INHERIT_FROM_SUBNETWORK"
13952	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
13953
13954	// ReservationAffinity: Specifies the reservations that this instance
13955	// can consume from.
13956	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
13957
13958	// ResourcePolicies: Resource policies applied to this instance.
13959	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
13960
13961	// Scheduling: Sets the scheduling options for this instance.
13962	Scheduling *Scheduling `json:"scheduling,omitempty"`
13963
13964	// SelfLink: [Output Only] Server-defined URL for this resource.
13965	SelfLink string `json:"selfLink,omitempty"`
13966
13967	// ServiceAccounts: A list of service accounts, with their specified
13968	// scopes, authorized for this instance. Only one service account per VM
13969	// instance is supported.
13970	//
13971	// Service accounts generate access tokens that can be accessed through
13972	// the metadata server and used to authenticate applications on the
13973	// instance. See Service Accounts for more information.
13974	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
13975
13976	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
13977
13978	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
13979
13980	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
13981
13982	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
13983
13984	// SourceMachineImage: Source machine image
13985	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
13986
13987	// SourceMachineImageEncryptionKey: Source GMI encryption key when
13988	// creating an instance from GMI.
13989	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
13990
13991	// StartRestricted: [Output Only] Whether a VM has been restricted for
13992	// start because Compute Engine has detected suspicious activity.
13993	StartRestricted bool `json:"startRestricted,omitempty"`
13994
13995	// Status: [Output Only] The status of the instance. One of the
13996	// following values: PROVISIONING, STAGING, RUNNING, STOPPING,
13997	// SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED.
13998	//
13999	// Possible values:
14000	//   "DEPROVISIONING"
14001	//   "PROVISIONING"
14002	//   "REPAIRING"
14003	//   "RUNNING"
14004	//   "STAGING"
14005	//   "STOPPED"
14006	//   "STOPPING"
14007	//   "SUSPENDED"
14008	//   "SUSPENDING"
14009	//   "TERMINATED"
14010	Status string `json:"status,omitempty"`
14011
14012	// StatusMessage: [Output Only] An optional, human-readable explanation
14013	// of the status.
14014	StatusMessage string `json:"statusMessage,omitempty"`
14015
14016	// Tags: Tags to apply to this instance. Tags are used to identify valid
14017	// sources or targets for network firewalls and are specified by the
14018	// client during instance creation. The tags can be later modified by
14019	// the setTags method. Each tag within the list must comply with
14020	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
14021	Tags *Tags `json:"tags,omitempty"`
14022
14023	// Zone: [Output Only] URL of the zone where the instance resides. You
14024	// must specify this field as part of the HTTP request URL. It is not
14025	// settable as a field in the request body.
14026	Zone string `json:"zone,omitempty"`
14027
14028	// ServerResponse contains the HTTP response code and headers from the
14029	// server.
14030	googleapi.ServerResponse `json:"-"`
14031
14032	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
14033	// unconditionally include in API requests. By default, fields with
14034	// empty values are omitted from API requests. However, any non-pointer,
14035	// non-interface field appearing in ForceSendFields will be sent to the
14036	// server regardless of whether the field is empty or not. This may be
14037	// used to include empty fields in Patch requests.
14038	ForceSendFields []string `json:"-"`
14039
14040	// NullFields is a list of field names (e.g. "CanIpForward") to include
14041	// in API requests with the JSON null value. By default, fields with
14042	// empty values are omitted from API requests. However, any field with
14043	// an empty value appearing in NullFields will be sent to the server as
14044	// null. It is an error if a field in this list has a non-empty value.
14045	// This may be used to include null fields in Patch requests.
14046	NullFields []string `json:"-"`
14047}
14048
14049func (s *Instance) MarshalJSON() ([]byte, error) {
14050	type NoMethod Instance
14051	raw := NoMethod(*s)
14052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14053}
14054
14055type InstanceAggregatedList struct {
14056	// Id: [Output Only] Unique identifier for the resource; defined by the
14057	// server.
14058	Id string `json:"id,omitempty"`
14059
14060	// Items: An object that contains a list of instances scoped by zone.
14061	Items map[string]InstancesScopedList `json:"items,omitempty"`
14062
14063	// Kind: [Output Only] Type of resource. Always
14064	// compute#instanceAggregatedList for aggregated lists of Instance
14065	// resources.
14066	Kind string `json:"kind,omitempty"`
14067
14068	// NextPageToken: [Output Only] This token allows you to get the next
14069	// page of results for list requests. If the number of results is larger
14070	// than maxResults, use the nextPageToken as a value for the query
14071	// parameter pageToken in the next list request. Subsequent list
14072	// requests will have their own nextPageToken to continue paging through
14073	// the results.
14074	NextPageToken string `json:"nextPageToken,omitempty"`
14075
14076	// SelfLink: [Output Only] Server-defined URL for this resource.
14077	SelfLink string `json:"selfLink,omitempty"`
14078
14079	// Warning: [Output Only] Informational warning message.
14080	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
14081
14082	// ServerResponse contains the HTTP response code and headers from the
14083	// server.
14084	googleapi.ServerResponse `json:"-"`
14085
14086	// ForceSendFields is a list of field names (e.g. "Id") to
14087	// unconditionally include in API requests. By default, fields with
14088	// empty values are omitted from API requests. However, any non-pointer,
14089	// non-interface field appearing in ForceSendFields will be sent to the
14090	// server regardless of whether the field is empty or not. This may be
14091	// used to include empty fields in Patch requests.
14092	ForceSendFields []string `json:"-"`
14093
14094	// NullFields is a list of field names (e.g. "Id") to include in API
14095	// requests with the JSON null value. By default, fields with empty
14096	// values are omitted from API requests. However, any field with an
14097	// empty value appearing in NullFields will be sent to the server as
14098	// null. It is an error if a field in this list has a non-empty value.
14099	// This may be used to include null fields in Patch requests.
14100	NullFields []string `json:"-"`
14101}
14102
14103func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
14104	type NoMethod InstanceAggregatedList
14105	raw := NoMethod(*s)
14106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14107}
14108
14109// InstanceAggregatedListWarning: [Output Only] Informational warning
14110// message.
14111type InstanceAggregatedListWarning struct {
14112	// Code: [Output Only] A warning code, if applicable. For example,
14113	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14114	// the response.
14115	//
14116	// Possible values:
14117	//   "CLEANUP_FAILED"
14118	//   "DEPRECATED_RESOURCE_USED"
14119	//   "DEPRECATED_TYPE_USED"
14120	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14121	//   "EXPERIMENTAL_TYPE_USED"
14122	//   "EXTERNAL_API_WARNING"
14123	//   "FIELD_VALUE_OVERRIDEN"
14124	//   "INJECTED_KERNELS_DEPRECATED"
14125	//   "MISSING_TYPE_DEPENDENCY"
14126	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14127	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14128	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14129	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14130	//   "NEXT_HOP_NOT_RUNNING"
14131	//   "NOT_CRITICAL_ERROR"
14132	//   "NO_RESULTS_ON_PAGE"
14133	//   "REQUIRED_TOS_AGREEMENT"
14134	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14135	//   "RESOURCE_NOT_DELETED"
14136	//   "SCHEMA_VALIDATION_IGNORED"
14137	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14138	//   "UNDECLARED_PROPERTIES"
14139	//   "UNREACHABLE"
14140	Code string `json:"code,omitempty"`
14141
14142	// Data: [Output Only] Metadata about this warning in key: value format.
14143	// For example:
14144	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14145	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
14146
14147	// Message: [Output Only] A human-readable description of the warning
14148	// code.
14149	Message string `json:"message,omitempty"`
14150
14151	// ForceSendFields is a list of field names (e.g. "Code") to
14152	// unconditionally include in API requests. By default, fields with
14153	// empty values are omitted from API requests. However, any non-pointer,
14154	// non-interface field appearing in ForceSendFields will be sent to the
14155	// server regardless of whether the field is empty or not. This may be
14156	// used to include empty fields in Patch requests.
14157	ForceSendFields []string `json:"-"`
14158
14159	// NullFields is a list of field names (e.g. "Code") to include in API
14160	// requests with the JSON null value. By default, fields with empty
14161	// values are omitted from API requests. However, any field with an
14162	// empty value appearing in NullFields will be sent to the server as
14163	// null. It is an error if a field in this list has a non-empty value.
14164	// This may be used to include null fields in Patch requests.
14165	NullFields []string `json:"-"`
14166}
14167
14168func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
14169	type NoMethod InstanceAggregatedListWarning
14170	raw := NoMethod(*s)
14171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14172}
14173
14174type InstanceAggregatedListWarningData struct {
14175	// Key: [Output Only] A key that provides more detail on the warning
14176	// being returned. For example, for warnings where there are no results
14177	// in a list request for a particular zone, this key might be scope and
14178	// the key value might be the zone name. Other examples might be a key
14179	// indicating a deprecated resource and a suggested replacement, or a
14180	// warning about invalid network settings (for example, if an instance
14181	// attempts to perform IP forwarding but is not enabled for IP
14182	// forwarding).
14183	Key string `json:"key,omitempty"`
14184
14185	// Value: [Output Only] A warning data value corresponding to the key.
14186	Value string `json:"value,omitempty"`
14187
14188	// ForceSendFields is a list of field names (e.g. "Key") to
14189	// unconditionally include in API requests. By default, fields with
14190	// empty values are omitted from API requests. However, any non-pointer,
14191	// non-interface field appearing in ForceSendFields will be sent to the
14192	// server regardless of whether the field is empty or not. This may be
14193	// used to include empty fields in Patch requests.
14194	ForceSendFields []string `json:"-"`
14195
14196	// NullFields is a list of field names (e.g. "Key") to include in API
14197	// requests with the JSON null value. By default, fields with empty
14198	// values are omitted from API requests. However, any field with an
14199	// empty value appearing in NullFields will be sent to the server as
14200	// null. It is an error if a field in this list has a non-empty value.
14201	// This may be used to include null fields in Patch requests.
14202	NullFields []string `json:"-"`
14203}
14204
14205func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14206	type NoMethod InstanceAggregatedListWarningData
14207	raw := NoMethod(*s)
14208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14209}
14210
14211// InstanceGroup: Represents an Instance Group resource.
14212//
14213// Instance Groups can be used to configure a target for load
14214// balancing.
14215//
14216// Instance groups can either be managed or unmanaged.
14217//
14218// To create  managed instance groups, use the instanceGroupManager or
14219// regionInstanceGroupManager resource instead.
14220//
14221// Use zonal unmanaged instance groups if you need to apply load
14222// balancing to groups of heterogeneous instances or if you need to
14223// manage the instances yourself. You cannot create regional unmanaged
14224// instance groups.
14225//
14226// For more information, read Instance groups.
14227//
14228// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
14229// {$api_version}.regionInstanceGroups ==)
14230type InstanceGroup struct {
14231	// CreationTimestamp: [Output Only] The creation timestamp for this
14232	// instance group in RFC3339 text format.
14233	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14234
14235	// Description: An optional description of this resource. Provide this
14236	// property when you create the resource.
14237	Description string `json:"description,omitempty"`
14238
14239	// Fingerprint: [Output Only] The fingerprint of the named ports. The
14240	// system uses this fingerprint to detect conflicts when multiple users
14241	// change the named ports concurrently.
14242	Fingerprint string `json:"fingerprint,omitempty"`
14243
14244	// Id: [Output Only] A unique identifier for this instance group,
14245	// generated by the server.
14246	Id uint64 `json:"id,omitempty,string"`
14247
14248	// Kind: [Output Only] The resource type, which is always
14249	// compute#instanceGroup for instance groups.
14250	Kind string `json:"kind,omitempty"`
14251
14252	// Name: The name of the instance group. The name must be 1-63
14253	// characters long, and comply with RFC1035.
14254	Name string `json:"name,omitempty"`
14255
14256	// NamedPorts: Assigns a name to a port number. For example: {name:
14257	// "http", port: 80}
14258	//
14259	// This allows the system to reference ports by the assigned name
14260	// instead of a port number. Named ports can also contain multiple
14261	// ports. For example: [{name: "http", port: 80},{name: "http", port:
14262	// 8080}]
14263	//
14264	// Named ports apply to all instances in this instance group.
14265	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
14266
14267	// Network: [Output Only] The URL of the network to which all instances
14268	// in the instance group belong. If your instance has multiple network
14269	// interfaces, then the network and subnetwork fields only refer to the
14270	// network and subnet used by your primary interface (nic0).
14271	Network string `json:"network,omitempty"`
14272
14273	// Region: [Output Only] The URL of the region where the instance group
14274	// is located (for regional resources).
14275	Region string `json:"region,omitempty"`
14276
14277	// SelfLink: [Output Only] The URL for this instance group. The server
14278	// generates this URL.
14279	SelfLink string `json:"selfLink,omitempty"`
14280
14281	// Size: [Output Only] The total number of instances in the instance
14282	// group.
14283	Size int64 `json:"size,omitempty"`
14284
14285	// Subnetwork: [Output Only] The URL of the subnetwork to which all
14286	// instances in the instance group belong. If your instance has multiple
14287	// network interfaces, then the network and subnetwork fields only refer
14288	// to the network and subnet used by your primary interface (nic0).
14289	Subnetwork string `json:"subnetwork,omitempty"`
14290
14291	// Zone: [Output Only] The URL of the zone where the instance group is
14292	// located (for zonal resources).
14293	Zone string `json:"zone,omitempty"`
14294
14295	// ServerResponse contains the HTTP response code and headers from the
14296	// server.
14297	googleapi.ServerResponse `json:"-"`
14298
14299	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
14300	// to unconditionally include in API requests. By default, fields with
14301	// empty values are omitted from API requests. However, any non-pointer,
14302	// non-interface field appearing in ForceSendFields will be sent to the
14303	// server regardless of whether the field is empty or not. This may be
14304	// used to include empty fields in Patch requests.
14305	ForceSendFields []string `json:"-"`
14306
14307	// NullFields is a list of field names (e.g. "CreationTimestamp") to
14308	// include in API requests with the JSON null value. By default, fields
14309	// with empty values are omitted from API requests. However, any field
14310	// with an empty value appearing in NullFields will be sent to the
14311	// server as null. It is an error if a field in this list has a
14312	// non-empty value. This may be used to include null fields in Patch
14313	// requests.
14314	NullFields []string `json:"-"`
14315}
14316
14317func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
14318	type NoMethod InstanceGroup
14319	raw := NoMethod(*s)
14320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14321}
14322
14323type InstanceGroupAggregatedList struct {
14324	// Id: [Output Only] Unique identifier for the resource; defined by the
14325	// server.
14326	Id string `json:"id,omitempty"`
14327
14328	// Items: A list of InstanceGroupsScopedList resources.
14329	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
14330
14331	// Kind: [Output Only] The resource type, which is always
14332	// compute#instanceGroupAggregatedList for aggregated lists of instance
14333	// groups.
14334	Kind string `json:"kind,omitempty"`
14335
14336	// NextPageToken: [Output Only] This token allows you to get the next
14337	// page of results for list requests. If the number of results is larger
14338	// than maxResults, use the nextPageToken as a value for the query
14339	// parameter pageToken in the next list request. Subsequent list
14340	// requests will have their own nextPageToken to continue paging through
14341	// the results.
14342	NextPageToken string `json:"nextPageToken,omitempty"`
14343
14344	// SelfLink: [Output Only] Server-defined URL for this resource.
14345	SelfLink string `json:"selfLink,omitempty"`
14346
14347	// Warning: [Output Only] Informational warning message.
14348	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
14349
14350	// ServerResponse contains the HTTP response code and headers from the
14351	// server.
14352	googleapi.ServerResponse `json:"-"`
14353
14354	// ForceSendFields is a list of field names (e.g. "Id") to
14355	// unconditionally include in API requests. By default, fields with
14356	// empty values are omitted from API requests. However, any non-pointer,
14357	// non-interface field appearing in ForceSendFields will be sent to the
14358	// server regardless of whether the field is empty or not. This may be
14359	// used to include empty fields in Patch requests.
14360	ForceSendFields []string `json:"-"`
14361
14362	// NullFields is a list of field names (e.g. "Id") to include in API
14363	// requests with the JSON null value. By default, fields with empty
14364	// values are omitted from API requests. However, any field with an
14365	// empty value appearing in NullFields will be sent to the server as
14366	// null. It is an error if a field in this list has a non-empty value.
14367	// This may be used to include null fields in Patch requests.
14368	NullFields []string `json:"-"`
14369}
14370
14371func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
14372	type NoMethod InstanceGroupAggregatedList
14373	raw := NoMethod(*s)
14374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14375}
14376
14377// InstanceGroupAggregatedListWarning: [Output Only] Informational
14378// warning message.
14379type InstanceGroupAggregatedListWarning struct {
14380	// Code: [Output Only] A warning code, if applicable. For example,
14381	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14382	// the response.
14383	//
14384	// Possible values:
14385	//   "CLEANUP_FAILED"
14386	//   "DEPRECATED_RESOURCE_USED"
14387	//   "DEPRECATED_TYPE_USED"
14388	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14389	//   "EXPERIMENTAL_TYPE_USED"
14390	//   "EXTERNAL_API_WARNING"
14391	//   "FIELD_VALUE_OVERRIDEN"
14392	//   "INJECTED_KERNELS_DEPRECATED"
14393	//   "MISSING_TYPE_DEPENDENCY"
14394	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14395	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14396	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14397	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14398	//   "NEXT_HOP_NOT_RUNNING"
14399	//   "NOT_CRITICAL_ERROR"
14400	//   "NO_RESULTS_ON_PAGE"
14401	//   "REQUIRED_TOS_AGREEMENT"
14402	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14403	//   "RESOURCE_NOT_DELETED"
14404	//   "SCHEMA_VALIDATION_IGNORED"
14405	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14406	//   "UNDECLARED_PROPERTIES"
14407	//   "UNREACHABLE"
14408	Code string `json:"code,omitempty"`
14409
14410	// Data: [Output Only] Metadata about this warning in key: value format.
14411	// For example:
14412	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14413	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
14414
14415	// Message: [Output Only] A human-readable description of the warning
14416	// code.
14417	Message string `json:"message,omitempty"`
14418
14419	// ForceSendFields is a list of field names (e.g. "Code") to
14420	// unconditionally include in API requests. By default, fields with
14421	// empty values are omitted from API requests. However, any non-pointer,
14422	// non-interface field appearing in ForceSendFields will be sent to the
14423	// server regardless of whether the field is empty or not. This may be
14424	// used to include empty fields in Patch requests.
14425	ForceSendFields []string `json:"-"`
14426
14427	// NullFields is a list of field names (e.g. "Code") to include in API
14428	// requests with the JSON null value. By default, fields with empty
14429	// values are omitted from API requests. However, any field with an
14430	// empty value appearing in NullFields will be sent to the server as
14431	// null. It is an error if a field in this list has a non-empty value.
14432	// This may be used to include null fields in Patch requests.
14433	NullFields []string `json:"-"`
14434}
14435
14436func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
14437	type NoMethod InstanceGroupAggregatedListWarning
14438	raw := NoMethod(*s)
14439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14440}
14441
14442type InstanceGroupAggregatedListWarningData struct {
14443	// Key: [Output Only] A key that provides more detail on the warning
14444	// being returned. For example, for warnings where there are no results
14445	// in a list request for a particular zone, this key might be scope and
14446	// the key value might be the zone name. Other examples might be a key
14447	// indicating a deprecated resource and a suggested replacement, or a
14448	// warning about invalid network settings (for example, if an instance
14449	// attempts to perform IP forwarding but is not enabled for IP
14450	// forwarding).
14451	Key string `json:"key,omitempty"`
14452
14453	// Value: [Output Only] A warning data value corresponding to the key.
14454	Value string `json:"value,omitempty"`
14455
14456	// ForceSendFields is a list of field names (e.g. "Key") to
14457	// unconditionally include in API requests. By default, fields with
14458	// empty values are omitted from API requests. However, any non-pointer,
14459	// non-interface field appearing in ForceSendFields will be sent to the
14460	// server regardless of whether the field is empty or not. This may be
14461	// used to include empty fields in Patch requests.
14462	ForceSendFields []string `json:"-"`
14463
14464	// NullFields is a list of field names (e.g. "Key") to include in API
14465	// requests with the JSON null value. By default, fields with empty
14466	// values are omitted from API requests. However, any field with an
14467	// empty value appearing in NullFields will be sent to the server as
14468	// null. It is an error if a field in this list has a non-empty value.
14469	// This may be used to include null fields in Patch requests.
14470	NullFields []string `json:"-"`
14471}
14472
14473func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14474	type NoMethod InstanceGroupAggregatedListWarningData
14475	raw := NoMethod(*s)
14476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14477}
14478
14479// InstanceGroupList: A list of InstanceGroup resources.
14480type InstanceGroupList struct {
14481	// Id: [Output Only] Unique identifier for the resource; defined by the
14482	// server.
14483	Id string `json:"id,omitempty"`
14484
14485	// Items: A list of InstanceGroup resources.
14486	Items []*InstanceGroup `json:"items,omitempty"`
14487
14488	// Kind: [Output Only] The resource type, which is always
14489	// compute#instanceGroupList for instance group lists.
14490	Kind string `json:"kind,omitempty"`
14491
14492	// NextPageToken: [Output Only] This token allows you to get the next
14493	// page of results for list requests. If the number of results is larger
14494	// than maxResults, use the nextPageToken as a value for the query
14495	// parameter pageToken in the next list request. Subsequent list
14496	// requests will have their own nextPageToken to continue paging through
14497	// the results.
14498	NextPageToken string `json:"nextPageToken,omitempty"`
14499
14500	// SelfLink: [Output Only] Server-defined URL for this resource.
14501	SelfLink string `json:"selfLink,omitempty"`
14502
14503	// Warning: [Output Only] Informational warning message.
14504	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
14505
14506	// ServerResponse contains the HTTP response code and headers from the
14507	// server.
14508	googleapi.ServerResponse `json:"-"`
14509
14510	// ForceSendFields is a list of field names (e.g. "Id") to
14511	// unconditionally include in API requests. By default, fields with
14512	// empty values are omitted from API requests. However, any non-pointer,
14513	// non-interface field appearing in ForceSendFields will be sent to the
14514	// server regardless of whether the field is empty or not. This may be
14515	// used to include empty fields in Patch requests.
14516	ForceSendFields []string `json:"-"`
14517
14518	// NullFields is a list of field names (e.g. "Id") to include in API
14519	// requests with the JSON null value. By default, fields with empty
14520	// values are omitted from API requests. However, any field with an
14521	// empty value appearing in NullFields will be sent to the server as
14522	// null. It is an error if a field in this list has a non-empty value.
14523	// This may be used to include null fields in Patch requests.
14524	NullFields []string `json:"-"`
14525}
14526
14527func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
14528	type NoMethod InstanceGroupList
14529	raw := NoMethod(*s)
14530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14531}
14532
14533// InstanceGroupListWarning: [Output Only] Informational warning
14534// message.
14535type InstanceGroupListWarning struct {
14536	// Code: [Output Only] A warning code, if applicable. For example,
14537	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14538	// the response.
14539	//
14540	// Possible values:
14541	//   "CLEANUP_FAILED"
14542	//   "DEPRECATED_RESOURCE_USED"
14543	//   "DEPRECATED_TYPE_USED"
14544	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14545	//   "EXPERIMENTAL_TYPE_USED"
14546	//   "EXTERNAL_API_WARNING"
14547	//   "FIELD_VALUE_OVERRIDEN"
14548	//   "INJECTED_KERNELS_DEPRECATED"
14549	//   "MISSING_TYPE_DEPENDENCY"
14550	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14551	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14552	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14553	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14554	//   "NEXT_HOP_NOT_RUNNING"
14555	//   "NOT_CRITICAL_ERROR"
14556	//   "NO_RESULTS_ON_PAGE"
14557	//   "REQUIRED_TOS_AGREEMENT"
14558	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14559	//   "RESOURCE_NOT_DELETED"
14560	//   "SCHEMA_VALIDATION_IGNORED"
14561	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14562	//   "UNDECLARED_PROPERTIES"
14563	//   "UNREACHABLE"
14564	Code string `json:"code,omitempty"`
14565
14566	// Data: [Output Only] Metadata about this warning in key: value format.
14567	// For example:
14568	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14569	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
14570
14571	// Message: [Output Only] A human-readable description of the warning
14572	// code.
14573	Message string `json:"message,omitempty"`
14574
14575	// ForceSendFields is a list of field names (e.g. "Code") to
14576	// unconditionally include in API requests. By default, fields with
14577	// empty values are omitted from API requests. However, any non-pointer,
14578	// non-interface field appearing in ForceSendFields will be sent to the
14579	// server regardless of whether the field is empty or not. This may be
14580	// used to include empty fields in Patch requests.
14581	ForceSendFields []string `json:"-"`
14582
14583	// NullFields is a list of field names (e.g. "Code") to include in API
14584	// requests with the JSON null value. By default, fields with empty
14585	// values are omitted from API requests. However, any field with an
14586	// empty value appearing in NullFields will be sent to the server as
14587	// null. It is an error if a field in this list has a non-empty value.
14588	// This may be used to include null fields in Patch requests.
14589	NullFields []string `json:"-"`
14590}
14591
14592func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
14593	type NoMethod InstanceGroupListWarning
14594	raw := NoMethod(*s)
14595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14596}
14597
14598type InstanceGroupListWarningData struct {
14599	// Key: [Output Only] A key that provides more detail on the warning
14600	// being returned. For example, for warnings where there are no results
14601	// in a list request for a particular zone, this key might be scope and
14602	// the key value might be the zone name. Other examples might be a key
14603	// indicating a deprecated resource and a suggested replacement, or a
14604	// warning about invalid network settings (for example, if an instance
14605	// attempts to perform IP forwarding but is not enabled for IP
14606	// forwarding).
14607	Key string `json:"key,omitempty"`
14608
14609	// Value: [Output Only] A warning data value corresponding to the key.
14610	Value string `json:"value,omitempty"`
14611
14612	// ForceSendFields is a list of field names (e.g. "Key") to
14613	// unconditionally include in API requests. By default, fields with
14614	// empty values are omitted from API requests. However, any non-pointer,
14615	// non-interface field appearing in ForceSendFields will be sent to the
14616	// server regardless of whether the field is empty or not. This may be
14617	// used to include empty fields in Patch requests.
14618	ForceSendFields []string `json:"-"`
14619
14620	// NullFields is a list of field names (e.g. "Key") to include in API
14621	// requests with the JSON null value. By default, fields with empty
14622	// values are omitted from API requests. However, any field with an
14623	// empty value appearing in NullFields will be sent to the server as
14624	// null. It is an error if a field in this list has a non-empty value.
14625	// This may be used to include null fields in Patch requests.
14626	NullFields []string `json:"-"`
14627}
14628
14629func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
14630	type NoMethod InstanceGroupListWarningData
14631	raw := NoMethod(*s)
14632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14633}
14634
14635// InstanceGroupManager: Represents a Managed Instance Group
14636// resource.
14637//
14638// An instance group is a collection of VM instances that you can manage
14639// as a single entity. For more information, read Instance groups.
14640//
14641// For zonal Managed Instance Group, use the instanceGroupManagers
14642// resource.
14643//
14644// For regional Managed Instance Group, use the
14645// regionInstanceGroupManagers resource. (== resource_for
14646// {$api_version}.instanceGroupManagers ==) (== resource_for
14647// {$api_version}.regionInstanceGroupManagers ==)
14648type InstanceGroupManager struct {
14649	// AutoHealingPolicies: The autohealing policy for this managed instance
14650	// group. You can specify only one value.
14651	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
14652
14653	// BaseInstanceName: The base instance name to use for instances in this
14654	// group. The value must be 1-58 characters long. Instances are named by
14655	// appending a hyphen and a random four-character string to the base
14656	// instance name. The base instance name must comply with RFC1035.
14657	BaseInstanceName string `json:"baseInstanceName,omitempty"`
14658
14659	// CreationTimestamp: [Output Only] The creation timestamp for this
14660	// managed instance group in RFC3339 text format.
14661	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14662
14663	// CurrentActions: [Output Only] The list of instance actions and the
14664	// number of instances in this managed instance group that are scheduled
14665	// for each of those actions.
14666	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
14667
14668	// Description: An optional description of this resource. Provide this
14669	// property when you create the resource.
14670	Description string `json:"description,omitempty"`
14671
14672	// DistributionPolicy: Policy specifying intended distribution of
14673	// instances in regional managed instance group.
14674	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
14675
14676	// FailoverAction: The action to perform in case of zone failure. Only
14677	// one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
14678	//
14679	// Possible values:
14680	//   "NO_FAILOVER"
14681	//   "UNKNOWN"
14682	FailoverAction string `json:"failoverAction,omitempty"`
14683
14684	// Fingerprint: Fingerprint of this resource. This field may be used in
14685	// optimistic locking. It will be ignored when inserting an
14686	// InstanceGroupManager. An up-to-date fingerprint must be provided in
14687	// order to update the InstanceGroupManager, otherwise the request will
14688	// fail with error 412 conditionNotMet.
14689	//
14690	// To see the latest fingerprint, make a get() request to retrieve an
14691	// InstanceGroupManager.
14692	Fingerprint string `json:"fingerprint,omitempty"`
14693
14694	// Id: [Output Only] A unique identifier for this resource type. The
14695	// server generates this identifier.
14696	Id uint64 `json:"id,omitempty,string"`
14697
14698	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
14699	InstanceGroup string `json:"instanceGroup,omitempty"`
14700
14701	// InstanceTemplate: The URL of the instance template that is specified
14702	// for this managed instance group. The group uses this template to
14703	// create all new instances in the managed instance group.
14704	InstanceTemplate string `json:"instanceTemplate,omitempty"`
14705
14706	// Kind: [Output Only] The resource type, which is always
14707	// compute#instanceGroupManager for managed instance groups.
14708	Kind string `json:"kind,omitempty"`
14709
14710	// Name: The name of the managed instance group. The name must be 1-63
14711	// characters long, and comply with RFC1035.
14712	Name string `json:"name,omitempty"`
14713
14714	// NamedPorts: Named ports configured for the Instance Groups
14715	// complementary to this Instance Group Manager.
14716	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
14717
14718	// PendingActions: [Deprecated] This field is deprecated and will be
14719	// removed. Prefer using the status field instead. Please contact
14720	// cloud-updater-feedback@google.com to leave feedback if your workload
14721	// relies on this field. [Output Only] The list of instance actions and
14722	// the number of instances in this managed instance group that are
14723	// pending for each of those actions.
14724	PendingActions *InstanceGroupManagerPendingActionsSummary `json:"pendingActions,omitempty"`
14725
14726	// Region: [Output Only] The URL of the region where the managed
14727	// instance group resides (for regional resources).
14728	Region string `json:"region,omitempty"`
14729
14730	// SelfLink: [Output Only] The URL for this managed instance group. The
14731	// server defines this URL.
14732	SelfLink string `json:"selfLink,omitempty"`
14733
14734	// ServiceAccount: The service account to be used as credentials for all
14735	// operations performed by the managed instance group on instances. The
14736	// service accounts needs all permissions required to create and delete
14737	// instances. By default, the service account
14738	// {projectNumber}@cloudservices.gserviceaccount.com is used.
14739	ServiceAccount string `json:"serviceAccount,omitempty"`
14740
14741	// StatefulPolicy: Stateful configuration for this Instanced Group
14742	// Manager
14743	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
14744
14745	// Status: [Output Only] The status of this managed instance group.
14746	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
14747
14748	// TargetPools: The URLs for all TargetPool resources to which instances
14749	// in the instanceGroup field are added. The target pools automatically
14750	// apply to all of the instances in the managed instance group.
14751	TargetPools []string `json:"targetPools,omitempty"`
14752
14753	// TargetSize: The target number of running instances for this managed
14754	// instance group. You can reduce this number by using the
14755	// instanceGroupManager deleteInstances or abandonInstances methods.
14756	// Resizing the group also changes this number.
14757	TargetSize int64 `json:"targetSize,omitempty"`
14758
14759	// UpdatePolicy: The update policy for this managed instance group.
14760	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
14761
14762	// Versions: Specifies the instance templates used by this managed
14763	// instance group to create instances.
14764	//
14765	// Each version is defined by an instanceTemplate and a name. Every
14766	// version can appear at most once per instance group. This field
14767	// overrides the top-level instanceTemplate field. Read more about the
14768	// relationships between these fields. Exactly one version must leave
14769	// the targetSize field unset. That version will be applied to all
14770	// remaining instances. For more information, read about canary updates.
14771	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
14772
14773	// Zone: [Output Only] The URL of the zone where the managed instance
14774	// group is located (for zonal resources).
14775	Zone string `json:"zone,omitempty"`
14776
14777	// ServerResponse contains the HTTP response code and headers from the
14778	// server.
14779	googleapi.ServerResponse `json:"-"`
14780
14781	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
14782	// to unconditionally include in API requests. By default, fields with
14783	// empty values are omitted from API requests. However, any non-pointer,
14784	// non-interface field appearing in ForceSendFields will be sent to the
14785	// server regardless of whether the field is empty or not. This may be
14786	// used to include empty fields in Patch requests.
14787	ForceSendFields []string `json:"-"`
14788
14789	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
14790	// include in API requests with the JSON null value. By default, fields
14791	// with empty values are omitted from API requests. However, any field
14792	// with an empty value appearing in NullFields will be sent to the
14793	// server as null. It is an error if a field in this list has a
14794	// non-empty value. This may be used to include null fields in Patch
14795	// requests.
14796	NullFields []string `json:"-"`
14797}
14798
14799func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
14800	type NoMethod InstanceGroupManager
14801	raw := NoMethod(*s)
14802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14803}
14804
14805type InstanceGroupManagerActionsSummary struct {
14806	// Abandoning: [Output Only] The total number of instances in the
14807	// managed instance group that are scheduled to be abandoned. Abandoning
14808	// an instance removes it from the managed instance group without
14809	// deleting it.
14810	Abandoning int64 `json:"abandoning,omitempty"`
14811
14812	// Creating: [Output Only] The number of instances in the managed
14813	// instance group that are scheduled to be created or are currently
14814	// being created. If the group fails to create any of these instances,
14815	// it tries again until it creates the instance successfully.
14816	//
14817	// If you have disabled creation retries, this field will not be
14818	// populated; instead, the creatingWithoutRetries field will be
14819	// populated.
14820	Creating int64 `json:"creating,omitempty"`
14821
14822	// CreatingWithoutRetries: [Output Only] The number of instances that
14823	// the managed instance group will attempt to create. The group attempts
14824	// to create each instance only once. If the group fails to create any
14825	// of these instances, it decreases the group's targetSize value
14826	// accordingly.
14827	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
14828
14829	// Deleting: [Output Only] The number of instances in the managed
14830	// instance group that are scheduled to be deleted or are currently
14831	// being deleted.
14832	Deleting int64 `json:"deleting,omitempty"`
14833
14834	// None: [Output Only] The number of instances in the managed instance
14835	// group that are running and have no scheduled actions.
14836	None int64 `json:"none,omitempty"`
14837
14838	// Recreating: [Output Only] The number of instances in the managed
14839	// instance group that are scheduled to be recreated or are currently
14840	// being being recreated. Recreating an instance deletes the existing
14841	// root persistent disk and creates a new disk from the image that is
14842	// defined in the instance template.
14843	Recreating int64 `json:"recreating,omitempty"`
14844
14845	// Refreshing: [Output Only] The number of instances in the managed
14846	// instance group that are being reconfigured with properties that do
14847	// not require a restart or a recreate action. For example, setting or
14848	// removing target pools for the instance.
14849	Refreshing int64 `json:"refreshing,omitempty"`
14850
14851	// Restarting: [Output Only] The number of instances in the managed
14852	// instance group that are scheduled to be restarted or are currently
14853	// being restarted.
14854	Restarting int64 `json:"restarting,omitempty"`
14855
14856	// Verifying: [Output Only] The number of instances in the managed
14857	// instance group that are being verified. See the
14858	// managedInstances[].currentAction property in the listManagedInstances
14859	// method documentation.
14860	Verifying int64 `json:"verifying,omitempty"`
14861
14862	// ForceSendFields is a list of field names (e.g. "Abandoning") to
14863	// unconditionally include in API requests. By default, fields with
14864	// empty values are omitted from API requests. However, any non-pointer,
14865	// non-interface field appearing in ForceSendFields will be sent to the
14866	// server regardless of whether the field is empty or not. This may be
14867	// used to include empty fields in Patch requests.
14868	ForceSendFields []string `json:"-"`
14869
14870	// NullFields is a list of field names (e.g. "Abandoning") to include in
14871	// API requests with the JSON null value. By default, fields with empty
14872	// values are omitted from API requests. However, any field with an
14873	// empty value appearing in NullFields will be sent to the server as
14874	// null. It is an error if a field in this list has a non-empty value.
14875	// This may be used to include null fields in Patch requests.
14876	NullFields []string `json:"-"`
14877}
14878
14879func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
14880	type NoMethod InstanceGroupManagerActionsSummary
14881	raw := NoMethod(*s)
14882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14883}
14884
14885type InstanceGroupManagerAggregatedList struct {
14886	// Id: [Output Only] Unique identifier for the resource; defined by the
14887	// server.
14888	Id string `json:"id,omitempty"`
14889
14890	// Items: A list of InstanceGroupManagersScopedList resources.
14891	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
14892
14893	// Kind: [Output Only] The resource type, which is always
14894	// compute#instanceGroupManagerAggregatedList for an aggregated list of
14895	// managed instance groups.
14896	Kind string `json:"kind,omitempty"`
14897
14898	// NextPageToken: [Output Only] This token allows you to get the next
14899	// page of results for list requests. If the number of results is larger
14900	// than maxResults, use the nextPageToken as a value for the query
14901	// parameter pageToken in the next list request. Subsequent list
14902	// requests will have their own nextPageToken to continue paging through
14903	// the results.
14904	NextPageToken string `json:"nextPageToken,omitempty"`
14905
14906	// SelfLink: [Output Only] Server-defined URL for this resource.
14907	SelfLink string `json:"selfLink,omitempty"`
14908
14909	// Warning: [Output Only] Informational warning message.
14910	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
14911
14912	// ServerResponse contains the HTTP response code and headers from the
14913	// server.
14914	googleapi.ServerResponse `json:"-"`
14915
14916	// ForceSendFields is a list of field names (e.g. "Id") to
14917	// unconditionally include in API requests. By default, fields with
14918	// empty values are omitted from API requests. However, any non-pointer,
14919	// non-interface field appearing in ForceSendFields will be sent to the
14920	// server regardless of whether the field is empty or not. This may be
14921	// used to include empty fields in Patch requests.
14922	ForceSendFields []string `json:"-"`
14923
14924	// NullFields is a list of field names (e.g. "Id") to include in API
14925	// requests with the JSON null value. By default, fields with empty
14926	// values are omitted from API requests. However, any field with an
14927	// empty value appearing in NullFields will be sent to the server as
14928	// null. It is an error if a field in this list has a non-empty value.
14929	// This may be used to include null fields in Patch requests.
14930	NullFields []string `json:"-"`
14931}
14932
14933func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
14934	type NoMethod InstanceGroupManagerAggregatedList
14935	raw := NoMethod(*s)
14936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14937}
14938
14939// InstanceGroupManagerAggregatedListWarning: [Output Only]
14940// Informational warning message.
14941type InstanceGroupManagerAggregatedListWarning struct {
14942	// Code: [Output Only] A warning code, if applicable. For example,
14943	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14944	// the response.
14945	//
14946	// Possible values:
14947	//   "CLEANUP_FAILED"
14948	//   "DEPRECATED_RESOURCE_USED"
14949	//   "DEPRECATED_TYPE_USED"
14950	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14951	//   "EXPERIMENTAL_TYPE_USED"
14952	//   "EXTERNAL_API_WARNING"
14953	//   "FIELD_VALUE_OVERRIDEN"
14954	//   "INJECTED_KERNELS_DEPRECATED"
14955	//   "MISSING_TYPE_DEPENDENCY"
14956	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14957	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14958	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14959	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14960	//   "NEXT_HOP_NOT_RUNNING"
14961	//   "NOT_CRITICAL_ERROR"
14962	//   "NO_RESULTS_ON_PAGE"
14963	//   "REQUIRED_TOS_AGREEMENT"
14964	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14965	//   "RESOURCE_NOT_DELETED"
14966	//   "SCHEMA_VALIDATION_IGNORED"
14967	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14968	//   "UNDECLARED_PROPERTIES"
14969	//   "UNREACHABLE"
14970	Code string `json:"code,omitempty"`
14971
14972	// Data: [Output Only] Metadata about this warning in key: value format.
14973	// For example:
14974	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14975	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
14976
14977	// Message: [Output Only] A human-readable description of the warning
14978	// code.
14979	Message string `json:"message,omitempty"`
14980
14981	// ForceSendFields is a list of field names (e.g. "Code") to
14982	// unconditionally include in API requests. By default, fields with
14983	// empty values are omitted from API requests. However, any non-pointer,
14984	// non-interface field appearing in ForceSendFields will be sent to the
14985	// server regardless of whether the field is empty or not. This may be
14986	// used to include empty fields in Patch requests.
14987	ForceSendFields []string `json:"-"`
14988
14989	// NullFields is a list of field names (e.g. "Code") to include in API
14990	// requests with the JSON null value. By default, fields with empty
14991	// values are omitted from API requests. However, any field with an
14992	// empty value appearing in NullFields will be sent to the server as
14993	// null. It is an error if a field in this list has a non-empty value.
14994	// This may be used to include null fields in Patch requests.
14995	NullFields []string `json:"-"`
14996}
14997
14998func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
14999	type NoMethod InstanceGroupManagerAggregatedListWarning
15000	raw := NoMethod(*s)
15001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15002}
15003
15004type InstanceGroupManagerAggregatedListWarningData struct {
15005	// Key: [Output Only] A key that provides more detail on the warning
15006	// being returned. For example, for warnings where there are no results
15007	// in a list request for a particular zone, this key might be scope and
15008	// the key value might be the zone name. Other examples might be a key
15009	// indicating a deprecated resource and a suggested replacement, or a
15010	// warning about invalid network settings (for example, if an instance
15011	// attempts to perform IP forwarding but is not enabled for IP
15012	// forwarding).
15013	Key string `json:"key,omitempty"`
15014
15015	// Value: [Output Only] A warning data value corresponding to the key.
15016	Value string `json:"value,omitempty"`
15017
15018	// ForceSendFields is a list of field names (e.g. "Key") to
15019	// unconditionally include in API requests. By default, fields with
15020	// empty values are omitted from API requests. However, any non-pointer,
15021	// non-interface field appearing in ForceSendFields will be sent to the
15022	// server regardless of whether the field is empty or not. This may be
15023	// used to include empty fields in Patch requests.
15024	ForceSendFields []string `json:"-"`
15025
15026	// NullFields is a list of field names (e.g. "Key") to include in API
15027	// requests with the JSON null value. By default, fields with empty
15028	// values are omitted from API requests. However, any field with an
15029	// empty value appearing in NullFields will be sent to the server as
15030	// null. It is an error if a field in this list has a non-empty value.
15031	// This may be used to include null fields in Patch requests.
15032	NullFields []string `json:"-"`
15033}
15034
15035func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15036	type NoMethod InstanceGroupManagerAggregatedListWarningData
15037	raw := NoMethod(*s)
15038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15039}
15040
15041type InstanceGroupManagerAutoHealingPolicy struct {
15042	// HealthCheck: The URL for the health check that signals autohealing.
15043	HealthCheck string `json:"healthCheck,omitempty"`
15044
15045	// InitialDelaySec: The number of seconds that the managed instance
15046	// group waits before it applies autohealing policies to new instances
15047	// or recently recreated instances. This initial delay allows instances
15048	// to initialize and run their startup scripts before the instance group
15049	// determines that they are UNHEALTHY. This prevents the managed
15050	// instance group from recreating its instances prematurely. This value
15051	// must be from range [0, 3600].
15052	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
15053
15054	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
15055	// unconditionally include in API requests. By default, fields with
15056	// empty values are omitted from API requests. However, any non-pointer,
15057	// non-interface field appearing in ForceSendFields will be sent to the
15058	// server regardless of whether the field is empty or not. This may be
15059	// used to include empty fields in Patch requests.
15060	ForceSendFields []string `json:"-"`
15061
15062	// NullFields is a list of field names (e.g. "HealthCheck") to include
15063	// in API requests with the JSON null value. By default, fields with
15064	// empty values are omitted from API requests. However, any field with
15065	// an empty value appearing in NullFields will be sent to the server as
15066	// null. It is an error if a field in this list has a non-empty value.
15067	// This may be used to include null fields in Patch requests.
15068	NullFields []string `json:"-"`
15069}
15070
15071func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
15072	type NoMethod InstanceGroupManagerAutoHealingPolicy
15073	raw := NoMethod(*s)
15074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15075}
15076
15077// InstanceGroupManagerList: [Output Only] A list of managed instance
15078// groups.
15079type InstanceGroupManagerList struct {
15080	// Id: [Output Only] Unique identifier for the resource; defined by the
15081	// server.
15082	Id string `json:"id,omitempty"`
15083
15084	// Items: A list of InstanceGroupManager resources.
15085	Items []*InstanceGroupManager `json:"items,omitempty"`
15086
15087	// Kind: [Output Only] The resource type, which is always
15088	// compute#instanceGroupManagerList for a list of managed instance
15089	// groups.
15090	Kind string `json:"kind,omitempty"`
15091
15092	// NextPageToken: [Output Only] This token allows you to get the next
15093	// page of results for list requests. If the number of results is larger
15094	// than maxResults, use the nextPageToken as a value for the query
15095	// parameter pageToken in the next list request. Subsequent list
15096	// requests will have their own nextPageToken to continue paging through
15097	// the results.
15098	NextPageToken string `json:"nextPageToken,omitempty"`
15099
15100	// SelfLink: [Output Only] Server-defined URL for this resource.
15101	SelfLink string `json:"selfLink,omitempty"`
15102
15103	// Warning: [Output Only] Informational warning message.
15104	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
15105
15106	// ServerResponse contains the HTTP response code and headers from the
15107	// server.
15108	googleapi.ServerResponse `json:"-"`
15109
15110	// ForceSendFields is a list of field names (e.g. "Id") to
15111	// unconditionally include in API requests. By default, fields with
15112	// empty values are omitted from API requests. However, any non-pointer,
15113	// non-interface field appearing in ForceSendFields will be sent to the
15114	// server regardless of whether the field is empty or not. This may be
15115	// used to include empty fields in Patch requests.
15116	ForceSendFields []string `json:"-"`
15117
15118	// NullFields is a list of field names (e.g. "Id") to include in API
15119	// requests with the JSON null value. By default, fields with empty
15120	// values are omitted from API requests. However, any field with an
15121	// empty value appearing in NullFields will be sent to the server as
15122	// null. It is an error if a field in this list has a non-empty value.
15123	// This may be used to include null fields in Patch requests.
15124	NullFields []string `json:"-"`
15125}
15126
15127func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
15128	type NoMethod InstanceGroupManagerList
15129	raw := NoMethod(*s)
15130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15131}
15132
15133// InstanceGroupManagerListWarning: [Output Only] Informational warning
15134// message.
15135type InstanceGroupManagerListWarning struct {
15136	// Code: [Output Only] A warning code, if applicable. For example,
15137	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15138	// the response.
15139	//
15140	// Possible values:
15141	//   "CLEANUP_FAILED"
15142	//   "DEPRECATED_RESOURCE_USED"
15143	//   "DEPRECATED_TYPE_USED"
15144	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15145	//   "EXPERIMENTAL_TYPE_USED"
15146	//   "EXTERNAL_API_WARNING"
15147	//   "FIELD_VALUE_OVERRIDEN"
15148	//   "INJECTED_KERNELS_DEPRECATED"
15149	//   "MISSING_TYPE_DEPENDENCY"
15150	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15151	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15152	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15153	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15154	//   "NEXT_HOP_NOT_RUNNING"
15155	//   "NOT_CRITICAL_ERROR"
15156	//   "NO_RESULTS_ON_PAGE"
15157	//   "REQUIRED_TOS_AGREEMENT"
15158	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15159	//   "RESOURCE_NOT_DELETED"
15160	//   "SCHEMA_VALIDATION_IGNORED"
15161	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15162	//   "UNDECLARED_PROPERTIES"
15163	//   "UNREACHABLE"
15164	Code string `json:"code,omitempty"`
15165
15166	// Data: [Output Only] Metadata about this warning in key: value format.
15167	// For example:
15168	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15169	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
15170
15171	// Message: [Output Only] A human-readable description of the warning
15172	// code.
15173	Message string `json:"message,omitempty"`
15174
15175	// ForceSendFields is a list of field names (e.g. "Code") to
15176	// unconditionally include in API requests. By default, fields with
15177	// empty values are omitted from API requests. However, any non-pointer,
15178	// non-interface field appearing in ForceSendFields will be sent to the
15179	// server regardless of whether the field is empty or not. This may be
15180	// used to include empty fields in Patch requests.
15181	ForceSendFields []string `json:"-"`
15182
15183	// NullFields is a list of field names (e.g. "Code") to include in API
15184	// requests with the JSON null value. By default, fields with empty
15185	// values are omitted from API requests. However, any field with an
15186	// empty value appearing in NullFields will be sent to the server as
15187	// null. It is an error if a field in this list has a non-empty value.
15188	// This may be used to include null fields in Patch requests.
15189	NullFields []string `json:"-"`
15190}
15191
15192func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
15193	type NoMethod InstanceGroupManagerListWarning
15194	raw := NoMethod(*s)
15195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15196}
15197
15198type InstanceGroupManagerListWarningData struct {
15199	// Key: [Output Only] A key that provides more detail on the warning
15200	// being returned. For example, for warnings where there are no results
15201	// in a list request for a particular zone, this key might be scope and
15202	// the key value might be the zone name. Other examples might be a key
15203	// indicating a deprecated resource and a suggested replacement, or a
15204	// warning about invalid network settings (for example, if an instance
15205	// attempts to perform IP forwarding but is not enabled for IP
15206	// forwarding).
15207	Key string `json:"key,omitempty"`
15208
15209	// Value: [Output Only] A warning data value corresponding to the key.
15210	Value string `json:"value,omitempty"`
15211
15212	// ForceSendFields is a list of field names (e.g. "Key") to
15213	// unconditionally include in API requests. By default, fields with
15214	// empty values are omitted from API requests. However, any non-pointer,
15215	// non-interface field appearing in ForceSendFields will be sent to the
15216	// server regardless of whether the field is empty or not. This may be
15217	// used to include empty fields in Patch requests.
15218	ForceSendFields []string `json:"-"`
15219
15220	// NullFields is a list of field names (e.g. "Key") to include in API
15221	// requests with the JSON null value. By default, fields with empty
15222	// values are omitted from API requests. However, any field with an
15223	// empty value appearing in NullFields will be sent to the server as
15224	// null. It is an error if a field in this list has a non-empty value.
15225	// This may be used to include null fields in Patch requests.
15226	NullFields []string `json:"-"`
15227}
15228
15229func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
15230	type NoMethod InstanceGroupManagerListWarningData
15231	raw := NoMethod(*s)
15232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15233}
15234
15235type InstanceGroupManagerPendingActionsSummary struct {
15236	// Creating: [Deprecated] This field is deprecated and will be removed.
15237	// Prefer using the status field instead. Please contact
15238	// cloud-updater-feedback@google.com to leave feedback if your workload
15239	// relies on this field. [Output Only] The number of instances in the
15240	// managed instance group that are pending to be created.
15241	Creating int64 `json:"creating,omitempty"`
15242
15243	// Deleting: [Deprecated] This field is deprecated and will be removed.
15244	// Prefer using the status field instead. Please contact
15245	// cloud-updater-feedback@google.com to leave feedback if your workload
15246	// relies on this field. [Output Only] The number of instances in the
15247	// managed instance group that are pending to be deleted.
15248	Deleting int64 `json:"deleting,omitempty"`
15249
15250	// Recreating: [Deprecated] This field is deprecated and will be
15251	// removed. Prefer using the status field instead. Please contact
15252	// cloud-updater-feedback@google.com to leave feedback if your workload
15253	// relies on this field. [Output Only] The number of instances in the
15254	// managed instance group that are pending to be recreated.
15255	Recreating int64 `json:"recreating,omitempty"`
15256
15257	// Restarting: [Deprecated] This field is deprecated and will be
15258	// removed. Prefer using the status field instead. Please contact
15259	// cloud-updater-feedback@google.com to leave feedback if your workload
15260	// relies on this field. [Output Only] The number of instances in the
15261	// managed instance group that are pending to be restarted.
15262	Restarting int64 `json:"restarting,omitempty"`
15263
15264	// ForceSendFields is a list of field names (e.g. "Creating") to
15265	// unconditionally include in API requests. By default, fields with
15266	// empty values are omitted from API requests. However, any non-pointer,
15267	// non-interface field appearing in ForceSendFields will be sent to the
15268	// server regardless of whether the field is empty or not. This may be
15269	// used to include empty fields in Patch requests.
15270	ForceSendFields []string `json:"-"`
15271
15272	// NullFields is a list of field names (e.g. "Creating") to include in
15273	// API requests with the JSON null value. By default, fields with empty
15274	// values are omitted from API requests. However, any field with an
15275	// empty value appearing in NullFields will be sent to the server as
15276	// null. It is an error if a field in this list has a non-empty value.
15277	// This may be used to include null fields in Patch requests.
15278	NullFields []string `json:"-"`
15279}
15280
15281func (s *InstanceGroupManagerPendingActionsSummary) MarshalJSON() ([]byte, error) {
15282	type NoMethod InstanceGroupManagerPendingActionsSummary
15283	raw := NoMethod(*s)
15284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15285}
15286
15287type InstanceGroupManagerStatus struct {
15288	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
15289	// instance group manager.
15290	Autoscaler string `json:"autoscaler,omitempty"`
15291
15292	// IsStable: [Output Only] A bit indicating whether the managed instance
15293	// group is in a stable state. A stable state means that: none of the
15294	// instances in the managed instance group is currently undergoing any
15295	// type of change (for example, creation, restart, or deletion); no
15296	// future changes are scheduled for instances in the managed instance
15297	// group; and the managed instance group itself is not being modified.
15298	IsStable bool `json:"isStable,omitempty"`
15299
15300	// Stateful: [Output Only] Stateful status of the given Instance Group
15301	// Manager.
15302	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
15303
15304	// VersionTarget: [Output Only] A status of consistency of Instances'
15305	// versions with their target version specified by version field on
15306	// Instance Group Manager.
15307	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
15308
15309	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
15310	// unconditionally include in API requests. By default, fields with
15311	// empty values are omitted from API requests. However, any non-pointer,
15312	// non-interface field appearing in ForceSendFields will be sent to the
15313	// server regardless of whether the field is empty or not. This may be
15314	// used to include empty fields in Patch requests.
15315	ForceSendFields []string `json:"-"`
15316
15317	// NullFields is a list of field names (e.g. "Autoscaler") to include in
15318	// API requests with the JSON null value. By default, fields with empty
15319	// values are omitted from API requests. However, any field with an
15320	// empty value appearing in NullFields will be sent to the server as
15321	// null. It is an error if a field in this list has a non-empty value.
15322	// This may be used to include null fields in Patch requests.
15323	NullFields []string `json:"-"`
15324}
15325
15326func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
15327	type NoMethod InstanceGroupManagerStatus
15328	raw := NoMethod(*s)
15329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15330}
15331
15332type InstanceGroupManagerStatusStateful struct {
15333	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
15334	// instance group has stateful configuration, that is, if you have
15335	// configured any items in a stateful policy or in per-instance configs.
15336	// The group might report that it has no stateful config even when there
15337	// is still some preserved state on a managed instance, for example, if
15338	// you have deleted all PICs but not yet applied those deletions.
15339	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
15340
15341	// IsStateful: [Output Only] A bit indicating whether the managed
15342	// instance group has stateful configuration, that is, if you have
15343	// configured any items in a stateful policy or in per-instance configs.
15344	// The group might report that it has no stateful config even when there
15345	// is still some preserved state on a managed instance, for example, if
15346	// you have deleted all PICs but not yet applied those deletions. This
15347	// field is deprecated in favor of has_stateful_config.
15348	IsStateful bool `json:"isStateful,omitempty"`
15349
15350	// PerInstanceConfigs: [Output Only] Status of per-instance configs on
15351	// the instance.
15352	PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"`
15353
15354	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig")
15355	// to 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. "HasStatefulConfig") to
15363	// include in API requests with the JSON null value. By default, fields
15364	// with empty values are omitted from API requests. However, any field
15365	// with an empty value appearing in NullFields will be sent to the
15366	// server as null. It is an error if a field in this list has a
15367	// non-empty value. This may be used to include null fields in Patch
15368	// requests.
15369	NullFields []string `json:"-"`
15370}
15371
15372func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
15373	type NoMethod InstanceGroupManagerStatusStateful
15374	raw := NoMethod(*s)
15375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15376}
15377
15378type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct {
15379	// AllEffective: A bit indicating if all of the group's per-instance
15380	// configs (listed in the output of a listPerInstanceConfigs API call)
15381	// have status EFFECTIVE or there are no per-instance-configs.
15382	AllEffective bool `json:"allEffective,omitempty"`
15383
15384	// ForceSendFields is a list of field names (e.g. "AllEffective") to
15385	// unconditionally include in API requests. By default, fields with
15386	// empty values are omitted from API requests. However, any non-pointer,
15387	// non-interface field appearing in ForceSendFields will be sent to the
15388	// server regardless of whether the field is empty or not. This may be
15389	// used to include empty fields in Patch requests.
15390	ForceSendFields []string `json:"-"`
15391
15392	// NullFields is a list of field names (e.g. "AllEffective") to include
15393	// in API requests with the JSON null value. By default, fields with
15394	// empty values are omitted from API requests. However, any field with
15395	// an empty value appearing in NullFields will be sent to the server as
15396	// null. It is an error if a field in this list has a non-empty value.
15397	// This may be used to include null fields in Patch requests.
15398	NullFields []string `json:"-"`
15399}
15400
15401func (s *InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) {
15402	type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs
15403	raw := NoMethod(*s)
15404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15405}
15406
15407type InstanceGroupManagerStatusVersionTarget struct {
15408	// IsReached: [Output Only] A bit indicating whether version target has
15409	// been reached in this managed instance group, i.e. all instances are
15410	// in their target version. Instances' target version are specified by
15411	// version field on Instance Group Manager.
15412	IsReached bool `json:"isReached,omitempty"`
15413
15414	// ForceSendFields is a list of field names (e.g. "IsReached") to
15415	// unconditionally include in API requests. By default, fields with
15416	// empty values are omitted from API requests. However, any non-pointer,
15417	// non-interface field appearing in ForceSendFields will be sent to the
15418	// server regardless of whether the field is empty or not. This may be
15419	// used to include empty fields in Patch requests.
15420	ForceSendFields []string `json:"-"`
15421
15422	// NullFields is a list of field names (e.g. "IsReached") to include in
15423	// API requests with the JSON null value. By default, fields with empty
15424	// values are omitted from API requests. However, any field with an
15425	// empty value appearing in NullFields will be sent to the server as
15426	// null. It is an error if a field in this list has a non-empty value.
15427	// This may be used to include null fields in Patch requests.
15428	NullFields []string `json:"-"`
15429}
15430
15431func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
15432	type NoMethod InstanceGroupManagerStatusVersionTarget
15433	raw := NoMethod(*s)
15434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15435}
15436
15437type InstanceGroupManagerUpdatePolicy struct {
15438	// InstanceRedistributionType: The  instance redistribution policy for
15439	// regional managed instance groups. Valid values are:
15440	// - PROACTIVE (default): The group attempts to maintain an even
15441	// distribution of VM instances across zones in the region.
15442	// - NONE: For non-autoscaled groups, proactive redistribution is
15443	// disabled.
15444	//
15445	// Possible values:
15446	//   "NONE"
15447	//   "PROACTIVE"
15448	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
15449
15450	// MaxSurge: The maximum number of instances that can be created above
15451	// the specified targetSize during the update process. By default, a
15452	// fixed value of 1 is used. This value can be either a fixed number or
15453	// a percentage if the instance group has 10 or more instances. If you
15454	// set a percentage, the number of instances will be rounded up if
15455	// necessary.
15456	//
15457	// At least one of either maxSurge or maxUnavailable must be greater
15458	// than 0. Learn more about maxSurge.
15459	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
15460
15461	// MaxUnavailable: The maximum number of instances that can be
15462	// unavailable during the update process. An instance is considered
15463	// available if all of the following conditions are satisfied:
15464	//
15465	//
15466	// - The instance's status is RUNNING.
15467	// - If there is a health check on the instance group, the instance's
15468	// liveness health check result must be HEALTHY at least once. If there
15469	// is no health check on the group, then the instance only needs to have
15470	// a status of RUNNING to be considered available.  By default, a fixed
15471	// value of 1 is used. This value can be either a fixed number or a
15472	// percentage if the instance group has 10 or more instances. If you set
15473	// a percentage, the number of instances will be rounded up if
15474	// necessary.
15475	//
15476	// At least one of either maxSurge or maxUnavailable must be greater
15477	// than 0. Learn more about maxUnavailable.
15478	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
15479
15480	// MinReadySec: Minimum number of seconds to wait for after a newly
15481	// created instance becomes available. This value must be from range [0,
15482	// 3600].
15483	MinReadySec int64 `json:"minReadySec,omitempty"`
15484
15485	// MinimalAction: Minimal action to be taken on an instance. You can
15486	// specify either RESTART to restart existing instances or REPLACE to
15487	// delete and create new instances from the target template. If you
15488	// specify a RESTART, the Updater will attempt to perform that action
15489	// only. However, if the Updater determines that the minimal action you
15490	// specify is not enough to perform the update, it might perform a more
15491	// disruptive action.
15492	//
15493	// Possible values:
15494	//   "NONE"
15495	//   "REFRESH"
15496	//   "REPLACE"
15497	//   "RESTART"
15498	MinimalAction string `json:"minimalAction,omitempty"`
15499
15500	// ReplacementMethod: What action should be used to replace instances.
15501	// See minimal_action.REPLACE
15502	//
15503	// Possible values:
15504	//   "RECREATE"
15505	//   "SUBSTITUTE"
15506	ReplacementMethod string `json:"replacementMethod,omitempty"`
15507
15508	// Type: The type of update process. You can specify either PROACTIVE so
15509	// that the instance group manager proactively executes actions in order
15510	// to bring instances to their target versions or OPPORTUNISTIC so that
15511	// no action is proactively executed but the update will be performed as
15512	// part of other actions (for example, resizes or recreateInstances
15513	// calls).
15514	//
15515	// Possible values:
15516	//   "OPPORTUNISTIC"
15517	//   "PROACTIVE"
15518	Type string `json:"type,omitempty"`
15519
15520	// ForceSendFields is a list of field names (e.g.
15521	// "InstanceRedistributionType") to unconditionally include in API
15522	// requests. By default, fields with empty values are omitted from API
15523	// requests. However, any non-pointer, non-interface field appearing in
15524	// ForceSendFields will be sent to the server regardless of whether the
15525	// field is empty or not. This may be used to include empty fields in
15526	// Patch requests.
15527	ForceSendFields []string `json:"-"`
15528
15529	// NullFields is a list of field names (e.g.
15530	// "InstanceRedistributionType") to include in API requests with the
15531	// JSON null value. By default, fields with empty values are omitted
15532	// from API requests. However, any field with an empty value appearing
15533	// in NullFields will be sent to the server as null. It is an error if a
15534	// field in this list has a non-empty value. This may be used to include
15535	// null fields in Patch requests.
15536	NullFields []string `json:"-"`
15537}
15538
15539func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
15540	type NoMethod InstanceGroupManagerUpdatePolicy
15541	raw := NoMethod(*s)
15542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15543}
15544
15545type InstanceGroupManagerVersion struct {
15546	// InstanceTemplate: The URL of the instance template that is specified
15547	// for this managed instance group. The group uses this template to
15548	// create new instances in the managed instance group until the
15549	// `targetSize` for this version is reached.
15550	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15551
15552	// Name: Name of the version. Unique among all versions in the scope of
15553	// this managed instance group.
15554	Name string `json:"name,omitempty"`
15555
15556	// TargetSize: Specifies the intended number of instances to be created
15557	// from the instanceTemplate. The final number of instances created from
15558	// the template will be equal to:
15559	// - If expressed as a fixed number, the minimum of either
15560	// targetSize.fixed or instanceGroupManager.targetSize is used.
15561	// - if expressed as a percent, the targetSize would be
15562	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
15563	// is a remainder, the number is rounded up.  If unset, this version
15564	// will update any remaining instances not updated by another version.
15565	// Read Starting a canary update for more information.
15566	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
15567
15568	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
15569	// unconditionally include in API requests. By default, fields with
15570	// empty values are omitted from API requests. However, any non-pointer,
15571	// non-interface field appearing in ForceSendFields will be sent to the
15572	// server regardless of whether the field is empty or not. This may be
15573	// used to include empty fields in Patch requests.
15574	ForceSendFields []string `json:"-"`
15575
15576	// NullFields is a list of field names (e.g. "InstanceTemplate") to
15577	// include in API requests with the JSON null value. By default, fields
15578	// with empty values are omitted from API requests. However, any field
15579	// with an empty value appearing in NullFields will be sent to the
15580	// server as null. It is an error if a field in this list has a
15581	// non-empty value. This may be used to include null fields in Patch
15582	// requests.
15583	NullFields []string `json:"-"`
15584}
15585
15586func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
15587	type NoMethod InstanceGroupManagerVersion
15588	raw := NoMethod(*s)
15589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15590}
15591
15592type InstanceGroupManagersAbandonInstancesRequest struct {
15593	// Instances: The URLs of one or more instances to abandon. This can be
15594	// a full URL or a partial URL, such as
15595	// zones/[ZONE]/instances/[INSTANCE_NAME].
15596	Instances []string `json:"instances,omitempty"`
15597
15598	// ForceSendFields is a list of field names (e.g. "Instances") to
15599	// unconditionally include in API requests. By default, fields with
15600	// empty values are omitted from API requests. However, any non-pointer,
15601	// non-interface field appearing in ForceSendFields will be sent to the
15602	// server regardless of whether the field is empty or not. This may be
15603	// used to include empty fields in Patch requests.
15604	ForceSendFields []string `json:"-"`
15605
15606	// NullFields is a list of field names (e.g. "Instances") to include in
15607	// API requests with the JSON null value. By default, fields with empty
15608	// values are omitted from API requests. However, any field with an
15609	// empty value appearing in NullFields will be sent to the server as
15610	// null. It is an error if a field in this list has a non-empty value.
15611	// This may be used to include null fields in Patch requests.
15612	NullFields []string `json:"-"`
15613}
15614
15615func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
15616	type NoMethod InstanceGroupManagersAbandonInstancesRequest
15617	raw := NoMethod(*s)
15618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15619}
15620
15621// InstanceGroupManagersApplyUpdatesRequest:
15622// InstanceGroupManagers.applyUpdatesToInstances
15623type InstanceGroupManagersApplyUpdatesRequest struct {
15624	// Instances: The list of URLs of one or more instances for which you
15625	// want to apply updates. Each URL can be a full URL or a partial URL,
15626	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
15627	Instances []string `json:"instances,omitempty"`
15628
15629	// MinimalAction: The minimal action that you want to perform on each
15630	// instance during the update:
15631	// - REPLACE: At minimum, delete the instance and create it again.
15632	// - RESTART: Stop the instance and start it again.
15633	// - REFRESH: Do not stop the instance.
15634	// - NONE: Do not disrupt the instance at all.  By default, the minimum
15635	// action is NONE. If your update requires a more disruptive action than
15636	// you set with this flag, the necessary action is performed to execute
15637	// the update.
15638	//
15639	// Possible values:
15640	//   "NONE"
15641	//   "REFRESH"
15642	//   "REPLACE"
15643	//   "RESTART"
15644	MinimalAction string `json:"minimalAction,omitempty"`
15645
15646	// MostDisruptiveAllowedAction: The most disruptive action that you want
15647	// to perform on each instance during the update:
15648	// - REPLACE: Delete the instance and create it again.
15649	// - RESTART: Stop the instance and start it again.
15650	// - REFRESH: Do not stop the instance.
15651	// - NONE: Do not disrupt the instance at all.  By default, the most
15652	// disruptive allowed action is REPLACE. If your update requires a more
15653	// disruptive action than you set with this flag, the update request
15654	// will fail.
15655	//
15656	// Possible values:
15657	//   "NONE"
15658	//   "REFRESH"
15659	//   "REPLACE"
15660	//   "RESTART"
15661	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
15662
15663	// ForceSendFields is a list of field names (e.g. "Instances") to
15664	// unconditionally include in API requests. By default, fields with
15665	// empty values are omitted from API requests. However, any non-pointer,
15666	// non-interface field appearing in ForceSendFields will be sent to the
15667	// server regardless of whether the field is empty or not. This may be
15668	// used to include empty fields in Patch requests.
15669	ForceSendFields []string `json:"-"`
15670
15671	// NullFields is a list of field names (e.g. "Instances") to include in
15672	// API requests with the JSON null value. By default, fields with empty
15673	// values are omitted from API requests. However, any field with an
15674	// empty value appearing in NullFields will be sent to the server as
15675	// null. It is an error if a field in this list has a non-empty value.
15676	// This may be used to include null fields in Patch requests.
15677	NullFields []string `json:"-"`
15678}
15679
15680func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
15681	type NoMethod InstanceGroupManagersApplyUpdatesRequest
15682	raw := NoMethod(*s)
15683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15684}
15685
15686// InstanceGroupManagersCreateInstancesRequest:
15687// InstanceGroupManagers.createInstances
15688type InstanceGroupManagersCreateInstancesRequest struct {
15689	// Instances: [Required] List of specifications of per-instance configs.
15690	Instances []*PerInstanceConfig `json:"instances,omitempty"`
15691
15692	// ForceSendFields is a list of field names (e.g. "Instances") to
15693	// unconditionally include in API requests. By default, fields with
15694	// empty values are omitted from API requests. However, any non-pointer,
15695	// non-interface field appearing in ForceSendFields will be sent to the
15696	// server regardless of whether the field is empty or not. This may be
15697	// used to include empty fields in Patch requests.
15698	ForceSendFields []string `json:"-"`
15699
15700	// NullFields is a list of field names (e.g. "Instances") to include in
15701	// API requests with the JSON null value. By default, fields with empty
15702	// values are omitted from API requests. However, any field with an
15703	// empty value appearing in NullFields will be sent to the server as
15704	// null. It is an error if a field in this list has a non-empty value.
15705	// This may be used to include null fields in Patch requests.
15706	NullFields []string `json:"-"`
15707}
15708
15709func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
15710	type NoMethod InstanceGroupManagersCreateInstancesRequest
15711	raw := NoMethod(*s)
15712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15713}
15714
15715type InstanceGroupManagersDeleteInstancesRequest struct {
15716	// Instances: The URLs of one or more instances to delete. This can be a
15717	// full URL or a partial URL, such as
15718	// zones/[ZONE]/instances/[INSTANCE_NAME].
15719	Instances []string `json:"instances,omitempty"`
15720
15721	// ForceSendFields is a list of field names (e.g. "Instances") 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. "Instances") to include in
15730	// API 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 *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
15739	type NoMethod InstanceGroupManagersDeleteInstancesRequest
15740	raw := NoMethod(*s)
15741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15742}
15743
15744// InstanceGroupManagersDeletePerInstanceConfigsReq:
15745// InstanceGroupManagers.deletePerInstanceConfigs
15746type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
15747	// Names: The list of instance names for which we want to delete
15748	// per-instance configs on this managed instance group.
15749	Names []string `json:"names,omitempty"`
15750
15751	// ForceSendFields is a list of field names (e.g. "Names") to
15752	// unconditionally include in API requests. By default, fields with
15753	// empty values are omitted from API requests. However, any non-pointer,
15754	// non-interface field appearing in ForceSendFields will be sent to the
15755	// server regardless of whether the field is empty or not. This may be
15756	// used to include empty fields in Patch requests.
15757	ForceSendFields []string `json:"-"`
15758
15759	// NullFields is a list of field names (e.g. "Names") to include in API
15760	// requests with the JSON null value. By default, fields with empty
15761	// values are omitted from API requests. However, any field with an
15762	// empty value appearing in NullFields will be sent to the server as
15763	// null. It is an error if a field in this list has a non-empty value.
15764	// This may be used to include null fields in Patch requests.
15765	NullFields []string `json:"-"`
15766}
15767
15768func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
15769	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
15770	raw := NoMethod(*s)
15771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15772}
15773
15774type InstanceGroupManagersListErrorsResponse struct {
15775	// Items: [Output Only] The list of errors of the managed instance
15776	// group.
15777	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
15778
15779	// NextPageToken: [Output Only] This token allows you to get the next
15780	// page of results for list requests. If the number of results is larger
15781	// than maxResults, use the nextPageToken as a value for the query
15782	// parameter pageToken in the next list request. Subsequent list
15783	// requests will have their own nextPageToken to continue paging through
15784	// the results.
15785	NextPageToken string `json:"nextPageToken,omitempty"`
15786
15787	// ServerResponse contains the HTTP response code and headers from the
15788	// server.
15789	googleapi.ServerResponse `json:"-"`
15790
15791	// ForceSendFields is a list of field names (e.g. "Items") to
15792	// unconditionally include in API requests. By default, fields with
15793	// empty values are omitted from API requests. However, any non-pointer,
15794	// non-interface field appearing in ForceSendFields will be sent to the
15795	// server regardless of whether the field is empty or not. This may be
15796	// used to include empty fields in Patch requests.
15797	ForceSendFields []string `json:"-"`
15798
15799	// NullFields is a list of field names (e.g. "Items") to include in API
15800	// requests with the JSON null value. By default, fields with empty
15801	// values are omitted from API requests. However, any field with an
15802	// empty value appearing in NullFields will be sent to the server as
15803	// null. It is an error if a field in this list has a non-empty value.
15804	// This may be used to include null fields in Patch requests.
15805	NullFields []string `json:"-"`
15806}
15807
15808func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
15809	type NoMethod InstanceGroupManagersListErrorsResponse
15810	raw := NoMethod(*s)
15811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15812}
15813
15814type InstanceGroupManagersListManagedInstancesResponse struct {
15815	// ManagedInstances: [Output Only] The list of instances in the managed
15816	// instance group.
15817	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
15818
15819	// NextPageToken: [Output Only] This token allows you to get the next
15820	// page of results for list requests. If the number of results is larger
15821	// than maxResults, use the nextPageToken as a value for the query
15822	// parameter pageToken in the next list request. Subsequent list
15823	// requests will have their own nextPageToken to continue paging through
15824	// the results.
15825	NextPageToken string `json:"nextPageToken,omitempty"`
15826
15827	// ServerResponse contains the HTTP response code and headers from the
15828	// server.
15829	googleapi.ServerResponse `json:"-"`
15830
15831	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
15832	// unconditionally include in API requests. By default, fields with
15833	// empty values are omitted from API requests. However, any non-pointer,
15834	// non-interface field appearing in ForceSendFields will be sent to the
15835	// server regardless of whether the field is empty or not. This may be
15836	// used to include empty fields in Patch requests.
15837	ForceSendFields []string `json:"-"`
15838
15839	// NullFields is a list of field names (e.g. "ManagedInstances") to
15840	// include in API requests with the JSON null value. By default, fields
15841	// with empty values are omitted from API requests. However, any field
15842	// with an empty value appearing in NullFields will be sent to the
15843	// server as null. It is an error if a field in this list has a
15844	// non-empty value. This may be used to include null fields in Patch
15845	// requests.
15846	NullFields []string `json:"-"`
15847}
15848
15849func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
15850	type NoMethod InstanceGroupManagersListManagedInstancesResponse
15851	raw := NoMethod(*s)
15852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15853}
15854
15855type InstanceGroupManagersListPerInstanceConfigsResp struct {
15856	// Items: [Output Only] The list of PerInstanceConfig.
15857	Items []*PerInstanceConfig `json:"items,omitempty"`
15858
15859	// NextPageToken: [Output Only] This token allows you to get the next
15860	// page of results for list requests. If the number of results is larger
15861	// than maxResults, use the nextPageToken as a value for the query
15862	// parameter pageToken in the next list request. Subsequent list
15863	// requests will have their own nextPageToken to continue paging through
15864	// the results.
15865	NextPageToken string `json:"nextPageToken,omitempty"`
15866
15867	// Warning: [Output Only] Informational warning message.
15868	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
15869
15870	// ServerResponse contains the HTTP response code and headers from the
15871	// server.
15872	googleapi.ServerResponse `json:"-"`
15873
15874	// ForceSendFields is a list of field names (e.g. "Items") to
15875	// unconditionally include in API requests. By default, fields with
15876	// empty values are omitted from API requests. However, any non-pointer,
15877	// non-interface field appearing in ForceSendFields will be sent to the
15878	// server regardless of whether the field is empty or not. This may be
15879	// used to include empty fields in Patch requests.
15880	ForceSendFields []string `json:"-"`
15881
15882	// NullFields is a list of field names (e.g. "Items") to include in API
15883	// requests with the JSON null value. By default, fields with empty
15884	// values are omitted from API requests. However, any field with an
15885	// empty value appearing in NullFields will be sent to the server as
15886	// null. It is an error if a field in this list has a non-empty value.
15887	// This may be used to include null fields in Patch requests.
15888	NullFields []string `json:"-"`
15889}
15890
15891func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
15892	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
15893	raw := NoMethod(*s)
15894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15895}
15896
15897// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
15898// Informational warning message.
15899type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
15900	// Code: [Output Only] A warning code, if applicable. For example,
15901	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15902	// the response.
15903	//
15904	// Possible values:
15905	//   "CLEANUP_FAILED"
15906	//   "DEPRECATED_RESOURCE_USED"
15907	//   "DEPRECATED_TYPE_USED"
15908	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15909	//   "EXPERIMENTAL_TYPE_USED"
15910	//   "EXTERNAL_API_WARNING"
15911	//   "FIELD_VALUE_OVERRIDEN"
15912	//   "INJECTED_KERNELS_DEPRECATED"
15913	//   "MISSING_TYPE_DEPENDENCY"
15914	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15915	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15916	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15917	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15918	//   "NEXT_HOP_NOT_RUNNING"
15919	//   "NOT_CRITICAL_ERROR"
15920	//   "NO_RESULTS_ON_PAGE"
15921	//   "REQUIRED_TOS_AGREEMENT"
15922	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15923	//   "RESOURCE_NOT_DELETED"
15924	//   "SCHEMA_VALIDATION_IGNORED"
15925	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15926	//   "UNDECLARED_PROPERTIES"
15927	//   "UNREACHABLE"
15928	Code string `json:"code,omitempty"`
15929
15930	// Data: [Output Only] Metadata about this warning in key: value format.
15931	// For example:
15932	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15933	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
15934
15935	// Message: [Output Only] A human-readable description of the warning
15936	// code.
15937	Message string `json:"message,omitempty"`
15938
15939	// ForceSendFields is a list of field names (e.g. "Code") to
15940	// unconditionally include in API requests. By default, fields with
15941	// empty values are omitted from API requests. However, any non-pointer,
15942	// non-interface field appearing in ForceSendFields will be sent to the
15943	// server regardless of whether the field is empty or not. This may be
15944	// used to include empty fields in Patch requests.
15945	ForceSendFields []string `json:"-"`
15946
15947	// NullFields is a list of field names (e.g. "Code") to include in API
15948	// requests with the JSON null value. By default, fields with empty
15949	// values are omitted from API requests. However, any field with an
15950	// empty value appearing in NullFields will be sent to the server as
15951	// null. It is an error if a field in this list has a non-empty value.
15952	// This may be used to include null fields in Patch requests.
15953	NullFields []string `json:"-"`
15954}
15955
15956func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
15957	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
15958	raw := NoMethod(*s)
15959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15960}
15961
15962type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
15963	// Key: [Output Only] A key that provides more detail on the warning
15964	// being returned. For example, for warnings where there are no results
15965	// in a list request for a particular zone, this key might be scope and
15966	// the key value might be the zone name. Other examples might be a key
15967	// indicating a deprecated resource and a suggested replacement, or a
15968	// warning about invalid network settings (for example, if an instance
15969	// attempts to perform IP forwarding but is not enabled for IP
15970	// forwarding).
15971	Key string `json:"key,omitempty"`
15972
15973	// Value: [Output Only] A warning data value corresponding to the key.
15974	Value string `json:"value,omitempty"`
15975
15976	// ForceSendFields is a list of field names (e.g. "Key") to
15977	// unconditionally include in API requests. By default, fields with
15978	// empty values are omitted from API requests. However, any non-pointer,
15979	// non-interface field appearing in ForceSendFields will be sent to the
15980	// server regardless of whether the field is empty or not. This may be
15981	// used to include empty fields in Patch requests.
15982	ForceSendFields []string `json:"-"`
15983
15984	// NullFields is a list of field names (e.g. "Key") to include in API
15985	// requests with the JSON null value. By default, fields with empty
15986	// values are omitted from API requests. However, any field with an
15987	// empty value appearing in NullFields will be sent to the server as
15988	// null. It is an error if a field in this list has a non-empty value.
15989	// This may be used to include null fields in Patch requests.
15990	NullFields []string `json:"-"`
15991}
15992
15993func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
15994	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
15995	raw := NoMethod(*s)
15996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15997}
15998
15999// InstanceGroupManagersPatchPerInstanceConfigsReq:
16000// InstanceGroupManagers.patchPerInstanceConfigs
16001type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
16002	// PerInstanceConfigs: The list of per-instance configs to insert or
16003	// patch on this managed instance group.
16004	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
16005
16006	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
16007	// to unconditionally include in API requests. By default, fields with
16008	// empty values are omitted from API requests. However, any non-pointer,
16009	// non-interface field appearing in ForceSendFields will be sent to the
16010	// server regardless of whether the field is empty or not. This may be
16011	// used to include empty fields in Patch requests.
16012	ForceSendFields []string `json:"-"`
16013
16014	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
16015	// include in API requests with the JSON null value. By default, fields
16016	// with empty values are omitted from API requests. However, any field
16017	// with an empty value appearing in NullFields will be sent to the
16018	// server as null. It is an error if a field in this list has a
16019	// non-empty value. This may be used to include null fields in Patch
16020	// requests.
16021	NullFields []string `json:"-"`
16022}
16023
16024func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16025	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
16026	raw := NoMethod(*s)
16027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16028}
16029
16030type InstanceGroupManagersRecreateInstancesRequest struct {
16031	// Instances: The URLs of one or more instances to recreate. This can be
16032	// a full URL or a partial URL, such as
16033	// zones/[ZONE]/instances/[INSTANCE_NAME].
16034	Instances []string `json:"instances,omitempty"`
16035
16036	// ForceSendFields is a list of field names (e.g. "Instances") to
16037	// unconditionally include in API requests. By default, fields with
16038	// empty values are omitted from API requests. However, any non-pointer,
16039	// non-interface field appearing in ForceSendFields will be sent to the
16040	// server regardless of whether the field is empty or not. This may be
16041	// used to include empty fields in Patch requests.
16042	ForceSendFields []string `json:"-"`
16043
16044	// NullFields is a list of field names (e.g. "Instances") to include in
16045	// API requests with the JSON null value. By default, fields with empty
16046	// values are omitted from API requests. However, any field with an
16047	// empty value appearing in NullFields will be sent to the server as
16048	// null. It is an error if a field in this list has a non-empty value.
16049	// This may be used to include null fields in Patch requests.
16050	NullFields []string `json:"-"`
16051}
16052
16053func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
16054	type NoMethod InstanceGroupManagersRecreateInstancesRequest
16055	raw := NoMethod(*s)
16056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16057}
16058
16059type InstanceGroupManagersResizeAdvancedRequest struct {
16060	// NoCreationRetries: If this flag is true, the managed instance group
16061	// attempts to create all instances initiated by this resize request
16062	// only once. If there is an error during creation, the managed instance
16063	// group does not retry create this instance, and we will decrease the
16064	// targetSize of the request instead. If the flag is false, the group
16065	// attempts to recreate each instance continuously until it
16066	// succeeds.
16067	//
16068	// This flag matters only in the first attempt of creation of an
16069	// instance. After an instance is successfully created while this flag
16070	// is enabled, the instance behaves the same way as all the other
16071	// instances created with a regular resize request. In particular, if a
16072	// running instance dies unexpectedly at a later time and needs to be
16073	// recreated, this mode does not affect the recreation behavior in that
16074	// scenario.
16075	//
16076	// This flag is applicable only to the current resize request. It does
16077	// not influence other resize requests in any way.
16078	//
16079	// You can see which instances is being creating in which mode by
16080	// calling the get or listManagedInstances API.
16081	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
16082
16083	// TargetSize: The number of running instances that the managed instance
16084	// group should maintain at any given time. The group automatically adds
16085	// or removes instances to maintain the number of instances specified by
16086	// this parameter.
16087	TargetSize int64 `json:"targetSize,omitempty"`
16088
16089	// ForceSendFields is a list of field names (e.g. "NoCreationRetries")
16090	// to unconditionally include in API requests. By default, fields with
16091	// empty values are omitted from API requests. However, any non-pointer,
16092	// non-interface field appearing in ForceSendFields will be sent to the
16093	// server regardless of whether the field is empty or not. This may be
16094	// used to include empty fields in Patch requests.
16095	ForceSendFields []string `json:"-"`
16096
16097	// NullFields is a list of field names (e.g. "NoCreationRetries") to
16098	// include in API requests with the JSON null value. By default, fields
16099	// with empty values are omitted from API requests. However, any field
16100	// with an empty value appearing in NullFields will be sent to the
16101	// server as null. It is an error if a field in this list has a
16102	// non-empty value. This may be used to include null fields in Patch
16103	// requests.
16104	NullFields []string `json:"-"`
16105}
16106
16107func (s *InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
16108	type NoMethod InstanceGroupManagersResizeAdvancedRequest
16109	raw := NoMethod(*s)
16110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16111}
16112
16113type InstanceGroupManagersScopedList struct {
16114	// InstanceGroupManagers: [Output Only] The list of managed instance
16115	// groups that are contained in the specified project and zone.
16116	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
16117
16118	// Warning: [Output Only] The warning that replaces the list of managed
16119	// instance groups when the list is empty.
16120	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
16121
16122	// ForceSendFields is a list of field names (e.g.
16123	// "InstanceGroupManagers") to unconditionally include in API requests.
16124	// By default, fields with empty values are omitted from API requests.
16125	// However, any non-pointer, non-interface field appearing in
16126	// ForceSendFields will be sent to the server regardless of whether the
16127	// field is empty or not. This may be used to include empty fields in
16128	// Patch requests.
16129	ForceSendFields []string `json:"-"`
16130
16131	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
16132	// include in API requests with the JSON null value. By default, fields
16133	// with empty values are omitted from API requests. However, any field
16134	// with an empty value appearing in NullFields will be sent to the
16135	// server as null. It is an error if a field in this list has a
16136	// non-empty value. This may be used to include null fields in Patch
16137	// requests.
16138	NullFields []string `json:"-"`
16139}
16140
16141func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
16142	type NoMethod InstanceGroupManagersScopedList
16143	raw := NoMethod(*s)
16144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16145}
16146
16147// InstanceGroupManagersScopedListWarning: [Output Only] The warning
16148// that replaces the list of managed instance groups when the list is
16149// empty.
16150type InstanceGroupManagersScopedListWarning struct {
16151	// Code: [Output Only] A warning code, if applicable. For example,
16152	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16153	// the response.
16154	//
16155	// Possible values:
16156	//   "CLEANUP_FAILED"
16157	//   "DEPRECATED_RESOURCE_USED"
16158	//   "DEPRECATED_TYPE_USED"
16159	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16160	//   "EXPERIMENTAL_TYPE_USED"
16161	//   "EXTERNAL_API_WARNING"
16162	//   "FIELD_VALUE_OVERRIDEN"
16163	//   "INJECTED_KERNELS_DEPRECATED"
16164	//   "MISSING_TYPE_DEPENDENCY"
16165	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16166	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16167	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16168	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16169	//   "NEXT_HOP_NOT_RUNNING"
16170	//   "NOT_CRITICAL_ERROR"
16171	//   "NO_RESULTS_ON_PAGE"
16172	//   "REQUIRED_TOS_AGREEMENT"
16173	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16174	//   "RESOURCE_NOT_DELETED"
16175	//   "SCHEMA_VALIDATION_IGNORED"
16176	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16177	//   "UNDECLARED_PROPERTIES"
16178	//   "UNREACHABLE"
16179	Code string `json:"code,omitempty"`
16180
16181	// Data: [Output Only] Metadata about this warning in key: value format.
16182	// For example:
16183	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16184	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
16185
16186	// Message: [Output Only] A human-readable description of the warning
16187	// code.
16188	Message string `json:"message,omitempty"`
16189
16190	// ForceSendFields is a list of field names (e.g. "Code") to
16191	// unconditionally include in API requests. By default, fields with
16192	// empty values are omitted from API requests. However, any non-pointer,
16193	// non-interface field appearing in ForceSendFields will be sent to the
16194	// server regardless of whether the field is empty or not. This may be
16195	// used to include empty fields in Patch requests.
16196	ForceSendFields []string `json:"-"`
16197
16198	// NullFields is a list of field names (e.g. "Code") to include in API
16199	// requests with the JSON null value. By default, fields with empty
16200	// values are omitted from API requests. However, any field with an
16201	// empty value appearing in NullFields will be sent to the server as
16202	// null. It is an error if a field in this list has a non-empty value.
16203	// This may be used to include null fields in Patch requests.
16204	NullFields []string `json:"-"`
16205}
16206
16207func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
16208	type NoMethod InstanceGroupManagersScopedListWarning
16209	raw := NoMethod(*s)
16210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16211}
16212
16213type InstanceGroupManagersScopedListWarningData struct {
16214	// Key: [Output Only] A key that provides more detail on the warning
16215	// being returned. For example, for warnings where there are no results
16216	// in a list request for a particular zone, this key might be scope and
16217	// the key value might be the zone name. Other examples might be a key
16218	// indicating a deprecated resource and a suggested replacement, or a
16219	// warning about invalid network settings (for example, if an instance
16220	// attempts to perform IP forwarding but is not enabled for IP
16221	// forwarding).
16222	Key string `json:"key,omitempty"`
16223
16224	// Value: [Output Only] A warning data value corresponding to the key.
16225	Value string `json:"value,omitempty"`
16226
16227	// ForceSendFields is a list of field names (e.g. "Key") to
16228	// unconditionally include in API requests. By default, fields with
16229	// empty values are omitted from API requests. However, any non-pointer,
16230	// non-interface field appearing in ForceSendFields will be sent to the
16231	// server regardless of whether the field is empty or not. This may be
16232	// used to include empty fields in Patch requests.
16233	ForceSendFields []string `json:"-"`
16234
16235	// NullFields is a list of field names (e.g. "Key") to include in API
16236	// requests with the JSON null value. By default, fields with empty
16237	// values are omitted from API requests. However, any field with an
16238	// empty value appearing in NullFields will be sent to the server as
16239	// null. It is an error if a field in this list has a non-empty value.
16240	// This may be used to include null fields in Patch requests.
16241	NullFields []string `json:"-"`
16242}
16243
16244func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
16245	type NoMethod InstanceGroupManagersScopedListWarningData
16246	raw := NoMethod(*s)
16247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16248}
16249
16250type InstanceGroupManagersSetAutoHealingRequest struct {
16251	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
16252
16253	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
16254	// to unconditionally include in API requests. By default, fields with
16255	// empty values are omitted from API requests. However, any non-pointer,
16256	// non-interface field appearing in ForceSendFields will be sent to the
16257	// server regardless of whether the field is empty or not. This may be
16258	// used to include empty fields in Patch requests.
16259	ForceSendFields []string `json:"-"`
16260
16261	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
16262	// include in API requests with the JSON null value. By default, fields
16263	// with empty values are omitted from API requests. However, any field
16264	// with an empty value appearing in NullFields will be sent to the
16265	// server as null. It is an error if a field in this list has a
16266	// non-empty value. This may be used to include null fields in Patch
16267	// requests.
16268	NullFields []string `json:"-"`
16269}
16270
16271func (s *InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
16272	type NoMethod InstanceGroupManagersSetAutoHealingRequest
16273	raw := NoMethod(*s)
16274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16275}
16276
16277type InstanceGroupManagersSetInstanceTemplateRequest struct {
16278	// InstanceTemplate: The URL of the instance template that is specified
16279	// for this managed instance group. The group uses this template to
16280	// create all new instances in the managed instance group.
16281	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16282
16283	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16284	// unconditionally include in API requests. By default, fields with
16285	// empty values are omitted from API requests. However, any non-pointer,
16286	// non-interface field appearing in ForceSendFields will be sent to the
16287	// server regardless of whether the field is empty or not. This may be
16288	// used to include empty fields in Patch requests.
16289	ForceSendFields []string `json:"-"`
16290
16291	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16292	// include in API requests with the JSON null value. By default, fields
16293	// with empty values are omitted from API requests. However, any field
16294	// with an empty value appearing in NullFields will be sent to the
16295	// server as null. It is an error if a field in this list has a
16296	// non-empty value. This may be used to include null fields in Patch
16297	// requests.
16298	NullFields []string `json:"-"`
16299}
16300
16301func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
16302	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
16303	raw := NoMethod(*s)
16304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16305}
16306
16307type InstanceGroupManagersSetTargetPoolsRequest struct {
16308	// Fingerprint: The fingerprint of the target pools information. Use
16309	// this optional property to prevent conflicts when multiple users
16310	// change the target pools settings concurrently. Obtain the fingerprint
16311	// with the instanceGroupManagers.get method. Then, include the
16312	// fingerprint in your request to ensure that you do not overwrite
16313	// changes that were applied from another concurrent request.
16314	Fingerprint string `json:"fingerprint,omitempty"`
16315
16316	// TargetPools: The list of target pool URLs that instances in this
16317	// managed instance group belong to. The managed instance group applies
16318	// these target pools to all of the instances in the group. Existing
16319	// instances and new instances in the group all receive these target
16320	// pool settings.
16321	TargetPools []string `json:"targetPools,omitempty"`
16322
16323	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16324	// unconditionally include in API requests. By default, fields with
16325	// empty values are omitted from API requests. However, any non-pointer,
16326	// non-interface field appearing in ForceSendFields will be sent to the
16327	// server regardless of whether the field is empty or not. This may be
16328	// used to include empty fields in Patch requests.
16329	ForceSendFields []string `json:"-"`
16330
16331	// NullFields is a list of field names (e.g. "Fingerprint") to include
16332	// in API requests with the JSON null value. By default, fields with
16333	// empty values are omitted from API requests. However, any field with
16334	// an empty value appearing in NullFields will be sent to the server as
16335	// null. It is an error if a field in this list has a non-empty value.
16336	// This may be used to include null fields in Patch requests.
16337	NullFields []string `json:"-"`
16338}
16339
16340func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
16341	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
16342	raw := NoMethod(*s)
16343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16344}
16345
16346// InstanceGroupManagersUpdatePerInstanceConfigsReq:
16347// InstanceGroupManagers.updatePerInstanceConfigs
16348type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
16349	// PerInstanceConfigs: The list of per-instance configs to insert or
16350	// patch on this managed instance group.
16351	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
16352
16353	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
16354	// to unconditionally include in API requests. By default, fields with
16355	// empty values are omitted from API requests. However, any non-pointer,
16356	// non-interface field appearing in ForceSendFields will be sent to the
16357	// server regardless of whether the field is empty or not. This may be
16358	// used to include empty fields in Patch requests.
16359	ForceSendFields []string `json:"-"`
16360
16361	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
16362	// include in API requests with the JSON null value. By default, fields
16363	// with empty values are omitted from API requests. However, any field
16364	// with an empty value appearing in NullFields will be sent to the
16365	// server as null. It is an error if a field in this list has a
16366	// non-empty value. This may be used to include null fields in Patch
16367	// requests.
16368	NullFields []string `json:"-"`
16369}
16370
16371func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16372	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
16373	raw := NoMethod(*s)
16374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16375}
16376
16377type InstanceGroupsAddInstancesRequest struct {
16378	// Instances: The list of instances to add to the instance group.
16379	Instances []*InstanceReference `json:"instances,omitempty"`
16380
16381	// ForceSendFields is a list of field names (e.g. "Instances") to
16382	// unconditionally include in API requests. By default, fields with
16383	// empty values are omitted from API requests. However, any non-pointer,
16384	// non-interface field appearing in ForceSendFields will be sent to the
16385	// server regardless of whether the field is empty or not. This may be
16386	// used to include empty fields in Patch requests.
16387	ForceSendFields []string `json:"-"`
16388
16389	// NullFields is a list of field names (e.g. "Instances") to include in
16390	// API requests with the JSON null value. By default, fields with empty
16391	// values are omitted from API requests. However, any field with an
16392	// empty value appearing in NullFields will be sent to the server as
16393	// null. It is an error if a field in this list has a non-empty value.
16394	// This may be used to include null fields in Patch requests.
16395	NullFields []string `json:"-"`
16396}
16397
16398func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
16399	type NoMethod InstanceGroupsAddInstancesRequest
16400	raw := NoMethod(*s)
16401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16402}
16403
16404type InstanceGroupsListInstances struct {
16405	// Id: [Output Only] Unique identifier for the resource; defined by the
16406	// server.
16407	Id string `json:"id,omitempty"`
16408
16409	// Items: A list of InstanceWithNamedPorts resources.
16410	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
16411
16412	// Kind: [Output Only] The resource type, which is always
16413	// compute#instanceGroupsListInstances for the list of instances in the
16414	// specified instance group.
16415	Kind string `json:"kind,omitempty"`
16416
16417	// NextPageToken: [Output Only] This token allows you to get the next
16418	// page of results for list requests. If the number of results is larger
16419	// than maxResults, use the nextPageToken as a value for the query
16420	// parameter pageToken in the next list request. Subsequent list
16421	// requests will have their own nextPageToken to continue paging through
16422	// the results.
16423	NextPageToken string `json:"nextPageToken,omitempty"`
16424
16425	// SelfLink: [Output Only] Server-defined URL for this resource.
16426	SelfLink string `json:"selfLink,omitempty"`
16427
16428	// Warning: [Output Only] Informational warning message.
16429	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
16430
16431	// ServerResponse contains the HTTP response code and headers from the
16432	// server.
16433	googleapi.ServerResponse `json:"-"`
16434
16435	// ForceSendFields is a list of field names (e.g. "Id") to
16436	// unconditionally include in API requests. By default, fields with
16437	// empty values are omitted from API requests. However, any non-pointer,
16438	// non-interface field appearing in ForceSendFields will be sent to the
16439	// server regardless of whether the field is empty or not. This may be
16440	// used to include empty fields in Patch requests.
16441	ForceSendFields []string `json:"-"`
16442
16443	// NullFields is a list of field names (e.g. "Id") to include in API
16444	// requests with the JSON null value. By default, fields with empty
16445	// values are omitted from API requests. However, any field with an
16446	// empty value appearing in NullFields will be sent to the server as
16447	// null. It is an error if a field in this list has a non-empty value.
16448	// This may be used to include null fields in Patch requests.
16449	NullFields []string `json:"-"`
16450}
16451
16452func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
16453	type NoMethod InstanceGroupsListInstances
16454	raw := NoMethod(*s)
16455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16456}
16457
16458// InstanceGroupsListInstancesWarning: [Output Only] Informational
16459// warning message.
16460type InstanceGroupsListInstancesWarning struct {
16461	// Code: [Output Only] A warning code, if applicable. For example,
16462	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16463	// the response.
16464	//
16465	// Possible values:
16466	//   "CLEANUP_FAILED"
16467	//   "DEPRECATED_RESOURCE_USED"
16468	//   "DEPRECATED_TYPE_USED"
16469	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16470	//   "EXPERIMENTAL_TYPE_USED"
16471	//   "EXTERNAL_API_WARNING"
16472	//   "FIELD_VALUE_OVERRIDEN"
16473	//   "INJECTED_KERNELS_DEPRECATED"
16474	//   "MISSING_TYPE_DEPENDENCY"
16475	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16476	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16477	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16478	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16479	//   "NEXT_HOP_NOT_RUNNING"
16480	//   "NOT_CRITICAL_ERROR"
16481	//   "NO_RESULTS_ON_PAGE"
16482	//   "REQUIRED_TOS_AGREEMENT"
16483	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16484	//   "RESOURCE_NOT_DELETED"
16485	//   "SCHEMA_VALIDATION_IGNORED"
16486	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16487	//   "UNDECLARED_PROPERTIES"
16488	//   "UNREACHABLE"
16489	Code string `json:"code,omitempty"`
16490
16491	// Data: [Output Only] Metadata about this warning in key: value format.
16492	// For example:
16493	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16494	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
16495
16496	// Message: [Output Only] A human-readable description of the warning
16497	// code.
16498	Message string `json:"message,omitempty"`
16499
16500	// ForceSendFields is a list of field names (e.g. "Code") to
16501	// unconditionally include in API requests. By default, fields with
16502	// empty values are omitted from API requests. However, any non-pointer,
16503	// non-interface field appearing in ForceSendFields will be sent to the
16504	// server regardless of whether the field is empty or not. This may be
16505	// used to include empty fields in Patch requests.
16506	ForceSendFields []string `json:"-"`
16507
16508	// NullFields is a list of field names (e.g. "Code") to include in API
16509	// requests with the JSON null value. By default, fields with empty
16510	// values are omitted from API requests. However, any field with an
16511	// empty value appearing in NullFields will be sent to the server as
16512	// null. It is an error if a field in this list has a non-empty value.
16513	// This may be used to include null fields in Patch requests.
16514	NullFields []string `json:"-"`
16515}
16516
16517func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
16518	type NoMethod InstanceGroupsListInstancesWarning
16519	raw := NoMethod(*s)
16520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16521}
16522
16523type InstanceGroupsListInstancesWarningData struct {
16524	// Key: [Output Only] A key that provides more detail on the warning
16525	// being returned. For example, for warnings where there are no results
16526	// in a list request for a particular zone, this key might be scope and
16527	// the key value might be the zone name. Other examples might be a key
16528	// indicating a deprecated resource and a suggested replacement, or a
16529	// warning about invalid network settings (for example, if an instance
16530	// attempts to perform IP forwarding but is not enabled for IP
16531	// forwarding).
16532	Key string `json:"key,omitempty"`
16533
16534	// Value: [Output Only] A warning data value corresponding to the key.
16535	Value string `json:"value,omitempty"`
16536
16537	// ForceSendFields is a list of field names (e.g. "Key") to
16538	// unconditionally include in API requests. By default, fields with
16539	// empty values are omitted from API requests. However, any non-pointer,
16540	// non-interface field appearing in ForceSendFields will be sent to the
16541	// server regardless of whether the field is empty or not. This may be
16542	// used to include empty fields in Patch requests.
16543	ForceSendFields []string `json:"-"`
16544
16545	// NullFields is a list of field names (e.g. "Key") to include in API
16546	// requests with the JSON null value. By default, fields with empty
16547	// values are omitted from API requests. However, any field with an
16548	// empty value appearing in NullFields will be sent to the server as
16549	// null. It is an error if a field in this list has a non-empty value.
16550	// This may be used to include null fields in Patch requests.
16551	NullFields []string `json:"-"`
16552}
16553
16554func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
16555	type NoMethod InstanceGroupsListInstancesWarningData
16556	raw := NoMethod(*s)
16557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16558}
16559
16560type InstanceGroupsListInstancesRequest struct {
16561	// InstanceState: A filter for the state of the instances in the
16562	// instance group. Valid options are ALL or RUNNING. If you do not
16563	// specify this parameter the list includes all instances regardless of
16564	// their state.
16565	//
16566	// Possible values:
16567	//   "ALL"
16568	//   "RUNNING"
16569	InstanceState string `json:"instanceState,omitempty"`
16570
16571	// ForceSendFields is a list of field names (e.g. "InstanceState") to
16572	// unconditionally include in API requests. By default, fields with
16573	// empty values are omitted from API requests. However, any non-pointer,
16574	// non-interface field appearing in ForceSendFields will be sent to the
16575	// server regardless of whether the field is empty or not. This may be
16576	// used to include empty fields in Patch requests.
16577	ForceSendFields []string `json:"-"`
16578
16579	// NullFields is a list of field names (e.g. "InstanceState") to include
16580	// in API requests with the JSON null value. By default, fields with
16581	// empty values are omitted from API requests. However, any field with
16582	// an empty value appearing in NullFields will be sent to the server as
16583	// null. It is an error if a field in this list has a non-empty value.
16584	// This may be used to include null fields in Patch requests.
16585	NullFields []string `json:"-"`
16586}
16587
16588func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
16589	type NoMethod InstanceGroupsListInstancesRequest
16590	raw := NoMethod(*s)
16591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16592}
16593
16594type InstanceGroupsRemoveInstancesRequest struct {
16595	// Instances: The list of instances to remove from the instance group.
16596	Instances []*InstanceReference `json:"instances,omitempty"`
16597
16598	// ForceSendFields is a list of field names (e.g. "Instances") to
16599	// unconditionally include in API requests. By default, fields with
16600	// empty values are omitted from API requests. However, any non-pointer,
16601	// non-interface field appearing in ForceSendFields will be sent to the
16602	// server regardless of whether the field is empty or not. This may be
16603	// used to include empty fields in Patch requests.
16604	ForceSendFields []string `json:"-"`
16605
16606	// NullFields is a list of field names (e.g. "Instances") to include in
16607	// API requests with the JSON null value. By default, fields with empty
16608	// values are omitted from API requests. However, any field with an
16609	// empty value appearing in NullFields will be sent to the server as
16610	// null. It is an error if a field in this list has a non-empty value.
16611	// This may be used to include null fields in Patch requests.
16612	NullFields []string `json:"-"`
16613}
16614
16615func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
16616	type NoMethod InstanceGroupsRemoveInstancesRequest
16617	raw := NoMethod(*s)
16618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16619}
16620
16621type InstanceGroupsScopedList struct {
16622	// InstanceGroups: [Output Only] The list of instance groups that are
16623	// contained in this scope.
16624	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
16625
16626	// Warning: [Output Only] An informational warning that replaces the
16627	// list of instance groups when the list is empty.
16628	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
16629
16630	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
16631	// unconditionally include in API requests. By default, fields with
16632	// empty values are omitted from API requests. However, any non-pointer,
16633	// non-interface field appearing in ForceSendFields will be sent to the
16634	// server regardless of whether the field is empty or not. This may be
16635	// used to include empty fields in Patch requests.
16636	ForceSendFields []string `json:"-"`
16637
16638	// NullFields is a list of field names (e.g. "InstanceGroups") to
16639	// include in API requests with the JSON null value. By default, fields
16640	// with empty values are omitted from API requests. However, any field
16641	// with an empty value appearing in NullFields will be sent to the
16642	// server as null. It is an error if a field in this list has a
16643	// non-empty value. This may be used to include null fields in Patch
16644	// requests.
16645	NullFields []string `json:"-"`
16646}
16647
16648func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
16649	type NoMethod InstanceGroupsScopedList
16650	raw := NoMethod(*s)
16651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16652}
16653
16654// InstanceGroupsScopedListWarning: [Output Only] An informational
16655// warning that replaces the list of instance groups when the list is
16656// empty.
16657type InstanceGroupsScopedListWarning struct {
16658	// Code: [Output Only] A warning code, if applicable. For example,
16659	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16660	// the response.
16661	//
16662	// Possible values:
16663	//   "CLEANUP_FAILED"
16664	//   "DEPRECATED_RESOURCE_USED"
16665	//   "DEPRECATED_TYPE_USED"
16666	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16667	//   "EXPERIMENTAL_TYPE_USED"
16668	//   "EXTERNAL_API_WARNING"
16669	//   "FIELD_VALUE_OVERRIDEN"
16670	//   "INJECTED_KERNELS_DEPRECATED"
16671	//   "MISSING_TYPE_DEPENDENCY"
16672	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16673	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16674	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16675	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16676	//   "NEXT_HOP_NOT_RUNNING"
16677	//   "NOT_CRITICAL_ERROR"
16678	//   "NO_RESULTS_ON_PAGE"
16679	//   "REQUIRED_TOS_AGREEMENT"
16680	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16681	//   "RESOURCE_NOT_DELETED"
16682	//   "SCHEMA_VALIDATION_IGNORED"
16683	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16684	//   "UNDECLARED_PROPERTIES"
16685	//   "UNREACHABLE"
16686	Code string `json:"code,omitempty"`
16687
16688	// Data: [Output Only] Metadata about this warning in key: value format.
16689	// For example:
16690	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16691	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
16692
16693	// Message: [Output Only] A human-readable description of the warning
16694	// code.
16695	Message string `json:"message,omitempty"`
16696
16697	// ForceSendFields is a list of field names (e.g. "Code") to
16698	// unconditionally include in API requests. By default, fields with
16699	// empty values are omitted from API requests. However, any non-pointer,
16700	// non-interface field appearing in ForceSendFields will be sent to the
16701	// server regardless of whether the field is empty or not. This may be
16702	// used to include empty fields in Patch requests.
16703	ForceSendFields []string `json:"-"`
16704
16705	// NullFields is a list of field names (e.g. "Code") to include in API
16706	// requests with the JSON null value. By default, fields with empty
16707	// values are omitted from API requests. However, any field with an
16708	// empty value appearing in NullFields will be sent to the server as
16709	// null. It is an error if a field in this list has a non-empty value.
16710	// This may be used to include null fields in Patch requests.
16711	NullFields []string `json:"-"`
16712}
16713
16714func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
16715	type NoMethod InstanceGroupsScopedListWarning
16716	raw := NoMethod(*s)
16717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16718}
16719
16720type InstanceGroupsScopedListWarningData struct {
16721	// Key: [Output Only] A key that provides more detail on the warning
16722	// being returned. For example, for warnings where there are no results
16723	// in a list request for a particular zone, this key might be scope and
16724	// the key value might be the zone name. Other examples might be a key
16725	// indicating a deprecated resource and a suggested replacement, or a
16726	// warning about invalid network settings (for example, if an instance
16727	// attempts to perform IP forwarding but is not enabled for IP
16728	// forwarding).
16729	Key string `json:"key,omitempty"`
16730
16731	// Value: [Output Only] A warning data value corresponding to the key.
16732	Value string `json:"value,omitempty"`
16733
16734	// ForceSendFields is a list of field names (e.g. "Key") to
16735	// unconditionally include in API requests. By default, fields with
16736	// empty values are omitted from API requests. However, any non-pointer,
16737	// non-interface field appearing in ForceSendFields will be sent to the
16738	// server regardless of whether the field is empty or not. This may be
16739	// used to include empty fields in Patch requests.
16740	ForceSendFields []string `json:"-"`
16741
16742	// NullFields is a list of field names (e.g. "Key") to include in API
16743	// requests with the JSON null value. By default, fields with empty
16744	// values are omitted from API requests. However, any field with an
16745	// empty value appearing in NullFields will be sent to the server as
16746	// null. It is an error if a field in this list has a non-empty value.
16747	// This may be used to include null fields in Patch requests.
16748	NullFields []string `json:"-"`
16749}
16750
16751func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
16752	type NoMethod InstanceGroupsScopedListWarningData
16753	raw := NoMethod(*s)
16754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16755}
16756
16757type InstanceGroupsSetNamedPortsRequest struct {
16758	// Fingerprint: The fingerprint of the named ports information for this
16759	// instance group. Use this optional property to prevent conflicts when
16760	// multiple users change the named ports settings concurrently. Obtain
16761	// the fingerprint with the instanceGroups.get method. Then, include the
16762	// fingerprint in your request to ensure that you do not overwrite
16763	// changes that were applied from another concurrent request. A request
16764	// with an incorrect fingerprint will fail with error 412
16765	// conditionNotMet.
16766	Fingerprint string `json:"fingerprint,omitempty"`
16767
16768	// NamedPorts: The list of named ports to set for this instance group.
16769	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16770
16771	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16772	// unconditionally include in API requests. By default, fields with
16773	// empty values are omitted from API requests. However, any non-pointer,
16774	// non-interface field appearing in ForceSendFields will be sent to the
16775	// server regardless of whether the field is empty or not. This may be
16776	// used to include empty fields in Patch requests.
16777	ForceSendFields []string `json:"-"`
16778
16779	// NullFields is a list of field names (e.g. "Fingerprint") to include
16780	// in API requests with the JSON null value. By default, fields with
16781	// empty values are omitted from API requests. However, any field with
16782	// an empty value appearing in NullFields will be sent to the server as
16783	// null. It is an error if a field in this list has a non-empty value.
16784	// This may be used to include null fields in Patch requests.
16785	NullFields []string `json:"-"`
16786}
16787
16788func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
16789	type NoMethod InstanceGroupsSetNamedPortsRequest
16790	raw := NoMethod(*s)
16791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16792}
16793
16794// InstanceList: Contains a list of instances.
16795type InstanceList struct {
16796	// Id: [Output Only] Unique identifier for the resource; defined by the
16797	// server.
16798	Id string `json:"id,omitempty"`
16799
16800	// Items: A list of Instance resources.
16801	Items []*Instance `json:"items,omitempty"`
16802
16803	// Kind: [Output Only] Type of resource. Always compute#instanceList for
16804	// lists of Instance resources.
16805	Kind string `json:"kind,omitempty"`
16806
16807	// NextPageToken: [Output Only] This token allows you to get the next
16808	// page of results for list requests. If the number of results is larger
16809	// than maxResults, use the nextPageToken as a value for the query
16810	// parameter pageToken in the next list request. Subsequent list
16811	// requests will have their own nextPageToken to continue paging through
16812	// the results.
16813	NextPageToken string `json:"nextPageToken,omitempty"`
16814
16815	// SelfLink: [Output Only] Server-defined URL for this resource.
16816	SelfLink string `json:"selfLink,omitempty"`
16817
16818	// Warning: [Output Only] Informational warning message.
16819	Warning *InstanceListWarning `json:"warning,omitempty"`
16820
16821	// ServerResponse contains the HTTP response code and headers from the
16822	// server.
16823	googleapi.ServerResponse `json:"-"`
16824
16825	// ForceSendFields is a list of field names (e.g. "Id") to
16826	// unconditionally include in API requests. By default, fields with
16827	// empty values are omitted from API requests. However, any non-pointer,
16828	// non-interface field appearing in ForceSendFields will be sent to the
16829	// server regardless of whether the field is empty or not. This may be
16830	// used to include empty fields in Patch requests.
16831	ForceSendFields []string `json:"-"`
16832
16833	// NullFields is a list of field names (e.g. "Id") to include in API
16834	// requests with the JSON null value. By default, fields with empty
16835	// values are omitted from API requests. However, any field with an
16836	// empty value appearing in NullFields will be sent to the server as
16837	// null. It is an error if a field in this list has a non-empty value.
16838	// This may be used to include null fields in Patch requests.
16839	NullFields []string `json:"-"`
16840}
16841
16842func (s *InstanceList) MarshalJSON() ([]byte, error) {
16843	type NoMethod InstanceList
16844	raw := NoMethod(*s)
16845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16846}
16847
16848// InstanceListWarning: [Output Only] Informational warning message.
16849type InstanceListWarning struct {
16850	// Code: [Output Only] A warning code, if applicable. For example,
16851	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16852	// the response.
16853	//
16854	// Possible values:
16855	//   "CLEANUP_FAILED"
16856	//   "DEPRECATED_RESOURCE_USED"
16857	//   "DEPRECATED_TYPE_USED"
16858	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16859	//   "EXPERIMENTAL_TYPE_USED"
16860	//   "EXTERNAL_API_WARNING"
16861	//   "FIELD_VALUE_OVERRIDEN"
16862	//   "INJECTED_KERNELS_DEPRECATED"
16863	//   "MISSING_TYPE_DEPENDENCY"
16864	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16865	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16866	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16867	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16868	//   "NEXT_HOP_NOT_RUNNING"
16869	//   "NOT_CRITICAL_ERROR"
16870	//   "NO_RESULTS_ON_PAGE"
16871	//   "REQUIRED_TOS_AGREEMENT"
16872	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16873	//   "RESOURCE_NOT_DELETED"
16874	//   "SCHEMA_VALIDATION_IGNORED"
16875	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16876	//   "UNDECLARED_PROPERTIES"
16877	//   "UNREACHABLE"
16878	Code string `json:"code,omitempty"`
16879
16880	// Data: [Output Only] Metadata about this warning in key: value format.
16881	// For example:
16882	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16883	Data []*InstanceListWarningData `json:"data,omitempty"`
16884
16885	// Message: [Output Only] A human-readable description of the warning
16886	// code.
16887	Message string `json:"message,omitempty"`
16888
16889	// ForceSendFields is a list of field names (e.g. "Code") to
16890	// unconditionally include in API requests. By default, fields with
16891	// empty values are omitted from API requests. However, any non-pointer,
16892	// non-interface field appearing in ForceSendFields will be sent to the
16893	// server regardless of whether the field is empty or not. This may be
16894	// used to include empty fields in Patch requests.
16895	ForceSendFields []string `json:"-"`
16896
16897	// NullFields is a list of field names (e.g. "Code") to include in API
16898	// requests with the JSON null value. By default, fields with empty
16899	// values are omitted from API requests. However, any field with an
16900	// empty value appearing in NullFields will be sent to the server as
16901	// null. It is an error if a field in this list has a non-empty value.
16902	// This may be used to include null fields in Patch requests.
16903	NullFields []string `json:"-"`
16904}
16905
16906func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
16907	type NoMethod InstanceListWarning
16908	raw := NoMethod(*s)
16909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16910}
16911
16912type InstanceListWarningData struct {
16913	// Key: [Output Only] A key that provides more detail on the warning
16914	// being returned. For example, for warnings where there are no results
16915	// in a list request for a particular zone, this key might be scope and
16916	// the key value might be the zone name. Other examples might be a key
16917	// indicating a deprecated resource and a suggested replacement, or a
16918	// warning about invalid network settings (for example, if an instance
16919	// attempts to perform IP forwarding but is not enabled for IP
16920	// forwarding).
16921	Key string `json:"key,omitempty"`
16922
16923	// Value: [Output Only] A warning data value corresponding to the key.
16924	Value string `json:"value,omitempty"`
16925
16926	// ForceSendFields is a list of field names (e.g. "Key") to
16927	// unconditionally include in API requests. By default, fields with
16928	// empty values are omitted from API requests. However, any non-pointer,
16929	// non-interface field appearing in ForceSendFields will be sent to the
16930	// server regardless of whether the field is empty or not. This may be
16931	// used to include empty fields in Patch requests.
16932	ForceSendFields []string `json:"-"`
16933
16934	// NullFields is a list of field names (e.g. "Key") to include in API
16935	// requests with the JSON null value. By default, fields with empty
16936	// values are omitted from API requests. However, any field with an
16937	// empty value appearing in NullFields will be sent to the server as
16938	// null. It is an error if a field in this list has a non-empty value.
16939	// This may be used to include null fields in Patch requests.
16940	NullFields []string `json:"-"`
16941}
16942
16943func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
16944	type NoMethod InstanceListWarningData
16945	raw := NoMethod(*s)
16946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16947}
16948
16949// InstanceListReferrers: Contains a list of instance referrers.
16950type InstanceListReferrers struct {
16951	// Id: [Output Only] Unique identifier for the resource; defined by the
16952	// server.
16953	Id string `json:"id,omitempty"`
16954
16955	// Items: A list of Reference resources.
16956	Items []*Reference `json:"items,omitempty"`
16957
16958	// Kind: [Output Only] Type of resource. Always
16959	// compute#instanceListReferrers for lists of Instance referrers.
16960	Kind string `json:"kind,omitempty"`
16961
16962	// NextPageToken: [Output Only] This token allows you to get the next
16963	// page of results for list requests. If the number of results is larger
16964	// than maxResults, use the nextPageToken as a value for the query
16965	// parameter pageToken in the next list request. Subsequent list
16966	// requests will have their own nextPageToken to continue paging through
16967	// the results.
16968	NextPageToken string `json:"nextPageToken,omitempty"`
16969
16970	// SelfLink: [Output Only] Server-defined URL for this resource.
16971	SelfLink string `json:"selfLink,omitempty"`
16972
16973	// Warning: [Output Only] Informational warning message.
16974	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
16975
16976	// ServerResponse contains the HTTP response code and headers from the
16977	// server.
16978	googleapi.ServerResponse `json:"-"`
16979
16980	// ForceSendFields is a list of field names (e.g. "Id") to
16981	// unconditionally include in API requests. By default, fields with
16982	// empty values are omitted from API requests. However, any non-pointer,
16983	// non-interface field appearing in ForceSendFields will be sent to the
16984	// server regardless of whether the field is empty or not. This may be
16985	// used to include empty fields in Patch requests.
16986	ForceSendFields []string `json:"-"`
16987
16988	// NullFields is a list of field names (e.g. "Id") to include in API
16989	// requests with the JSON null value. By default, fields with empty
16990	// values are omitted from API requests. However, any field with an
16991	// empty value appearing in NullFields will be sent to the server as
16992	// null. It is an error if a field in this list has a non-empty value.
16993	// This may be used to include null fields in Patch requests.
16994	NullFields []string `json:"-"`
16995}
16996
16997func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
16998	type NoMethod InstanceListReferrers
16999	raw := NoMethod(*s)
17000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17001}
17002
17003// InstanceListReferrersWarning: [Output Only] Informational warning
17004// message.
17005type InstanceListReferrersWarning struct {
17006	// Code: [Output Only] A warning code, if applicable. For example,
17007	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17008	// the response.
17009	//
17010	// Possible values:
17011	//   "CLEANUP_FAILED"
17012	//   "DEPRECATED_RESOURCE_USED"
17013	//   "DEPRECATED_TYPE_USED"
17014	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17015	//   "EXPERIMENTAL_TYPE_USED"
17016	//   "EXTERNAL_API_WARNING"
17017	//   "FIELD_VALUE_OVERRIDEN"
17018	//   "INJECTED_KERNELS_DEPRECATED"
17019	//   "MISSING_TYPE_DEPENDENCY"
17020	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17021	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17022	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17023	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17024	//   "NEXT_HOP_NOT_RUNNING"
17025	//   "NOT_CRITICAL_ERROR"
17026	//   "NO_RESULTS_ON_PAGE"
17027	//   "REQUIRED_TOS_AGREEMENT"
17028	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17029	//   "RESOURCE_NOT_DELETED"
17030	//   "SCHEMA_VALIDATION_IGNORED"
17031	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17032	//   "UNDECLARED_PROPERTIES"
17033	//   "UNREACHABLE"
17034	Code string `json:"code,omitempty"`
17035
17036	// Data: [Output Only] Metadata about this warning in key: value format.
17037	// For example:
17038	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17039	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
17040
17041	// Message: [Output Only] A human-readable description of the warning
17042	// code.
17043	Message string `json:"message,omitempty"`
17044
17045	// ForceSendFields is a list of field names (e.g. "Code") to
17046	// unconditionally include in API requests. By default, fields with
17047	// empty values are omitted from API requests. However, any non-pointer,
17048	// non-interface field appearing in ForceSendFields will be sent to the
17049	// server regardless of whether the field is empty or not. This may be
17050	// used to include empty fields in Patch requests.
17051	ForceSendFields []string `json:"-"`
17052
17053	// NullFields is a list of field names (e.g. "Code") to include in API
17054	// requests with the JSON null value. By default, fields with empty
17055	// values are omitted from API requests. However, any field with an
17056	// empty value appearing in NullFields will be sent to the server as
17057	// null. It is an error if a field in this list has a non-empty value.
17058	// This may be used to include null fields in Patch requests.
17059	NullFields []string `json:"-"`
17060}
17061
17062func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
17063	type NoMethod InstanceListReferrersWarning
17064	raw := NoMethod(*s)
17065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17066}
17067
17068type InstanceListReferrersWarningData struct {
17069	// Key: [Output Only] A key that provides more detail on the warning
17070	// being returned. For example, for warnings where there are no results
17071	// in a list request for a particular zone, this key might be scope and
17072	// the key value might be the zone name. Other examples might be a key
17073	// indicating a deprecated resource and a suggested replacement, or a
17074	// warning about invalid network settings (for example, if an instance
17075	// attempts to perform IP forwarding but is not enabled for IP
17076	// forwarding).
17077	Key string `json:"key,omitempty"`
17078
17079	// Value: [Output Only] A warning data value corresponding to the key.
17080	Value string `json:"value,omitempty"`
17081
17082	// ForceSendFields is a list of field names (e.g. "Key") to
17083	// unconditionally include in API requests. By default, fields with
17084	// empty values are omitted from API requests. However, any non-pointer,
17085	// non-interface field appearing in ForceSendFields will be sent to the
17086	// server regardless of whether the field is empty or not. This may be
17087	// used to include empty fields in Patch requests.
17088	ForceSendFields []string `json:"-"`
17089
17090	// NullFields is a list of field names (e.g. "Key") to include in API
17091	// requests with the JSON null value. By default, fields with empty
17092	// values are omitted from API requests. However, any field with an
17093	// empty value appearing in NullFields will be sent to the server as
17094	// null. It is an error if a field in this list has a non-empty value.
17095	// This may be used to include null fields in Patch requests.
17096	NullFields []string `json:"-"`
17097}
17098
17099func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
17100	type NoMethod InstanceListReferrersWarningData
17101	raw := NoMethod(*s)
17102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17103}
17104
17105type InstanceManagedByIgmError struct {
17106	// Error: [Output Only] Contents of the error.
17107	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
17108
17109	// InstanceActionDetails: [Output Only] Details of the instance action
17110	// that triggered this error. May be null, if the error was not caused
17111	// by an action on an instance. This field is optional.
17112	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
17113
17114	// Timestamp: [Output Only] The time that this error occurred. This
17115	// value is in RFC3339 text format.
17116	Timestamp string `json:"timestamp,omitempty"`
17117
17118	// ForceSendFields is a list of field names (e.g. "Error") to
17119	// unconditionally include in API requests. By default, fields with
17120	// empty values are omitted from API requests. However, any non-pointer,
17121	// non-interface field appearing in ForceSendFields will be sent to the
17122	// server regardless of whether the field is empty or not. This may be
17123	// used to include empty fields in Patch requests.
17124	ForceSendFields []string `json:"-"`
17125
17126	// NullFields is a list of field names (e.g. "Error") to include in API
17127	// requests with the JSON null value. By default, fields with empty
17128	// values are omitted from API requests. However, any field with an
17129	// empty value appearing in NullFields will be sent to the server as
17130	// null. It is an error if a field in this list has a non-empty value.
17131	// This may be used to include null fields in Patch requests.
17132	NullFields []string `json:"-"`
17133}
17134
17135func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
17136	type NoMethod InstanceManagedByIgmError
17137	raw := NoMethod(*s)
17138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17139}
17140
17141type InstanceManagedByIgmErrorInstanceActionDetails struct {
17142	// Action: [Output Only] Action that managed instance group was
17143	// executing on the instance when the error occurred. Possible values:
17144	//
17145	// Possible values:
17146	//   "ABANDONING"
17147	//   "CREATING"
17148	//   "CREATING_WITHOUT_RETRIES"
17149	//   "DELETING"
17150	//   "NONE"
17151	//   "RECREATING"
17152	//   "REFRESHING"
17153	//   "RESTARTING"
17154	//   "VERIFYING"
17155	Action string `json:"action,omitempty"`
17156
17157	// Instance: [Output Only] The URL of the instance. The URL can be set
17158	// even if the instance has not yet been created.
17159	Instance string `json:"instance,omitempty"`
17160
17161	// Version: [Output Only] Version this instance was created from, or was
17162	// being created from, but the creation failed. Corresponds to one of
17163	// the versions that were set on the Instance Group Manager resource at
17164	// the time this instance was being created.
17165	Version *ManagedInstanceVersion `json:"version,omitempty"`
17166
17167	// ForceSendFields is a list of field names (e.g. "Action") to
17168	// unconditionally include in API requests. By default, fields with
17169	// empty values are omitted from API requests. However, any non-pointer,
17170	// non-interface field appearing in ForceSendFields will be sent to the
17171	// server regardless of whether the field is empty or not. This may be
17172	// used to include empty fields in Patch requests.
17173	ForceSendFields []string `json:"-"`
17174
17175	// NullFields is a list of field names (e.g. "Action") to include in API
17176	// requests with the JSON null value. By default, fields with empty
17177	// values are omitted from API requests. However, any field with an
17178	// empty value appearing in NullFields will be sent to the server as
17179	// null. It is an error if a field in this list has a non-empty value.
17180	// This may be used to include null fields in Patch requests.
17181	NullFields []string `json:"-"`
17182}
17183
17184func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
17185	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
17186	raw := NoMethod(*s)
17187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17188}
17189
17190type InstanceManagedByIgmErrorManagedInstanceError struct {
17191	// Code: [Output Only] Error code.
17192	Code string `json:"code,omitempty"`
17193
17194	// Message: [Output Only] Error message.
17195	Message string `json:"message,omitempty"`
17196
17197	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
17215	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
17216	raw := NoMethod(*s)
17217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17218}
17219
17220type InstanceMoveRequest struct {
17221	// DestinationZone: The URL of the destination zone to move the
17222	// instance. This can be a full or partial URL. For example, the
17223	// following are all valid URLs to a zone:
17224	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
17225	//
17226	// - projects/project/zones/zone
17227	// - zones/zone
17228	DestinationZone string `json:"destinationZone,omitempty"`
17229
17230	// TargetInstance: The URL of the target instance to move. This can be a
17231	// full or partial URL. For example, the following are all valid URLs to
17232	// an instance:
17233	// -
17234	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
17235	// - projects/project/zones/zone/instances/instance
17236	// - zones/zone/instances/instance
17237	TargetInstance string `json:"targetInstance,omitempty"`
17238
17239	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
17240	// unconditionally include in API requests. By default, fields with
17241	// empty values are omitted from API requests. However, any non-pointer,
17242	// non-interface field appearing in ForceSendFields will be sent to the
17243	// server regardless of whether the field is empty or not. This may be
17244	// used to include empty fields in Patch requests.
17245	ForceSendFields []string `json:"-"`
17246
17247	// NullFields is a list of field names (e.g. "DestinationZone") to
17248	// include in API requests with the JSON null value. By default, fields
17249	// with empty values are omitted from API requests. However, any field
17250	// with an empty value appearing in NullFields will be sent to the
17251	// server as null. It is an error if a field in this list has a
17252	// non-empty value. This may be used to include null fields in Patch
17253	// requests.
17254	NullFields []string `json:"-"`
17255}
17256
17257func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
17258	type NoMethod InstanceMoveRequest
17259	raw := NoMethod(*s)
17260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17261}
17262
17263type InstanceProperties struct {
17264	// CanIpForward: Enables instances created based on these properties to
17265	// send packets with source IP addresses other than their own and
17266	// receive packets with destination IP addresses other than their own.
17267	// If these instances will be used as an IP gateway or it will be set as
17268	// the next-hop in a Route resource, specify true. If unsure, leave this
17269	// set to false. See the Enable IP forwarding documentation for more
17270	// information.
17271	CanIpForward bool `json:"canIpForward,omitempty"`
17272
17273	// ConfidentialInstanceConfig: Specifies the Confidential Instance
17274	// options.
17275	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
17276
17277	// Description: An optional text description for the instances that are
17278	// created from these properties.
17279	Description string `json:"description,omitempty"`
17280
17281	// Disks: An array of disks that are associated with the instances that
17282	// are created from these properties.
17283	Disks []*AttachedDisk `json:"disks,omitempty"`
17284
17285	// DisplayDevice: Display Device properties to enable support for remote
17286	// display products like: Teradici, VNC and TeamViewer
17287	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
17288
17289	// GuestAccelerators: A list of guest accelerator cards' type and count
17290	// to use for instances created from these properties.
17291	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
17292
17293	// Labels: Labels to apply to instances that are created from these
17294	// properties.
17295	Labels map[string]string `json:"labels,omitempty"`
17296
17297	// MachineType: The machine type to use for instances that are created
17298	// from these properties.
17299	MachineType string `json:"machineType,omitempty"`
17300
17301	// Metadata: The metadata key/value pairs to assign to instances that
17302	// are created from these properties. These pairs can consist of custom
17303	// metadata or predefined keys. See Project and instance metadata for
17304	// more information.
17305	Metadata *Metadata `json:"metadata,omitempty"`
17306
17307	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The
17308	// instance may be scheduled on the specified or newer cpu/platform.
17309	// Applicable values are the friendly names of CPU platforms, such as
17310	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
17311	// Bridge". For more information, read Specifying a Minimum CPU
17312	// Platform.
17313	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
17314
17315	// NetworkInterfaces: An array of network access configurations for this
17316	// interface.
17317	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
17318
17319	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs.
17320	// If not specified, use  INHERIT_FROM_SUBNETWORK as default.
17321	//
17322	// Possible values:
17323	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
17324	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
17325	//   "INHERIT_FROM_SUBNETWORK"
17326	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
17327
17328	// ReservationAffinity: Specifies the reservations that instances can
17329	// consume from.
17330	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
17331
17332	// ResourcePolicies: Resource policies (names, not ULRs) applied to
17333	// instances created from these properties.
17334	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
17335
17336	// Scheduling: Specifies the scheduling options for the instances that
17337	// are created from these properties.
17338	Scheduling *Scheduling `json:"scheduling,omitempty"`
17339
17340	// ServiceAccounts: A list of service accounts with specified scopes.
17341	// Access tokens for these service accounts are available to the
17342	// instances that are created from these properties. Use metadata
17343	// queries to obtain the access tokens for these instances.
17344	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
17345
17346	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
17347
17348	// ShieldedVmConfig: Specifies the Shielded VM options for the instances
17349	// that are created from these properties.
17350	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
17351
17352	// Tags: A list of tags to apply to the instances that are created from
17353	// these properties. The tags identify valid sources or targets for
17354	// network firewalls. The setTags method can modify this list of tags.
17355	// Each tag within the list must comply with RFC1035.
17356	Tags *Tags `json:"tags,omitempty"`
17357
17358	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
17359	// unconditionally include in API requests. By default, fields with
17360	// empty values are omitted from API requests. However, any non-pointer,
17361	// non-interface field appearing in ForceSendFields will be sent to the
17362	// server regardless of whether the field is empty or not. This may be
17363	// used to include empty fields in Patch requests.
17364	ForceSendFields []string `json:"-"`
17365
17366	// NullFields is a list of field names (e.g. "CanIpForward") to include
17367	// in API requests with the JSON null value. By default, fields with
17368	// empty values are omitted from API requests. However, any field with
17369	// an empty value appearing in NullFields will be sent to the server as
17370	// null. It is an error if a field in this list has a non-empty value.
17371	// This may be used to include null fields in Patch requests.
17372	NullFields []string `json:"-"`
17373}
17374
17375func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
17376	type NoMethod InstanceProperties
17377	raw := NoMethod(*s)
17378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17379}
17380
17381type InstanceReference struct {
17382	// Instance: The URL for a specific instance.
17383	Instance string `json:"instance,omitempty"`
17384
17385	// ForceSendFields is a list of field names (e.g. "Instance") to
17386	// unconditionally include in API requests. By default, fields with
17387	// empty values are omitted from API requests. However, any non-pointer,
17388	// non-interface field appearing in ForceSendFields will be sent to the
17389	// server regardless of whether the field is empty or not. This may be
17390	// used to include empty fields in Patch requests.
17391	ForceSendFields []string `json:"-"`
17392
17393	// NullFields is a list of field names (e.g. "Instance") to include in
17394	// API requests with the JSON null value. By default, fields with empty
17395	// values are omitted from API requests. However, any field with an
17396	// empty value appearing in NullFields will be sent to the server as
17397	// null. It is an error if a field in this list has a non-empty value.
17398	// This may be used to include null fields in Patch requests.
17399	NullFields []string `json:"-"`
17400}
17401
17402func (s *InstanceReference) MarshalJSON() ([]byte, error) {
17403	type NoMethod InstanceReference
17404	raw := NoMethod(*s)
17405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17406}
17407
17408// InstanceTemplate: Represents an Instance Template resource.
17409//
17410// You can use instance templates to create VM instances and managed
17411// instance groups. For more information, read Instance Templates. (==
17412// resource_for {$api_version}.instanceTemplates ==)
17413type InstanceTemplate struct {
17414	// CreationTimestamp: [Output Only] The creation timestamp for this
17415	// instance template in RFC3339 text format.
17416	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17417
17418	// Description: An optional description of this resource. Provide this
17419	// property when you create the resource.
17420	Description string `json:"description,omitempty"`
17421
17422	// Id: [Output Only] A unique identifier for this instance template. The
17423	// server defines this identifier.
17424	Id uint64 `json:"id,omitempty,string"`
17425
17426	// Kind: [Output Only] The resource type, which is always
17427	// compute#instanceTemplate for instance templates.
17428	Kind string `json:"kind,omitempty"`
17429
17430	// Name: Name of the resource; provided by the client when the resource
17431	// is created. The name must be 1-63 characters long, and comply with
17432	// RFC1035. Specifically, the name must be 1-63 characters long and
17433	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
17434	// the first character must be a lowercase letter, and all following
17435	// characters must be a dash, lowercase letter, or digit, except the
17436	// last character, which cannot be a dash.
17437	Name string `json:"name,omitempty"`
17438
17439	// Properties: The instance properties for this instance template.
17440	Properties *InstanceProperties `json:"properties,omitempty"`
17441
17442	// SelfLink: [Output Only] The URL for this instance template. The
17443	// server defines this URL.
17444	SelfLink string `json:"selfLink,omitempty"`
17445
17446	// SourceInstance: The source instance used to create the template. You
17447	// can provide this as a partial or full URL to the resource. For
17448	// example, the following are valid values:
17449	// -
17450	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
17451	// - projects/project/zones/zone/instances/instance
17452	SourceInstance string `json:"sourceInstance,omitempty"`
17453
17454	// SourceInstanceParams: The source instance params to use to create
17455	// this instance template.
17456	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
17457
17458	// ServerResponse contains the HTTP response code and headers from the
17459	// server.
17460	googleapi.ServerResponse `json:"-"`
17461
17462	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
17463	// to unconditionally include in API requests. By default, fields with
17464	// empty values are omitted from API requests. However, any non-pointer,
17465	// non-interface field appearing in ForceSendFields will be sent to the
17466	// server regardless of whether the field is empty or not. This may be
17467	// used to include empty fields in Patch requests.
17468	ForceSendFields []string `json:"-"`
17469
17470	// NullFields is a list of field names (e.g. "CreationTimestamp") to
17471	// include in API requests with the JSON null value. By default, fields
17472	// with empty values are omitted from API requests. However, any field
17473	// with an empty value appearing in NullFields will be sent to the
17474	// server as null. It is an error if a field in this list has a
17475	// non-empty value. This may be used to include null fields in Patch
17476	// requests.
17477	NullFields []string `json:"-"`
17478}
17479
17480func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
17481	type NoMethod InstanceTemplate
17482	raw := NoMethod(*s)
17483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17484}
17485
17486// InstanceTemplateList: A list of instance templates.
17487type InstanceTemplateList struct {
17488	// Id: [Output Only] Unique identifier for the resource; defined by the
17489	// server.
17490	Id string `json:"id,omitempty"`
17491
17492	// Items: A list of InstanceTemplate resources.
17493	Items []*InstanceTemplate `json:"items,omitempty"`
17494
17495	// Kind: [Output Only] The resource type, which is always
17496	// compute#instanceTemplatesListResponse for instance template lists.
17497	Kind string `json:"kind,omitempty"`
17498
17499	// NextPageToken: [Output Only] This token allows you to get the next
17500	// page of results for list requests. If the number of results is larger
17501	// than maxResults, use the nextPageToken as a value for the query
17502	// parameter pageToken in the next list request. Subsequent list
17503	// requests will have their own nextPageToken to continue paging through
17504	// the results.
17505	NextPageToken string `json:"nextPageToken,omitempty"`
17506
17507	// SelfLink: [Output Only] Server-defined URL for this resource.
17508	SelfLink string `json:"selfLink,omitempty"`
17509
17510	// Warning: [Output Only] Informational warning message.
17511	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
17512
17513	// ServerResponse contains the HTTP response code and headers from the
17514	// server.
17515	googleapi.ServerResponse `json:"-"`
17516
17517	// ForceSendFields is a list of field names (e.g. "Id") to
17518	// unconditionally include in API requests. By default, fields with
17519	// empty values are omitted from API requests. However, any non-pointer,
17520	// non-interface field appearing in ForceSendFields will be sent to the
17521	// server regardless of whether the field is empty or not. This may be
17522	// used to include empty fields in Patch requests.
17523	ForceSendFields []string `json:"-"`
17524
17525	// NullFields is a list of field names (e.g. "Id") to include in API
17526	// requests with the JSON null value. By default, fields with empty
17527	// values are omitted from API requests. However, any field with an
17528	// empty value appearing in NullFields will be sent to the server as
17529	// null. It is an error if a field in this list has a non-empty value.
17530	// This may be used to include null fields in Patch requests.
17531	NullFields []string `json:"-"`
17532}
17533
17534func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
17535	type NoMethod InstanceTemplateList
17536	raw := NoMethod(*s)
17537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17538}
17539
17540// InstanceTemplateListWarning: [Output Only] Informational warning
17541// message.
17542type InstanceTemplateListWarning struct {
17543	// Code: [Output Only] A warning code, if applicable. For example,
17544	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17545	// the response.
17546	//
17547	// Possible values:
17548	//   "CLEANUP_FAILED"
17549	//   "DEPRECATED_RESOURCE_USED"
17550	//   "DEPRECATED_TYPE_USED"
17551	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17552	//   "EXPERIMENTAL_TYPE_USED"
17553	//   "EXTERNAL_API_WARNING"
17554	//   "FIELD_VALUE_OVERRIDEN"
17555	//   "INJECTED_KERNELS_DEPRECATED"
17556	//   "MISSING_TYPE_DEPENDENCY"
17557	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17558	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17559	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17560	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17561	//   "NEXT_HOP_NOT_RUNNING"
17562	//   "NOT_CRITICAL_ERROR"
17563	//   "NO_RESULTS_ON_PAGE"
17564	//   "REQUIRED_TOS_AGREEMENT"
17565	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17566	//   "RESOURCE_NOT_DELETED"
17567	//   "SCHEMA_VALIDATION_IGNORED"
17568	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17569	//   "UNDECLARED_PROPERTIES"
17570	//   "UNREACHABLE"
17571	Code string `json:"code,omitempty"`
17572
17573	// Data: [Output Only] Metadata about this warning in key: value format.
17574	// For example:
17575	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17576	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
17577
17578	// Message: [Output Only] A human-readable description of the warning
17579	// code.
17580	Message string `json:"message,omitempty"`
17581
17582	// ForceSendFields is a list of field names (e.g. "Code") to
17583	// unconditionally include in API requests. By default, fields with
17584	// empty values are omitted from API requests. However, any non-pointer,
17585	// non-interface field appearing in ForceSendFields will be sent to the
17586	// server regardless of whether the field is empty or not. This may be
17587	// used to include empty fields in Patch requests.
17588	ForceSendFields []string `json:"-"`
17589
17590	// NullFields is a list of field names (e.g. "Code") to include in API
17591	// requests with the JSON null value. By default, fields with empty
17592	// values are omitted from API requests. However, any field with an
17593	// empty value appearing in NullFields will be sent to the server as
17594	// null. It is an error if a field in this list has a non-empty value.
17595	// This may be used to include null fields in Patch requests.
17596	NullFields []string `json:"-"`
17597}
17598
17599func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
17600	type NoMethod InstanceTemplateListWarning
17601	raw := NoMethod(*s)
17602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17603}
17604
17605type InstanceTemplateListWarningData struct {
17606	// Key: [Output Only] A key that provides more detail on the warning
17607	// being returned. For example, for warnings where there are no results
17608	// in a list request for a particular zone, this key might be scope and
17609	// the key value might be the zone name. Other examples might be a key
17610	// indicating a deprecated resource and a suggested replacement, or a
17611	// warning about invalid network settings (for example, if an instance
17612	// attempts to perform IP forwarding but is not enabled for IP
17613	// forwarding).
17614	Key string `json:"key,omitempty"`
17615
17616	// Value: [Output Only] A warning data value corresponding to the key.
17617	Value string `json:"value,omitempty"`
17618
17619	// ForceSendFields is a list of field names (e.g. "Key") to
17620	// unconditionally include in API requests. By default, fields with
17621	// empty values are omitted from API requests. However, any non-pointer,
17622	// non-interface field appearing in ForceSendFields will be sent to the
17623	// server regardless of whether the field is empty or not. This may be
17624	// used to include empty fields in Patch requests.
17625	ForceSendFields []string `json:"-"`
17626
17627	// NullFields is a list of field names (e.g. "Key") to include in API
17628	// requests with the JSON null value. By default, fields with empty
17629	// values are omitted from API requests. However, any field with an
17630	// empty value appearing in NullFields will be sent to the server as
17631	// null. It is an error if a field in this list has a non-empty value.
17632	// This may be used to include null fields in Patch requests.
17633	NullFields []string `json:"-"`
17634}
17635
17636func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
17637	type NoMethod InstanceTemplateListWarningData
17638	raw := NoMethod(*s)
17639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17640}
17641
17642type InstanceWithNamedPorts struct {
17643	// Instance: [Output Only] The URL of the instance.
17644	Instance string `json:"instance,omitempty"`
17645
17646	// NamedPorts: [Output Only] The named ports that belong to this
17647	// instance group.
17648	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
17649
17650	// Status: [Output Only] The status of the instance.
17651	//
17652	// Possible values:
17653	//   "DEPROVISIONING"
17654	//   "PROVISIONING"
17655	//   "REPAIRING"
17656	//   "RUNNING"
17657	//   "STAGING"
17658	//   "STOPPED"
17659	//   "STOPPING"
17660	//   "SUSPENDED"
17661	//   "SUSPENDING"
17662	//   "TERMINATED"
17663	Status string `json:"status,omitempty"`
17664
17665	// ForceSendFields is a list of field names (e.g. "Instance") to
17666	// unconditionally include in API requests. By default, fields with
17667	// empty values are omitted from API requests. However, any non-pointer,
17668	// non-interface field appearing in ForceSendFields will be sent to the
17669	// server regardless of whether the field is empty or not. This may be
17670	// used to include empty fields in Patch requests.
17671	ForceSendFields []string `json:"-"`
17672
17673	// NullFields is a list of field names (e.g. "Instance") to include in
17674	// API requests with the JSON null value. By default, fields with empty
17675	// values are omitted from API requests. However, any field with an
17676	// empty value appearing in NullFields will be sent to the server as
17677	// null. It is an error if a field in this list has a non-empty value.
17678	// This may be used to include null fields in Patch requests.
17679	NullFields []string `json:"-"`
17680}
17681
17682func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
17683	type NoMethod InstanceWithNamedPorts
17684	raw := NoMethod(*s)
17685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17686}
17687
17688type InstancesAddResourcePoliciesRequest struct {
17689	// ResourcePolicies: Resource policies to be added to this instance.
17690	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
17691
17692	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
17693	// unconditionally include in API requests. By default, fields with
17694	// empty values are omitted from API requests. However, any non-pointer,
17695	// non-interface field appearing in ForceSendFields will be sent to the
17696	// server regardless of whether the field is empty or not. This may be
17697	// used to include empty fields in Patch requests.
17698	ForceSendFields []string `json:"-"`
17699
17700	// NullFields is a list of field names (e.g. "ResourcePolicies") to
17701	// include in API requests with the JSON null value. By default, fields
17702	// with empty values are omitted from API requests. However, any field
17703	// with an empty value appearing in NullFields will be sent to the
17704	// server as null. It is an error if a field in this list has a
17705	// non-empty value. This may be used to include null fields in Patch
17706	// requests.
17707	NullFields []string `json:"-"`
17708}
17709
17710func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
17711	type NoMethod InstancesAddResourcePoliciesRequest
17712	raw := NoMethod(*s)
17713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17714}
17715
17716type InstancesGetEffectiveFirewallsResponse struct {
17717	// Firewalls: Effective firewalls on the instance.
17718	Firewalls []*Firewall `json:"firewalls,omitempty"`
17719
17720	// OrganizationFirewalls: Effective firewalls from organization
17721	// policies.
17722	OrganizationFirewalls []*InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
17723
17724	// ServerResponse contains the HTTP response code and headers from the
17725	// server.
17726	googleapi.ServerResponse `json:"-"`
17727
17728	// ForceSendFields is a list of field names (e.g. "Firewalls") to
17729	// unconditionally include in API requests. By default, fields with
17730	// empty values are omitted from API requests. However, any non-pointer,
17731	// non-interface field appearing in ForceSendFields will be sent to the
17732	// server regardless of whether the field is empty or not. This may be
17733	// used to include empty fields in Patch requests.
17734	ForceSendFields []string `json:"-"`
17735
17736	// NullFields is a list of field names (e.g. "Firewalls") to include in
17737	// API requests with the JSON null value. By default, fields with empty
17738	// values are omitted from API requests. However, any field with an
17739	// empty value appearing in NullFields will be sent to the server as
17740	// null. It is an error if a field in this list has a non-empty value.
17741	// This may be used to include null fields in Patch requests.
17742	NullFields []string `json:"-"`
17743}
17744
17745func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
17746	type NoMethod InstancesGetEffectiveFirewallsResponse
17747	raw := NoMethod(*s)
17748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17749}
17750
17751// InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
17752// pruned SecurityPolicy containing ID and any applicable firewall
17753// rules.
17754type InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
17755	// Id: The unique identifier for the security policy. This identifier is
17756	// defined by the server.
17757	Id uint64 `json:"id,omitempty,string"`
17758
17759	// Rules: The rules that apply to the network.
17760	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
17761
17762	// ForceSendFields is a list of field names (e.g. "Id") to
17763	// unconditionally include in API requests. By default, fields with
17764	// empty values are omitted from API requests. However, any non-pointer,
17765	// non-interface field appearing in ForceSendFields will be sent to the
17766	// server regardless of whether the field is empty or not. This may be
17767	// used to include empty fields in Patch requests.
17768	ForceSendFields []string `json:"-"`
17769
17770	// NullFields is a list of field names (e.g. "Id") to include in API
17771	// requests with the JSON null value. By default, fields with empty
17772	// values are omitted from API requests. However, any field with an
17773	// empty value appearing in NullFields will be sent to the server as
17774	// null. It is an error if a field in this list has a non-empty value.
17775	// This may be used to include null fields in Patch requests.
17776	NullFields []string `json:"-"`
17777}
17778
17779func (s *InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
17780	type NoMethod InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
17781	raw := NoMethod(*s)
17782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17783}
17784
17785type InstancesRemoveResourcePoliciesRequest struct {
17786	// ResourcePolicies: Resource policies to be removed from this instance.
17787	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
17788
17789	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
17790	// unconditionally include in API requests. By default, fields with
17791	// empty values are omitted from API requests. However, any non-pointer,
17792	// non-interface field appearing in ForceSendFields will be sent to the
17793	// server regardless of whether the field is empty or not. This may be
17794	// used to include empty fields in Patch requests.
17795	ForceSendFields []string `json:"-"`
17796
17797	// NullFields is a list of field names (e.g. "ResourcePolicies") to
17798	// include in API requests with the JSON null value. By default, fields
17799	// with empty values are omitted from API requests. However, any field
17800	// with an empty value appearing in NullFields will be sent to the
17801	// server as null. It is an error if a field in this list has a
17802	// non-empty value. This may be used to include null fields in Patch
17803	// requests.
17804	NullFields []string `json:"-"`
17805}
17806
17807func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
17808	type NoMethod InstancesRemoveResourcePoliciesRequest
17809	raw := NoMethod(*s)
17810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17811}
17812
17813type InstancesResumeRequest struct {
17814	// Disks: Array of disks associated with this instance that are
17815	// protected with a customer-supplied encryption key.
17816	//
17817	// In order to resume the instance, the disk url and its corresponding
17818	// key must be provided.
17819	//
17820	// If the disk is not protected with a customer-supplied encryption key
17821	// it should not be specified.
17822	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
17823
17824	// InstanceEncryptionKey: Decrypts data associated with an instance that
17825	// is protected with a customer-supplied encryption key.
17826	//
17827	// If the instance you are starting is protected with a
17828	// customer-supplied encryption key, the correct key must be provided
17829	// otherwise the instance resume will not succeed.
17830	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
17831
17832	// ForceSendFields is a list of field names (e.g. "Disks") to
17833	// unconditionally include in API requests. By default, fields with
17834	// empty values are omitted from API requests. However, any non-pointer,
17835	// non-interface field appearing in ForceSendFields will be sent to the
17836	// server regardless of whether the field is empty or not. This may be
17837	// used to include empty fields in Patch requests.
17838	ForceSendFields []string `json:"-"`
17839
17840	// NullFields is a list of field names (e.g. "Disks") to include in API
17841	// requests with the JSON null value. By default, fields with empty
17842	// values are omitted from API requests. However, any field with an
17843	// empty value appearing in NullFields will be sent to the server as
17844	// null. It is an error if a field in this list has a non-empty value.
17845	// This may be used to include null fields in Patch requests.
17846	NullFields []string `json:"-"`
17847}
17848
17849func (s *InstancesResumeRequest) MarshalJSON() ([]byte, error) {
17850	type NoMethod InstancesResumeRequest
17851	raw := NoMethod(*s)
17852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17853}
17854
17855type InstancesScopedList struct {
17856	// Instances: [Output Only] A list of instances contained in this scope.
17857	Instances []*Instance `json:"instances,omitempty"`
17858
17859	// Warning: [Output Only] Informational warning which replaces the list
17860	// of instances when the list is empty.
17861	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
17862
17863	// ForceSendFields is a list of field names (e.g. "Instances") to
17864	// unconditionally include in API requests. By default, fields with
17865	// empty values are omitted from API requests. However, any non-pointer,
17866	// non-interface field appearing in ForceSendFields will be sent to the
17867	// server regardless of whether the field is empty or not. This may be
17868	// used to include empty fields in Patch requests.
17869	ForceSendFields []string `json:"-"`
17870
17871	// NullFields is a list of field names (e.g. "Instances") to include in
17872	// API requests with the JSON null value. By default, fields with empty
17873	// values are omitted from API requests. However, any field with an
17874	// empty value appearing in NullFields will be sent to the server as
17875	// null. It is an error if a field in this list has a non-empty value.
17876	// This may be used to include null fields in Patch requests.
17877	NullFields []string `json:"-"`
17878}
17879
17880func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
17881	type NoMethod InstancesScopedList
17882	raw := NoMethod(*s)
17883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17884}
17885
17886// InstancesScopedListWarning: [Output Only] Informational warning which
17887// replaces the list of instances when the list is empty.
17888type InstancesScopedListWarning struct {
17889	// Code: [Output Only] A warning code, if applicable. For example,
17890	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17891	// the response.
17892	//
17893	// Possible values:
17894	//   "CLEANUP_FAILED"
17895	//   "DEPRECATED_RESOURCE_USED"
17896	//   "DEPRECATED_TYPE_USED"
17897	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17898	//   "EXPERIMENTAL_TYPE_USED"
17899	//   "EXTERNAL_API_WARNING"
17900	//   "FIELD_VALUE_OVERRIDEN"
17901	//   "INJECTED_KERNELS_DEPRECATED"
17902	//   "MISSING_TYPE_DEPENDENCY"
17903	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17904	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17905	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17906	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17907	//   "NEXT_HOP_NOT_RUNNING"
17908	//   "NOT_CRITICAL_ERROR"
17909	//   "NO_RESULTS_ON_PAGE"
17910	//   "REQUIRED_TOS_AGREEMENT"
17911	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17912	//   "RESOURCE_NOT_DELETED"
17913	//   "SCHEMA_VALIDATION_IGNORED"
17914	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17915	//   "UNDECLARED_PROPERTIES"
17916	//   "UNREACHABLE"
17917	Code string `json:"code,omitempty"`
17918
17919	// Data: [Output Only] Metadata about this warning in key: value format.
17920	// For example:
17921	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17922	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
17923
17924	// Message: [Output Only] A human-readable description of the warning
17925	// code.
17926	Message string `json:"message,omitempty"`
17927
17928	// ForceSendFields is a list of field names (e.g. "Code") to
17929	// unconditionally include in API requests. By default, fields with
17930	// empty values are omitted from API requests. However, any non-pointer,
17931	// non-interface field appearing in ForceSendFields will be sent to the
17932	// server regardless of whether the field is empty or not. This may be
17933	// used to include empty fields in Patch requests.
17934	ForceSendFields []string `json:"-"`
17935
17936	// NullFields is a list of field names (e.g. "Code") to include in API
17937	// requests with the JSON null value. By default, fields with empty
17938	// values are omitted from API requests. However, any field with an
17939	// empty value appearing in NullFields will be sent to the server as
17940	// null. It is an error if a field in this list has a non-empty value.
17941	// This may be used to include null fields in Patch requests.
17942	NullFields []string `json:"-"`
17943}
17944
17945func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
17946	type NoMethod InstancesScopedListWarning
17947	raw := NoMethod(*s)
17948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17949}
17950
17951type InstancesScopedListWarningData struct {
17952	// Key: [Output Only] A key that provides more detail on the warning
17953	// being returned. For example, for warnings where there are no results
17954	// in a list request for a particular zone, this key might be scope and
17955	// the key value might be the zone name. Other examples might be a key
17956	// indicating a deprecated resource and a suggested replacement, or a
17957	// warning about invalid network settings (for example, if an instance
17958	// attempts to perform IP forwarding but is not enabled for IP
17959	// forwarding).
17960	Key string `json:"key,omitempty"`
17961
17962	// Value: [Output Only] A warning data value corresponding to the key.
17963	Value string `json:"value,omitempty"`
17964
17965	// ForceSendFields is a list of field names (e.g. "Key") to
17966	// unconditionally include in API requests. By default, fields with
17967	// empty values are omitted from API requests. However, any non-pointer,
17968	// non-interface field appearing in ForceSendFields will be sent to the
17969	// server regardless of whether the field is empty or not. This may be
17970	// used to include empty fields in Patch requests.
17971	ForceSendFields []string `json:"-"`
17972
17973	// NullFields is a list of field names (e.g. "Key") to include in API
17974	// requests with the JSON null value. By default, fields with empty
17975	// values are omitted from API requests. However, any field with an
17976	// empty value appearing in NullFields will be sent to the server as
17977	// null. It is an error if a field in this list has a non-empty value.
17978	// This may be used to include null fields in Patch requests.
17979	NullFields []string `json:"-"`
17980}
17981
17982func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
17983	type NoMethod InstancesScopedListWarningData
17984	raw := NoMethod(*s)
17985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17986}
17987
17988type InstancesSetLabelsRequest struct {
17989	// LabelFingerprint: Fingerprint of the previous set of labels for this
17990	// resource, used to prevent conflicts. Provide the latest fingerprint
17991	// value when making a request to add or change labels.
17992	LabelFingerprint string `json:"labelFingerprint,omitempty"`
17993
17994	Labels map[string]string `json:"labels,omitempty"`
17995
17996	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
17997	// unconditionally include in API requests. By default, fields with
17998	// empty values are omitted from API requests. However, any non-pointer,
17999	// non-interface field appearing in ForceSendFields will be sent to the
18000	// server regardless of whether the field is empty or not. This may be
18001	// used to include empty fields in Patch requests.
18002	ForceSendFields []string `json:"-"`
18003
18004	// NullFields is a list of field names (e.g. "LabelFingerprint") to
18005	// include in API requests with the JSON null value. By default, fields
18006	// with empty values are omitted from API requests. However, any field
18007	// with an empty value appearing in NullFields will be sent to the
18008	// server as null. It is an error if a field in this list has a
18009	// non-empty value. This may be used to include null fields in Patch
18010	// requests.
18011	NullFields []string `json:"-"`
18012}
18013
18014func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
18015	type NoMethod InstancesSetLabelsRequest
18016	raw := NoMethod(*s)
18017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18018}
18019
18020type InstancesSetMachineResourcesRequest struct {
18021	// GuestAccelerators: A list of the type and count of accelerator cards
18022	// attached to the instance.
18023	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
18024
18025	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
18026	// to unconditionally include in API requests. By default, fields with
18027	// empty values are omitted from API requests. However, any non-pointer,
18028	// non-interface field appearing in ForceSendFields will be sent to the
18029	// server regardless of whether the field is empty or not. This may be
18030	// used to include empty fields in Patch requests.
18031	ForceSendFields []string `json:"-"`
18032
18033	// NullFields is a list of field names (e.g. "GuestAccelerators") to
18034	// include in API requests with the JSON null value. By default, fields
18035	// with empty values are omitted from API requests. However, any field
18036	// with an empty value appearing in NullFields will be sent to the
18037	// server as null. It is an error if a field in this list has a
18038	// non-empty value. This may be used to include null fields in Patch
18039	// requests.
18040	NullFields []string `json:"-"`
18041}
18042
18043func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
18044	type NoMethod InstancesSetMachineResourcesRequest
18045	raw := NoMethod(*s)
18046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18047}
18048
18049type InstancesSetMachineTypeRequest struct {
18050	// MachineType: Full or partial URL of the machine type resource. See
18051	// Machine Types for a full list of machine types. For example:
18052	// zones/us-central1-f/machineTypes/n1-standard-1
18053	MachineType string `json:"machineType,omitempty"`
18054
18055	// ForceSendFields is a list of field names (e.g. "MachineType") to
18056	// unconditionally include in API requests. By default, fields with
18057	// empty values are omitted from API requests. However, any non-pointer,
18058	// non-interface field appearing in ForceSendFields will be sent to the
18059	// server regardless of whether the field is empty or not. This may be
18060	// used to include empty fields in Patch requests.
18061	ForceSendFields []string `json:"-"`
18062
18063	// NullFields is a list of field names (e.g. "MachineType") to include
18064	// in API requests with the JSON null value. By default, fields with
18065	// empty values are omitted from API requests. However, any field with
18066	// an empty value appearing in NullFields will be sent to the server as
18067	// null. It is an error if a field in this list has a non-empty value.
18068	// This may be used to include null fields in Patch requests.
18069	NullFields []string `json:"-"`
18070}
18071
18072func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
18073	type NoMethod InstancesSetMachineTypeRequest
18074	raw := NoMethod(*s)
18075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18076}
18077
18078type InstancesSetMinCpuPlatformRequest struct {
18079	// MinCpuPlatform: Minimum cpu/platform this instance should be started
18080	// at.
18081	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
18082
18083	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
18084	// unconditionally include in API requests. By default, fields with
18085	// empty values are omitted from API requests. However, any non-pointer,
18086	// non-interface field appearing in ForceSendFields will be sent to the
18087	// server regardless of whether the field is empty or not. This may be
18088	// used to include empty fields in Patch requests.
18089	ForceSendFields []string `json:"-"`
18090
18091	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
18092	// include in API requests with the JSON null value. By default, fields
18093	// with empty values are omitted from API requests. However, any field
18094	// with an empty value appearing in NullFields will be sent to the
18095	// server as null. It is an error if a field in this list has a
18096	// non-empty value. This may be used to include null fields in Patch
18097	// requests.
18098	NullFields []string `json:"-"`
18099}
18100
18101func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
18102	type NoMethod InstancesSetMinCpuPlatformRequest
18103	raw := NoMethod(*s)
18104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18105}
18106
18107type InstancesSetServiceAccountRequest struct {
18108	// Email: Email address of the service account.
18109	Email string `json:"email,omitempty"`
18110
18111	// Scopes: The list of scopes to be made available for this service
18112	// account.
18113	Scopes []string `json:"scopes,omitempty"`
18114
18115	// ForceSendFields is a list of field names (e.g. "Email") to
18116	// unconditionally include in API requests. By default, fields with
18117	// empty values are omitted from API requests. However, any non-pointer,
18118	// non-interface field appearing in ForceSendFields will be sent to the
18119	// server regardless of whether the field is empty or not. This may be
18120	// used to include empty fields in Patch requests.
18121	ForceSendFields []string `json:"-"`
18122
18123	// NullFields is a list of field names (e.g. "Email") to include in API
18124	// requests with the JSON null value. By default, fields with empty
18125	// values are omitted from API requests. However, any field with an
18126	// empty value appearing in NullFields will be sent to the server as
18127	// null. It is an error if a field in this list has a non-empty value.
18128	// This may be used to include null fields in Patch requests.
18129	NullFields []string `json:"-"`
18130}
18131
18132func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
18133	type NoMethod InstancesSetServiceAccountRequest
18134	raw := NoMethod(*s)
18135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18136}
18137
18138type InstancesStartWithEncryptionKeyRequest struct {
18139	// Disks: Array of disks associated with this instance that are
18140	// protected with a customer-supplied encryption key.
18141	//
18142	// In order to start the instance, the disk url and its corresponding
18143	// key must be provided.
18144	//
18145	// If the disk is not protected with a customer-supplied encryption key
18146	// it should not be specified.
18147	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
18148
18149	// ForceSendFields is a list of field names (e.g. "Disks") to
18150	// unconditionally include in API requests. By default, fields with
18151	// empty values are omitted from API requests. However, any non-pointer,
18152	// non-interface field appearing in ForceSendFields will be sent to the
18153	// server regardless of whether the field is empty or not. This may be
18154	// used to include empty fields in Patch requests.
18155	ForceSendFields []string `json:"-"`
18156
18157	// NullFields is a list of field names (e.g. "Disks") to include in API
18158	// requests with the JSON null value. By default, fields with empty
18159	// values are omitted from API requests. However, any field with an
18160	// empty value appearing in NullFields will be sent to the server as
18161	// null. It is an error if a field in this list has a non-empty value.
18162	// This may be used to include null fields in Patch requests.
18163	NullFields []string `json:"-"`
18164}
18165
18166func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
18167	type NoMethod InstancesStartWithEncryptionKeyRequest
18168	raw := NoMethod(*s)
18169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18170}
18171
18172// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
18173// must stay within the specified integer range.
18174type Int64RangeMatch struct {
18175	// RangeEnd: The end of the range (exclusive) in signed long integer
18176	// format.
18177	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
18178
18179	// RangeStart: The start of the range (inclusive) in signed long integer
18180	// format.
18181	RangeStart int64 `json:"rangeStart,omitempty,string"`
18182
18183	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
18184	// unconditionally include in API requests. By default, fields with
18185	// empty values are omitted from API requests. However, any non-pointer,
18186	// non-interface field appearing in ForceSendFields will be sent to the
18187	// server regardless of whether the field is empty or not. This may be
18188	// used to include empty fields in Patch requests.
18189	ForceSendFields []string `json:"-"`
18190
18191	// NullFields is a list of field names (e.g. "RangeEnd") to include in
18192	// API requests with the JSON null value. By default, fields with empty
18193	// values are omitted from API requests. However, any field with an
18194	// empty value appearing in NullFields will be sent to the server as
18195	// null. It is an error if a field in this list has a non-empty value.
18196	// This may be used to include null fields in Patch requests.
18197	NullFields []string `json:"-"`
18198}
18199
18200func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
18201	type NoMethod Int64RangeMatch
18202	raw := NoMethod(*s)
18203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18204}
18205
18206// Interconnect: Represents an Interconnect resource.
18207//
18208// An Interconnect resource is a dedicated connection between the GCP
18209// network and your on-premises network. For more information, read the
18210// Dedicated Interconnect Overview. (== resource_for
18211// {$api_version}.interconnects ==)
18212type Interconnect struct {
18213	// AdminEnabled: Administrative status of the interconnect. When this is
18214	// set to true, the Interconnect is functional and can carry traffic.
18215	// When set to false, no packets can be carried over the interconnect
18216	// and no BGP routes are exchanged over it. By default, the status is
18217	// set to true.
18218	AdminEnabled bool `json:"adminEnabled,omitempty"`
18219
18220	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
18221	// describe the individual circuits in this LAG.
18222	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
18223
18224	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18225	// format.
18226	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18227
18228	// CustomerName: Customer name, to put in the Letter of Authorization as
18229	// the party authorized to request a crossconnect.
18230	CustomerName string `json:"customerName,omitempty"`
18231
18232	// Description: An optional description of this resource. Provide this
18233	// property when you create the resource.
18234	Description string `json:"description,omitempty"`
18235
18236	// ExpectedOutages: [Output Only] A list of outages expected for this
18237	// Interconnect.
18238	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
18239
18240	// GoogleIpAddress: [Output Only] IP address configured on the Google
18241	// side of the Interconnect link. This can be used only for ping tests.
18242	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
18243
18244	// GoogleReferenceId: [Output Only] Google reference ID to be used when
18245	// raising support tickets with Google or otherwise to debug backend
18246	// connectivity issues.
18247	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
18248
18249	// Id: [Output Only] The unique identifier for the resource. This
18250	// identifier is defined by the server.
18251	Id uint64 `json:"id,omitempty,string"`
18252
18253	// InterconnectAttachments: [Output Only] A list of the URLs of all
18254	// InterconnectAttachments configured to use this Interconnect.
18255	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
18256
18257	// InterconnectType: Type of interconnect, which can take one of the
18258	// following values:
18259	// - PARTNER: A partner-managed interconnection shared between customers
18260	// though a partner.
18261	// - DEDICATED: A dedicated physical interconnection with the customer.
18262	// Note that a value IT_PRIVATE has been deprecated in favor of
18263	// DEDICATED.
18264	//
18265	// Possible values:
18266	//   "DEDICATED"
18267	//   "IT_PRIVATE"
18268	//   "PARTNER"
18269	InterconnectType string `json:"interconnectType,omitempty"`
18270
18271	// Kind: [Output Only] Type of the resource. Always compute#interconnect
18272	// for interconnects.
18273	Kind string `json:"kind,omitempty"`
18274
18275	// LabelFingerprint: A fingerprint for the labels being applied to this
18276	// Interconnect, which is essentially a hash of the labels set used for
18277	// optimistic locking. The fingerprint is initially generated by Compute
18278	// Engine and changes after every request to modify or update labels.
18279	// You must always provide an up-to-date fingerprint hash in order to
18280	// update or change labels, otherwise the request will fail with error
18281	// 412 conditionNotMet.
18282	//
18283	// To see the latest fingerprint, make a get() request to retrieve an
18284	// Interconnect.
18285	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18286
18287	// Labels: Labels for this resource. These can only be added or modified
18288	// by the setLabels method. Each label key/value pair must comply with
18289	// RFC1035. Label values may be empty.
18290	Labels map[string]string `json:"labels,omitempty"`
18291
18292	// LinkType: Type of link requested, which can take one of the following
18293	// values:
18294	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
18295	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
18296	// that this field indicates the speed of each of the links in the
18297	// bundle, not the speed of the entire bundle.
18298	//
18299	// Possible values:
18300	//   "LINK_TYPE_ETHERNET_100G_LR"
18301	//   "LINK_TYPE_ETHERNET_10G_LR"
18302	LinkType string `json:"linkType,omitempty"`
18303
18304	// Location: URL of the InterconnectLocation object that represents
18305	// where this connection is to be provisioned.
18306	Location string `json:"location,omitempty"`
18307
18308	// Name: Name of the resource. Provided by the client when the resource
18309	// is created. The name must be 1-63 characters long, and comply with
18310	// RFC1035. Specifically, the name must be 1-63 characters long and
18311	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18312	// the first character must be a lowercase letter, and all following
18313	// characters must be a dash, lowercase letter, or digit, except the
18314	// last character, which cannot be a dash.
18315	Name string `json:"name,omitempty"`
18316
18317	// NocContactEmail: Email address to contact the customer NOC for
18318	// operations and maintenance notifications regarding this Interconnect.
18319	// If specified, this will be used for notifications in addition to all
18320	// other forms described, such as Stackdriver logs alerting and Cloud
18321	// Notifications.
18322	NocContactEmail string `json:"nocContactEmail,omitempty"`
18323
18324	// OperationalStatus: [Output Only] The current status of this
18325	// Interconnect's functionality, which can take one of the following
18326	// values:
18327	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
18328	// use. Attachments may be provisioned on this Interconnect.
18329	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
18330	// attachments may be provisioned on this Interconnect.
18331	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
18332	// maintenance. No attachments may be provisioned or updated on this
18333	// Interconnect.
18334	//
18335	// Possible values:
18336	//   "OS_ACTIVE"
18337	//   "OS_UNPROVISIONED"
18338	OperationalStatus string `json:"operationalStatus,omitempty"`
18339
18340	// PeerIpAddress: [Output Only] IP address configured on the customer
18341	// side of the Interconnect link. The customer should configure this IP
18342	// address during turnup when prompted by Google NOC. This can be used
18343	// only for ping tests.
18344	PeerIpAddress string `json:"peerIpAddress,omitempty"`
18345
18346	// ProvisionedLinkCount: [Output Only] Number of links actually
18347	// provisioned in this interconnect.
18348	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
18349
18350	// RequestedLinkCount: Target number of physical links in the link
18351	// bundle, as requested by the customer.
18352	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
18353
18354	// SelfLink: [Output Only] Server-defined URL for the resource.
18355	SelfLink string `json:"selfLink,omitempty"`
18356
18357	// State: [Output Only] The current state of Interconnect functionality,
18358	// which can take one of the following values:
18359	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
18360	// Attachments may be provisioned on this Interconnect.
18361	// - UNPROVISIONED: The Interconnect has not completed turnup. No
18362	// attachments may be provisioned on this Interconnect.
18363	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
18364	// maintenance. No attachments may be provisioned or updated on this
18365	// Interconnect.
18366	//
18367	// Possible values:
18368	//   "ACTIVE"
18369	//   "UNPROVISIONED"
18370	State string `json:"state,omitempty"`
18371
18372	// ServerResponse contains the HTTP response code and headers from the
18373	// server.
18374	googleapi.ServerResponse `json:"-"`
18375
18376	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
18377	// unconditionally include in API requests. By default, fields with
18378	// empty values are omitted from API requests. However, any non-pointer,
18379	// non-interface field appearing in ForceSendFields will be sent to the
18380	// server regardless of whether the field is empty or not. This may be
18381	// used to include empty fields in Patch requests.
18382	ForceSendFields []string `json:"-"`
18383
18384	// NullFields is a list of field names (e.g. "AdminEnabled") to include
18385	// in API requests with the JSON null value. By default, fields with
18386	// empty values are omitted from API requests. However, any field with
18387	// an empty value appearing in NullFields will be sent to the server as
18388	// null. It is an error if a field in this list has a non-empty value.
18389	// This may be used to include null fields in Patch requests.
18390	NullFields []string `json:"-"`
18391}
18392
18393func (s *Interconnect) MarshalJSON() ([]byte, error) {
18394	type NoMethod Interconnect
18395	raw := NoMethod(*s)
18396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18397}
18398
18399// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
18400// resource.
18401//
18402// You can use Interconnect attachments (VLANS) to connect your Virtual
18403// Private Cloud networks to your on-premises networks through an
18404// Interconnect. For more information, read  Creating VLAN Attachments.
18405// (== resource_for {$api_version}.interconnectAttachments ==)
18406type InterconnectAttachment struct {
18407	// AdminEnabled: Determines whether this Attachment will carry packets.
18408	// Not present for PARTNER_PROVIDER.
18409	AdminEnabled bool `json:"adminEnabled,omitempty"`
18410
18411	// Bandwidth: Provisioned bandwidth capacity for the interconnect
18412	// attachment. For attachments of type DEDICATED, the user can set the
18413	// bandwidth. For attachments of type PARTNER, the Google Partner that
18414	// is operating the interconnect must set the bandwidth. Output only for
18415	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
18416	// take one of the following values:
18417	// - BPS_50M: 50 Mbit/s
18418	// - BPS_100M: 100 Mbit/s
18419	// - BPS_200M: 200 Mbit/s
18420	// - BPS_300M: 300 Mbit/s
18421	// - BPS_400M: 400 Mbit/s
18422	// - BPS_500M: 500 Mbit/s
18423	// - BPS_1G: 1 Gbit/s
18424	// - BPS_2G: 2 Gbit/s
18425	// - BPS_5G: 5 Gbit/s
18426	// - BPS_10G: 10 Gbit/s
18427	// - BPS_20G: 20 Gbit/s
18428	// - BPS_50G: 50 Gbit/s
18429	//
18430	// Possible values:
18431	//   "BPS_100M"
18432	//   "BPS_10G"
18433	//   "BPS_1G"
18434	//   "BPS_200M"
18435	//   "BPS_20G"
18436	//   "BPS_2G"
18437	//   "BPS_300M"
18438	//   "BPS_400M"
18439	//   "BPS_500M"
18440	//   "BPS_50G"
18441	//   "BPS_50M"
18442	//   "BPS_5G"
18443	Bandwidth string `json:"bandwidth,omitempty"`
18444
18445	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
18446	// restrict the allocation of cloudRouterIpAddress and
18447	// customerRouterIpAddress for this attachment. All prefixes must be
18448	// within link-local address space (169.254.0.0/16) and must be /29 or
18449	// shorter (/28, /27, etc). Google will attempt to select an unused /29
18450	// from the supplied candidate prefix(es). The request will fail if all
18451	// possible /29s are in use on Google's edge. If not supplied, Google
18452	// will randomly select an unused /29 from all of link-local space.
18453	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
18454
18455	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
18456	// be configured on Cloud Router Interface for this interconnect
18457	// attachment.
18458	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
18459
18460	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18461	// format.
18462	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18463
18464	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
18465	// to be configured on the customer router subinterface for this
18466	// interconnect attachment.
18467	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
18468
18469	// Description: An optional description of this resource.
18470	Description string `json:"description,omitempty"`
18471
18472	// EdgeAvailabilityDomain: Desired availability domain for the
18473	// attachment. Only available for type PARTNER, at creation time, and
18474	// can take one of the following values:
18475	// - AVAILABILITY_DOMAIN_ANY
18476	// - AVAILABILITY_DOMAIN_1
18477	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
18478	// configure a pair of attachments, one per availability domain. The
18479	// selected availability domain will be provided to the Partner via the
18480	// pairing key, so that the provisioned circuit will lie in the
18481	// specified domain. If not specified, the value will default to
18482	// AVAILABILITY_DOMAIN_ANY.
18483	//
18484	// Possible values:
18485	//   "AVAILABILITY_DOMAIN_1"
18486	//   "AVAILABILITY_DOMAIN_2"
18487	//   "AVAILABILITY_DOMAIN_ANY"
18488	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
18489
18490	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
18491	// raising support tickets with Google or otherwise to debug backend
18492	// connectivity issues. [Deprecated] This field is not used.
18493	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
18494
18495	// Id: [Output Only] The unique identifier for the resource. This
18496	// identifier is defined by the server.
18497	Id uint64 `json:"id,omitempty,string"`
18498
18499	// Interconnect: URL of the underlying Interconnect object that this
18500	// attachment's traffic will traverse through.
18501	Interconnect string `json:"interconnect,omitempty"`
18502
18503	// Kind: [Output Only] Type of the resource. Always
18504	// compute#interconnectAttachment for interconnect attachments.
18505	Kind string `json:"kind,omitempty"`
18506
18507	// LabelFingerprint: A fingerprint for the labels being applied to this
18508	// InterconnectAttachment, which is essentially a hash of the labels set
18509	// used for optimistic locking. The fingerprint is initially generated
18510	// by Compute Engine and changes after every request to modify or update
18511	// labels. You must always provide an up-to-date fingerprint hash in
18512	// order to update or change labels, otherwise the request will fail
18513	// with error 412 conditionNotMet.
18514	//
18515	// To see the latest fingerprint, make a get() request to retrieve an
18516	// InterconnectAttachment.
18517	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18518
18519	// Labels: Labels for this resource. These can only be added or modified
18520	// by the setLabels method. Each label key/value pair must comply with
18521	// RFC1035. Label values may be empty.
18522	Labels map[string]string `json:"labels,omitempty"`
18523
18524	// Name: Name of the resource. Provided by the client when the resource
18525	// is created. The name must be 1-63 characters long, and comply with
18526	// RFC1035. Specifically, the name must be 1-63 characters long and
18527	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18528	// the first character must be a lowercase letter, and all following
18529	// characters must be a dash, lowercase letter, or digit, except the
18530	// last character, which cannot be a dash.
18531	Name string `json:"name,omitempty"`
18532
18533	// OperationalStatus: [Output Only] The current status of whether or not
18534	// this interconnect attachment is functional, which can take one of the
18535	// following values:
18536	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
18537	//
18538	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
18539	// turnup is not complete.
18540	//
18541	// Possible values:
18542	//   "OS_ACTIVE"
18543	//   "OS_UNPROVISIONED"
18544	OperationalStatus string `json:"operationalStatus,omitempty"`
18545
18546	// PairingKey: [Output only for type PARTNER. Input only for
18547	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
18548	// of an PARTNER attachment used to initiate provisioning with a
18549	// selected partner. Of the form "XXXXX/region/domain"
18550	PairingKey string `json:"pairingKey,omitempty"`
18551
18552	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
18553	// Partner if they configured BGP on behalf of the customer. Output only
18554	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
18555	// DEDICATED.
18556	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
18557
18558	// PartnerMetadata: Informational metadata about Partner attachments
18559	// from Partners to display to customers. Output only for for PARTNER
18560	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
18561	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
18562
18563	// PrivateInterconnectInfo: [Output Only] Information specific to an
18564	// InterconnectAttachment. This property is populated if the
18565	// interconnect that this is attached to is of type DEDICATED.
18566	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
18567
18568	// Region: [Output Only] URL of the region where the regional
18569	// interconnect attachment resides. You must specify this field as part
18570	// of the HTTP request URL. It is not settable as a field in the request
18571	// body.
18572	Region string `json:"region,omitempty"`
18573
18574	// Router: URL of the Cloud Router to be used for dynamic routing. This
18575	// router must be in the same region as this InterconnectAttachment. The
18576	// InterconnectAttachment will automatically connect the Interconnect to
18577	// the network & region within which the Cloud Router is configured.
18578	Router string `json:"router,omitempty"`
18579
18580	// SelfLink: [Output Only] Server-defined URL for the resource.
18581	SelfLink string `json:"selfLink,omitempty"`
18582
18583	// State: [Output Only] The current state of this attachment's
18584	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
18585	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
18586	// attachments, while enum values PENDING_PARTNER,
18587	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
18588	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
18589	// take one of the following values:
18590	// - ACTIVE: The attachment has been turned up and is ready to use.
18591	// - UNPROVISIONED: The attachment is not ready to use yet, because
18592	// turnup is not complete.
18593	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
18594	// yet been configured on the Partner side.
18595	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
18596	// provisioning after a PARTNER_PROVIDER attachment was created that
18597	// references it.
18598	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
18599	// waiting for a customer to activate it.
18600	// - DEFUNCT: The attachment was deleted externally and is no longer
18601	// functional. This could be because the associated Interconnect was
18602	// removed, or because the other side of a Partner attachment was
18603	// deleted.
18604	//
18605	// Possible values:
18606	//   "ACTIVE"
18607	//   "DEFUNCT"
18608	//   "PARTNER_REQUEST_RECEIVED"
18609	//   "PENDING_CUSTOMER"
18610	//   "PENDING_PARTNER"
18611	//   "STATE_UNSPECIFIED"
18612	//   "UNPROVISIONED"
18613	State string `json:"state,omitempty"`
18614
18615	// Type: The type of interconnect attachment this is, which can take one
18616	// of the following values:
18617	// - DEDICATED: an attachment to a Dedicated Interconnect.
18618	// - PARTNER: an attachment to a Partner Interconnect, created by the
18619	// customer.
18620	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
18621	// by the partner.
18622	//
18623	// Possible values:
18624	//   "DEDICATED"
18625	//   "PARTNER"
18626	//   "PARTNER_PROVIDER"
18627	Type string `json:"type,omitempty"`
18628
18629	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
18630	// range 2-4094. Only specified at creation time.
18631	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
18632
18633	// ServerResponse contains the HTTP response code and headers from the
18634	// server.
18635	googleapi.ServerResponse `json:"-"`
18636
18637	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
18638	// unconditionally include in API requests. By default, fields with
18639	// empty values are omitted from API requests. However, any non-pointer,
18640	// non-interface field appearing in ForceSendFields will be sent to the
18641	// server regardless of whether the field is empty or not. This may be
18642	// used to include empty fields in Patch requests.
18643	ForceSendFields []string `json:"-"`
18644
18645	// NullFields is a list of field names (e.g. "AdminEnabled") to include
18646	// in API requests with the JSON null value. By default, fields with
18647	// empty values are omitted from API requests. However, any field with
18648	// an empty value appearing in NullFields will be sent to the server as
18649	// null. It is an error if a field in this list has a non-empty value.
18650	// This may be used to include null fields in Patch requests.
18651	NullFields []string `json:"-"`
18652}
18653
18654func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
18655	type NoMethod InterconnectAttachment
18656	raw := NoMethod(*s)
18657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18658}
18659
18660type InterconnectAttachmentAggregatedList struct {
18661	// Id: [Output Only] Unique identifier for the resource; defined by the
18662	// server.
18663	Id string `json:"id,omitempty"`
18664
18665	// Items: A list of InterconnectAttachmentsScopedList resources.
18666	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
18667
18668	// Kind: [Output Only] Type of resource. Always
18669	// compute#interconnectAttachmentAggregatedList for aggregated lists of
18670	// interconnect attachments.
18671	Kind string `json:"kind,omitempty"`
18672
18673	// NextPageToken: [Output Only] This token allows you to get the next
18674	// page of results for list requests. If the number of results is larger
18675	// than maxResults, use the nextPageToken as a value for the query
18676	// parameter pageToken in the next list request. Subsequent list
18677	// requests will have their own nextPageToken to continue paging through
18678	// the results.
18679	NextPageToken string `json:"nextPageToken,omitempty"`
18680
18681	// SelfLink: [Output Only] Server-defined URL for this resource.
18682	SelfLink string `json:"selfLink,omitempty"`
18683
18684	// Warning: [Output Only] Informational warning message.
18685	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
18686
18687	// ServerResponse contains the HTTP response code and headers from the
18688	// server.
18689	googleapi.ServerResponse `json:"-"`
18690
18691	// ForceSendFields is a list of field names (e.g. "Id") to
18692	// unconditionally include in API requests. By default, fields with
18693	// empty values are omitted from API requests. However, any non-pointer,
18694	// non-interface field appearing in ForceSendFields will be sent to the
18695	// server regardless of whether the field is empty or not. This may be
18696	// used to include empty fields in Patch requests.
18697	ForceSendFields []string `json:"-"`
18698
18699	// NullFields is a list of field names (e.g. "Id") to include in API
18700	// requests with the JSON null value. By default, fields with empty
18701	// values are omitted from API requests. However, any field with an
18702	// empty value appearing in NullFields will be sent to the server as
18703	// null. It is an error if a field in this list has a non-empty value.
18704	// This may be used to include null fields in Patch requests.
18705	NullFields []string `json:"-"`
18706}
18707
18708func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
18709	type NoMethod InterconnectAttachmentAggregatedList
18710	raw := NoMethod(*s)
18711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18712}
18713
18714// InterconnectAttachmentAggregatedListWarning: [Output Only]
18715// Informational warning message.
18716type InterconnectAttachmentAggregatedListWarning struct {
18717	// Code: [Output Only] A warning code, if applicable. For example,
18718	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18719	// the response.
18720	//
18721	// Possible values:
18722	//   "CLEANUP_FAILED"
18723	//   "DEPRECATED_RESOURCE_USED"
18724	//   "DEPRECATED_TYPE_USED"
18725	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18726	//   "EXPERIMENTAL_TYPE_USED"
18727	//   "EXTERNAL_API_WARNING"
18728	//   "FIELD_VALUE_OVERRIDEN"
18729	//   "INJECTED_KERNELS_DEPRECATED"
18730	//   "MISSING_TYPE_DEPENDENCY"
18731	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18732	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18733	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18734	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18735	//   "NEXT_HOP_NOT_RUNNING"
18736	//   "NOT_CRITICAL_ERROR"
18737	//   "NO_RESULTS_ON_PAGE"
18738	//   "REQUIRED_TOS_AGREEMENT"
18739	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18740	//   "RESOURCE_NOT_DELETED"
18741	//   "SCHEMA_VALIDATION_IGNORED"
18742	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18743	//   "UNDECLARED_PROPERTIES"
18744	//   "UNREACHABLE"
18745	Code string `json:"code,omitempty"`
18746
18747	// Data: [Output Only] Metadata about this warning in key: value format.
18748	// For example:
18749	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18750	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
18751
18752	// Message: [Output Only] A human-readable description of the warning
18753	// code.
18754	Message string `json:"message,omitempty"`
18755
18756	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
18774	type NoMethod InterconnectAttachmentAggregatedListWarning
18775	raw := NoMethod(*s)
18776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18777}
18778
18779type InterconnectAttachmentAggregatedListWarningData struct {
18780	// Key: [Output Only] A key that provides more detail on the warning
18781	// being returned. For example, for warnings where there are no results
18782	// in a list request for a particular zone, this key might be scope and
18783	// the key value might be the zone name. Other examples might be a key
18784	// indicating a deprecated resource and a suggested replacement, or a
18785	// warning about invalid network settings (for example, if an instance
18786	// attempts to perform IP forwarding but is not enabled for IP
18787	// forwarding).
18788	Key string `json:"key,omitempty"`
18789
18790	// Value: [Output Only] A warning data value corresponding to the key.
18791	Value string `json:"value,omitempty"`
18792
18793	// ForceSendFields is a list of field names (e.g. "Key") to
18794	// unconditionally include in API requests. By default, fields with
18795	// empty values are omitted from API requests. However, any non-pointer,
18796	// non-interface field appearing in ForceSendFields will be sent to the
18797	// server regardless of whether the field is empty or not. This may be
18798	// used to include empty fields in Patch requests.
18799	ForceSendFields []string `json:"-"`
18800
18801	// NullFields is a list of field names (e.g. "Key") to include in API
18802	// requests with the JSON null value. By default, fields with empty
18803	// values are omitted from API requests. However, any field with an
18804	// empty value appearing in NullFields will be sent to the server as
18805	// null. It is an error if a field in this list has a non-empty value.
18806	// This may be used to include null fields in Patch requests.
18807	NullFields []string `json:"-"`
18808}
18809
18810func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
18811	type NoMethod InterconnectAttachmentAggregatedListWarningData
18812	raw := NoMethod(*s)
18813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18814}
18815
18816// InterconnectAttachmentList: Response to the list request, and
18817// contains a list of interconnect attachments.
18818type InterconnectAttachmentList struct {
18819	// Id: [Output Only] Unique identifier for the resource; defined by the
18820	// server.
18821	Id string `json:"id,omitempty"`
18822
18823	// Items: A list of InterconnectAttachment resources.
18824	Items []*InterconnectAttachment `json:"items,omitempty"`
18825
18826	// Kind: [Output Only] Type of resource. Always
18827	// compute#interconnectAttachmentList for lists of interconnect
18828	// attachments.
18829	Kind string `json:"kind,omitempty"`
18830
18831	// NextPageToken: [Output Only] This token allows you to get the next
18832	// page of results for list requests. If the number of results is larger
18833	// than maxResults, use the nextPageToken as a value for the query
18834	// parameter pageToken in the next list request. Subsequent list
18835	// requests will have their own nextPageToken to continue paging through
18836	// the results.
18837	NextPageToken string `json:"nextPageToken,omitempty"`
18838
18839	// SelfLink: [Output Only] Server-defined URL for this resource.
18840	SelfLink string `json:"selfLink,omitempty"`
18841
18842	// Warning: [Output Only] Informational warning message.
18843	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
18844
18845	// ServerResponse contains the HTTP response code and headers from the
18846	// server.
18847	googleapi.ServerResponse `json:"-"`
18848
18849	// ForceSendFields is a list of field names (e.g. "Id") to
18850	// unconditionally include in API requests. By default, fields with
18851	// empty values are omitted from API requests. However, any non-pointer,
18852	// non-interface field appearing in ForceSendFields will be sent to the
18853	// server regardless of whether the field is empty or not. This may be
18854	// used to include empty fields in Patch requests.
18855	ForceSendFields []string `json:"-"`
18856
18857	// NullFields is a list of field names (e.g. "Id") to include in API
18858	// requests with the JSON null value. By default, fields with empty
18859	// values are omitted from API requests. However, any field with an
18860	// empty value appearing in NullFields will be sent to the server as
18861	// null. It is an error if a field in this list has a non-empty value.
18862	// This may be used to include null fields in Patch requests.
18863	NullFields []string `json:"-"`
18864}
18865
18866func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
18867	type NoMethod InterconnectAttachmentList
18868	raw := NoMethod(*s)
18869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18870}
18871
18872// InterconnectAttachmentListWarning: [Output Only] Informational
18873// warning message.
18874type InterconnectAttachmentListWarning struct {
18875	// Code: [Output Only] A warning code, if applicable. For example,
18876	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18877	// the response.
18878	//
18879	// Possible values:
18880	//   "CLEANUP_FAILED"
18881	//   "DEPRECATED_RESOURCE_USED"
18882	//   "DEPRECATED_TYPE_USED"
18883	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18884	//   "EXPERIMENTAL_TYPE_USED"
18885	//   "EXTERNAL_API_WARNING"
18886	//   "FIELD_VALUE_OVERRIDEN"
18887	//   "INJECTED_KERNELS_DEPRECATED"
18888	//   "MISSING_TYPE_DEPENDENCY"
18889	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18890	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18891	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18892	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18893	//   "NEXT_HOP_NOT_RUNNING"
18894	//   "NOT_CRITICAL_ERROR"
18895	//   "NO_RESULTS_ON_PAGE"
18896	//   "REQUIRED_TOS_AGREEMENT"
18897	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18898	//   "RESOURCE_NOT_DELETED"
18899	//   "SCHEMA_VALIDATION_IGNORED"
18900	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18901	//   "UNDECLARED_PROPERTIES"
18902	//   "UNREACHABLE"
18903	Code string `json:"code,omitempty"`
18904
18905	// Data: [Output Only] Metadata about this warning in key: value format.
18906	// For example:
18907	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18908	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
18909
18910	// Message: [Output Only] A human-readable description of the warning
18911	// code.
18912	Message string `json:"message,omitempty"`
18913
18914	// ForceSendFields is a list of field names (e.g. "Code") to
18915	// unconditionally include in API requests. By default, fields with
18916	// empty values are omitted from API requests. However, any non-pointer,
18917	// non-interface field appearing in ForceSendFields will be sent to the
18918	// server regardless of whether the field is empty or not. This may be
18919	// used to include empty fields in Patch requests.
18920	ForceSendFields []string `json:"-"`
18921
18922	// NullFields is a list of field names (e.g. "Code") to include in API
18923	// requests with the JSON null value. By default, fields with empty
18924	// values are omitted from API requests. However, any field with an
18925	// empty value appearing in NullFields will be sent to the server as
18926	// null. It is an error if a field in this list has a non-empty value.
18927	// This may be used to include null fields in Patch requests.
18928	NullFields []string `json:"-"`
18929}
18930
18931func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
18932	type NoMethod InterconnectAttachmentListWarning
18933	raw := NoMethod(*s)
18934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18935}
18936
18937type InterconnectAttachmentListWarningData struct {
18938	// Key: [Output Only] A key that provides more detail on the warning
18939	// being returned. For example, for warnings where there are no results
18940	// in a list request for a particular zone, this key might be scope and
18941	// the key value might be the zone name. Other examples might be a key
18942	// indicating a deprecated resource and a suggested replacement, or a
18943	// warning about invalid network settings (for example, if an instance
18944	// attempts to perform IP forwarding but is not enabled for IP
18945	// forwarding).
18946	Key string `json:"key,omitempty"`
18947
18948	// Value: [Output Only] A warning data value corresponding to the key.
18949	Value string `json:"value,omitempty"`
18950
18951	// ForceSendFields is a list of field names (e.g. "Key") to
18952	// unconditionally include in API requests. By default, fields with
18953	// empty values are omitted from API requests. However, any non-pointer,
18954	// non-interface field appearing in ForceSendFields will be sent to the
18955	// server regardless of whether the field is empty or not. This may be
18956	// used to include empty fields in Patch requests.
18957	ForceSendFields []string `json:"-"`
18958
18959	// NullFields is a list of field names (e.g. "Key") to include in API
18960	// requests with the JSON null value. By default, fields with empty
18961	// values are omitted from API requests. However, any field with an
18962	// empty value appearing in NullFields will be sent to the server as
18963	// null. It is an error if a field in this list has a non-empty value.
18964	// This may be used to include null fields in Patch requests.
18965	NullFields []string `json:"-"`
18966}
18967
18968func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
18969	type NoMethod InterconnectAttachmentListWarningData
18970	raw := NoMethod(*s)
18971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18972}
18973
18974// InterconnectAttachmentPartnerMetadata: Informational metadata about
18975// Partner attachments from Partners to display to customers. These
18976// fields are propagated from PARTNER_PROVIDER attachments to their
18977// corresponding PARTNER attachments.
18978type InterconnectAttachmentPartnerMetadata struct {
18979	// InterconnectName: Plain text name of the Interconnect this attachment
18980	// is connected to, as displayed in the Partner's portal. For instance
18981	// "Chicago 1". This value may be validated to match approved Partner
18982	// values.
18983	InterconnectName string `json:"interconnectName,omitempty"`
18984
18985	// PartnerName: Plain text name of the Partner providing this
18986	// attachment. This value may be validated to match approved Partner
18987	// values.
18988	PartnerName string `json:"partnerName,omitempty"`
18989
18990	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
18991	// may customise this to be a deep link to the specific resource on the
18992	// Partner portal. This value may be validated to match approved Partner
18993	// values.
18994	PortalUrl string `json:"portalUrl,omitempty"`
18995
18996	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
18997	// unconditionally include in API requests. By default, fields with
18998	// empty values are omitted from API requests. However, any non-pointer,
18999	// non-interface field appearing in ForceSendFields will be sent to the
19000	// server regardless of whether the field is empty or not. This may be
19001	// used to include empty fields in Patch requests.
19002	ForceSendFields []string `json:"-"`
19003
19004	// NullFields is a list of field names (e.g. "InterconnectName") to
19005	// include in API requests with the JSON null value. By default, fields
19006	// with empty values are omitted from API requests. However, any field
19007	// with an empty value appearing in NullFields will be sent to the
19008	// server as null. It is an error if a field in this list has a
19009	// non-empty value. This may be used to include null fields in Patch
19010	// requests.
19011	NullFields []string `json:"-"`
19012}
19013
19014func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
19015	type NoMethod InterconnectAttachmentPartnerMetadata
19016	raw := NoMethod(*s)
19017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19018}
19019
19020// InterconnectAttachmentPrivateInfo: Information for an interconnect
19021// attachment when this belongs to an interconnect of type DEDICATED.
19022type InterconnectAttachmentPrivateInfo struct {
19023	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
19024	// traffic between Google and the customer, going to and from this
19025	// network and region.
19026	Tag8021q int64 `json:"tag8021q,omitempty"`
19027
19028	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
19029	// unconditionally include in API requests. By default, fields with
19030	// empty values are omitted from API requests. However, any non-pointer,
19031	// non-interface field appearing in ForceSendFields will be sent to the
19032	// server regardless of whether the field is empty or not. This may be
19033	// used to include empty fields in Patch requests.
19034	ForceSendFields []string `json:"-"`
19035
19036	// NullFields is a list of field names (e.g. "Tag8021q") to include in
19037	// API requests with the JSON null value. By default, fields with empty
19038	// values are omitted from API requests. However, any field with an
19039	// empty value appearing in NullFields will be sent to the server as
19040	// null. It is an error if a field in this list has a non-empty value.
19041	// This may be used to include null fields in Patch requests.
19042	NullFields []string `json:"-"`
19043}
19044
19045func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
19046	type NoMethod InterconnectAttachmentPrivateInfo
19047	raw := NoMethod(*s)
19048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19049}
19050
19051type InterconnectAttachmentsScopedList struct {
19052	// InterconnectAttachments: A list of interconnect attachments contained
19053	// in this scope.
19054	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
19055
19056	// Warning: Informational warning which replaces the list of addresses
19057	// when the list is empty.
19058	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
19059
19060	// ForceSendFields is a list of field names (e.g.
19061	// "InterconnectAttachments") to unconditionally include in API
19062	// requests. By default, fields with empty values are omitted from API
19063	// requests. However, any non-pointer, non-interface field appearing in
19064	// ForceSendFields will be sent to the server regardless of whether the
19065	// field is empty or not. This may be used to include empty fields in
19066	// Patch requests.
19067	ForceSendFields []string `json:"-"`
19068
19069	// NullFields is a list of field names (e.g. "InterconnectAttachments")
19070	// to include in API requests with the JSON null value. By default,
19071	// fields with empty values are omitted from API requests. However, any
19072	// field with an empty value appearing in NullFields will be sent to the
19073	// server as null. It is an error if a field in this list has a
19074	// non-empty value. This may be used to include null fields in Patch
19075	// requests.
19076	NullFields []string `json:"-"`
19077}
19078
19079func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
19080	type NoMethod InterconnectAttachmentsScopedList
19081	raw := NoMethod(*s)
19082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19083}
19084
19085// InterconnectAttachmentsScopedListWarning: Informational warning which
19086// replaces the list of addresses when the list is empty.
19087type InterconnectAttachmentsScopedListWarning struct {
19088	// Code: [Output Only] A warning code, if applicable. For example,
19089	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19090	// the response.
19091	//
19092	// Possible values:
19093	//   "CLEANUP_FAILED"
19094	//   "DEPRECATED_RESOURCE_USED"
19095	//   "DEPRECATED_TYPE_USED"
19096	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19097	//   "EXPERIMENTAL_TYPE_USED"
19098	//   "EXTERNAL_API_WARNING"
19099	//   "FIELD_VALUE_OVERRIDEN"
19100	//   "INJECTED_KERNELS_DEPRECATED"
19101	//   "MISSING_TYPE_DEPENDENCY"
19102	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19103	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19104	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19105	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19106	//   "NEXT_HOP_NOT_RUNNING"
19107	//   "NOT_CRITICAL_ERROR"
19108	//   "NO_RESULTS_ON_PAGE"
19109	//   "REQUIRED_TOS_AGREEMENT"
19110	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19111	//   "RESOURCE_NOT_DELETED"
19112	//   "SCHEMA_VALIDATION_IGNORED"
19113	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19114	//   "UNDECLARED_PROPERTIES"
19115	//   "UNREACHABLE"
19116	Code string `json:"code,omitempty"`
19117
19118	// Data: [Output Only] Metadata about this warning in key: value format.
19119	// For example:
19120	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19121	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
19122
19123	// Message: [Output Only] A human-readable description of the warning
19124	// code.
19125	Message string `json:"message,omitempty"`
19126
19127	// ForceSendFields is a list of field names (e.g. "Code") to
19128	// unconditionally include in API requests. By default, fields with
19129	// empty values are omitted from API requests. However, any non-pointer,
19130	// non-interface field appearing in ForceSendFields will be sent to the
19131	// server regardless of whether the field is empty or not. This may be
19132	// used to include empty fields in Patch requests.
19133	ForceSendFields []string `json:"-"`
19134
19135	// NullFields is a list of field names (e.g. "Code") to include in API
19136	// requests with the JSON null value. By default, fields with empty
19137	// values are omitted from API requests. However, any field with an
19138	// empty value appearing in NullFields will be sent to the server as
19139	// null. It is an error if a field in this list has a non-empty value.
19140	// This may be used to include null fields in Patch requests.
19141	NullFields []string `json:"-"`
19142}
19143
19144func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
19145	type NoMethod InterconnectAttachmentsScopedListWarning
19146	raw := NoMethod(*s)
19147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19148}
19149
19150type InterconnectAttachmentsScopedListWarningData struct {
19151	// Key: [Output Only] A key that provides more detail on the warning
19152	// being returned. For example, for warnings where there are no results
19153	// in a list request for a particular zone, this key might be scope and
19154	// the key value might be the zone name. Other examples might be a key
19155	// indicating a deprecated resource and a suggested replacement, or a
19156	// warning about invalid network settings (for example, if an instance
19157	// attempts to perform IP forwarding but is not enabled for IP
19158	// forwarding).
19159	Key string `json:"key,omitempty"`
19160
19161	// Value: [Output Only] A warning data value corresponding to the key.
19162	Value string `json:"value,omitempty"`
19163
19164	// ForceSendFields is a list of field names (e.g. "Key") to
19165	// unconditionally include in API requests. By default, fields with
19166	// empty values are omitted from API requests. However, any non-pointer,
19167	// non-interface field appearing in ForceSendFields will be sent to the
19168	// server regardless of whether the field is empty or not. This may be
19169	// used to include empty fields in Patch requests.
19170	ForceSendFields []string `json:"-"`
19171
19172	// NullFields is a list of field names (e.g. "Key") to include in API
19173	// requests with the JSON null value. By default, fields with empty
19174	// values are omitted from API requests. However, any field with an
19175	// empty value appearing in NullFields will be sent to the server as
19176	// null. It is an error if a field in this list has a non-empty value.
19177	// This may be used to include null fields in Patch requests.
19178	NullFields []string `json:"-"`
19179}
19180
19181func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
19182	type NoMethod InterconnectAttachmentsScopedListWarningData
19183	raw := NoMethod(*s)
19184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19185}
19186
19187// InterconnectCircuitInfo: Describes a single physical circuit between
19188// the Customer and Google. CircuitInfo objects are created by Google,
19189// so all fields are output only.
19190type InterconnectCircuitInfo struct {
19191	// CustomerDemarcId: Customer-side demarc ID for this circuit.
19192	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
19193
19194	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
19195	// at circuit turn-up.
19196	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
19197
19198	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
19199	// circuit turn-up and provided by Google to the customer in the LOA.
19200	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
19201
19202	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
19203	// unconditionally include in API requests. By default, fields with
19204	// empty values are omitted from API requests. However, any non-pointer,
19205	// non-interface field appearing in ForceSendFields will be sent to the
19206	// server regardless of whether the field is empty or not. This may be
19207	// used to include empty fields in Patch requests.
19208	ForceSendFields []string `json:"-"`
19209
19210	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
19211	// include in API requests with the JSON null value. By default, fields
19212	// with empty values are omitted from API requests. However, any field
19213	// with an empty value appearing in NullFields will be sent to the
19214	// server as null. It is an error if a field in this list has a
19215	// non-empty value. This may be used to include null fields in Patch
19216	// requests.
19217	NullFields []string `json:"-"`
19218}
19219
19220func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
19221	type NoMethod InterconnectCircuitInfo
19222	raw := NoMethod(*s)
19223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19224}
19225
19226// InterconnectDiagnostics: Diagnostics information about interconnect,
19227// contains detailed and current technical information about Google's
19228// side of the connection.
19229type InterconnectDiagnostics struct {
19230	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
19231	// describing individual neighbors currently seen by the Google router
19232	// in the ARP cache for the Interconnect. This will be empty when the
19233	// Interconnect is not bundled.
19234	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
19235
19236	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
19237	// describing the status for each link on the Interconnect.
19238	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
19239
19240	// MacAddress: The MAC address of the Interconnect's bundle interface.
19241	MacAddress string `json:"macAddress,omitempty"`
19242
19243	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
19244	// unconditionally include in API requests. By default, fields with
19245	// empty values are omitted from API requests. However, any non-pointer,
19246	// non-interface field appearing in ForceSendFields will be sent to the
19247	// server regardless of whether the field is empty or not. This may be
19248	// used to include empty fields in Patch requests.
19249	ForceSendFields []string `json:"-"`
19250
19251	// NullFields is a list of field names (e.g. "ArpCaches") to include in
19252	// API requests with the JSON null value. By default, fields with empty
19253	// values are omitted from API requests. However, any field with an
19254	// empty value appearing in NullFields will be sent to the server as
19255	// null. It is an error if a field in this list has a non-empty value.
19256	// This may be used to include null fields in Patch requests.
19257	NullFields []string `json:"-"`
19258}
19259
19260func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
19261	type NoMethod InterconnectDiagnostics
19262	raw := NoMethod(*s)
19263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19264}
19265
19266// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
19267// seen on this link
19268type InterconnectDiagnosticsARPEntry struct {
19269	// IpAddress: The IP address of this ARP neighbor.
19270	IpAddress string `json:"ipAddress,omitempty"`
19271
19272	// MacAddress: The MAC address of this ARP neighbor.
19273	MacAddress string `json:"macAddress,omitempty"`
19274
19275	// ForceSendFields is a list of field names (e.g. "IpAddress") to
19276	// unconditionally include in API requests. By default, fields with
19277	// empty values are omitted from API requests. However, any non-pointer,
19278	// non-interface field appearing in ForceSendFields will be sent to the
19279	// server regardless of whether the field is empty or not. This may be
19280	// used to include empty fields in Patch requests.
19281	ForceSendFields []string `json:"-"`
19282
19283	// NullFields is a list of field names (e.g. "IpAddress") to include in
19284	// API requests with the JSON null value. By default, fields with empty
19285	// values are omitted from API requests. However, any field with an
19286	// empty value appearing in NullFields will be sent to the server as
19287	// null. It is an error if a field in this list has a non-empty value.
19288	// This may be used to include null fields in Patch requests.
19289	NullFields []string `json:"-"`
19290}
19291
19292func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
19293	type NoMethod InterconnectDiagnosticsARPEntry
19294	raw := NoMethod(*s)
19295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19296}
19297
19298type InterconnectDiagnosticsLinkLACPStatus struct {
19299	// GoogleSystemId: System ID of the port on Google's side of the LACP
19300	// exchange.
19301	GoogleSystemId string `json:"googleSystemId,omitempty"`
19302
19303	// NeighborSystemId: System ID of the port on the neighbor's side of the
19304	// LACP exchange.
19305	NeighborSystemId string `json:"neighborSystemId,omitempty"`
19306
19307	// State: The state of a LACP link, which can take one of the following
19308	// values:
19309	// - ACTIVE: The link is configured and active within the bundle.
19310	// - DETACHED: The link is not configured within the bundle. This means
19311	// that the rest of the object should be empty.
19312	//
19313	// Possible values:
19314	//   "ACTIVE"
19315	//   "DETACHED"
19316	State string `json:"state,omitempty"`
19317
19318	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
19319	// unconditionally include in API requests. By default, fields with
19320	// empty values are omitted from API requests. However, any non-pointer,
19321	// non-interface field appearing in ForceSendFields will be sent to the
19322	// server regardless of whether the field is empty or not. This may be
19323	// used to include empty fields in Patch requests.
19324	ForceSendFields []string `json:"-"`
19325
19326	// NullFields is a list of field names (e.g. "GoogleSystemId") to
19327	// include in API requests with the JSON null value. By default, fields
19328	// with empty values are omitted from API requests. However, any field
19329	// with an empty value appearing in NullFields will be sent to the
19330	// server as null. It is an error if a field in this list has a
19331	// non-empty value. This may be used to include null fields in Patch
19332	// requests.
19333	NullFields []string `json:"-"`
19334}
19335
19336func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
19337	type NoMethod InterconnectDiagnosticsLinkLACPStatus
19338	raw := NoMethod(*s)
19339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19340}
19341
19342type InterconnectDiagnosticsLinkOpticalPower struct {
19343	// State: The status of the current value when compared to the warning
19344	// and alarm levels for the receiving or transmitting transceiver.
19345	// Possible states include:
19346	// - OK: The value has not crossed a warning threshold.
19347	// - LOW_WARNING: The value has crossed below the low warning threshold.
19348	//
19349	// - HIGH_WARNING: The value has crossed above the high warning
19350	// threshold.
19351	// - LOW_ALARM: The value has crossed below the low alarm threshold.
19352	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
19353	//
19354	// Possible values:
19355	//   "HIGH_ALARM"
19356	//   "HIGH_WARNING"
19357	//   "LOW_ALARM"
19358	//   "LOW_WARNING"
19359	//   "OK"
19360	State string `json:"state,omitempty"`
19361
19362	// Value: Value of the current receiving or transmitting optical power,
19363	// read in dBm. Take a known good optical value, give it a 10% margin
19364	// and trigger warnings relative to that value. In general, a -7dBm
19365	// warning and a -11dBm alarm are good optical value estimates for most
19366	// links.
19367	Value float64 `json:"value,omitempty"`
19368
19369	// ForceSendFields is a list of field names (e.g. "State") to
19370	// unconditionally include in API requests. By default, fields with
19371	// empty values are omitted from API requests. However, any non-pointer,
19372	// non-interface field appearing in ForceSendFields will be sent to the
19373	// server regardless of whether the field is empty or not. This may be
19374	// used to include empty fields in Patch requests.
19375	ForceSendFields []string `json:"-"`
19376
19377	// NullFields is a list of field names (e.g. "State") to include in API
19378	// requests with the JSON null value. By default, fields with empty
19379	// values are omitted from API requests. However, any field with an
19380	// empty value appearing in NullFields will be sent to the server as
19381	// null. It is an error if a field in this list has a non-empty value.
19382	// This may be used to include null fields in Patch requests.
19383	NullFields []string `json:"-"`
19384}
19385
19386func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
19387	type NoMethod InterconnectDiagnosticsLinkOpticalPower
19388	raw := NoMethod(*s)
19389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19390}
19391
19392func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
19393	type NoMethod InterconnectDiagnosticsLinkOpticalPower
19394	var s1 struct {
19395		Value gensupport.JSONFloat64 `json:"value"`
19396		*NoMethod
19397	}
19398	s1.NoMethod = (*NoMethod)(s)
19399	if err := json.Unmarshal(data, &s1); err != nil {
19400		return err
19401	}
19402	s.Value = float64(s1.Value)
19403	return nil
19404}
19405
19406type InterconnectDiagnosticsLinkStatus struct {
19407	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
19408	// describing the ARP neighbor entries seen on this link. This will be
19409	// empty if the link is bundled
19410	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
19411
19412	// CircuitId: The unique ID for this link assigned during turn up by
19413	// Google.
19414	CircuitId string `json:"circuitId,omitempty"`
19415
19416	// GoogleDemarc: The Demarc address assigned by Google and provided in
19417	// the LoA.
19418	GoogleDemarc string `json:"googleDemarc,omitempty"`
19419
19420	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
19421
19422	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
19423	// object, describing the current value and status of the received light
19424	// level.
19425	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
19426
19427	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
19428	// object, describing the current value and status of the transmitted
19429	// light level.
19430	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
19431
19432	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
19433	// unconditionally include in API requests. By default, fields with
19434	// empty values are omitted from API requests. However, any non-pointer,
19435	// non-interface field appearing in ForceSendFields will be sent to the
19436	// server regardless of whether the field is empty or not. This may be
19437	// used to include empty fields in Patch requests.
19438	ForceSendFields []string `json:"-"`
19439
19440	// NullFields is a list of field names (e.g. "ArpCaches") to include in
19441	// API requests with the JSON null value. By default, fields with empty
19442	// values are omitted from API requests. However, any field with an
19443	// empty value appearing in NullFields will be sent to the server as
19444	// null. It is an error if a field in this list has a non-empty value.
19445	// This may be used to include null fields in Patch requests.
19446	NullFields []string `json:"-"`
19447}
19448
19449func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
19450	type NoMethod InterconnectDiagnosticsLinkStatus
19451	raw := NoMethod(*s)
19452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19453}
19454
19455// InterconnectList: Response to the list request, and contains a list
19456// of interconnects.
19457type InterconnectList struct {
19458	// Id: [Output Only] Unique identifier for the resource; defined by the
19459	// server.
19460	Id string `json:"id,omitempty"`
19461
19462	// Items: A list of Interconnect resources.
19463	Items []*Interconnect `json:"items,omitempty"`
19464
19465	// Kind: [Output Only] Type of resource. Always compute#interconnectList
19466	// for lists of interconnects.
19467	Kind string `json:"kind,omitempty"`
19468
19469	// NextPageToken: [Output Only] This token allows you to get the next
19470	// page of results for list requests. If the number of results is larger
19471	// than maxResults, use the nextPageToken as a value for the query
19472	// parameter pageToken in the next list request. Subsequent list
19473	// requests will have their own nextPageToken to continue paging through
19474	// the results.
19475	NextPageToken string `json:"nextPageToken,omitempty"`
19476
19477	// SelfLink: [Output Only] Server-defined URL for this resource.
19478	SelfLink string `json:"selfLink,omitempty"`
19479
19480	// Warning: [Output Only] Informational warning message.
19481	Warning *InterconnectListWarning `json:"warning,omitempty"`
19482
19483	// ServerResponse contains the HTTP response code and headers from the
19484	// server.
19485	googleapi.ServerResponse `json:"-"`
19486
19487	// ForceSendFields is a list of field names (e.g. "Id") to
19488	// unconditionally include in API requests. By default, fields with
19489	// empty values are omitted from API requests. However, any non-pointer,
19490	// non-interface field appearing in ForceSendFields will be sent to the
19491	// server regardless of whether the field is empty or not. This may be
19492	// used to include empty fields in Patch requests.
19493	ForceSendFields []string `json:"-"`
19494
19495	// NullFields is a list of field names (e.g. "Id") to include in API
19496	// requests with the JSON null value. By default, fields with empty
19497	// values are omitted from API requests. However, any field with an
19498	// empty value appearing in NullFields will be sent to the server as
19499	// null. It is an error if a field in this list has a non-empty value.
19500	// This may be used to include null fields in Patch requests.
19501	NullFields []string `json:"-"`
19502}
19503
19504func (s *InterconnectList) MarshalJSON() ([]byte, error) {
19505	type NoMethod InterconnectList
19506	raw := NoMethod(*s)
19507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19508}
19509
19510// InterconnectListWarning: [Output Only] Informational warning message.
19511type InterconnectListWarning struct {
19512	// Code: [Output Only] A warning code, if applicable. For example,
19513	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19514	// the response.
19515	//
19516	// Possible values:
19517	//   "CLEANUP_FAILED"
19518	//   "DEPRECATED_RESOURCE_USED"
19519	//   "DEPRECATED_TYPE_USED"
19520	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19521	//   "EXPERIMENTAL_TYPE_USED"
19522	//   "EXTERNAL_API_WARNING"
19523	//   "FIELD_VALUE_OVERRIDEN"
19524	//   "INJECTED_KERNELS_DEPRECATED"
19525	//   "MISSING_TYPE_DEPENDENCY"
19526	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19527	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19528	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19529	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19530	//   "NEXT_HOP_NOT_RUNNING"
19531	//   "NOT_CRITICAL_ERROR"
19532	//   "NO_RESULTS_ON_PAGE"
19533	//   "REQUIRED_TOS_AGREEMENT"
19534	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19535	//   "RESOURCE_NOT_DELETED"
19536	//   "SCHEMA_VALIDATION_IGNORED"
19537	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19538	//   "UNDECLARED_PROPERTIES"
19539	//   "UNREACHABLE"
19540	Code string `json:"code,omitempty"`
19541
19542	// Data: [Output Only] Metadata about this warning in key: value format.
19543	// For example:
19544	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19545	Data []*InterconnectListWarningData `json:"data,omitempty"`
19546
19547	// Message: [Output Only] A human-readable description of the warning
19548	// code.
19549	Message string `json:"message,omitempty"`
19550
19551	// ForceSendFields is a list of field names (e.g. "Code") to
19552	// unconditionally include in API requests. By default, fields with
19553	// empty values are omitted from API requests. However, any non-pointer,
19554	// non-interface field appearing in ForceSendFields will be sent to the
19555	// server regardless of whether the field is empty or not. This may be
19556	// used to include empty fields in Patch requests.
19557	ForceSendFields []string `json:"-"`
19558
19559	// NullFields is a list of field names (e.g. "Code") to include in API
19560	// requests with the JSON null value. By default, fields with empty
19561	// values are omitted from API requests. However, any field with an
19562	// empty value appearing in NullFields will be sent to the server as
19563	// null. It is an error if a field in this list has a non-empty value.
19564	// This may be used to include null fields in Patch requests.
19565	NullFields []string `json:"-"`
19566}
19567
19568func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
19569	type NoMethod InterconnectListWarning
19570	raw := NoMethod(*s)
19571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19572}
19573
19574type InterconnectListWarningData struct {
19575	// Key: [Output Only] A key that provides more detail on the warning
19576	// being returned. For example, for warnings where there are no results
19577	// in a list request for a particular zone, this key might be scope and
19578	// the key value might be the zone name. Other examples might be a key
19579	// indicating a deprecated resource and a suggested replacement, or a
19580	// warning about invalid network settings (for example, if an instance
19581	// attempts to perform IP forwarding but is not enabled for IP
19582	// forwarding).
19583	Key string `json:"key,omitempty"`
19584
19585	// Value: [Output Only] A warning data value corresponding to the key.
19586	Value string `json:"value,omitempty"`
19587
19588	// ForceSendFields is a list of field names (e.g. "Key") to
19589	// unconditionally include in API requests. By default, fields with
19590	// empty values are omitted from API requests. However, any non-pointer,
19591	// non-interface field appearing in ForceSendFields will be sent to the
19592	// server regardless of whether the field is empty or not. This may be
19593	// used to include empty fields in Patch requests.
19594	ForceSendFields []string `json:"-"`
19595
19596	// NullFields is a list of field names (e.g. "Key") to include in API
19597	// requests with the JSON null value. By default, fields with empty
19598	// values are omitted from API requests. However, any field with an
19599	// empty value appearing in NullFields will be sent to the server as
19600	// null. It is an error if a field in this list has a non-empty value.
19601	// This may be used to include null fields in Patch requests.
19602	NullFields []string `json:"-"`
19603}
19604
19605func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
19606	type NoMethod InterconnectListWarningData
19607	raw := NoMethod(*s)
19608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19609}
19610
19611// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
19612// Location resource.
19613//
19614// You can use this resource to find location details about an
19615// Interconnect attachment (VLAN). For more information about
19616// interconnect attachments, read  Creating VLAN Attachments.
19617type InterconnectLocation struct {
19618	// Address: [Output Only] The postal address of the Point of Presence,
19619	// each line in the address is separated by a newline character.
19620	Address string `json:"address,omitempty"`
19621
19622	// AvailabilityZone: [Output Only] Availability zone for this
19623	// InterconnectLocation. Within a metropolitan area (metro), maintenance
19624	// will not be simultaneously scheduled in more than one availability
19625	// zone. Example: "zone1" or "zone2".
19626	AvailabilityZone string `json:"availabilityZone,omitempty"`
19627
19628	// City: [Output Only] Metropolitan area designator that indicates which
19629	// city an interconnect is located. For example: "Chicago, IL",
19630	// "Amsterdam, Netherlands".
19631	City string `json:"city,omitempty"`
19632
19633	// Continent: [Output Only] Continent for this location, which can take
19634	// one of the following values:
19635	// - AFRICA
19636	// - ASIA_PAC
19637	// - EUROPE
19638	// - NORTH_AMERICA
19639	// - SOUTH_AMERICA
19640	//
19641	// Possible values:
19642	//   "AFRICA"
19643	//   "ASIA_PAC"
19644	//   "C_AFRICA"
19645	//   "C_ASIA_PAC"
19646	//   "C_EUROPE"
19647	//   "C_NORTH_AMERICA"
19648	//   "C_SOUTH_AMERICA"
19649	//   "EUROPE"
19650	//   "NORTH_AMERICA"
19651	//   "SOUTH_AMERICA"
19652	Continent string `json:"continent,omitempty"`
19653
19654	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19655	// format.
19656	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19657
19658	// Description: [Output Only] An optional description of the resource.
19659	Description string `json:"description,omitempty"`
19660
19661	// FacilityProvider: [Output Only] The name of the provider for this
19662	// facility (e.g., EQUINIX).
19663	FacilityProvider string `json:"facilityProvider,omitempty"`
19664
19665	// FacilityProviderFacilityId: [Output Only] A provider-assigned
19666	// Identifier for this facility (e.g., Ashburn-DC1).
19667	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
19668
19669	// Id: [Output Only] The unique identifier for the resource. This
19670	// identifier is defined by the server.
19671	Id uint64 `json:"id,omitempty,string"`
19672
19673	// Kind: [Output Only] Type of the resource. Always
19674	// compute#interconnectLocation for interconnect locations.
19675	Kind string `json:"kind,omitempty"`
19676
19677	// Name: [Output Only] Name of the resource.
19678	Name string `json:"name,omitempty"`
19679
19680	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
19681	// facility (corresponding with a netfac type in peeringdb).
19682	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
19683
19684	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
19685	// objects, that describe parameters pertaining to the relation between
19686	// this InterconnectLocation and various Google Cloud regions.
19687	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
19688
19689	// SelfLink: [Output Only] Server-defined URL for the resource.
19690	SelfLink string `json:"selfLink,omitempty"`
19691
19692	// Status: [Output Only] The status of this InterconnectLocation, which
19693	// can take one of the following values:
19694	// - CLOSED: The InterconnectLocation is closed and is unavailable for
19695	// provisioning new Interconnects.
19696	// - AVAILABLE: The InterconnectLocation is available for provisioning
19697	// new Interconnects.
19698	//
19699	// Possible values:
19700	//   "AVAILABLE"
19701	//   "CLOSED"
19702	Status string `json:"status,omitempty"`
19703
19704	// ServerResponse contains the HTTP response code and headers from the
19705	// server.
19706	googleapi.ServerResponse `json:"-"`
19707
19708	// ForceSendFields is a list of field names (e.g. "Address") to
19709	// unconditionally include in API requests. By default, fields with
19710	// empty values are omitted from API requests. However, any non-pointer,
19711	// non-interface field appearing in ForceSendFields will be sent to the
19712	// server regardless of whether the field is empty or not. This may be
19713	// used to include empty fields in Patch requests.
19714	ForceSendFields []string `json:"-"`
19715
19716	// NullFields is a list of field names (e.g. "Address") to include in
19717	// API requests with the JSON null value. By default, fields with empty
19718	// values are omitted from API requests. However, any field with an
19719	// empty value appearing in NullFields will be sent to the server as
19720	// null. It is an error if a field in this list has a non-empty value.
19721	// This may be used to include null fields in Patch requests.
19722	NullFields []string `json:"-"`
19723}
19724
19725func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
19726	type NoMethod InterconnectLocation
19727	raw := NoMethod(*s)
19728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19729}
19730
19731// InterconnectLocationList: Response to the list request, and contains
19732// a list of interconnect locations.
19733type InterconnectLocationList struct {
19734	// Id: [Output Only] Unique identifier for the resource; defined by the
19735	// server.
19736	Id string `json:"id,omitempty"`
19737
19738	// Items: A list of InterconnectLocation resources.
19739	Items []*InterconnectLocation `json:"items,omitempty"`
19740
19741	// Kind: [Output Only] Type of resource. Always
19742	// compute#interconnectLocationList for lists of interconnect locations.
19743	Kind string `json:"kind,omitempty"`
19744
19745	// NextPageToken: [Output Only] This token allows you to get the next
19746	// page of results for list requests. If the number of results is larger
19747	// than maxResults, use the nextPageToken as a value for the query
19748	// parameter pageToken in the next list request. Subsequent list
19749	// requests will have their own nextPageToken to continue paging through
19750	// the results.
19751	NextPageToken string `json:"nextPageToken,omitempty"`
19752
19753	// SelfLink: [Output Only] Server-defined URL for this resource.
19754	SelfLink string `json:"selfLink,omitempty"`
19755
19756	// Warning: [Output Only] Informational warning message.
19757	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
19758
19759	// ServerResponse contains the HTTP response code and headers from the
19760	// server.
19761	googleapi.ServerResponse `json:"-"`
19762
19763	// ForceSendFields is a list of field names (e.g. "Id") to
19764	// unconditionally include in API requests. By default, fields with
19765	// empty values are omitted from API requests. However, any non-pointer,
19766	// non-interface field appearing in ForceSendFields will be sent to the
19767	// server regardless of whether the field is empty or not. This may be
19768	// used to include empty fields in Patch requests.
19769	ForceSendFields []string `json:"-"`
19770
19771	// NullFields is a list of field names (e.g. "Id") to include in API
19772	// requests with the JSON null value. By default, fields with empty
19773	// values are omitted from API requests. However, any field with an
19774	// empty value appearing in NullFields will be sent to the server as
19775	// null. It is an error if a field in this list has a non-empty value.
19776	// This may be used to include null fields in Patch requests.
19777	NullFields []string `json:"-"`
19778}
19779
19780func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
19781	type NoMethod InterconnectLocationList
19782	raw := NoMethod(*s)
19783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19784}
19785
19786// InterconnectLocationListWarning: [Output Only] Informational warning
19787// message.
19788type InterconnectLocationListWarning struct {
19789	// Code: [Output Only] A warning code, if applicable. For example,
19790	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19791	// the response.
19792	//
19793	// Possible values:
19794	//   "CLEANUP_FAILED"
19795	//   "DEPRECATED_RESOURCE_USED"
19796	//   "DEPRECATED_TYPE_USED"
19797	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19798	//   "EXPERIMENTAL_TYPE_USED"
19799	//   "EXTERNAL_API_WARNING"
19800	//   "FIELD_VALUE_OVERRIDEN"
19801	//   "INJECTED_KERNELS_DEPRECATED"
19802	//   "MISSING_TYPE_DEPENDENCY"
19803	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19804	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19805	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19806	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19807	//   "NEXT_HOP_NOT_RUNNING"
19808	//   "NOT_CRITICAL_ERROR"
19809	//   "NO_RESULTS_ON_PAGE"
19810	//   "REQUIRED_TOS_AGREEMENT"
19811	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19812	//   "RESOURCE_NOT_DELETED"
19813	//   "SCHEMA_VALIDATION_IGNORED"
19814	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19815	//   "UNDECLARED_PROPERTIES"
19816	//   "UNREACHABLE"
19817	Code string `json:"code,omitempty"`
19818
19819	// Data: [Output Only] Metadata about this warning in key: value format.
19820	// For example:
19821	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19822	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
19823
19824	// Message: [Output Only] A human-readable description of the warning
19825	// code.
19826	Message string `json:"message,omitempty"`
19827
19828	// ForceSendFields is a list of field names (e.g. "Code") to
19829	// unconditionally include in API requests. By default, fields with
19830	// empty values are omitted from API requests. However, any non-pointer,
19831	// non-interface field appearing in ForceSendFields will be sent to the
19832	// server regardless of whether the field is empty or not. This may be
19833	// used to include empty fields in Patch requests.
19834	ForceSendFields []string `json:"-"`
19835
19836	// NullFields is a list of field names (e.g. "Code") to include in API
19837	// requests with the JSON null value. By default, fields with empty
19838	// values are omitted from API requests. However, any field with an
19839	// empty value appearing in NullFields will be sent to the server as
19840	// null. It is an error if a field in this list has a non-empty value.
19841	// This may be used to include null fields in Patch requests.
19842	NullFields []string `json:"-"`
19843}
19844
19845func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
19846	type NoMethod InterconnectLocationListWarning
19847	raw := NoMethod(*s)
19848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19849}
19850
19851type InterconnectLocationListWarningData struct {
19852	// Key: [Output Only] A key that provides more detail on the warning
19853	// being returned. For example, for warnings where there are no results
19854	// in a list request for a particular zone, this key might be scope and
19855	// the key value might be the zone name. Other examples might be a key
19856	// indicating a deprecated resource and a suggested replacement, or a
19857	// warning about invalid network settings (for example, if an instance
19858	// attempts to perform IP forwarding but is not enabled for IP
19859	// forwarding).
19860	Key string `json:"key,omitempty"`
19861
19862	// Value: [Output Only] A warning data value corresponding to the key.
19863	Value string `json:"value,omitempty"`
19864
19865	// ForceSendFields is a list of field names (e.g. "Key") to
19866	// unconditionally include in API requests. By default, fields with
19867	// empty values are omitted from API requests. However, any non-pointer,
19868	// non-interface field appearing in ForceSendFields will be sent to the
19869	// server regardless of whether the field is empty or not. This may be
19870	// used to include empty fields in Patch requests.
19871	ForceSendFields []string `json:"-"`
19872
19873	// NullFields is a list of field names (e.g. "Key") to include in API
19874	// requests with the JSON null value. By default, fields with empty
19875	// values are omitted from API requests. However, any field with an
19876	// empty value appearing in NullFields will be sent to the server as
19877	// null. It is an error if a field in this list has a non-empty value.
19878	// This may be used to include null fields in Patch requests.
19879	NullFields []string `json:"-"`
19880}
19881
19882func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
19883	type NoMethod InterconnectLocationListWarningData
19884	raw := NoMethod(*s)
19885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19886}
19887
19888// InterconnectLocationRegionInfo: Information about any potential
19889// InterconnectAttachments between an Interconnect at a specific
19890// InterconnectLocation, and a specific Cloud Region.
19891type InterconnectLocationRegionInfo struct {
19892	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
19893	// InterconnectLocation to a VM in this region.
19894	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
19895
19896	// LocationPresence: Identifies the network presence of this location.
19897	//
19898	// Possible values:
19899	//   "GLOBAL"
19900	//   "LOCAL_REGION"
19901	//   "LP_GLOBAL"
19902	//   "LP_LOCAL_REGION"
19903	LocationPresence string `json:"locationPresence,omitempty"`
19904
19905	// Region: URL for the region of this location.
19906	Region string `json:"region,omitempty"`
19907
19908	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
19909	// unconditionally include in API requests. By default, fields with
19910	// empty values are omitted from API requests. However, any non-pointer,
19911	// non-interface field appearing in ForceSendFields will be sent to the
19912	// server regardless of whether the field is empty or not. This may be
19913	// used to include empty fields in Patch requests.
19914	ForceSendFields []string `json:"-"`
19915
19916	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
19917	// in API requests with the JSON null value. By default, fields with
19918	// empty values are omitted from API requests. However, any field with
19919	// an empty value appearing in NullFields will be sent to the server as
19920	// null. It is an error if a field in this list has a non-empty value.
19921	// This may be used to include null fields in Patch requests.
19922	NullFields []string `json:"-"`
19923}
19924
19925func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
19926	type NoMethod InterconnectLocationRegionInfo
19927	raw := NoMethod(*s)
19928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19929}
19930
19931// InterconnectOutageNotification: Description of a planned outage on
19932// this Interconnect.
19933type InterconnectOutageNotification struct {
19934	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
19935	// Google-side circuit IDs that will be affected.
19936	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
19937
19938	// Description: A description about the purpose of the outage.
19939	Description string `json:"description,omitempty"`
19940
19941	// EndTime: Scheduled end time for the outage (milliseconds since Unix
19942	// epoch).
19943	EndTime int64 `json:"endTime,omitempty,string"`
19944
19945	// IssueType: Form this outage is expected to take, which can take one
19946	// of the following values:
19947	// - OUTAGE: The Interconnect may be completely out of service for some
19948	// or all of the specified window.
19949	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
19950	// whole should remain up, but with reduced bandwidth. Note that the
19951	// versions of this enum prefixed with "IT_" have been deprecated in
19952	// favor of the unprefixed values.
19953	//
19954	// Possible values:
19955	//   "IT_OUTAGE"
19956	//   "IT_PARTIAL_OUTAGE"
19957	//   "OUTAGE"
19958	//   "PARTIAL_OUTAGE"
19959	IssueType string `json:"issueType,omitempty"`
19960
19961	// Name: Unique identifier for this outage notification.
19962	Name string `json:"name,omitempty"`
19963
19964	// Source: The party that generated this notification, which can take
19965	// the following value:
19966	// - GOOGLE: this notification as generated by Google. Note that the
19967	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
19968	//
19969	// Possible values:
19970	//   "GOOGLE"
19971	//   "NSRC_GOOGLE"
19972	Source string `json:"source,omitempty"`
19973
19974	// StartTime: Scheduled start time for the outage (milliseconds since
19975	// Unix epoch).
19976	StartTime int64 `json:"startTime,omitempty,string"`
19977
19978	// State: State of this notification, which can take one of the
19979	// following values:
19980	// - ACTIVE: This outage notification is active. The event could be in
19981	// the past, present, or future. See start_time and end_time for
19982	// scheduling.
19983	// - CANCELLED: The outage associated with this notification was
19984	// cancelled before the outage was due to start. Note that the versions
19985	// of this enum prefixed with "NS_" have been deprecated in favor of the
19986	// unprefixed values.
19987	//
19988	// Possible values:
19989	//   "ACTIVE"
19990	//   "CANCELLED"
19991	//   "COMPLETED"
19992	//   "NS_ACTIVE"
19993	//   "NS_CANCELED"
19994	State string `json:"state,omitempty"`
19995
19996	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
19997	// unconditionally include in API requests. By default, fields with
19998	// empty values are omitted from API requests. However, any non-pointer,
19999	// non-interface field appearing in ForceSendFields will be sent to the
20000	// server regardless of whether the field is empty or not. This may be
20001	// used to include empty fields in Patch requests.
20002	ForceSendFields []string `json:"-"`
20003
20004	// NullFields is a list of field names (e.g. "AffectedCircuits") to
20005	// include in API requests with the JSON null value. By default, fields
20006	// with empty values are omitted from API requests. However, any field
20007	// with an empty value appearing in NullFields will be sent to the
20008	// server as null. It is an error if a field in this list has a
20009	// non-empty value. This may be used to include null fields in Patch
20010	// requests.
20011	NullFields []string `json:"-"`
20012}
20013
20014func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
20015	type NoMethod InterconnectOutageNotification
20016	raw := NoMethod(*s)
20017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20018}
20019
20020// InterconnectsGetDiagnosticsResponse: Response for the
20021// InterconnectsGetDiagnosticsRequest.
20022type InterconnectsGetDiagnosticsResponse struct {
20023	Result *InterconnectDiagnostics `json:"result,omitempty"`
20024
20025	// ServerResponse contains the HTTP response code and headers from the
20026	// server.
20027	googleapi.ServerResponse `json:"-"`
20028
20029	// ForceSendFields is a list of field names (e.g. "Result") to
20030	// unconditionally include in API requests. By default, fields with
20031	// empty values are omitted from API requests. However, any non-pointer,
20032	// non-interface field appearing in ForceSendFields will be sent to the
20033	// server regardless of whether the field is empty or not. This may be
20034	// used to include empty fields in Patch requests.
20035	ForceSendFields []string `json:"-"`
20036
20037	// NullFields is a list of field names (e.g. "Result") to include in API
20038	// requests with the JSON null value. By default, fields with empty
20039	// values are omitted from API requests. However, any field with an
20040	// empty value appearing in NullFields will be sent to the server as
20041	// null. It is an error if a field in this list has a non-empty value.
20042	// This may be used to include null fields in Patch requests.
20043	NullFields []string `json:"-"`
20044}
20045
20046func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
20047	type NoMethod InterconnectsGetDiagnosticsResponse
20048	raw := NoMethod(*s)
20049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20050}
20051
20052// License: Represents a License resource.
20053//
20054// A License represents billing and aggregate usage data for public and
20055// marketplace images.  Caution This resource is intended for use only
20056// by third-party partners who are creating Cloud Marketplace images.
20057// (== resource_for {$api_version}.licenses ==)
20058type License struct {
20059	// ChargesUseFee: [Output Only] Deprecated. This field no longer
20060	// reflects whether a license charges a usage fee.
20061	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
20062
20063	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20064	// format.
20065	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20066
20067	// Description: An optional textual description of the resource;
20068	// provided by the client when the resource is created.
20069	Description string `json:"description,omitempty"`
20070
20071	// Id: [Output Only] The unique identifier for the resource. This
20072	// identifier is defined by the server.
20073	Id uint64 `json:"id,omitempty,string"`
20074
20075	// Kind: [Output Only] Type of resource. Always compute#license for
20076	// licenses.
20077	Kind string `json:"kind,omitempty"`
20078
20079	// LicenseCode: [Output Only] The unique code used to attach this
20080	// license to images, snapshots, and disks.
20081	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
20082
20083	// Name: Name of the resource. The name must be 1-63 characters long and
20084	// comply with RFC1035.
20085	Name string `json:"name,omitempty"`
20086
20087	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
20088
20089	// SelfLink: [Output Only] Server-defined URL for the resource.
20090	SelfLink string `json:"selfLink,omitempty"`
20091
20092	// Transferable: If false, licenses will not be copied from the source
20093	// resource when creating an image from a disk, disk from snapshot, or
20094	// snapshot from disk.
20095	Transferable bool `json:"transferable,omitempty"`
20096
20097	// ServerResponse contains the HTTP response code and headers from the
20098	// server.
20099	googleapi.ServerResponse `json:"-"`
20100
20101	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
20102	// unconditionally include in API requests. By default, fields with
20103	// empty values are omitted from API requests. However, any non-pointer,
20104	// non-interface field appearing in ForceSendFields will be sent to the
20105	// server regardless of whether the field is empty or not. This may be
20106	// used to include empty fields in Patch requests.
20107	ForceSendFields []string `json:"-"`
20108
20109	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
20110	// in API requests with the JSON null value. By default, fields with
20111	// empty values are omitted from API requests. However, any field with
20112	// an empty value appearing in NullFields will be sent to the server as
20113	// null. It is an error if a field in this list has a non-empty value.
20114	// This may be used to include null fields in Patch requests.
20115	NullFields []string `json:"-"`
20116}
20117
20118func (s *License) MarshalJSON() ([]byte, error) {
20119	type NoMethod License
20120	raw := NoMethod(*s)
20121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20122}
20123
20124// LicenseCode: Represents a License Code resource.
20125//
20126// A License Code is a unique identifier used to represent a license
20127// resource.  Caution This resource is intended for use only by
20128// third-party partners who are creating Cloud Marketplace images. (==
20129// resource_for {$api_version}.licenseCodes ==)
20130type LicenseCode struct {
20131	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20132	// format.
20133	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20134
20135	// Description: [Output Only] Description of this License Code.
20136	Description string `json:"description,omitempty"`
20137
20138	// Id: [Output Only] The unique identifier for the resource. This
20139	// identifier is defined by the server.
20140	Id uint64 `json:"id,omitempty,string"`
20141
20142	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
20143	// licenses.
20144	Kind string `json:"kind,omitempty"`
20145
20146	// LicenseAlias: [Output Only] URL and description aliases of Licenses
20147	// with the same License Code.
20148	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
20149
20150	// Name: [Output Only] Name of the resource. The name is 1-20 characters
20151	// long and must be a valid 64 bit integer.
20152	Name string `json:"name,omitempty"`
20153
20154	// SelfLink: [Output Only] Server-defined URL for the resource.
20155	SelfLink string `json:"selfLink,omitempty"`
20156
20157	// State: [Output Only] Current state of this License Code.
20158	//
20159	// Possible values:
20160	//   "DISABLED"
20161	//   "ENABLED"
20162	//   "RESTRICTED"
20163	//   "STATE_UNSPECIFIED"
20164	//   "TERMINATED"
20165	State string `json:"state,omitempty"`
20166
20167	// Transferable: [Output Only] If true, the license will remain attached
20168	// when creating images or snapshots from disks. Otherwise, the license
20169	// is not transferred.
20170	Transferable bool `json:"transferable,omitempty"`
20171
20172	// ServerResponse contains the HTTP response code and headers from the
20173	// server.
20174	googleapi.ServerResponse `json:"-"`
20175
20176	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20177	// to unconditionally include in API requests. By default, fields with
20178	// empty values are omitted from API requests. However, any non-pointer,
20179	// non-interface field appearing in ForceSendFields will be sent to the
20180	// server regardless of whether the field is empty or not. This may be
20181	// used to include empty fields in Patch requests.
20182	ForceSendFields []string `json:"-"`
20183
20184	// NullFields is a list of field names (e.g. "CreationTimestamp") to
20185	// include in API requests with the JSON null value. By default, fields
20186	// with empty values are omitted from API requests. However, any field
20187	// with an empty value appearing in NullFields will be sent to the
20188	// server as null. It is an error if a field in this list has a
20189	// non-empty value. This may be used to include null fields in Patch
20190	// requests.
20191	NullFields []string `json:"-"`
20192}
20193
20194func (s *LicenseCode) MarshalJSON() ([]byte, error) {
20195	type NoMethod LicenseCode
20196	raw := NoMethod(*s)
20197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20198}
20199
20200type LicenseCodeLicenseAlias struct {
20201	// Description: [Output Only] Description of this License Code.
20202	Description string `json:"description,omitempty"`
20203
20204	// SelfLink: [Output Only] URL of license corresponding to this License
20205	// Code.
20206	SelfLink string `json:"selfLink,omitempty"`
20207
20208	// ForceSendFields is a list of field names (e.g. "Description") to
20209	// unconditionally include in API requests. By default, fields with
20210	// empty values are omitted from API requests. However, any non-pointer,
20211	// non-interface field appearing in ForceSendFields will be sent to the
20212	// server regardless of whether the field is empty or not. This may be
20213	// used to include empty fields in Patch requests.
20214	ForceSendFields []string `json:"-"`
20215
20216	// NullFields is a list of field names (e.g. "Description") to include
20217	// in API requests with the JSON null value. By default, fields with
20218	// empty values are omitted from API requests. However, any field with
20219	// an empty value appearing in NullFields will be sent to the server as
20220	// null. It is an error if a field in this list has a non-empty value.
20221	// This may be used to include null fields in Patch requests.
20222	NullFields []string `json:"-"`
20223}
20224
20225func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
20226	type NoMethod LicenseCodeLicenseAlias
20227	raw := NoMethod(*s)
20228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20229}
20230
20231type LicenseResourceRequirements struct {
20232	// MinGuestCpuCount: Minimum number of guest cpus required to use the
20233	// Instance. Enforced at Instance creation and Instance start.
20234	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
20235
20236	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
20237	// Instance creation and Instance start.
20238	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
20239
20240	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
20241	// unconditionally include in API requests. By default, fields with
20242	// empty values are omitted from API requests. However, any non-pointer,
20243	// non-interface field appearing in ForceSendFields will be sent to the
20244	// server regardless of whether the field is empty or not. This may be
20245	// used to include empty fields in Patch requests.
20246	ForceSendFields []string `json:"-"`
20247
20248	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
20249	// include in API requests with the JSON null value. By default, fields
20250	// with empty values are omitted from API requests. However, any field
20251	// with an empty value appearing in NullFields will be sent to the
20252	// server as null. It is an error if a field in this list has a
20253	// non-empty value. This may be used to include null fields in Patch
20254	// requests.
20255	NullFields []string `json:"-"`
20256}
20257
20258func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
20259	type NoMethod LicenseResourceRequirements
20260	raw := NoMethod(*s)
20261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20262}
20263
20264type LicensesListResponse struct {
20265	// Id: [Output Only] Unique identifier for the resource; defined by the
20266	// server.
20267	Id string `json:"id,omitempty"`
20268
20269	// Items: A list of License resources.
20270	Items []*License `json:"items,omitempty"`
20271
20272	// NextPageToken: [Output Only] This token allows you to get the next
20273	// page of results for list requests. If the number of results is larger
20274	// than maxResults, use the nextPageToken as a value for the query
20275	// parameter pageToken in the next list request. Subsequent list
20276	// requests will have their own nextPageToken to continue paging through
20277	// the results.
20278	NextPageToken string `json:"nextPageToken,omitempty"`
20279
20280	// SelfLink: [Output Only] Server-defined URL for this resource.
20281	SelfLink string `json:"selfLink,omitempty"`
20282
20283	// Warning: [Output Only] Informational warning message.
20284	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
20285
20286	// ServerResponse contains the HTTP response code and headers from the
20287	// server.
20288	googleapi.ServerResponse `json:"-"`
20289
20290	// ForceSendFields is a list of field names (e.g. "Id") to
20291	// unconditionally include in API requests. By default, fields with
20292	// empty values are omitted from API requests. However, any non-pointer,
20293	// non-interface field appearing in ForceSendFields will be sent to the
20294	// server regardless of whether the field is empty or not. This may be
20295	// used to include empty fields in Patch requests.
20296	ForceSendFields []string `json:"-"`
20297
20298	// NullFields is a list of field names (e.g. "Id") to include in API
20299	// requests with the JSON null value. By default, fields with empty
20300	// values are omitted from API requests. However, any field with an
20301	// empty value appearing in NullFields will be sent to the server as
20302	// null. It is an error if a field in this list has a non-empty value.
20303	// This may be used to include null fields in Patch requests.
20304	NullFields []string `json:"-"`
20305}
20306
20307func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
20308	type NoMethod LicensesListResponse
20309	raw := NoMethod(*s)
20310	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20311}
20312
20313// LicensesListResponseWarning: [Output Only] Informational warning
20314// message.
20315type LicensesListResponseWarning struct {
20316	// Code: [Output Only] A warning code, if applicable. For example,
20317	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20318	// the response.
20319	//
20320	// Possible values:
20321	//   "CLEANUP_FAILED"
20322	//   "DEPRECATED_RESOURCE_USED"
20323	//   "DEPRECATED_TYPE_USED"
20324	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20325	//   "EXPERIMENTAL_TYPE_USED"
20326	//   "EXTERNAL_API_WARNING"
20327	//   "FIELD_VALUE_OVERRIDEN"
20328	//   "INJECTED_KERNELS_DEPRECATED"
20329	//   "MISSING_TYPE_DEPENDENCY"
20330	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20331	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20332	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20333	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20334	//   "NEXT_HOP_NOT_RUNNING"
20335	//   "NOT_CRITICAL_ERROR"
20336	//   "NO_RESULTS_ON_PAGE"
20337	//   "REQUIRED_TOS_AGREEMENT"
20338	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20339	//   "RESOURCE_NOT_DELETED"
20340	//   "SCHEMA_VALIDATION_IGNORED"
20341	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20342	//   "UNDECLARED_PROPERTIES"
20343	//   "UNREACHABLE"
20344	Code string `json:"code,omitempty"`
20345
20346	// Data: [Output Only] Metadata about this warning in key: value format.
20347	// For example:
20348	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20349	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
20350
20351	// Message: [Output Only] A human-readable description of the warning
20352	// code.
20353	Message string `json:"message,omitempty"`
20354
20355	// ForceSendFields is a list of field names (e.g. "Code") to
20356	// unconditionally include in API requests. By default, fields with
20357	// empty values are omitted from API requests. However, any non-pointer,
20358	// non-interface field appearing in ForceSendFields will be sent to the
20359	// server regardless of whether the field is empty or not. This may be
20360	// used to include empty fields in Patch requests.
20361	ForceSendFields []string `json:"-"`
20362
20363	// NullFields is a list of field names (e.g. "Code") to include in API
20364	// requests with the JSON null value. By default, fields with empty
20365	// values are omitted from API requests. However, any field with an
20366	// empty value appearing in NullFields will be sent to the server as
20367	// null. It is an error if a field in this list has a non-empty value.
20368	// This may be used to include null fields in Patch requests.
20369	NullFields []string `json:"-"`
20370}
20371
20372func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
20373	type NoMethod LicensesListResponseWarning
20374	raw := NoMethod(*s)
20375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20376}
20377
20378type LicensesListResponseWarningData struct {
20379	// Key: [Output Only] A key that provides more detail on the warning
20380	// being returned. For example, for warnings where there are no results
20381	// in a list request for a particular zone, this key might be scope and
20382	// the key value might be the zone name. Other examples might be a key
20383	// indicating a deprecated resource and a suggested replacement, or a
20384	// warning about invalid network settings (for example, if an instance
20385	// attempts to perform IP forwarding but is not enabled for IP
20386	// forwarding).
20387	Key string `json:"key,omitempty"`
20388
20389	// Value: [Output Only] A warning data value corresponding to the key.
20390	Value string `json:"value,omitempty"`
20391
20392	// ForceSendFields is a list of field names (e.g. "Key") to
20393	// unconditionally include in API requests. By default, fields with
20394	// empty values are omitted from API requests. However, any non-pointer,
20395	// non-interface field appearing in ForceSendFields will be sent to the
20396	// server regardless of whether the field is empty or not. This may be
20397	// used to include empty fields in Patch requests.
20398	ForceSendFields []string `json:"-"`
20399
20400	// NullFields is a list of field names (e.g. "Key") to include in API
20401	// requests with the JSON null value. By default, fields with empty
20402	// values are omitted from API requests. However, any field with an
20403	// empty value appearing in NullFields will be sent to the server as
20404	// null. It is an error if a field in this list has a non-empty value.
20405	// This may be used to include null fields in Patch requests.
20406	NullFields []string `json:"-"`
20407}
20408
20409func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
20410	type NoMethod LicensesListResponseWarningData
20411	raw := NoMethod(*s)
20412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20413}
20414
20415// LogConfig: Specifies what kind of log the caller must write
20416type LogConfig struct {
20417	// CloudAudit: Cloud audit options.
20418	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
20419
20420	// Counter: Counter options.
20421	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
20422
20423	// DataAccess: Data access options.
20424	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
20425
20426	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
20427	// unconditionally include in API requests. By default, fields with
20428	// empty values are omitted from API requests. However, any non-pointer,
20429	// non-interface field appearing in ForceSendFields will be sent to the
20430	// server regardless of whether the field is empty or not. This may be
20431	// used to include empty fields in Patch requests.
20432	ForceSendFields []string `json:"-"`
20433
20434	// NullFields is a list of field names (e.g. "CloudAudit") to include in
20435	// API requests with the JSON null value. By default, fields with empty
20436	// values are omitted from API requests. However, any field with an
20437	// empty value appearing in NullFields will be sent to the server as
20438	// null. It is an error if a field in this list has a non-empty value.
20439	// This may be used to include null fields in Patch requests.
20440	NullFields []string `json:"-"`
20441}
20442
20443func (s *LogConfig) MarshalJSON() ([]byte, error) {
20444	type NoMethod LogConfig
20445	raw := NoMethod(*s)
20446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20447}
20448
20449// LogConfigCloudAuditOptions: Write a Cloud Audit log
20450type LogConfigCloudAuditOptions struct {
20451	// AuthorizationLoggingOptions: Information used by the Cloud Audit
20452	// Logging pipeline.
20453	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
20454
20455	// LogName: The log_name to populate in the Cloud Audit Record.
20456	//
20457	// Possible values:
20458	//   "ADMIN_ACTIVITY"
20459	//   "DATA_ACCESS"
20460	//   "UNSPECIFIED_LOG_NAME"
20461	LogName string `json:"logName,omitempty"`
20462
20463	// ForceSendFields is a list of field names (e.g.
20464	// "AuthorizationLoggingOptions") to unconditionally include in API
20465	// requests. By default, fields with empty values are omitted from API
20466	// requests. However, any non-pointer, non-interface field appearing in
20467	// ForceSendFields will be sent to the server regardless of whether the
20468	// field is empty or not. This may be used to include empty fields in
20469	// Patch requests.
20470	ForceSendFields []string `json:"-"`
20471
20472	// NullFields is a list of field names (e.g.
20473	// "AuthorizationLoggingOptions") to include in API requests with the
20474	// JSON null value. By default, fields with empty values are omitted
20475	// from API requests. However, any field with an empty value appearing
20476	// in NullFields will be sent to the server as null. It is an error if a
20477	// field in this list has a non-empty value. This may be used to include
20478	// null fields in Patch requests.
20479	NullFields []string `json:"-"`
20480}
20481
20482func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
20483	type NoMethod LogConfigCloudAuditOptions
20484	raw := NoMethod(*s)
20485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20486}
20487
20488// LogConfigCounterOptions: Increment a streamz counter with the
20489// specified metric and field names.
20490//
20491// Metric names should start with a '/', generally be lowercase-only,
20492// and end in "_count". Field names should not contain an initial slash.
20493// The actual exported metric names will have "/iam/policy"
20494// prepended.
20495//
20496// Field names correspond to IAM request parameters and field values are
20497// their respective values.
20498//
20499// Supported field names: - "authority", which is "[token]" if
20500// IAMContext.token is present, otherwise the value of
20501// IAMContext.authority_selector if present, and otherwise a
20502// representation of IAMContext.principal; or - "iam_principal", a
20503// representation of IAMContext.principal even if a token or authority
20504// selector is present; or - "" (empty string), resulting in a counter
20505// with no fields.
20506//
20507// Examples: counter { metric: "/debug_access_count" field:
20508// "iam_principal" } ==> increment counter
20509// /iam/policy/debug_access_count {iam_principal=[value of
20510// IAMContext.principal]}
20511type LogConfigCounterOptions struct {
20512	// CustomFields: Custom fields.
20513	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
20514
20515	// Field: The field value to attribute.
20516	Field string `json:"field,omitempty"`
20517
20518	// Metric: The metric to update.
20519	Metric string `json:"metric,omitempty"`
20520
20521	// ForceSendFields is a list of field names (e.g. "CustomFields") to
20522	// unconditionally include in API requests. By default, fields with
20523	// empty values are omitted from API requests. However, any non-pointer,
20524	// non-interface field appearing in ForceSendFields will be sent to the
20525	// server regardless of whether the field is empty or not. This may be
20526	// used to include empty fields in Patch requests.
20527	ForceSendFields []string `json:"-"`
20528
20529	// NullFields is a list of field names (e.g. "CustomFields") to include
20530	// in API requests with the JSON null value. By default, fields with
20531	// empty values are omitted from API requests. However, any field with
20532	// an empty value appearing in NullFields will be sent to the server as
20533	// null. It is an error if a field in this list has a non-empty value.
20534	// This may be used to include null fields in Patch requests.
20535	NullFields []string `json:"-"`
20536}
20537
20538func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
20539	type NoMethod LogConfigCounterOptions
20540	raw := NoMethod(*s)
20541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20542}
20543
20544// LogConfigCounterOptionsCustomField: Custom fields. These can be used
20545// to create a counter with arbitrary field/value pairs. See:
20546// go/rpcsp-custom-fields.
20547type LogConfigCounterOptionsCustomField struct {
20548	// Name: Name is the field name.
20549	Name string `json:"name,omitempty"`
20550
20551	// Value: Value is the field value. It is important that in contrast to
20552	// the CounterOptions.field, the value here is a constant that is not
20553	// derived from the IAMContext.
20554	Value string `json:"value,omitempty"`
20555
20556	// ForceSendFields is a list of field names (e.g. "Name") to
20557	// unconditionally include in API requests. By default, fields with
20558	// empty values are omitted from API requests. However, any non-pointer,
20559	// non-interface field appearing in ForceSendFields will be sent to the
20560	// server regardless of whether the field is empty or not. This may be
20561	// used to include empty fields in Patch requests.
20562	ForceSendFields []string `json:"-"`
20563
20564	// NullFields is a list of field names (e.g. "Name") to include in API
20565	// requests with the JSON null value. By default, fields with empty
20566	// values are omitted from API requests. However, any field with an
20567	// empty value appearing in NullFields will be sent to the server as
20568	// null. It is an error if a field in this list has a non-empty value.
20569	// This may be used to include null fields in Patch requests.
20570	NullFields []string `json:"-"`
20571}
20572
20573func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
20574	type NoMethod LogConfigCounterOptionsCustomField
20575	raw := NoMethod(*s)
20576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20577}
20578
20579// LogConfigDataAccessOptions: Write a Data Access (Gin) log
20580type LogConfigDataAccessOptions struct {
20581	// Possible values:
20582	//   "LOG_FAIL_CLOSED"
20583	//   "LOG_MODE_UNSPECIFIED"
20584	LogMode string `json:"logMode,omitempty"`
20585
20586	// ForceSendFields is a list of field names (e.g. "LogMode") to
20587	// unconditionally include in API requests. By default, fields with
20588	// empty values are omitted from API requests. However, any non-pointer,
20589	// non-interface field appearing in ForceSendFields will be sent to the
20590	// server regardless of whether the field is empty or not. This may be
20591	// used to include empty fields in Patch requests.
20592	ForceSendFields []string `json:"-"`
20593
20594	// NullFields is a list of field names (e.g. "LogMode") to include in
20595	// API requests with the JSON null value. By default, fields with empty
20596	// values are omitted from API requests. However, any field with an
20597	// empty value appearing in NullFields will be sent to the server as
20598	// null. It is an error if a field in this list has a non-empty value.
20599	// This may be used to include null fields in Patch requests.
20600	NullFields []string `json:"-"`
20601}
20602
20603func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
20604	type NoMethod LogConfigDataAccessOptions
20605	raw := NoMethod(*s)
20606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20607}
20608
20609// MachineImage: Represents a machine image resource.
20610//
20611// A machine image is a Compute Engine resource that stores all the
20612// configuration, metadata, permissions, and data from one or more disks
20613// required to create a Virtual machine (VM) instance. For more
20614// information, see Machine images. (== resource_for
20615// {$api_version}.machineImages ==)
20616type MachineImage struct {
20617	// CreationTimestamp: [Output Only] The creation timestamp for this
20618	// machine image in RFC3339 text format.
20619	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20620
20621	// Description: An optional description of this resource. Provide this
20622	// property when you create the resource.
20623	Description string `json:"description,omitempty"`
20624
20625	// GuestFlush: [Input Only] Specifies to create an application
20626	// consistent machine image by informing the OS to prepare for the
20627	// snapshot process. Currently only supported on Windows instances using
20628	// the Volume Shadow Copy Service (VSS).
20629	GuestFlush bool `json:"guestFlush,omitempty"`
20630
20631	// Id: [Output Only] A unique identifier for this machine image. The
20632	// server defines this identifier.
20633	Id uint64 `json:"id,omitempty,string"`
20634
20635	// Kind: [Output Only] The resource type, which is always
20636	// compute#machineImage for machine image.
20637	Kind string `json:"kind,omitempty"`
20638
20639	// MachineImageEncryptionKey: Encrypts the machine image using a
20640	// customer-supplied encryption key.
20641	//
20642	// After you encrypt a machine image using a customer-supplied key, you
20643	// must provide the same key if you use the machine image later. For
20644	// example, you must provide the encryption key when you create an
20645	// instance from the encrypted machine image in a future
20646	// request.
20647	//
20648	// Customer-supplied encryption keys do not protect access to metadata
20649	// of the machine image.
20650	//
20651	// If you do not provide an encryption key when creating the machine
20652	// image, then the machine image will be encrypted using an
20653	// automatically generated key and you do not need to provide a key to
20654	// use the machine image later.
20655	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
20656
20657	// Name: Name of the resource; provided by the client when the resource
20658	// is created. The name must be 1-63 characters long, and comply with
20659	// RFC1035. Specifically, the name must be 1-63 characters long and
20660	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20661	// the first character must be a lowercase letter, and all following
20662	// characters must be a dash, lowercase letter, or digit, except the
20663	// last character, which cannot be a dash.
20664	Name string `json:"name,omitempty"`
20665
20666	// SelfLink: [Output Only] The URL for this machine image. The server
20667	// defines this URL.
20668	SelfLink string `json:"selfLink,omitempty"`
20669
20670	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied
20671	// encryption key of the disks attached to the source instance. Required
20672	// if the source disk is protected by a customer-supplied encryption
20673	// key.
20674	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
20675
20676	// SourceInstance: The source instance used to create the machine image.
20677	// You can provide this as a partial or full URL to the resource. For
20678	// example, the following are valid values:
20679	// -
20680	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
20681	// - projects/project/zones/zone/instances/instance
20682	SourceInstance string `json:"sourceInstance,omitempty"`
20683
20684	// SourceInstanceProperties: [Output Only] Properties of source
20685	// instance.
20686	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
20687
20688	// Status: [Output Only] The status of the machine image. One of the
20689	// following values: INVALID, CREATING, READY, DELETING, and UPLOADING.
20690	//
20691	// Possible values:
20692	//   "CREATING"
20693	//   "DELETING"
20694	//   "INVALID"
20695	//   "READY"
20696	//   "UPLOADING"
20697	Status string `json:"status,omitempty"`
20698
20699	// StorageLocations: The regional or multi-regional Cloud Storage bucket
20700	// location where the machine image is stored.
20701	StorageLocations []string `json:"storageLocations,omitempty"`
20702
20703	// TotalStorageBytes: [Output Only] Total size of the storage used by
20704	// the machine image.
20705	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`
20706
20707	// ServerResponse contains the HTTP response code and headers from the
20708	// server.
20709	googleapi.ServerResponse `json:"-"`
20710
20711	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20712	// to unconditionally include in API requests. By default, fields with
20713	// empty values are omitted from API requests. However, any non-pointer,
20714	// non-interface field appearing in ForceSendFields will be sent to the
20715	// server regardless of whether the field is empty or not. This may be
20716	// used to include empty fields in Patch requests.
20717	ForceSendFields []string `json:"-"`
20718
20719	// NullFields is a list of field names (e.g. "CreationTimestamp") to
20720	// include in API requests with the JSON null value. By default, fields
20721	// with empty values are omitted from API requests. However, any field
20722	// with an empty value appearing in NullFields will be sent to the
20723	// server as null. It is an error if a field in this list has a
20724	// non-empty value. This may be used to include null fields in Patch
20725	// requests.
20726	NullFields []string `json:"-"`
20727}
20728
20729func (s *MachineImage) MarshalJSON() ([]byte, error) {
20730	type NoMethod MachineImage
20731	raw := NoMethod(*s)
20732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20733}
20734
20735// MachineImageList: A list of machine images.
20736type MachineImageList struct {
20737	// Id: [Output Only] Unique identifier for the resource; defined by the
20738	// server.
20739	Id string `json:"id,omitempty"`
20740
20741	// Items: A list of MachineImage resources.
20742	Items []*MachineImage `json:"items,omitempty"`
20743
20744	// Kind: [Output Only] The resource type, which is always
20745	// compute#machineImagesListResponse for machine image lists.
20746	Kind string `json:"kind,omitempty"`
20747
20748	// NextPageToken: [Output Only] This token allows you to get the next
20749	// page of results for list requests. If the number of results is larger
20750	// than maxResults, use the nextPageToken as a value for the query
20751	// parameter pageToken in the next list request. Subsequent list
20752	// requests will have their own nextPageToken to continue paging through
20753	// the results.
20754	NextPageToken string `json:"nextPageToken,omitempty"`
20755
20756	// SelfLink: [Output Only] Server-defined URL for this resource.
20757	SelfLink string `json:"selfLink,omitempty"`
20758
20759	// Warning: [Output Only] Informational warning message.
20760	Warning *MachineImageListWarning `json:"warning,omitempty"`
20761
20762	// ServerResponse contains the HTTP response code and headers from the
20763	// server.
20764	googleapi.ServerResponse `json:"-"`
20765
20766	// ForceSendFields is a list of field names (e.g. "Id") to
20767	// unconditionally include in API requests. By default, fields with
20768	// empty values are omitted from API requests. However, any non-pointer,
20769	// non-interface field appearing in ForceSendFields will be sent to the
20770	// server regardless of whether the field is empty or not. This may be
20771	// used to include empty fields in Patch requests.
20772	ForceSendFields []string `json:"-"`
20773
20774	// NullFields is a list of field names (e.g. "Id") to include in API
20775	// requests with the JSON null value. By default, fields with empty
20776	// values are omitted from API requests. However, any field with an
20777	// empty value appearing in NullFields will be sent to the server as
20778	// null. It is an error if a field in this list has a non-empty value.
20779	// This may be used to include null fields in Patch requests.
20780	NullFields []string `json:"-"`
20781}
20782
20783func (s *MachineImageList) MarshalJSON() ([]byte, error) {
20784	type NoMethod MachineImageList
20785	raw := NoMethod(*s)
20786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20787}
20788
20789// MachineImageListWarning: [Output Only] Informational warning message.
20790type MachineImageListWarning struct {
20791	// Code: [Output Only] A warning code, if applicable. For example,
20792	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20793	// the response.
20794	//
20795	// Possible values:
20796	//   "CLEANUP_FAILED"
20797	//   "DEPRECATED_RESOURCE_USED"
20798	//   "DEPRECATED_TYPE_USED"
20799	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20800	//   "EXPERIMENTAL_TYPE_USED"
20801	//   "EXTERNAL_API_WARNING"
20802	//   "FIELD_VALUE_OVERRIDEN"
20803	//   "INJECTED_KERNELS_DEPRECATED"
20804	//   "MISSING_TYPE_DEPENDENCY"
20805	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20806	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20807	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20808	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20809	//   "NEXT_HOP_NOT_RUNNING"
20810	//   "NOT_CRITICAL_ERROR"
20811	//   "NO_RESULTS_ON_PAGE"
20812	//   "REQUIRED_TOS_AGREEMENT"
20813	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20814	//   "RESOURCE_NOT_DELETED"
20815	//   "SCHEMA_VALIDATION_IGNORED"
20816	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20817	//   "UNDECLARED_PROPERTIES"
20818	//   "UNREACHABLE"
20819	Code string `json:"code,omitempty"`
20820
20821	// Data: [Output Only] Metadata about this warning in key: value format.
20822	// For example:
20823	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20824	Data []*MachineImageListWarningData `json:"data,omitempty"`
20825
20826	// Message: [Output Only] A human-readable description of the warning
20827	// code.
20828	Message string `json:"message,omitempty"`
20829
20830	// ForceSendFields is a list of field names (e.g. "Code") to
20831	// unconditionally include in API requests. By default, fields with
20832	// empty values are omitted from API requests. However, any non-pointer,
20833	// non-interface field appearing in ForceSendFields will be sent to the
20834	// server regardless of whether the field is empty or not. This may be
20835	// used to include empty fields in Patch requests.
20836	ForceSendFields []string `json:"-"`
20837
20838	// NullFields is a list of field names (e.g. "Code") to include in API
20839	// requests with the JSON null value. By default, fields with empty
20840	// values are omitted from API requests. However, any field with an
20841	// empty value appearing in NullFields will be sent to the server as
20842	// null. It is an error if a field in this list has a non-empty value.
20843	// This may be used to include null fields in Patch requests.
20844	NullFields []string `json:"-"`
20845}
20846
20847func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) {
20848	type NoMethod MachineImageListWarning
20849	raw := NoMethod(*s)
20850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20851}
20852
20853type MachineImageListWarningData struct {
20854	// Key: [Output Only] A key that provides more detail on the warning
20855	// being returned. For example, for warnings where there are no results
20856	// in a list request for a particular zone, this key might be scope and
20857	// the key value might be the zone name. Other examples might be a key
20858	// indicating a deprecated resource and a suggested replacement, or a
20859	// warning about invalid network settings (for example, if an instance
20860	// attempts to perform IP forwarding but is not enabled for IP
20861	// forwarding).
20862	Key string `json:"key,omitempty"`
20863
20864	// Value: [Output Only] A warning data value corresponding to the key.
20865	Value string `json:"value,omitempty"`
20866
20867	// ForceSendFields is a list of field names (e.g. "Key") to
20868	// unconditionally include in API requests. By default, fields with
20869	// empty values are omitted from API requests. However, any non-pointer,
20870	// non-interface field appearing in ForceSendFields will be sent to the
20871	// server regardless of whether the field is empty or not. This may be
20872	// used to include empty fields in Patch requests.
20873	ForceSendFields []string `json:"-"`
20874
20875	// NullFields is a list of field names (e.g. "Key") to include in API
20876	// requests with the JSON null value. By default, fields with empty
20877	// values are omitted from API requests. However, any field with an
20878	// empty value appearing in NullFields will be sent to the server as
20879	// null. It is an error if a field in this list has a non-empty value.
20880	// This may be used to include null fields in Patch requests.
20881	NullFields []string `json:"-"`
20882}
20883
20884func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) {
20885	type NoMethod MachineImageListWarningData
20886	raw := NoMethod(*s)
20887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20888}
20889
20890// MachineType: Represents a Machine Type resource.
20891//
20892// You can use specific machine types for your VM instances based on
20893// performance and pricing requirements. For more information, read
20894// Machine Types. (== resource_for {$api_version}.machineTypes ==)
20895type MachineType struct {
20896	// Accelerators: [Output Only] A list of accelerator configurations
20897	// assigned to this machine type.
20898	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
20899
20900	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20901	// format.
20902	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20903
20904	// Deprecated: [Output Only] The deprecation status associated with this
20905	// machine type.
20906	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
20907
20908	// Description: [Output Only] An optional textual description of the
20909	// resource.
20910	Description string `json:"description,omitempty"`
20911
20912	// GuestCpus: [Output Only] The number of virtual CPUs that are
20913	// available to the instance.
20914	GuestCpus int64 `json:"guestCpus,omitempty"`
20915
20916	// Id: [Output Only] The unique identifier for the resource. This
20917	// identifier is defined by the server.
20918	Id uint64 `json:"id,omitempty,string"`
20919
20920	// IsSharedCpu: [Output Only] Whether this machine type has a shared
20921	// CPU. See Shared-core machine types for more information.
20922	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
20923
20924	// Kind: [Output Only] The type of the resource. Always
20925	// compute#machineType for machine types.
20926	Kind string `json:"kind,omitempty"`
20927
20928	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
20929	// allowed.
20930	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
20931
20932	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
20933	// disks size (GB) allowed.
20934	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
20935
20936	// MemoryMb: [Output Only] The amount of physical memory available to
20937	// the instance, defined in MB.
20938	MemoryMb int64 `json:"memoryMb,omitempty"`
20939
20940	// Name: [Output Only] Name of the resource.
20941	Name string `json:"name,omitempty"`
20942
20943	// SelfLink: [Output Only] Server-defined URL for the resource.
20944	SelfLink string `json:"selfLink,omitempty"`
20945
20946	// Zone: [Output Only] The name of the zone where the machine type
20947	// resides, such as us-central1-a.
20948	Zone string `json:"zone,omitempty"`
20949
20950	// ServerResponse contains the HTTP response code and headers from the
20951	// server.
20952	googleapi.ServerResponse `json:"-"`
20953
20954	// ForceSendFields is a list of field names (e.g. "Accelerators") to
20955	// unconditionally include in API requests. By default, fields with
20956	// empty values are omitted from API requests. However, any non-pointer,
20957	// non-interface field appearing in ForceSendFields will be sent to the
20958	// server regardless of whether the field is empty or not. This may be
20959	// used to include empty fields in Patch requests.
20960	ForceSendFields []string `json:"-"`
20961
20962	// NullFields is a list of field names (e.g. "Accelerators") to include
20963	// in API requests with the JSON null value. By default, fields with
20964	// empty values are omitted from API requests. However, any field with
20965	// an empty value appearing in NullFields will be sent to the server as
20966	// null. It is an error if a field in this list has a non-empty value.
20967	// This may be used to include null fields in Patch requests.
20968	NullFields []string `json:"-"`
20969}
20970
20971func (s *MachineType) MarshalJSON() ([]byte, error) {
20972	type NoMethod MachineType
20973	raw := NoMethod(*s)
20974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20975}
20976
20977type MachineTypeAccelerators struct {
20978	// GuestAcceleratorCount: Number of accelerator cards exposed to the
20979	// guest.
20980	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
20981
20982	// GuestAcceleratorType: The accelerator type resource name, not a full
20983	// URL, e.g. 'nvidia-tesla-k80'.
20984	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
20985
20986	// ForceSendFields is a list of field names (e.g.
20987	// "GuestAcceleratorCount") to unconditionally include in API requests.
20988	// By default, fields with empty values are omitted from API requests.
20989	// However, any non-pointer, non-interface field appearing in
20990	// ForceSendFields will be sent to the server regardless of whether the
20991	// field is empty or not. This may be used to include empty fields in
20992	// Patch requests.
20993	ForceSendFields []string `json:"-"`
20994
20995	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
20996	// include in API requests with the JSON null value. By default, fields
20997	// with empty values are omitted from API requests. However, any field
20998	// with an empty value appearing in NullFields will be sent to the
20999	// server as null. It is an error if a field in this list has a
21000	// non-empty value. This may be used to include null fields in Patch
21001	// requests.
21002	NullFields []string `json:"-"`
21003}
21004
21005func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
21006	type NoMethod MachineTypeAccelerators
21007	raw := NoMethod(*s)
21008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21009}
21010
21011type MachineTypeAggregatedList struct {
21012	// Id: [Output Only] Unique identifier for the resource; defined by the
21013	// server.
21014	Id string `json:"id,omitempty"`
21015
21016	// Items: A list of MachineTypesScopedList resources.
21017	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
21018
21019	// Kind: [Output Only] Type of resource. Always
21020	// compute#machineTypeAggregatedList for aggregated lists of machine
21021	// types.
21022	Kind string `json:"kind,omitempty"`
21023
21024	// NextPageToken: [Output Only] This token allows you to get the next
21025	// page of results for list requests. If the number of results is larger
21026	// than maxResults, use the nextPageToken as a value for the query
21027	// parameter pageToken in the next list request. Subsequent list
21028	// requests will have their own nextPageToken to continue paging through
21029	// the results.
21030	NextPageToken string `json:"nextPageToken,omitempty"`
21031
21032	// SelfLink: [Output Only] Server-defined URL for this resource.
21033	SelfLink string `json:"selfLink,omitempty"`
21034
21035	// Warning: [Output Only] Informational warning message.
21036	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
21037
21038	// ServerResponse contains the HTTP response code and headers from the
21039	// server.
21040	googleapi.ServerResponse `json:"-"`
21041
21042	// ForceSendFields is a list of field names (e.g. "Id") to
21043	// unconditionally include in API requests. By default, fields with
21044	// empty values are omitted from API requests. However, any non-pointer,
21045	// non-interface field appearing in ForceSendFields will be sent to the
21046	// server regardless of whether the field is empty or not. This may be
21047	// used to include empty fields in Patch requests.
21048	ForceSendFields []string `json:"-"`
21049
21050	// NullFields is a list of field names (e.g. "Id") to include in API
21051	// requests with the JSON null value. By default, fields with empty
21052	// values are omitted from API requests. However, any field with an
21053	// empty value appearing in NullFields will be sent to the server as
21054	// null. It is an error if a field in this list has a non-empty value.
21055	// This may be used to include null fields in Patch requests.
21056	NullFields []string `json:"-"`
21057}
21058
21059func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
21060	type NoMethod MachineTypeAggregatedList
21061	raw := NoMethod(*s)
21062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21063}
21064
21065// MachineTypeAggregatedListWarning: [Output Only] Informational warning
21066// message.
21067type MachineTypeAggregatedListWarning struct {
21068	// Code: [Output Only] A warning code, if applicable. For example,
21069	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21070	// the response.
21071	//
21072	// Possible values:
21073	//   "CLEANUP_FAILED"
21074	//   "DEPRECATED_RESOURCE_USED"
21075	//   "DEPRECATED_TYPE_USED"
21076	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21077	//   "EXPERIMENTAL_TYPE_USED"
21078	//   "EXTERNAL_API_WARNING"
21079	//   "FIELD_VALUE_OVERRIDEN"
21080	//   "INJECTED_KERNELS_DEPRECATED"
21081	//   "MISSING_TYPE_DEPENDENCY"
21082	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21083	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21084	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21085	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21086	//   "NEXT_HOP_NOT_RUNNING"
21087	//   "NOT_CRITICAL_ERROR"
21088	//   "NO_RESULTS_ON_PAGE"
21089	//   "REQUIRED_TOS_AGREEMENT"
21090	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21091	//   "RESOURCE_NOT_DELETED"
21092	//   "SCHEMA_VALIDATION_IGNORED"
21093	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21094	//   "UNDECLARED_PROPERTIES"
21095	//   "UNREACHABLE"
21096	Code string `json:"code,omitempty"`
21097
21098	// Data: [Output Only] Metadata about this warning in key: value format.
21099	// For example:
21100	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21101	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
21102
21103	// Message: [Output Only] A human-readable description of the warning
21104	// code.
21105	Message string `json:"message,omitempty"`
21106
21107	// ForceSendFields is a list of field names (e.g. "Code") to
21108	// unconditionally include in API requests. By default, fields with
21109	// empty values are omitted from API requests. However, any non-pointer,
21110	// non-interface field appearing in ForceSendFields will be sent to the
21111	// server regardless of whether the field is empty or not. This may be
21112	// used to include empty fields in Patch requests.
21113	ForceSendFields []string `json:"-"`
21114
21115	// NullFields is a list of field names (e.g. "Code") to include in API
21116	// requests with the JSON null value. By default, fields with empty
21117	// values are omitted from API requests. However, any field with an
21118	// empty value appearing in NullFields will be sent to the server as
21119	// null. It is an error if a field in this list has a non-empty value.
21120	// This may be used to include null fields in Patch requests.
21121	NullFields []string `json:"-"`
21122}
21123
21124func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
21125	type NoMethod MachineTypeAggregatedListWarning
21126	raw := NoMethod(*s)
21127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21128}
21129
21130type MachineTypeAggregatedListWarningData struct {
21131	// Key: [Output Only] A key that provides more detail on the warning
21132	// being returned. For example, for warnings where there are no results
21133	// in a list request for a particular zone, this key might be scope and
21134	// the key value might be the zone name. Other examples might be a key
21135	// indicating a deprecated resource and a suggested replacement, or a
21136	// warning about invalid network settings (for example, if an instance
21137	// attempts to perform IP forwarding but is not enabled for IP
21138	// forwarding).
21139	Key string `json:"key,omitempty"`
21140
21141	// Value: [Output Only] A warning data value corresponding to the key.
21142	Value string `json:"value,omitempty"`
21143
21144	// ForceSendFields is a list of field names (e.g. "Key") to
21145	// unconditionally include in API requests. By default, fields with
21146	// empty values are omitted from API requests. However, any non-pointer,
21147	// non-interface field appearing in ForceSendFields will be sent to the
21148	// server regardless of whether the field is empty or not. This may be
21149	// used to include empty fields in Patch requests.
21150	ForceSendFields []string `json:"-"`
21151
21152	// NullFields is a list of field names (e.g. "Key") to include in API
21153	// requests with the JSON null value. By default, fields with empty
21154	// values are omitted from API requests. However, any field with an
21155	// empty value appearing in NullFields will be sent to the server as
21156	// null. It is an error if a field in this list has a non-empty value.
21157	// This may be used to include null fields in Patch requests.
21158	NullFields []string `json:"-"`
21159}
21160
21161func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
21162	type NoMethod MachineTypeAggregatedListWarningData
21163	raw := NoMethod(*s)
21164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21165}
21166
21167// MachineTypeList: Contains a list of machine types.
21168type MachineTypeList struct {
21169	// Id: [Output Only] Unique identifier for the resource; defined by the
21170	// server.
21171	Id string `json:"id,omitempty"`
21172
21173	// Items: A list of MachineType resources.
21174	Items []*MachineType `json:"items,omitempty"`
21175
21176	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
21177	// for lists of machine types.
21178	Kind string `json:"kind,omitempty"`
21179
21180	// NextPageToken: [Output Only] This token allows you to get the next
21181	// page of results for list requests. If the number of results is larger
21182	// than maxResults, use the nextPageToken as a value for the query
21183	// parameter pageToken in the next list request. Subsequent list
21184	// requests will have their own nextPageToken to continue paging through
21185	// the results.
21186	NextPageToken string `json:"nextPageToken,omitempty"`
21187
21188	// SelfLink: [Output Only] Server-defined URL for this resource.
21189	SelfLink string `json:"selfLink,omitempty"`
21190
21191	// Warning: [Output Only] Informational warning message.
21192	Warning *MachineTypeListWarning `json:"warning,omitempty"`
21193
21194	// ServerResponse contains the HTTP response code and headers from the
21195	// server.
21196	googleapi.ServerResponse `json:"-"`
21197
21198	// ForceSendFields is a list of field names (e.g. "Id") to
21199	// unconditionally include in API requests. By default, fields with
21200	// empty values are omitted from API requests. However, any non-pointer,
21201	// non-interface field appearing in ForceSendFields will be sent to the
21202	// server regardless of whether the field is empty or not. This may be
21203	// used to include empty fields in Patch requests.
21204	ForceSendFields []string `json:"-"`
21205
21206	// NullFields is a list of field names (e.g. "Id") to include in API
21207	// requests with the JSON null value. By default, fields with empty
21208	// values are omitted from API requests. However, any field with an
21209	// empty value appearing in NullFields will be sent to the server as
21210	// null. It is an error if a field in this list has a non-empty value.
21211	// This may be used to include null fields in Patch requests.
21212	NullFields []string `json:"-"`
21213}
21214
21215func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
21216	type NoMethod MachineTypeList
21217	raw := NoMethod(*s)
21218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21219}
21220
21221// MachineTypeListWarning: [Output Only] Informational warning message.
21222type MachineTypeListWarning struct {
21223	// Code: [Output Only] A warning code, if applicable. For example,
21224	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21225	// the response.
21226	//
21227	// Possible values:
21228	//   "CLEANUP_FAILED"
21229	//   "DEPRECATED_RESOURCE_USED"
21230	//   "DEPRECATED_TYPE_USED"
21231	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21232	//   "EXPERIMENTAL_TYPE_USED"
21233	//   "EXTERNAL_API_WARNING"
21234	//   "FIELD_VALUE_OVERRIDEN"
21235	//   "INJECTED_KERNELS_DEPRECATED"
21236	//   "MISSING_TYPE_DEPENDENCY"
21237	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21238	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21239	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21240	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21241	//   "NEXT_HOP_NOT_RUNNING"
21242	//   "NOT_CRITICAL_ERROR"
21243	//   "NO_RESULTS_ON_PAGE"
21244	//   "REQUIRED_TOS_AGREEMENT"
21245	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21246	//   "RESOURCE_NOT_DELETED"
21247	//   "SCHEMA_VALIDATION_IGNORED"
21248	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21249	//   "UNDECLARED_PROPERTIES"
21250	//   "UNREACHABLE"
21251	Code string `json:"code,omitempty"`
21252
21253	// Data: [Output Only] Metadata about this warning in key: value format.
21254	// For example:
21255	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21256	Data []*MachineTypeListWarningData `json:"data,omitempty"`
21257
21258	// Message: [Output Only] A human-readable description of the warning
21259	// code.
21260	Message string `json:"message,omitempty"`
21261
21262	// ForceSendFields is a list of field names (e.g. "Code") to
21263	// unconditionally include in API requests. By default, fields with
21264	// empty values are omitted from API requests. However, any non-pointer,
21265	// non-interface field appearing in ForceSendFields will be sent to the
21266	// server regardless of whether the field is empty or not. This may be
21267	// used to include empty fields in Patch requests.
21268	ForceSendFields []string `json:"-"`
21269
21270	// NullFields is a list of field names (e.g. "Code") to include in API
21271	// requests with the JSON null value. By default, fields with empty
21272	// values are omitted from API requests. However, any field with an
21273	// empty value appearing in NullFields will be sent to the server as
21274	// null. It is an error if a field in this list has a non-empty value.
21275	// This may be used to include null fields in Patch requests.
21276	NullFields []string `json:"-"`
21277}
21278
21279func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
21280	type NoMethod MachineTypeListWarning
21281	raw := NoMethod(*s)
21282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21283}
21284
21285type MachineTypeListWarningData struct {
21286	// Key: [Output Only] A key that provides more detail on the warning
21287	// being returned. For example, for warnings where there are no results
21288	// in a list request for a particular zone, this key might be scope and
21289	// the key value might be the zone name. Other examples might be a key
21290	// indicating a deprecated resource and a suggested replacement, or a
21291	// warning about invalid network settings (for example, if an instance
21292	// attempts to perform IP forwarding but is not enabled for IP
21293	// forwarding).
21294	Key string `json:"key,omitempty"`
21295
21296	// Value: [Output Only] A warning data value corresponding to the key.
21297	Value string `json:"value,omitempty"`
21298
21299	// ForceSendFields is a list of field names (e.g. "Key") to
21300	// unconditionally include in API requests. By default, fields with
21301	// empty values are omitted from API requests. However, any non-pointer,
21302	// non-interface field appearing in ForceSendFields will be sent to the
21303	// server regardless of whether the field is empty or not. This may be
21304	// used to include empty fields in Patch requests.
21305	ForceSendFields []string `json:"-"`
21306
21307	// NullFields is a list of field names (e.g. "Key") to include in API
21308	// requests with the JSON null value. By default, fields with empty
21309	// values are omitted from API requests. However, any field with an
21310	// empty value appearing in NullFields will be sent to the server as
21311	// null. It is an error if a field in this list has a non-empty value.
21312	// This may be used to include null fields in Patch requests.
21313	NullFields []string `json:"-"`
21314}
21315
21316func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
21317	type NoMethod MachineTypeListWarningData
21318	raw := NoMethod(*s)
21319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21320}
21321
21322type MachineTypesScopedList struct {
21323	// MachineTypes: [Output Only] A list of machine types contained in this
21324	// scope.
21325	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
21326
21327	// Warning: [Output Only] An informational warning that appears when the
21328	// machine types list is empty.
21329	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
21330
21331	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
21332	// unconditionally include in API requests. By default, fields with
21333	// empty values are omitted from API requests. However, any non-pointer,
21334	// non-interface field appearing in ForceSendFields will be sent to the
21335	// server regardless of whether the field is empty or not. This may be
21336	// used to include empty fields in Patch requests.
21337	ForceSendFields []string `json:"-"`
21338
21339	// NullFields is a list of field names (e.g. "MachineTypes") to include
21340	// in API requests with the JSON null value. By default, fields with
21341	// empty values are omitted from API requests. However, any field with
21342	// an empty value appearing in NullFields will be sent to the server as
21343	// null. It is an error if a field in this list has a non-empty value.
21344	// This may be used to include null fields in Patch requests.
21345	NullFields []string `json:"-"`
21346}
21347
21348func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
21349	type NoMethod MachineTypesScopedList
21350	raw := NoMethod(*s)
21351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21352}
21353
21354// MachineTypesScopedListWarning: [Output Only] An informational warning
21355// that appears when the machine types list is empty.
21356type MachineTypesScopedListWarning struct {
21357	// Code: [Output Only] A warning code, if applicable. For example,
21358	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21359	// the response.
21360	//
21361	// Possible values:
21362	//   "CLEANUP_FAILED"
21363	//   "DEPRECATED_RESOURCE_USED"
21364	//   "DEPRECATED_TYPE_USED"
21365	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21366	//   "EXPERIMENTAL_TYPE_USED"
21367	//   "EXTERNAL_API_WARNING"
21368	//   "FIELD_VALUE_OVERRIDEN"
21369	//   "INJECTED_KERNELS_DEPRECATED"
21370	//   "MISSING_TYPE_DEPENDENCY"
21371	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21372	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21373	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21374	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21375	//   "NEXT_HOP_NOT_RUNNING"
21376	//   "NOT_CRITICAL_ERROR"
21377	//   "NO_RESULTS_ON_PAGE"
21378	//   "REQUIRED_TOS_AGREEMENT"
21379	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21380	//   "RESOURCE_NOT_DELETED"
21381	//   "SCHEMA_VALIDATION_IGNORED"
21382	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21383	//   "UNDECLARED_PROPERTIES"
21384	//   "UNREACHABLE"
21385	Code string `json:"code,omitempty"`
21386
21387	// Data: [Output Only] Metadata about this warning in key: value format.
21388	// For example:
21389	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21390	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
21391
21392	// Message: [Output Only] A human-readable description of the warning
21393	// code.
21394	Message string `json:"message,omitempty"`
21395
21396	// ForceSendFields is a list of field names (e.g. "Code") to
21397	// unconditionally include in API requests. By default, fields with
21398	// empty values are omitted from API requests. However, any non-pointer,
21399	// non-interface field appearing in ForceSendFields will be sent to the
21400	// server regardless of whether the field is empty or not. This may be
21401	// used to include empty fields in Patch requests.
21402	ForceSendFields []string `json:"-"`
21403
21404	// NullFields is a list of field names (e.g. "Code") to include in API
21405	// requests with the JSON null value. By default, fields with empty
21406	// values are omitted from API requests. However, any field with an
21407	// empty value appearing in NullFields will be sent to the server as
21408	// null. It is an error if a field in this list has a non-empty value.
21409	// This may be used to include null fields in Patch requests.
21410	NullFields []string `json:"-"`
21411}
21412
21413func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
21414	type NoMethod MachineTypesScopedListWarning
21415	raw := NoMethod(*s)
21416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21417}
21418
21419type MachineTypesScopedListWarningData struct {
21420	// Key: [Output Only] A key that provides more detail on the warning
21421	// being returned. For example, for warnings where there are no results
21422	// in a list request for a particular zone, this key might be scope and
21423	// the key value might be the zone name. Other examples might be a key
21424	// indicating a deprecated resource and a suggested replacement, or a
21425	// warning about invalid network settings (for example, if an instance
21426	// attempts to perform IP forwarding but is not enabled for IP
21427	// forwarding).
21428	Key string `json:"key,omitempty"`
21429
21430	// Value: [Output Only] A warning data value corresponding to the key.
21431	Value string `json:"value,omitempty"`
21432
21433	// ForceSendFields is a list of field names (e.g. "Key") to
21434	// unconditionally include in API requests. By default, fields with
21435	// empty values are omitted from API requests. However, any non-pointer,
21436	// non-interface field appearing in ForceSendFields will be sent to the
21437	// server regardless of whether the field is empty or not. This may be
21438	// used to include empty fields in Patch requests.
21439	ForceSendFields []string `json:"-"`
21440
21441	// NullFields is a list of field names (e.g. "Key") to include in API
21442	// requests with the JSON null value. By default, fields with empty
21443	// values are omitted from API requests. However, any field with an
21444	// empty value appearing in NullFields will be sent to the server as
21445	// null. It is an error if a field in this list has a non-empty value.
21446	// This may be used to include null fields in Patch requests.
21447	NullFields []string `json:"-"`
21448}
21449
21450func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
21451	type NoMethod MachineTypesScopedListWarningData
21452	raw := NoMethod(*s)
21453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21454}
21455
21456// ManagedInstance: A Managed Instance resource.
21457type ManagedInstance struct {
21458	// CurrentAction: [Output Only] The current action that the managed
21459	// instance group has scheduled for the instance. Possible values:
21460	// - NONE The instance is running, and the managed instance group does
21461	// not have any scheduled actions for this instance.
21462	// - CREATING The managed instance group is creating this instance. If
21463	// the group fails to create this instance, it will try again until it
21464	// is successful.
21465	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
21466	// to create this instance only once. If the group fails to create this
21467	// instance, it does not try again and the group's targetSize value is
21468	// decreased instead.
21469	// - RECREATING The managed instance group is recreating this instance.
21470	//
21471	// - DELETING The managed instance group is permanently deleting this
21472	// instance.
21473	// - ABANDONING The managed instance group is abandoning this instance.
21474	// The instance will be removed from the instance group and from any
21475	// target pools that are associated with this group.
21476	// - RESTARTING The managed instance group is restarting the instance.
21477	//
21478	// - REFRESHING The managed instance group is applying configuration
21479	// changes to the instance without stopping it. For example, the group
21480	// can update the target pool list for an instance without stopping that
21481	// instance.
21482	// - VERIFYING The managed instance group has created the instance and
21483	// it is in the process of being verified.
21484	//
21485	// Possible values:
21486	//   "ABANDONING"
21487	//   "CREATING"
21488	//   "CREATING_WITHOUT_RETRIES"
21489	//   "DELETING"
21490	//   "NONE"
21491	//   "RECREATING"
21492	//   "REFRESHING"
21493	//   "RESTARTING"
21494	//   "VERIFYING"
21495	CurrentAction string `json:"currentAction,omitempty"`
21496
21497	// Id: [Output only] The unique identifier for this resource. This field
21498	// is empty when instance does not exist.
21499	Id uint64 `json:"id,omitempty,string"`
21500
21501	// Instance: [Output Only] The URL of the instance. The URL can exist
21502	// even if the instance has not yet been created.
21503	Instance string `json:"instance,omitempty"`
21504
21505	// InstanceHealth: [Output Only] Health state of the instance per
21506	// health-check.
21507	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
21508
21509	// InstanceStatus: [Output Only] The status of the instance. This field
21510	// is empty when the instance does not exist.
21511	//
21512	// Possible values:
21513	//   "DEPROVISIONING"
21514	//   "PROVISIONING"
21515	//   "REPAIRING"
21516	//   "RUNNING"
21517	//   "STAGING"
21518	//   "STOPPED"
21519	//   "STOPPING"
21520	//   "SUSPENDED"
21521	//   "SUSPENDING"
21522	//   "TERMINATED"
21523	InstanceStatus string `json:"instanceStatus,omitempty"`
21524
21525	// LastAttempt: [Output Only] Information about the last attempt to
21526	// create or delete the instance.
21527	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
21528
21529	// PreservedStateFromConfig: [Output Only] Preserved state applied from
21530	// per-instance config for this instance.
21531	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
21532
21533	// PreservedStateFromPolicy: [Output Only] Preserved state generated
21534	// based on stateful policy for this instance.
21535	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
21536
21537	// Version: [Output Only] Intended version of this instance.
21538	Version *ManagedInstanceVersion `json:"version,omitempty"`
21539
21540	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
21541	// unconditionally include in API requests. By default, fields with
21542	// empty values are omitted from API requests. However, any non-pointer,
21543	// non-interface field appearing in ForceSendFields will be sent to the
21544	// server regardless of whether the field is empty or not. This may be
21545	// used to include empty fields in Patch requests.
21546	ForceSendFields []string `json:"-"`
21547
21548	// NullFields is a list of field names (e.g. "CurrentAction") to include
21549	// in API requests with the JSON null value. By default, fields with
21550	// empty values are omitted from API requests. However, any field with
21551	// an empty value appearing in NullFields will be sent to the server as
21552	// null. It is an error if a field in this list has a non-empty value.
21553	// This may be used to include null fields in Patch requests.
21554	NullFields []string `json:"-"`
21555}
21556
21557func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
21558	type NoMethod ManagedInstance
21559	raw := NoMethod(*s)
21560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21561}
21562
21563type ManagedInstanceInstanceHealth struct {
21564	// DetailedHealthState: [Output Only] The current detailed instance
21565	// health state.
21566	//
21567	// Possible values:
21568	//   "DRAINING"
21569	//   "HEALTHY"
21570	//   "TIMEOUT"
21571	//   "UNHEALTHY"
21572	//   "UNKNOWN"
21573	DetailedHealthState string `json:"detailedHealthState,omitempty"`
21574
21575	// HealthCheck: [Output Only] The URL for the health check that verifies
21576	// whether the instance is healthy.
21577	HealthCheck string `json:"healthCheck,omitempty"`
21578
21579	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
21580	// to unconditionally include in API requests. By default, fields with
21581	// empty values are omitted from API requests. However, any non-pointer,
21582	// non-interface field appearing in ForceSendFields will be sent to the
21583	// server regardless of whether the field is empty or not. This may be
21584	// used to include empty fields in Patch requests.
21585	ForceSendFields []string `json:"-"`
21586
21587	// NullFields is a list of field names (e.g. "DetailedHealthState") to
21588	// include in API requests with the JSON null value. By default, fields
21589	// with empty values are omitted from API requests. However, any field
21590	// with an empty value appearing in NullFields will be sent to the
21591	// server as null. It is an error if a field in this list has a
21592	// non-empty value. This may be used to include null fields in Patch
21593	// requests.
21594	NullFields []string `json:"-"`
21595}
21596
21597func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
21598	type NoMethod ManagedInstanceInstanceHealth
21599	raw := NoMethod(*s)
21600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21601}
21602
21603type ManagedInstanceLastAttempt struct {
21604	// Errors: [Output Only] Encountered errors during the last attempt to
21605	// create or delete the instance.
21606	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
21607
21608	// ForceSendFields is a list of field names (e.g. "Errors") to
21609	// unconditionally include in API requests. By default, fields with
21610	// empty values are omitted from API requests. However, any non-pointer,
21611	// non-interface field appearing in ForceSendFields will be sent to the
21612	// server regardless of whether the field is empty or not. This may be
21613	// used to include empty fields in Patch requests.
21614	ForceSendFields []string `json:"-"`
21615
21616	// NullFields is a list of field names (e.g. "Errors") to include in API
21617	// requests with the JSON null value. By default, fields with empty
21618	// values are omitted from API requests. However, any field with an
21619	// empty value appearing in NullFields will be sent to the server as
21620	// null. It is an error if a field in this list has a non-empty value.
21621	// This may be used to include null fields in Patch requests.
21622	NullFields []string `json:"-"`
21623}
21624
21625func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
21626	type NoMethod ManagedInstanceLastAttempt
21627	raw := NoMethod(*s)
21628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21629}
21630
21631// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
21632// during the last attempt to create or delete the instance.
21633type ManagedInstanceLastAttemptErrors struct {
21634	// Errors: [Output Only] The array of errors encountered while
21635	// processing this operation.
21636	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
21637
21638	// ForceSendFields is a list of field names (e.g. "Errors") to
21639	// unconditionally include in API requests. By default, fields with
21640	// empty values are omitted from API requests. However, any non-pointer,
21641	// non-interface field appearing in ForceSendFields will be sent to the
21642	// server regardless of whether the field is empty or not. This may be
21643	// used to include empty fields in Patch requests.
21644	ForceSendFields []string `json:"-"`
21645
21646	// NullFields is a list of field names (e.g. "Errors") to include in API
21647	// requests with the JSON null value. By default, fields with empty
21648	// values are omitted from API requests. However, any field with an
21649	// empty value appearing in NullFields will be sent to the server as
21650	// null. It is an error if a field in this list has a non-empty value.
21651	// This may be used to include null fields in Patch requests.
21652	NullFields []string `json:"-"`
21653}
21654
21655func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
21656	type NoMethod ManagedInstanceLastAttemptErrors
21657	raw := NoMethod(*s)
21658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21659}
21660
21661type ManagedInstanceLastAttemptErrorsErrors struct {
21662	// Code: [Output Only] The error type identifier for this error.
21663	Code string `json:"code,omitempty"`
21664
21665	// Location: [Output Only] Indicates the field in the request that
21666	// caused the error. This property is optional.
21667	Location string `json:"location,omitempty"`
21668
21669	// Message: [Output Only] An optional, human-readable error message.
21670	Message string `json:"message,omitempty"`
21671
21672	// ForceSendFields is a list of field names (e.g. "Code") to
21673	// unconditionally include in API requests. By default, fields with
21674	// empty values are omitted from API requests. However, any non-pointer,
21675	// non-interface field appearing in ForceSendFields will be sent to the
21676	// server regardless of whether the field is empty or not. This may be
21677	// used to include empty fields in Patch requests.
21678	ForceSendFields []string `json:"-"`
21679
21680	// NullFields is a list of field names (e.g. "Code") to include in API
21681	// requests with the JSON null value. By default, fields with empty
21682	// values are omitted from API requests. However, any field with an
21683	// empty value appearing in NullFields will be sent to the server as
21684	// null. It is an error if a field in this list has a non-empty value.
21685	// This may be used to include null fields in Patch requests.
21686	NullFields []string `json:"-"`
21687}
21688
21689func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
21690	type NoMethod ManagedInstanceLastAttemptErrorsErrors
21691	raw := NoMethod(*s)
21692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21693}
21694
21695type ManagedInstanceVersion struct {
21696	// InstanceTemplate: [Output Only] The intended template of the
21697	// instance. This field is empty when current_action is one of {
21698	// DELETING, ABANDONING }.
21699	InstanceTemplate string `json:"instanceTemplate,omitempty"`
21700
21701	// Name: [Output Only] Name of the version.
21702	Name string `json:"name,omitempty"`
21703
21704	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
21705	// unconditionally include in API requests. By default, fields with
21706	// empty values are omitted from API requests. However, any non-pointer,
21707	// non-interface field appearing in ForceSendFields will be sent to the
21708	// server regardless of whether the field is empty or not. This may be
21709	// used to include empty fields in Patch requests.
21710	ForceSendFields []string `json:"-"`
21711
21712	// NullFields is a list of field names (e.g. "InstanceTemplate") to
21713	// include in API requests with the JSON null value. By default, fields
21714	// with empty values are omitted from API requests. However, any field
21715	// with an empty value appearing in NullFields will be sent to the
21716	// server as null. It is an error if a field in this list has a
21717	// non-empty value. This may be used to include null fields in Patch
21718	// requests.
21719	NullFields []string `json:"-"`
21720}
21721
21722func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
21723	type NoMethod ManagedInstanceVersion
21724	raw := NoMethod(*s)
21725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21726}
21727
21728// Metadata: A metadata key/value entry.
21729type Metadata struct {
21730	// Fingerprint: Specifies a fingerprint for this request, which is
21731	// essentially a hash of the metadata's contents and used for optimistic
21732	// locking. The fingerprint is initially generated by Compute Engine and
21733	// changes after every request to modify or update metadata. You must
21734	// always provide an up-to-date fingerprint hash in order to update or
21735	// change metadata, otherwise the request will fail with error 412
21736	// conditionNotMet.
21737	//
21738	// To see the latest fingerprint, make a get() request to retrieve the
21739	// resource.
21740	Fingerprint string `json:"fingerprint,omitempty"`
21741
21742	// Items: Array of key/value pairs. The total size of all keys and
21743	// values must be less than 512 KB.
21744	Items []*MetadataItems `json:"items,omitempty"`
21745
21746	// Kind: [Output Only] Type of the resource. Always compute#metadata for
21747	// metadata.
21748	Kind string `json:"kind,omitempty"`
21749
21750	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
21751	// unconditionally include in API requests. By default, fields with
21752	// empty values are omitted from API requests. However, any non-pointer,
21753	// non-interface field appearing in ForceSendFields will be sent to the
21754	// server regardless of whether the field is empty or not. This may be
21755	// used to include empty fields in Patch requests.
21756	ForceSendFields []string `json:"-"`
21757
21758	// NullFields is a list of field names (e.g. "Fingerprint") to include
21759	// in API requests with the JSON null value. By default, fields with
21760	// empty values are omitted from API requests. However, any field with
21761	// an empty value appearing in NullFields will be sent to the server as
21762	// null. It is an error if a field in this list has a non-empty value.
21763	// This may be used to include null fields in Patch requests.
21764	NullFields []string `json:"-"`
21765}
21766
21767func (s *Metadata) MarshalJSON() ([]byte, error) {
21768	type NoMethod Metadata
21769	raw := NoMethod(*s)
21770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21771}
21772
21773type MetadataItems struct {
21774	// Key: Key for the metadata entry. Keys must conform to the following
21775	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
21776	// reflected as part of a URL in the metadata server. Additionally, to
21777	// avoid ambiguity, keys must not conflict with any other metadata keys
21778	// for the project.
21779	Key string `json:"key,omitempty"`
21780
21781	// Value: Value for the metadata entry. These are free-form strings, and
21782	// only have meaning as interpreted by the image running in the
21783	// instance. The only restriction placed on values is that their size
21784	// must be less than or equal to 262144 bytes (256 KiB).
21785	Value *string `json:"value,omitempty"`
21786
21787	// ForceSendFields is a list of field names (e.g. "Key") to
21788	// unconditionally include in API requests. By default, fields with
21789	// empty values are omitted from API requests. However, any non-pointer,
21790	// non-interface field appearing in ForceSendFields will be sent to the
21791	// server regardless of whether the field is empty or not. This may be
21792	// used to include empty fields in Patch requests.
21793	ForceSendFields []string `json:"-"`
21794
21795	// NullFields is a list of field names (e.g. "Key") to include in API
21796	// requests with the JSON null value. By default, fields with empty
21797	// values are omitted from API requests. However, any field with an
21798	// empty value appearing in NullFields will be sent to the server as
21799	// null. It is an error if a field in this list has a non-empty value.
21800	// This may be used to include null fields in Patch requests.
21801	NullFields []string `json:"-"`
21802}
21803
21804func (s *MetadataItems) MarshalJSON() ([]byte, error) {
21805	type NoMethod MetadataItems
21806	raw := NoMethod(*s)
21807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21808}
21809
21810// MetadataFilter: Opaque filter criteria used by loadbalancers to
21811// restrict routing configuration to a limited set of loadbalancing
21812// proxies. Proxies and sidecars involved in loadbalancing would
21813// typically present metadata to the loadbalancers which need to match
21814// criteria specified here. If a match takes place, the relevant
21815// configuration is made available to those proxies.
21816// For each metadataFilter in this list, if its filterMatchCriteria is
21817// set to MATCH_ANY, at least one of the filterLabels must match the
21818// corresponding label provided in the metadata. If its
21819// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
21820// must match with corresponding labels provided in the metadata.
21821// An example for using metadataFilters would be: if loadbalancing
21822// involves  Envoys, they will only receive routing configuration when
21823// values in metadataFilters match values supplied in <a
21824// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
21825// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
21826// requests to loadbalancers.
21827type MetadataFilter struct {
21828	// FilterLabels: The list of label value pairs that must match labels in
21829	// the provided metadata based on filterMatchCriteria
21830	// This list must not be empty and can have at the most 64 entries.
21831	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
21832
21833	// FilterMatchCriteria: Specifies how individual filterLabel matches
21834	// within the list of filterLabels contribute towards the overall
21835	// metadataFilter match.
21836	// Supported values are:
21837	// - MATCH_ANY: At least one of the filterLabels must have a matching
21838	// label in the provided metadata.
21839	// - MATCH_ALL: All filterLabels must have matching labels in the
21840	// provided metadata.
21841	//
21842	// Possible values:
21843	//   "MATCH_ALL"
21844	//   "MATCH_ANY"
21845	//   "NOT_SET"
21846	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
21847
21848	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
21849	// unconditionally include in API requests. By default, fields with
21850	// empty values are omitted from API requests. However, any non-pointer,
21851	// non-interface field appearing in ForceSendFields will be sent to the
21852	// server regardless of whether the field is empty or not. This may be
21853	// used to include empty fields in Patch requests.
21854	ForceSendFields []string `json:"-"`
21855
21856	// NullFields is a list of field names (e.g. "FilterLabels") to include
21857	// in API requests with the JSON null value. By default, fields with
21858	// empty values are omitted from API requests. However, any field with
21859	// an empty value appearing in NullFields will be sent to the server as
21860	// null. It is an error if a field in this list has a non-empty value.
21861	// This may be used to include null fields in Patch requests.
21862	NullFields []string `json:"-"`
21863}
21864
21865func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
21866	type NoMethod MetadataFilter
21867	raw := NoMethod(*s)
21868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21869}
21870
21871// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
21872// are expected to match corresponding labels presented as metadata to
21873// the loadbalancer.
21874type MetadataFilterLabelMatch struct {
21875	// Name: Name of metadata label.
21876	// The name can have a maximum length of 1024 characters and must be at
21877	// least 1 character long.
21878	Name string `json:"name,omitempty"`
21879
21880	// Value: The value of the label must match the specified value.
21881	// value can have a maximum length of 1024 characters.
21882	Value string `json:"value,omitempty"`
21883
21884	// ForceSendFields is a list of field names (e.g. "Name") to
21885	// unconditionally include in API requests. By default, fields with
21886	// empty values are omitted from API requests. However, any non-pointer,
21887	// non-interface field appearing in ForceSendFields will be sent to the
21888	// server regardless of whether the field is empty or not. This may be
21889	// used to include empty fields in Patch requests.
21890	ForceSendFields []string `json:"-"`
21891
21892	// NullFields is a list of field names (e.g. "Name") to include in API
21893	// requests with the JSON null value. By default, fields with empty
21894	// values are omitted from API requests. However, any field with an
21895	// empty value appearing in NullFields will be sent to the server as
21896	// null. It is an error if a field in this list has a non-empty value.
21897	// This may be used to include null fields in Patch requests.
21898	NullFields []string `json:"-"`
21899}
21900
21901func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
21902	type NoMethod MetadataFilterLabelMatch
21903	raw := NoMethod(*s)
21904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21905}
21906
21907// NamedPort: The named port. For example: .
21908type NamedPort struct {
21909	// Name: The name for this named port. The name must be 1-63 characters
21910	// long, and comply with RFC1035.
21911	Name string `json:"name,omitempty"`
21912
21913	// Port: The port number, which can be a value between 1 and 65535.
21914	Port int64 `json:"port,omitempty"`
21915
21916	// ForceSendFields is a list of field names (e.g. "Name") to
21917	// unconditionally include in API requests. By default, fields with
21918	// empty values are omitted from API requests. However, any non-pointer,
21919	// non-interface field appearing in ForceSendFields will be sent to the
21920	// server regardless of whether the field is empty or not. This may be
21921	// used to include empty fields in Patch requests.
21922	ForceSendFields []string `json:"-"`
21923
21924	// NullFields is a list of field names (e.g. "Name") to include in API
21925	// requests with the JSON null value. By default, fields with empty
21926	// values are omitted from API requests. However, any field with an
21927	// empty value appearing in NullFields will be sent to the server as
21928	// null. It is an error if a field in this list has a non-empty value.
21929	// This may be used to include null fields in Patch requests.
21930	NullFields []string `json:"-"`
21931}
21932
21933func (s *NamedPort) MarshalJSON() ([]byte, error) {
21934	type NoMethod NamedPort
21935	raw := NoMethod(*s)
21936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21937}
21938
21939// Network: Represents a VPC Network resource.
21940//
21941// Networks connect resources to each other and to the internet. For
21942// more information, read Virtual Private Cloud (VPC) Network. (==
21943// resource_for {$api_version}.networks ==)
21944type Network struct {
21945	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
21946	// internal addresses that are legal on this network. This range is a
21947	// CIDR specification, for example: 192.168.0.0/16. Provided by the
21948	// client when the network is created.
21949	IPv4Range string `json:"IPv4Range,omitempty"`
21950
21951	// AutoCreateSubnetworks: When set to true, the VPC network is created
21952	// in auto mode. When set to false, the VPC network is created in custom
21953	// mode.
21954	//
21955	// An auto mode VPC network starts with one subnet per region. Each
21956	// subnet has a predetermined range as described in Auto mode VPC
21957	// network IP ranges.
21958	//
21959	// For custom mode VPC networks, you can add subnets using the
21960	// subnetworks insert method.
21961	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
21962
21963	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21964	// format.
21965	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21966
21967	// Description: An optional description of this resource. Provide this
21968	// field when you create the resource.
21969	Description string `json:"description,omitempty"`
21970
21971	// GatewayIPv4: [Output Only] The gateway address for default routing
21972	// out of the network, selected by GCP.
21973	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
21974
21975	// Id: [Output Only] The unique identifier for the resource. This
21976	// identifier is defined by the server.
21977	Id uint64 `json:"id,omitempty,string"`
21978
21979	// Kind: [Output Only] Type of the resource. Always compute#network for
21980	// networks.
21981	Kind string `json:"kind,omitempty"`
21982
21983	// Name: Name of the resource. Provided by the client when the resource
21984	// is created. The name must be 1-63 characters long, and comply with
21985	// RFC1035. Specifically, the name must be 1-63 characters long and
21986	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
21987	// character must be a lowercase letter, and all following characters
21988	// (except for the last character) must be a dash, lowercase letter, or
21989	// digit. The last character must be a lowercase letter or digit.
21990	Name string `json:"name,omitempty"`
21991
21992	// Peerings: [Output Only] A list of network peerings for the resource.
21993	Peerings []*NetworkPeering `json:"peerings,omitempty"`
21994
21995	// RoutingConfig: The network-level routing configuration for this
21996	// network. Used by Cloud Router to determine what type of network-wide
21997	// routing behavior to enforce.
21998	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
21999
22000	// SelfLink: [Output Only] Server-defined URL for the resource.
22001	SelfLink string `json:"selfLink,omitempty"`
22002
22003	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
22004	// all subnetworks in this VPC network.
22005	Subnetworks []string `json:"subnetworks,omitempty"`
22006
22007	// ServerResponse contains the HTTP response code and headers from the
22008	// server.
22009	googleapi.ServerResponse `json:"-"`
22010
22011	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
22012	// unconditionally include in API requests. By default, fields with
22013	// empty values are omitted from API requests. However, any non-pointer,
22014	// non-interface field appearing in ForceSendFields will be sent to the
22015	// server regardless of whether the field is empty or not. This may be
22016	// used to include empty fields in Patch requests.
22017	ForceSendFields []string `json:"-"`
22018
22019	// NullFields is a list of field names (e.g. "IPv4Range") to include in
22020	// API requests with the JSON null value. By default, fields with empty
22021	// values are omitted from API requests. However, any field with an
22022	// empty value appearing in NullFields will be sent to the server as
22023	// null. It is an error if a field in this list has a non-empty value.
22024	// This may be used to include null fields in Patch requests.
22025	NullFields []string `json:"-"`
22026}
22027
22028func (s *Network) MarshalJSON() ([]byte, error) {
22029	type NoMethod Network
22030	raw := NoMethod(*s)
22031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22032}
22033
22034// NetworkEndpoint: The network endpoint.
22035type NetworkEndpoint struct {
22036	// Annotations: Metadata defined as annotations on the network endpoint.
22037	Annotations map[string]string `json:"annotations,omitempty"`
22038
22039	// Fqdn: Optional fully qualified domain name of network endpoint. This
22040	// can only be specified when NetworkEndpointGroup.network_endpoint_type
22041	// is NON_GCP_FQDN_PORT.
22042	Fqdn string `json:"fqdn,omitempty"`
22043
22044	// Instance: The name for a specific VM instance that the IP address
22045	// belongs to. This is required for network endpoints of type
22046	// GCE_VM_IP_PORT. The instance must be in the same zone of network
22047	// endpoint group.
22048	//
22049	// The name must be 1-63 characters long, and comply with RFC1035.
22050	Instance string `json:"instance,omitempty"`
22051
22052	// IpAddress: Optional IPv4 address of network endpoint. The IP address
22053	// must belong to a VM in Compute Engine (either the primary IP or as
22054	// part of an aliased IP range). If the IP address is not specified,
22055	// then the primary IP address for the VM instance in the network that
22056	// the network endpoint group belongs to will be used.
22057	IpAddress string `json:"ipAddress,omitempty"`
22058
22059	// Port: Optional port number of network endpoint. If not specified and
22060	// the NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
22061	// defaultPort for the network endpoint group will be used.
22062	Port int64 `json:"port,omitempty"`
22063
22064	// ForceSendFields is a list of field names (e.g. "Annotations") to
22065	// unconditionally include in API requests. By default, fields with
22066	// empty values are omitted from API requests. However, any non-pointer,
22067	// non-interface field appearing in ForceSendFields will be sent to the
22068	// server regardless of whether the field is empty or not. This may be
22069	// used to include empty fields in Patch requests.
22070	ForceSendFields []string `json:"-"`
22071
22072	// NullFields is a list of field names (e.g. "Annotations") to include
22073	// in API requests with the JSON null value. By default, fields with
22074	// empty values are omitted from API requests. However, any field with
22075	// an empty value appearing in NullFields will be sent to the server as
22076	// null. It is an error if a field in this list has a non-empty value.
22077	// This may be used to include null fields in Patch requests.
22078	NullFields []string `json:"-"`
22079}
22080
22081func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
22082	type NoMethod NetworkEndpoint
22083	raw := NoMethod(*s)
22084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22085}
22086
22087// NetworkEndpointGroup: Represents a collection of network
22088// endpoints.
22089//
22090// A network endpoint group (NEG) defines how a set of endpoints should
22091// be reached, whether they are reachable, and where they are located.
22092// For more information about using NEGs, see  Setting up internet NEGs
22093// or  Setting up zonal NEGs. (== resource_for
22094// {$api_version}.networkEndpointGroups ==) (== resource_for
22095// {$api_version}.globalNetworkEndpointGroups ==)
22096type NetworkEndpointGroup struct {
22097	// Annotations: Metadata defined as annotations on the network endpoint
22098	// group.
22099	Annotations map[string]string `json:"annotations,omitempty"`
22100
22101	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
22102	// one of cloudRun, appEngine or cloudFunction may be set.
22103	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
22104
22105	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
22106	// Only one of cloudRun, appEngine or cloudFunction may be set.
22107	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
22108
22109	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
22110	// one of cloudRun, appEngine or cloudFunction may be set.
22111	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
22112
22113	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22114	// format.
22115	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22116
22117	// DefaultPort: The default port used if the port number is not
22118	// specified in the network endpoint.
22119	DefaultPort int64 `json:"defaultPort,omitempty"`
22120
22121	// Description: An optional description of this resource. Provide this
22122	// property when you create the resource.
22123	Description string `json:"description,omitempty"`
22124
22125	// Id: [Output Only] The unique identifier for the resource. This
22126	// identifier is defined by the server.
22127	Id uint64 `json:"id,omitempty,string"`
22128
22129	// Kind: [Output Only] Type of the resource. Always
22130	// compute#networkEndpointGroup for network endpoint group.
22131	Kind string `json:"kind,omitempty"`
22132
22133	// LoadBalancer: This field is only valid when the network endpoint
22134	// group is used for load balancing. [Deprecated] This field is
22135	// deprecated.
22136	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
22137
22138	// Name: Name of the resource; provided by the client when the resource
22139	// is created. The name must be 1-63 characters long, and comply with
22140	// RFC1035. Specifically, the name must be 1-63 characters long and
22141	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22142	// the first character must be a lowercase letter, and all following
22143	// characters must be a dash, lowercase letter, or digit, except the
22144	// last character, which cannot be a dash.
22145	Name string `json:"name,omitempty"`
22146
22147	// Network: The URL of the network to which all network endpoints in the
22148	// NEG belong. Uses "default" project network if unspecified.
22149	Network string `json:"network,omitempty"`
22150
22151	// NetworkEndpointType: Type of network endpoints in this network
22152	// endpoint group.
22153	//
22154	// Possible values:
22155	//   "GCE_VM_IP_PORT"
22156	//   "INTERNET_FQDN_PORT"
22157	//   "INTERNET_IP_PORT"
22158	//   "SERVERLESS"
22159	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
22160
22161	// Region: [Output Only] The URL of the region where the network
22162	// endpoint group is located.
22163	Region string `json:"region,omitempty"`
22164
22165	// SelfLink: [Output Only] Server-defined URL for the resource.
22166	SelfLink string `json:"selfLink,omitempty"`
22167
22168	// Size: [Output only] Number of network endpoints in the network
22169	// endpoint group.
22170	Size int64 `json:"size,omitempty"`
22171
22172	// Subnetwork: Optional URL of the subnetwork to which all network
22173	// endpoints in the NEG belong.
22174	Subnetwork string `json:"subnetwork,omitempty"`
22175
22176	// Zone: [Output Only] The URL of the zone where the network endpoint
22177	// group is located.
22178	Zone string `json:"zone,omitempty"`
22179
22180	// ServerResponse contains the HTTP response code and headers from the
22181	// server.
22182	googleapi.ServerResponse `json:"-"`
22183
22184	// ForceSendFields is a list of field names (e.g. "Annotations") to
22185	// unconditionally include in API requests. By default, fields with
22186	// empty values are omitted from API requests. However, any non-pointer,
22187	// non-interface field appearing in ForceSendFields will be sent to the
22188	// server regardless of whether the field is empty or not. This may be
22189	// used to include empty fields in Patch requests.
22190	ForceSendFields []string `json:"-"`
22191
22192	// NullFields is a list of field names (e.g. "Annotations") to include
22193	// in API requests with the JSON null value. By default, fields with
22194	// empty values are omitted from API requests. However, any field with
22195	// an empty value appearing in NullFields will be sent to the server as
22196	// null. It is an error if a field in this list has a non-empty value.
22197	// This may be used to include null fields in Patch requests.
22198	NullFields []string `json:"-"`
22199}
22200
22201func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
22202	type NoMethod NetworkEndpointGroup
22203	raw := NoMethod(*s)
22204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22205}
22206
22207type NetworkEndpointGroupAggregatedList struct {
22208	// Id: [Output Only] Unique identifier for the resource; defined by the
22209	// server.
22210	Id string `json:"id,omitempty"`
22211
22212	// Items: A list of NetworkEndpointGroupsScopedList resources.
22213	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
22214
22215	// Kind: [Output Only] The resource type, which is always
22216	// compute#networkEndpointGroupAggregatedList for aggregated lists of
22217	// network endpoint groups.
22218	Kind string `json:"kind,omitempty"`
22219
22220	// NextPageToken: [Output Only] This token allows you to get the next
22221	// page of results for list requests. If the number of results is larger
22222	// than maxResults, use the nextPageToken as a value for the query
22223	// parameter pageToken in the next list request. Subsequent list
22224	// requests will have their own nextPageToken to continue paging through
22225	// the results.
22226	NextPageToken string `json:"nextPageToken,omitempty"`
22227
22228	// SelfLink: [Output Only] Server-defined URL for this resource.
22229	SelfLink string `json:"selfLink,omitempty"`
22230
22231	// Warning: [Output Only] Informational warning message.
22232	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
22233
22234	// ServerResponse contains the HTTP response code and headers from the
22235	// server.
22236	googleapi.ServerResponse `json:"-"`
22237
22238	// ForceSendFields is a list of field names (e.g. "Id") to
22239	// unconditionally include in API requests. By default, fields with
22240	// empty values are omitted from API requests. However, any non-pointer,
22241	// non-interface field appearing in ForceSendFields will be sent to the
22242	// server regardless of whether the field is empty or not. This may be
22243	// used to include empty fields in Patch requests.
22244	ForceSendFields []string `json:"-"`
22245
22246	// NullFields is a list of field names (e.g. "Id") to include in API
22247	// requests with the JSON null value. By default, fields with empty
22248	// values are omitted from API requests. However, any field with an
22249	// empty value appearing in NullFields will be sent to the server as
22250	// null. It is an error if a field in this list has a non-empty value.
22251	// This may be used to include null fields in Patch requests.
22252	NullFields []string `json:"-"`
22253}
22254
22255func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
22256	type NoMethod NetworkEndpointGroupAggregatedList
22257	raw := NoMethod(*s)
22258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22259}
22260
22261// NetworkEndpointGroupAggregatedListWarning: [Output Only]
22262// Informational warning message.
22263type NetworkEndpointGroupAggregatedListWarning struct {
22264	// Code: [Output Only] A warning code, if applicable. For example,
22265	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22266	// the response.
22267	//
22268	// Possible values:
22269	//   "CLEANUP_FAILED"
22270	//   "DEPRECATED_RESOURCE_USED"
22271	//   "DEPRECATED_TYPE_USED"
22272	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22273	//   "EXPERIMENTAL_TYPE_USED"
22274	//   "EXTERNAL_API_WARNING"
22275	//   "FIELD_VALUE_OVERRIDEN"
22276	//   "INJECTED_KERNELS_DEPRECATED"
22277	//   "MISSING_TYPE_DEPENDENCY"
22278	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22279	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22280	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22281	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22282	//   "NEXT_HOP_NOT_RUNNING"
22283	//   "NOT_CRITICAL_ERROR"
22284	//   "NO_RESULTS_ON_PAGE"
22285	//   "REQUIRED_TOS_AGREEMENT"
22286	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22287	//   "RESOURCE_NOT_DELETED"
22288	//   "SCHEMA_VALIDATION_IGNORED"
22289	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22290	//   "UNDECLARED_PROPERTIES"
22291	//   "UNREACHABLE"
22292	Code string `json:"code,omitempty"`
22293
22294	// Data: [Output Only] Metadata about this warning in key: value format.
22295	// For example:
22296	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22297	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
22298
22299	// Message: [Output Only] A human-readable description of the warning
22300	// code.
22301	Message string `json:"message,omitempty"`
22302
22303	// ForceSendFields is a list of field names (e.g. "Code") to
22304	// unconditionally include in API requests. By default, fields with
22305	// empty values are omitted from API requests. However, any non-pointer,
22306	// non-interface field appearing in ForceSendFields will be sent to the
22307	// server regardless of whether the field is empty or not. This may be
22308	// used to include empty fields in Patch requests.
22309	ForceSendFields []string `json:"-"`
22310
22311	// NullFields is a list of field names (e.g. "Code") to include in API
22312	// requests with the JSON null value. By default, fields with empty
22313	// values are omitted from API requests. However, any field with an
22314	// empty value appearing in NullFields will be sent to the server as
22315	// null. It is an error if a field in this list has a non-empty value.
22316	// This may be used to include null fields in Patch requests.
22317	NullFields []string `json:"-"`
22318}
22319
22320func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
22321	type NoMethod NetworkEndpointGroupAggregatedListWarning
22322	raw := NoMethod(*s)
22323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22324}
22325
22326type NetworkEndpointGroupAggregatedListWarningData struct {
22327	// Key: [Output Only] A key that provides more detail on the warning
22328	// being returned. For example, for warnings where there are no results
22329	// in a list request for a particular zone, this key might be scope and
22330	// the key value might be the zone name. Other examples might be a key
22331	// indicating a deprecated resource and a suggested replacement, or a
22332	// warning about invalid network settings (for example, if an instance
22333	// attempts to perform IP forwarding but is not enabled for IP
22334	// forwarding).
22335	Key string `json:"key,omitempty"`
22336
22337	// Value: [Output Only] A warning data value corresponding to the key.
22338	Value string `json:"value,omitempty"`
22339
22340	// ForceSendFields is a list of field names (e.g. "Key") to
22341	// unconditionally include in API requests. By default, fields with
22342	// empty values are omitted from API requests. However, any non-pointer,
22343	// non-interface field appearing in ForceSendFields will be sent to the
22344	// server regardless of whether the field is empty or not. This may be
22345	// used to include empty fields in Patch requests.
22346	ForceSendFields []string `json:"-"`
22347
22348	// NullFields is a list of field names (e.g. "Key") to include in API
22349	// requests with the JSON null value. By default, fields with empty
22350	// values are omitted from API requests. However, any field with an
22351	// empty value appearing in NullFields will be sent to the server as
22352	// null. It is an error if a field in this list has a non-empty value.
22353	// This may be used to include null fields in Patch requests.
22354	NullFields []string `json:"-"`
22355}
22356
22357func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22358	type NoMethod NetworkEndpointGroupAggregatedListWarningData
22359	raw := NoMethod(*s)
22360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22361}
22362
22363// NetworkEndpointGroupAppEngine: Configuration for an App Engine
22364// network endpoint group (NEG). The service is optional, may be
22365// provided explicitly or in the URL mask. The version is optional and
22366// can only be provided explicitly or in the URL mask when service is
22367// present.
22368//
22369// Note: App Engine service must be in the same project and located in
22370// the same region as the Serverless NEG.
22371type NetworkEndpointGroupAppEngine struct {
22372	// Service: Optional serving service.
22373	//
22374	// The service name must be 1-63 characters long, and comply with
22375	// RFC1035.
22376	//
22377	// Example value: "default", "my-service".
22378	Service string `json:"service,omitempty"`
22379
22380	// UrlMask: A template to parse service and version fields from a
22381	// request URL. URL mask allows for routing to multiple App Engine
22382	// services without having to create multiple Network Endpoint Groups
22383	// and backend services.
22384	//
22385	// For example, the request URLs "foo1-dot-appname.appspot.com/v1" and
22386	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
22387	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
22388	// mask will parse them to { service = "foo1", version = "v1" } and {
22389	// service = "foo1", version = "v2" } respectively.
22390	UrlMask string `json:"urlMask,omitempty"`
22391
22392	// Version: Optional serving version.
22393	//
22394	// The version must be 1-63 characters long, and comply with
22395	// RFC1035.
22396	//
22397	// Example value: "v1", "v2".
22398	Version string `json:"version,omitempty"`
22399
22400	// ForceSendFields is a list of field names (e.g. "Service") 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. "Service") to include in
22409	// API requests with the JSON null value. By default, fields with empty
22410	// values are omitted from API requests. However, any field with an
22411	// 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 *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
22418	type NoMethod NetworkEndpointGroupAppEngine
22419	raw := NoMethod(*s)
22420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22421}
22422
22423// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
22424// network endpoint group (NEG). The function must be provided
22425// explicitly or in the URL mask.
22426//
22427// Note: Cloud Function must be in the same project and located in the
22428// same region as the Serverless NEG.
22429type NetworkEndpointGroupCloudFunction struct {
22430	// Function: A user-defined name of the Cloud Function.
22431	//
22432	// The function name is case-sensitive and must be 1-63 characters
22433	// long.
22434	//
22435	// Example value: "func1".
22436	Function string `json:"function,omitempty"`
22437
22438	// UrlMask: A template to parse function field from a request URL. URL
22439	// mask allows for routing to multiple Cloud Functions without having to
22440	// create multiple Network Endpoint Groups and backend services.
22441	//
22442	// For example, request URLs "mydomain.com/function1" and
22443	// "mydomain.com/function2" can be backed by the same Serverless NEG
22444	// with URL mask "/". The URL mask will parse them to { function =
22445	// "function1" } and { function = "function2" } respectively.
22446	UrlMask string `json:"urlMask,omitempty"`
22447
22448	// ForceSendFields is a list of field names (e.g. "Function") to
22449	// unconditionally include in API requests. By default, fields with
22450	// empty values are omitted from API requests. However, any non-pointer,
22451	// non-interface field appearing in ForceSendFields will be sent to the
22452	// server regardless of whether the field is empty or not. This may be
22453	// used to include empty fields in Patch requests.
22454	ForceSendFields []string `json:"-"`
22455
22456	// NullFields is a list of field names (e.g. "Function") to include in
22457	// API requests with the JSON null value. By default, fields with empty
22458	// values are omitted from API requests. However, any field with an
22459	// empty value appearing in NullFields will be sent to the server as
22460	// null. It is an error if a field in this list has a non-empty value.
22461	// This may be used to include null fields in Patch requests.
22462	NullFields []string `json:"-"`
22463}
22464
22465func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
22466	type NoMethod NetworkEndpointGroupCloudFunction
22467	raw := NoMethod(*s)
22468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22469}
22470
22471// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
22472// endpoint group (NEG). The service must be provided explicitly or in
22473// the URL mask. The tag is optional, may be provided explicitly or in
22474// the URL mask.
22475//
22476// Note: Cloud Run service must be in the same project and located in
22477// the same region as the Serverless NEG.
22478type NetworkEndpointGroupCloudRun struct {
22479	// Service: Cloud Run service is the main resource of Cloud Run.
22480	//
22481	// The service must be 1-63 characters long, and comply with
22482	// RFC1035.
22483	//
22484	// Example value: "run-service".
22485	Service string `json:"service,omitempty"`
22486
22487	// Tag: Optional Cloud Run tag represents the "named-revision" to
22488	// provide additional fine-grained traffic routing information.
22489	//
22490	// The tag must be 1-63 characters long, and comply with
22491	// RFC1035.
22492	//
22493	// Example value: "revision-0010".
22494	Tag string `json:"tag,omitempty"`
22495
22496	// UrlMask: A template to parse service and tag fields from a request
22497	// URL. URL mask allows for routing to multiple Run services without
22498	// having to create multiple network endpoint groups and backend
22499	// services.
22500	//
22501	// For example, request URLs "foo1.domain.com/bar1" and
22502	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
22503	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
22504	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
22505	// tag="foo2" } respectively.
22506	UrlMask string `json:"urlMask,omitempty"`
22507
22508	// ForceSendFields is a list of field names (e.g. "Service") to
22509	// unconditionally include in API requests. By default, fields with
22510	// empty values are omitted from API requests. However, any non-pointer,
22511	// non-interface field appearing in ForceSendFields will be sent to the
22512	// server regardless of whether the field is empty or not. This may be
22513	// used to include empty fields in Patch requests.
22514	ForceSendFields []string `json:"-"`
22515
22516	// NullFields is a list of field names (e.g. "Service") to include in
22517	// API requests with the JSON null value. By default, fields with empty
22518	// values are omitted from API requests. However, any field with an
22519	// empty value appearing in NullFields will be sent to the server as
22520	// null. It is an error if a field in this list has a non-empty value.
22521	// This may be used to include null fields in Patch requests.
22522	NullFields []string `json:"-"`
22523}
22524
22525func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
22526	type NoMethod NetworkEndpointGroupCloudRun
22527	raw := NoMethod(*s)
22528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22529}
22530
22531// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific
22532// fields for network endpoint group.
22533type NetworkEndpointGroupLbNetworkEndpointGroup struct {
22534	// DefaultPort: The default port used if the port number is not
22535	// specified in the network endpoint. [Deprecated] This field is
22536	// deprecated.
22537	DefaultPort int64 `json:"defaultPort,omitempty"`
22538
22539	// Network: The URL of the network to which all network endpoints in the
22540	// NEG belong. Uses "default" project network if unspecified.
22541	// [Deprecated] This field is deprecated.
22542	Network string `json:"network,omitempty"`
22543
22544	// Subnetwork: Optional URL of the subnetwork to which all network
22545	// endpoints in the NEG belong. [Deprecated] This field is deprecated.
22546	Subnetwork string `json:"subnetwork,omitempty"`
22547
22548	// Zone: [Output Only] The URL of the zone where the network endpoint
22549	// group is located. [Deprecated] This field is deprecated.
22550	Zone string `json:"zone,omitempty"`
22551
22552	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
22553	// unconditionally include in API requests. By default, fields with
22554	// empty values are omitted from API requests. However, any non-pointer,
22555	// non-interface field appearing in ForceSendFields will be sent to the
22556	// server regardless of whether the field is empty or not. This may be
22557	// used to include empty fields in Patch requests.
22558	ForceSendFields []string `json:"-"`
22559
22560	// NullFields is a list of field names (e.g. "DefaultPort") to include
22561	// in API requests with the JSON null value. By default, fields with
22562	// empty values are omitted from API requests. However, any field with
22563	// an empty value appearing in NullFields will be sent to the server as
22564	// null. It is an error if a field in this list has a non-empty value.
22565	// This may be used to include null fields in Patch requests.
22566	NullFields []string `json:"-"`
22567}
22568
22569func (s *NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
22570	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
22571	raw := NoMethod(*s)
22572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22573}
22574
22575type NetworkEndpointGroupList struct {
22576	// Id: [Output Only] Unique identifier for the resource; defined by the
22577	// server.
22578	Id string `json:"id,omitempty"`
22579
22580	// Items: A list of NetworkEndpointGroup resources.
22581	Items []*NetworkEndpointGroup `json:"items,omitempty"`
22582
22583	// Kind: [Output Only] The resource type, which is always
22584	// compute#networkEndpointGroupList for network endpoint group lists.
22585	Kind string `json:"kind,omitempty"`
22586
22587	// NextPageToken: [Output Only] This token allows you to get the next
22588	// page of results for list requests. If the number of results is larger
22589	// than maxResults, use the nextPageToken as a value for the query
22590	// parameter pageToken in the next list request. Subsequent list
22591	// requests will have their own nextPageToken to continue paging through
22592	// the results.
22593	NextPageToken string `json:"nextPageToken,omitempty"`
22594
22595	// SelfLink: [Output Only] Server-defined URL for this resource.
22596	SelfLink string `json:"selfLink,omitempty"`
22597
22598	// Warning: [Output Only] Informational warning message.
22599	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
22600
22601	// ServerResponse contains the HTTP response code and headers from the
22602	// server.
22603	googleapi.ServerResponse `json:"-"`
22604
22605	// ForceSendFields is a list of field names (e.g. "Id") to
22606	// unconditionally include in API requests. By default, fields with
22607	// empty values are omitted from API requests. However, any non-pointer,
22608	// non-interface field appearing in ForceSendFields will be sent to the
22609	// server regardless of whether the field is empty or not. This may be
22610	// used to include empty fields in Patch requests.
22611	ForceSendFields []string `json:"-"`
22612
22613	// NullFields is a list of field names (e.g. "Id") to include in API
22614	// requests with the JSON null value. By default, fields with empty
22615	// values are omitted from API requests. However, any field with an
22616	// empty value appearing in NullFields will be sent to the server as
22617	// null. It is an error if a field in this list has a non-empty value.
22618	// This may be used to include null fields in Patch requests.
22619	NullFields []string `json:"-"`
22620}
22621
22622func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
22623	type NoMethod NetworkEndpointGroupList
22624	raw := NoMethod(*s)
22625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22626}
22627
22628// NetworkEndpointGroupListWarning: [Output Only] Informational warning
22629// message.
22630type NetworkEndpointGroupListWarning struct {
22631	// Code: [Output Only] A warning code, if applicable. For example,
22632	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22633	// the response.
22634	//
22635	// Possible values:
22636	//   "CLEANUP_FAILED"
22637	//   "DEPRECATED_RESOURCE_USED"
22638	//   "DEPRECATED_TYPE_USED"
22639	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22640	//   "EXPERIMENTAL_TYPE_USED"
22641	//   "EXTERNAL_API_WARNING"
22642	//   "FIELD_VALUE_OVERRIDEN"
22643	//   "INJECTED_KERNELS_DEPRECATED"
22644	//   "MISSING_TYPE_DEPENDENCY"
22645	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22646	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22647	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22648	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22649	//   "NEXT_HOP_NOT_RUNNING"
22650	//   "NOT_CRITICAL_ERROR"
22651	//   "NO_RESULTS_ON_PAGE"
22652	//   "REQUIRED_TOS_AGREEMENT"
22653	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22654	//   "RESOURCE_NOT_DELETED"
22655	//   "SCHEMA_VALIDATION_IGNORED"
22656	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22657	//   "UNDECLARED_PROPERTIES"
22658	//   "UNREACHABLE"
22659	Code string `json:"code,omitempty"`
22660
22661	// Data: [Output Only] Metadata about this warning in key: value format.
22662	// For example:
22663	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22664	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
22665
22666	// Message: [Output Only] A human-readable description of the warning
22667	// code.
22668	Message string `json:"message,omitempty"`
22669
22670	// ForceSendFields is a list of field names (e.g. "Code") to
22671	// unconditionally include in API requests. By default, fields with
22672	// empty values are omitted from API requests. However, any non-pointer,
22673	// non-interface field appearing in ForceSendFields will be sent to the
22674	// server regardless of whether the field is empty or not. This may be
22675	// used to include empty fields in Patch requests.
22676	ForceSendFields []string `json:"-"`
22677
22678	// NullFields is a list of field names (e.g. "Code") to include in API
22679	// requests with the JSON null value. By default, fields with empty
22680	// values are omitted from API requests. However, any field with an
22681	// empty value appearing in NullFields will be sent to the server as
22682	// null. It is an error if a field in this list has a non-empty value.
22683	// This may be used to include null fields in Patch requests.
22684	NullFields []string `json:"-"`
22685}
22686
22687func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
22688	type NoMethod NetworkEndpointGroupListWarning
22689	raw := NoMethod(*s)
22690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22691}
22692
22693type NetworkEndpointGroupListWarningData struct {
22694	// Key: [Output Only] A key that provides more detail on the warning
22695	// being returned. For example, for warnings where there are no results
22696	// in a list request for a particular zone, this key might be scope and
22697	// the key value might be the zone name. Other examples might be a key
22698	// indicating a deprecated resource and a suggested replacement, or a
22699	// warning about invalid network settings (for example, if an instance
22700	// attempts to perform IP forwarding but is not enabled for IP
22701	// forwarding).
22702	Key string `json:"key,omitempty"`
22703
22704	// Value: [Output Only] A warning data value corresponding to the key.
22705	Value string `json:"value,omitempty"`
22706
22707	// ForceSendFields is a list of field names (e.g. "Key") to
22708	// unconditionally include in API requests. By default, fields with
22709	// empty values are omitted from API requests. However, any non-pointer,
22710	// non-interface field appearing in ForceSendFields will be sent to the
22711	// server regardless of whether the field is empty or not. This may be
22712	// used to include empty fields in Patch requests.
22713	ForceSendFields []string `json:"-"`
22714
22715	// NullFields is a list of field names (e.g. "Key") to include in API
22716	// requests with the JSON null value. By default, fields with empty
22717	// values are omitted from API requests. However, any field with an
22718	// empty value appearing in NullFields will be sent to the server as
22719	// null. It is an error if a field in this list has a non-empty value.
22720	// This may be used to include null fields in Patch requests.
22721	NullFields []string `json:"-"`
22722}
22723
22724func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
22725	type NoMethod NetworkEndpointGroupListWarningData
22726	raw := NoMethod(*s)
22727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22728}
22729
22730type NetworkEndpointGroupsAttachEndpointsRequest struct {
22731	// NetworkEndpoints: The list of network endpoints to be attached.
22732	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
22733
22734	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
22735	// unconditionally include in API requests. By default, fields with
22736	// empty values are omitted from API requests. However, any non-pointer,
22737	// non-interface field appearing in ForceSendFields will be sent to the
22738	// server regardless of whether the field is empty or not. This may be
22739	// used to include empty fields in Patch requests.
22740	ForceSendFields []string `json:"-"`
22741
22742	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
22743	// include in API requests with the JSON null value. By default, fields
22744	// with empty values are omitted from API requests. However, any field
22745	// with an empty value appearing in NullFields will be sent to the
22746	// server as null. It is an error if a field in this list has a
22747	// non-empty value. This may be used to include null fields in Patch
22748	// requests.
22749	NullFields []string `json:"-"`
22750}
22751
22752func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
22753	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
22754	raw := NoMethod(*s)
22755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22756}
22757
22758type NetworkEndpointGroupsDetachEndpointsRequest struct {
22759	// NetworkEndpoints: The list of network endpoints to be detached.
22760	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
22761
22762	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
22763	// unconditionally include in API requests. By default, fields with
22764	// empty values are omitted from API requests. However, any non-pointer,
22765	// non-interface field appearing in ForceSendFields will be sent to the
22766	// server regardless of whether the field is empty or not. This may be
22767	// used to include empty fields in Patch requests.
22768	ForceSendFields []string `json:"-"`
22769
22770	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
22771	// include in API requests with the JSON null value. By default, fields
22772	// with empty values are omitted from API requests. However, any field
22773	// with an empty value appearing in NullFields will be sent to the
22774	// server as null. It is an error if a field in this list has a
22775	// non-empty value. This may be used to include null fields in Patch
22776	// requests.
22777	NullFields []string `json:"-"`
22778}
22779
22780func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
22781	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
22782	raw := NoMethod(*s)
22783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22784}
22785
22786type NetworkEndpointGroupsListEndpointsRequest struct {
22787	// EndpointFilters: Optional list of endpoints to query. This is a more
22788	// efficient but also limited version of filter parameter. Endpoints in
22789	// the filter must have ip_address and port fields populated, other
22790	// fields are not supported.
22791	EndpointFilters []*NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter `json:"endpointFilters,omitempty"`
22792
22793	// HealthStatus: Optional query parameter for showing the health status
22794	// of each network endpoint. Valid options are SKIP or SHOW. If you
22795	// don't specify this parameter, the health status of network endpoints
22796	// will not be provided.
22797	//
22798	// Possible values:
22799	//   "SHOW"
22800	//   "SKIP"
22801	HealthStatus string `json:"healthStatus,omitempty"`
22802
22803	// ForceSendFields is a list of field names (e.g. "EndpointFilters") to
22804	// unconditionally include in API requests. By default, fields with
22805	// empty values are omitted from API requests. However, any non-pointer,
22806	// non-interface field appearing in ForceSendFields will be sent to the
22807	// server regardless of whether the field is empty or not. This may be
22808	// used to include empty fields in Patch requests.
22809	ForceSendFields []string `json:"-"`
22810
22811	// NullFields is a list of field names (e.g. "EndpointFilters") to
22812	// include in API requests with the JSON null value. By default, fields
22813	// with empty values are omitted from API requests. However, any field
22814	// with an empty value appearing in NullFields will be sent to the
22815	// server as null. It is an error if a field in this list has a
22816	// non-empty value. This may be used to include null fields in Patch
22817	// requests.
22818	NullFields []string `json:"-"`
22819}
22820
22821func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
22822	type NoMethod NetworkEndpointGroupsListEndpointsRequest
22823	raw := NoMethod(*s)
22824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22825}
22826
22827type NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter struct {
22828	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
22829
22830	// ForceSendFields is a list of field names (e.g. "NetworkEndpoint") to
22831	// unconditionally include in API requests. By default, fields with
22832	// empty values are omitted from API requests. However, any non-pointer,
22833	// non-interface field appearing in ForceSendFields will be sent to the
22834	// server regardless of whether the field is empty or not. This may be
22835	// used to include empty fields in Patch requests.
22836	ForceSendFields []string `json:"-"`
22837
22838	// NullFields is a list of field names (e.g. "NetworkEndpoint") to
22839	// include in API requests with the JSON null value. By default, fields
22840	// with empty values are omitted from API requests. However, any field
22841	// with an empty value appearing in NullFields will be sent to the
22842	// server as null. It is an error if a field in this list has a
22843	// non-empty value. This may be used to include null fields in Patch
22844	// requests.
22845	NullFields []string `json:"-"`
22846}
22847
22848func (s *NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter) MarshalJSON() ([]byte, error) {
22849	type NoMethod NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
22850	raw := NoMethod(*s)
22851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22852}
22853
22854type NetworkEndpointGroupsListNetworkEndpoints struct {
22855	// Id: [Output Only] Unique identifier for the resource; defined by the
22856	// server.
22857	Id string `json:"id,omitempty"`
22858
22859	// Items: A list of NetworkEndpointWithHealthStatus resources.
22860	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
22861
22862	// Kind: [Output Only] The resource type, which is always
22863	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
22864	// network endpoints in the specified network endpoint group.
22865	Kind string `json:"kind,omitempty"`
22866
22867	// NextPageToken: [Output Only] This token allows you to get the next
22868	// page of results for list requests. If the number of results is larger
22869	// than maxResults, use the nextPageToken as a value for the query
22870	// parameter pageToken in the next list request. Subsequent list
22871	// requests will have their own nextPageToken to continue paging through
22872	// the results.
22873	NextPageToken string `json:"nextPageToken,omitempty"`
22874
22875	// Warning: [Output Only] Informational warning message.
22876	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
22877
22878	// ServerResponse contains the HTTP response code and headers from the
22879	// server.
22880	googleapi.ServerResponse `json:"-"`
22881
22882	// ForceSendFields is a list of field names (e.g. "Id") to
22883	// unconditionally include in API requests. By default, fields with
22884	// empty values are omitted from API requests. However, any non-pointer,
22885	// non-interface field appearing in ForceSendFields will be sent to the
22886	// server regardless of whether the field is empty or not. This may be
22887	// used to include empty fields in Patch requests.
22888	ForceSendFields []string `json:"-"`
22889
22890	// NullFields is a list of field names (e.g. "Id") to include in API
22891	// requests with the JSON null value. By default, fields with empty
22892	// values are omitted from API requests. However, any field with an
22893	// empty value appearing in NullFields will be sent to the server as
22894	// null. It is an error if a field in this list has a non-empty value.
22895	// This may be used to include null fields in Patch requests.
22896	NullFields []string `json:"-"`
22897}
22898
22899func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
22900	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
22901	raw := NoMethod(*s)
22902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22903}
22904
22905// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
22906// Informational warning message.
22907type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
22908	// Code: [Output Only] A warning code, if applicable. For example,
22909	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22910	// the response.
22911	//
22912	// Possible values:
22913	//   "CLEANUP_FAILED"
22914	//   "DEPRECATED_RESOURCE_USED"
22915	//   "DEPRECATED_TYPE_USED"
22916	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22917	//   "EXPERIMENTAL_TYPE_USED"
22918	//   "EXTERNAL_API_WARNING"
22919	//   "FIELD_VALUE_OVERRIDEN"
22920	//   "INJECTED_KERNELS_DEPRECATED"
22921	//   "MISSING_TYPE_DEPENDENCY"
22922	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22923	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22924	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22925	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22926	//   "NEXT_HOP_NOT_RUNNING"
22927	//   "NOT_CRITICAL_ERROR"
22928	//   "NO_RESULTS_ON_PAGE"
22929	//   "REQUIRED_TOS_AGREEMENT"
22930	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22931	//   "RESOURCE_NOT_DELETED"
22932	//   "SCHEMA_VALIDATION_IGNORED"
22933	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22934	//   "UNDECLARED_PROPERTIES"
22935	//   "UNREACHABLE"
22936	Code string `json:"code,omitempty"`
22937
22938	// Data: [Output Only] Metadata about this warning in key: value format.
22939	// For example:
22940	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22941	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
22942
22943	// Message: [Output Only] A human-readable description of the warning
22944	// code.
22945	Message string `json:"message,omitempty"`
22946
22947	// ForceSendFields is a list of field names (e.g. "Code") to
22948	// unconditionally include in API requests. By default, fields with
22949	// empty values are omitted from API requests. However, any non-pointer,
22950	// non-interface field appearing in ForceSendFields will be sent to the
22951	// server regardless of whether the field is empty or not. This may be
22952	// used to include empty fields in Patch requests.
22953	ForceSendFields []string `json:"-"`
22954
22955	// NullFields is a list of field names (e.g. "Code") to include in API
22956	// requests with the JSON null value. By default, fields with empty
22957	// values are omitted from API requests. However, any field with an
22958	// empty value appearing in NullFields will be sent to the server as
22959	// null. It is an error if a field in this list has a non-empty value.
22960	// This may be used to include null fields in Patch requests.
22961	NullFields []string `json:"-"`
22962}
22963
22964func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
22965	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
22966	raw := NoMethod(*s)
22967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22968}
22969
22970type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
22971	// Key: [Output Only] A key that provides more detail on the warning
22972	// being returned. For example, for warnings where there are no results
22973	// in a list request for a particular zone, this key might be scope and
22974	// the key value might be the zone name. Other examples might be a key
22975	// indicating a deprecated resource and a suggested replacement, or a
22976	// warning about invalid network settings (for example, if an instance
22977	// attempts to perform IP forwarding but is not enabled for IP
22978	// forwarding).
22979	Key string `json:"key,omitempty"`
22980
22981	// Value: [Output Only] A warning data value corresponding to the key.
22982	Value string `json:"value,omitempty"`
22983
22984	// ForceSendFields is a list of field names (e.g. "Key") to
22985	// unconditionally include in API requests. By default, fields with
22986	// empty values are omitted from API requests. However, any non-pointer,
22987	// non-interface field appearing in ForceSendFields will be sent to the
22988	// server regardless of whether the field is empty or not. This may be
22989	// used to include empty fields in Patch requests.
22990	ForceSendFields []string `json:"-"`
22991
22992	// NullFields is a list of field names (e.g. "Key") to include in API
22993	// requests with the JSON null value. By default, fields with empty
22994	// values are omitted from API requests. However, any field with an
22995	// empty value appearing in NullFields will be sent to the server as
22996	// null. It is an error if a field in this list has a non-empty value.
22997	// This may be used to include null fields in Patch requests.
22998	NullFields []string `json:"-"`
22999}
23000
23001func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
23002	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
23003	raw := NoMethod(*s)
23004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23005}
23006
23007type NetworkEndpointGroupsScopedList struct {
23008	// NetworkEndpointGroups: [Output Only] The list of network endpoint
23009	// groups that are contained in this scope.
23010	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
23011
23012	// Warning: [Output Only] An informational warning that replaces the
23013	// list of network endpoint groups when the list is empty.
23014	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
23015
23016	// ForceSendFields is a list of field names (e.g.
23017	// "NetworkEndpointGroups") to unconditionally include in API requests.
23018	// By default, fields with empty values are omitted from API requests.
23019	// However, any non-pointer, non-interface field appearing in
23020	// ForceSendFields will be sent to the server regardless of whether the
23021	// field is empty or not. This may be used to include empty fields in
23022	// Patch requests.
23023	ForceSendFields []string `json:"-"`
23024
23025	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
23026	// include in API requests with the JSON null value. By default, fields
23027	// with empty values are omitted from API requests. However, any field
23028	// with an empty value appearing in NullFields will be sent to the
23029	// server as null. It is an error if a field in this list has a
23030	// non-empty value. This may be used to include null fields in Patch
23031	// requests.
23032	NullFields []string `json:"-"`
23033}
23034
23035func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
23036	type NoMethod NetworkEndpointGroupsScopedList
23037	raw := NoMethod(*s)
23038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23039}
23040
23041// NetworkEndpointGroupsScopedListWarning: [Output Only] An
23042// informational warning that replaces the list of network endpoint
23043// groups when the list is empty.
23044type NetworkEndpointGroupsScopedListWarning struct {
23045	// Code: [Output Only] A warning code, if applicable. For example,
23046	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23047	// the response.
23048	//
23049	// Possible values:
23050	//   "CLEANUP_FAILED"
23051	//   "DEPRECATED_RESOURCE_USED"
23052	//   "DEPRECATED_TYPE_USED"
23053	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23054	//   "EXPERIMENTAL_TYPE_USED"
23055	//   "EXTERNAL_API_WARNING"
23056	//   "FIELD_VALUE_OVERRIDEN"
23057	//   "INJECTED_KERNELS_DEPRECATED"
23058	//   "MISSING_TYPE_DEPENDENCY"
23059	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23060	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23061	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23062	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23063	//   "NEXT_HOP_NOT_RUNNING"
23064	//   "NOT_CRITICAL_ERROR"
23065	//   "NO_RESULTS_ON_PAGE"
23066	//   "REQUIRED_TOS_AGREEMENT"
23067	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23068	//   "RESOURCE_NOT_DELETED"
23069	//   "SCHEMA_VALIDATION_IGNORED"
23070	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23071	//   "UNDECLARED_PROPERTIES"
23072	//   "UNREACHABLE"
23073	Code string `json:"code,omitempty"`
23074
23075	// Data: [Output Only] Metadata about this warning in key: value format.
23076	// For example:
23077	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23078	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
23079
23080	// Message: [Output Only] A human-readable description of the warning
23081	// code.
23082	Message string `json:"message,omitempty"`
23083
23084	// ForceSendFields is a list of field names (e.g. "Code") to
23085	// unconditionally include in API requests. By default, fields with
23086	// empty values are omitted from API requests. However, any non-pointer,
23087	// non-interface field appearing in ForceSendFields will be sent to the
23088	// server regardless of whether the field is empty or not. This may be
23089	// used to include empty fields in Patch requests.
23090	ForceSendFields []string `json:"-"`
23091
23092	// NullFields is a list of field names (e.g. "Code") to include in API
23093	// requests with the JSON null value. By default, fields with empty
23094	// values are omitted from API requests. However, any field with an
23095	// empty value appearing in NullFields will be sent to the server as
23096	// null. It is an error if a field in this list has a non-empty value.
23097	// This may be used to include null fields in Patch requests.
23098	NullFields []string `json:"-"`
23099}
23100
23101func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
23102	type NoMethod NetworkEndpointGroupsScopedListWarning
23103	raw := NoMethod(*s)
23104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23105}
23106
23107type NetworkEndpointGroupsScopedListWarningData struct {
23108	// Key: [Output Only] A key that provides more detail on the warning
23109	// being returned. For example, for warnings where there are no results
23110	// in a list request for a particular zone, this key might be scope and
23111	// the key value might be the zone name. Other examples might be a key
23112	// indicating a deprecated resource and a suggested replacement, or a
23113	// warning about invalid network settings (for example, if an instance
23114	// attempts to perform IP forwarding but is not enabled for IP
23115	// forwarding).
23116	Key string `json:"key,omitempty"`
23117
23118	// Value: [Output Only] A warning data value corresponding to the key.
23119	Value string `json:"value,omitempty"`
23120
23121	// ForceSendFields is a list of field names (e.g. "Key") to
23122	// unconditionally include in API requests. By default, fields with
23123	// empty values are omitted from API requests. However, any non-pointer,
23124	// non-interface field appearing in ForceSendFields will be sent to the
23125	// server regardless of whether the field is empty or not. This may be
23126	// used to include empty fields in Patch requests.
23127	ForceSendFields []string `json:"-"`
23128
23129	// NullFields is a list of field names (e.g. "Key") to include in API
23130	// requests with the JSON null value. By default, fields with empty
23131	// values are omitted from API requests. However, any field with an
23132	// empty value appearing in NullFields will be sent to the server as
23133	// null. It is an error if a field in this list has a non-empty value.
23134	// This may be used to include null fields in Patch requests.
23135	NullFields []string `json:"-"`
23136}
23137
23138func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
23139	type NoMethod NetworkEndpointGroupsScopedListWarningData
23140	raw := NoMethod(*s)
23141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23142}
23143
23144type NetworkEndpointWithHealthStatus struct {
23145	// Healths: [Output only] The health status of network endpoint;
23146	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
23147
23148	// NetworkEndpoint: [Output only] The network endpoint;
23149	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
23150
23151	// ForceSendFields is a list of field names (e.g. "Healths") to
23152	// unconditionally include in API requests. By default, fields with
23153	// empty values are omitted from API requests. However, any non-pointer,
23154	// non-interface field appearing in ForceSendFields will be sent to the
23155	// server regardless of whether the field is empty or not. This may be
23156	// used to include empty fields in Patch requests.
23157	ForceSendFields []string `json:"-"`
23158
23159	// NullFields is a list of field names (e.g. "Healths") to include in
23160	// API requests with the JSON null value. By default, fields with empty
23161	// values are omitted from API requests. However, any field with an
23162	// empty value appearing in NullFields will be sent to the server as
23163	// null. It is an error if a field in this list has a non-empty value.
23164	// This may be used to include null fields in Patch requests.
23165	NullFields []string `json:"-"`
23166}
23167
23168func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
23169	type NoMethod NetworkEndpointWithHealthStatus
23170	raw := NoMethod(*s)
23171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23172}
23173
23174// NetworkInterface: A network interface resource attached to an
23175// instance.
23176type NetworkInterface struct {
23177	// AccessConfigs: An array of configurations for this interface.
23178	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
23179	// there are no accessConfigs specified, then this instance will have no
23180	// external internet access.
23181	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
23182
23183	// AliasIpRanges: An array of alias IP ranges for this network
23184	// interface. You can only specify this field for network interfaces in
23185	// VPC networks.
23186	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
23187
23188	// Fingerprint: Fingerprint hash of contents stored in this network
23189	// interface. This field will be ignored when inserting an Instance or
23190	// adding a NetworkInterface. An up-to-date fingerprint must be provided
23191	// in order to update the NetworkInterface, otherwise the request will
23192	// fail with error 412 conditionNotMet.
23193	Fingerprint string `json:"fingerprint,omitempty"`
23194
23195	// Ipv6Address: [Output Only] An IPv6 internal network address for this
23196	// network interface.
23197	Ipv6Address string `json:"ipv6Address,omitempty"`
23198
23199	// Kind: [Output Only] Type of the resource. Always
23200	// compute#networkInterface for network interfaces.
23201	Kind string `json:"kind,omitempty"`
23202
23203	// Name: [Output Only] The name of the network interface, which is
23204	// generated by the server. For network devices, these are eth0, eth1,
23205	// etc.
23206	Name string `json:"name,omitempty"`
23207
23208	// Network: URL of the network resource for this instance. When creating
23209	// an instance, if neither the network nor the subnetwork is specified,
23210	// the default network global/networks/default is used; if the network
23211	// is not specified but the subnetwork is specified, the network is
23212	// inferred.
23213	//
23214	// If you specify this property, you can specify the network as a full
23215	// or partial URL. For example, the following are all valid URLs:
23216	// -
23217	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
23218	// - projects/project/global/networks/network
23219	// - global/networks/default
23220	Network string `json:"network,omitempty"`
23221
23222	// NetworkIP: An IPv4 internal IP address to assign to the instance for
23223	// this network interface. If not specified by the user, an unused
23224	// internal IP is assigned by the system.
23225	NetworkIP string `json:"networkIP,omitempty"`
23226
23227	// Subnetwork: The URL of the Subnetwork resource for this instance. If
23228	// the network resource is in legacy mode, do not specify this field. If
23229	// the network is in auto subnet mode, specifying the subnetwork is
23230	// optional. If the network is in custom subnet mode, specifying the
23231	// subnetwork is required. If you specify this field, you can specify
23232	// the subnetwork as a full or partial URL. For example, the following
23233	// are all valid URLs:
23234	// -
23235	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
23236	// - regions/region/subnetworks/subnetwork
23237	Subnetwork string `json:"subnetwork,omitempty"`
23238
23239	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
23240	// unconditionally include in API requests. By default, fields with
23241	// empty values are omitted from API requests. However, any non-pointer,
23242	// non-interface field appearing in ForceSendFields will be sent to the
23243	// server regardless of whether the field is empty or not. This may be
23244	// used to include empty fields in Patch requests.
23245	ForceSendFields []string `json:"-"`
23246
23247	// NullFields is a list of field names (e.g. "AccessConfigs") to include
23248	// in API requests with the JSON null value. By default, fields with
23249	// empty values are omitted from API requests. However, any field with
23250	// an empty value appearing in NullFields will be sent to the server as
23251	// null. It is an error if a field in this list has a non-empty value.
23252	// This may be used to include null fields in Patch requests.
23253	NullFields []string `json:"-"`
23254}
23255
23256func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
23257	type NoMethod NetworkInterface
23258	raw := NoMethod(*s)
23259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23260}
23261
23262// NetworkList: Contains a list of networks.
23263type NetworkList struct {
23264	// Id: [Output Only] Unique identifier for the resource; defined by the
23265	// server.
23266	Id string `json:"id,omitempty"`
23267
23268	// Items: A list of Network resources.
23269	Items []*Network `json:"items,omitempty"`
23270
23271	// Kind: [Output Only] Type of resource. Always compute#networkList for
23272	// lists of networks.
23273	Kind string `json:"kind,omitempty"`
23274
23275	// NextPageToken: [Output Only] This token allows you to get the next
23276	// page of results for list requests. If the number of results is larger
23277	// than maxResults, use the nextPageToken as a value for the query
23278	// parameter pageToken in the next list request. Subsequent list
23279	// requests will have their own nextPageToken to continue paging through
23280	// the results.
23281	NextPageToken string `json:"nextPageToken,omitempty"`
23282
23283	// SelfLink: [Output Only] Server-defined URL for this resource.
23284	SelfLink string `json:"selfLink,omitempty"`
23285
23286	// Warning: [Output Only] Informational warning message.
23287	Warning *NetworkListWarning `json:"warning,omitempty"`
23288
23289	// ServerResponse contains the HTTP response code and headers from the
23290	// server.
23291	googleapi.ServerResponse `json:"-"`
23292
23293	// ForceSendFields is a list of field names (e.g. "Id") to
23294	// unconditionally include in API requests. By default, fields with
23295	// empty values are omitted from API requests. However, any non-pointer,
23296	// non-interface field appearing in ForceSendFields will be sent to the
23297	// server regardless of whether the field is empty or not. This may be
23298	// used to include empty fields in Patch requests.
23299	ForceSendFields []string `json:"-"`
23300
23301	// NullFields is a list of field names (e.g. "Id") to include in API
23302	// requests with the JSON null value. By default, fields with empty
23303	// values are omitted from API requests. However, any field with an
23304	// empty value appearing in NullFields will be sent to the server as
23305	// null. It is an error if a field in this list has a non-empty value.
23306	// This may be used to include null fields in Patch requests.
23307	NullFields []string `json:"-"`
23308}
23309
23310func (s *NetworkList) MarshalJSON() ([]byte, error) {
23311	type NoMethod NetworkList
23312	raw := NoMethod(*s)
23313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23314}
23315
23316// NetworkListWarning: [Output Only] Informational warning message.
23317type NetworkListWarning struct {
23318	// Code: [Output Only] A warning code, if applicable. For example,
23319	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23320	// the response.
23321	//
23322	// Possible values:
23323	//   "CLEANUP_FAILED"
23324	//   "DEPRECATED_RESOURCE_USED"
23325	//   "DEPRECATED_TYPE_USED"
23326	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23327	//   "EXPERIMENTAL_TYPE_USED"
23328	//   "EXTERNAL_API_WARNING"
23329	//   "FIELD_VALUE_OVERRIDEN"
23330	//   "INJECTED_KERNELS_DEPRECATED"
23331	//   "MISSING_TYPE_DEPENDENCY"
23332	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23333	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23334	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23335	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23336	//   "NEXT_HOP_NOT_RUNNING"
23337	//   "NOT_CRITICAL_ERROR"
23338	//   "NO_RESULTS_ON_PAGE"
23339	//   "REQUIRED_TOS_AGREEMENT"
23340	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23341	//   "RESOURCE_NOT_DELETED"
23342	//   "SCHEMA_VALIDATION_IGNORED"
23343	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23344	//   "UNDECLARED_PROPERTIES"
23345	//   "UNREACHABLE"
23346	Code string `json:"code,omitempty"`
23347
23348	// Data: [Output Only] Metadata about this warning in key: value format.
23349	// For example:
23350	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23351	Data []*NetworkListWarningData `json:"data,omitempty"`
23352
23353	// Message: [Output Only] A human-readable description of the warning
23354	// code.
23355	Message string `json:"message,omitempty"`
23356
23357	// ForceSendFields is a list of field names (e.g. "Code") to
23358	// unconditionally include in API requests. By default, fields with
23359	// empty values are omitted from API requests. However, any non-pointer,
23360	// non-interface field appearing in ForceSendFields will be sent to the
23361	// server regardless of whether the field is empty or not. This may be
23362	// used to include empty fields in Patch requests.
23363	ForceSendFields []string `json:"-"`
23364
23365	// NullFields is a list of field names (e.g. "Code") to include in API
23366	// requests with the JSON null value. By default, fields with empty
23367	// values are omitted from API requests. However, any field with an
23368	// empty value appearing in NullFields will be sent to the server as
23369	// null. It is an error if a field in this list has a non-empty value.
23370	// This may be used to include null fields in Patch requests.
23371	NullFields []string `json:"-"`
23372}
23373
23374func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
23375	type NoMethod NetworkListWarning
23376	raw := NoMethod(*s)
23377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23378}
23379
23380type NetworkListWarningData struct {
23381	// Key: [Output Only] A key that provides more detail on the warning
23382	// being returned. For example, for warnings where there are no results
23383	// in a list request for a particular zone, this key might be scope and
23384	// the key value might be the zone name. Other examples might be a key
23385	// indicating a deprecated resource and a suggested replacement, or a
23386	// warning about invalid network settings (for example, if an instance
23387	// attempts to perform IP forwarding but is not enabled for IP
23388	// forwarding).
23389	Key string `json:"key,omitempty"`
23390
23391	// Value: [Output Only] A warning data value corresponding to the key.
23392	Value string `json:"value,omitempty"`
23393
23394	// ForceSendFields is a list of field names (e.g. "Key") to
23395	// unconditionally include in API requests. By default, fields with
23396	// empty values are omitted from API requests. However, any non-pointer,
23397	// non-interface field appearing in ForceSendFields will be sent to the
23398	// server regardless of whether the field is empty or not. This may be
23399	// used to include empty fields in Patch requests.
23400	ForceSendFields []string `json:"-"`
23401
23402	// NullFields is a list of field names (e.g. "Key") to include in API
23403	// requests with the JSON null value. By default, fields with empty
23404	// values are omitted from API requests. However, any field with an
23405	// empty value appearing in NullFields will be sent to the server as
23406	// null. It is an error if a field in this list has a non-empty value.
23407	// This may be used to include null fields in Patch requests.
23408	NullFields []string `json:"-"`
23409}
23410
23411func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
23412	type NoMethod NetworkListWarningData
23413	raw := NoMethod(*s)
23414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23415}
23416
23417// NetworkPeering: A network peering attached to a network resource. The
23418// message includes the peering name, peer network, peering state, and a
23419// flag indicating whether Google Compute Engine should automatically
23420// create routes for the peering.
23421type NetworkPeering struct {
23422	// AutoCreateRoutes: This field will be deprecated soon. Use the
23423	// exchange_subnet_routes field instead. Indicates whether full mesh
23424	// connectivity is created and managed automatically between peered
23425	// networks. Currently this field should always be true since Google
23426	// Compute Engine will automatically create and manage subnetwork routes
23427	// between two networks when peering state is ACTIVE.
23428	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
23429
23430	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
23431	// created and managed automatically between peered networks. Currently
23432	// this field should always be true since Google Compute Engine will
23433	// automatically create and manage subnetwork routes between two
23434	// networks when peering state is ACTIVE.
23435	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
23436
23437	// ExportCustomRoutes: Whether to export the custom routes to peer
23438	// network.
23439	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
23440
23441	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
23442	// range are exported. The default value is true, all subnet routes are
23443	// exported. The IPv4 special-use ranges
23444	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
23445	// exported to peers and are not controlled by this field.
23446	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
23447
23448	// ImportCustomRoutes: Whether to import the custom routes from peer
23449	// network.
23450	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
23451
23452	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
23453	// range are imported. The default value is false. The IPv4 special-use
23454	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
23455	// always imported from peers and are not controlled by this field.
23456	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
23457
23458	// Name: Name of this peering. Provided by the client when the peering
23459	// is created. The name must comply with RFC1035. Specifically, the name
23460	// must be 1-63 characters long and match regular expression
23461	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
23462	// letter, and all the following characters must be a dash, lowercase
23463	// letter, or digit, except the last character, which cannot be a dash.
23464	Name string `json:"name,omitempty"`
23465
23466	// Network: The URL of the peer network. It can be either full URL or
23467	// partial URL. The peer network may belong to a different project. If
23468	// the partial URL does not contain project, it is assumed that the peer
23469	// network is in the same project as the current network.
23470	Network string `json:"network,omitempty"`
23471
23472	// State: [Output Only] State for the peering, either `ACTIVE` or
23473	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
23474	// configuration in the peer network.
23475	//
23476	// Possible values:
23477	//   "ACTIVE"
23478	//   "INACTIVE"
23479	State string `json:"state,omitempty"`
23480
23481	// StateDetails: [Output Only] Details about the current state of the
23482	// peering.
23483	StateDetails string `json:"stateDetails,omitempty"`
23484
23485	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
23486	// unconditionally include in API requests. By default, fields with
23487	// empty values are omitted from API requests. However, any non-pointer,
23488	// non-interface field appearing in ForceSendFields will be sent to the
23489	// server regardless of whether the field is empty or not. This may be
23490	// used to include empty fields in Patch requests.
23491	ForceSendFields []string `json:"-"`
23492
23493	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
23494	// include in API requests with the JSON null value. By default, fields
23495	// with empty values are omitted from API requests. However, any field
23496	// with an empty value appearing in NullFields will be sent to the
23497	// server as null. It is an error if a field in this list has a
23498	// non-empty value. This may be used to include null fields in Patch
23499	// requests.
23500	NullFields []string `json:"-"`
23501}
23502
23503func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
23504	type NoMethod NetworkPeering
23505	raw := NoMethod(*s)
23506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23507}
23508
23509// NetworkRoutingConfig: A routing configuration attached to a network
23510// resource. The message includes the list of routers associated with
23511// the network, and a flag indicating the type of routing behavior to
23512// enforce network-wide.
23513type NetworkRoutingConfig struct {
23514	// RoutingMode: The network-wide routing mode to use. If set to
23515	// REGIONAL, this network's Cloud Routers will only advertise routes
23516	// with subnets of this network in the same region as the router. If set
23517	// to GLOBAL, this network's Cloud Routers will advertise routes with
23518	// all subnets of this network, across regions.
23519	//
23520	// Possible values:
23521	//   "GLOBAL"
23522	//   "REGIONAL"
23523	RoutingMode string `json:"routingMode,omitempty"`
23524
23525	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
23526	// unconditionally include in API requests. By default, fields with
23527	// empty values are omitted from API requests. However, any non-pointer,
23528	// non-interface field appearing in ForceSendFields will be sent to the
23529	// server regardless of whether the field is empty or not. This may be
23530	// used to include empty fields in Patch requests.
23531	ForceSendFields []string `json:"-"`
23532
23533	// NullFields is a list of field names (e.g. "RoutingMode") to include
23534	// in API requests with the JSON null value. By default, fields with
23535	// empty values are omitted from API requests. However, any field with
23536	// an empty value appearing in NullFields will be sent to the server as
23537	// null. It is an error if a field in this list has a non-empty value.
23538	// This may be used to include null fields in Patch requests.
23539	NullFields []string `json:"-"`
23540}
23541
23542func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
23543	type NoMethod NetworkRoutingConfig
23544	raw := NoMethod(*s)
23545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23546}
23547
23548type NetworksAddPeeringRequest struct {
23549	// AutoCreateRoutes: This field will be deprecated soon. Use
23550	// exchange_subnet_routes in network_peering instead. Indicates whether
23551	// full mesh connectivity is created and managed automatically between
23552	// peered networks. Currently this field should always be true since
23553	// Google Compute Engine will automatically create and manage subnetwork
23554	// routes between two networks when peering state is ACTIVE.
23555	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
23556
23557	// Name: Name of the peering, which should conform to RFC1035.
23558	Name string `json:"name,omitempty"`
23559
23560	// NetworkPeering: Network peering parameters. In order to specify route
23561	// policies for peering using import and export custom routes, you must
23562	// specify all peering related parameters (name, peer network,
23563	// exchange_subnet_routes) in the network_peering field. The
23564	// corresponding fields in NetworksAddPeeringRequest will be deprecated
23565	// soon.
23566	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
23567
23568	// PeerNetwork: URL of the peer network. It can be either full URL or
23569	// partial URL. The peer network may belong to a different project. If
23570	// the partial URL does not contain project, it is assumed that the peer
23571	// network is in the same project as the current network.
23572	PeerNetwork string `json:"peerNetwork,omitempty"`
23573
23574	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
23575	// unconditionally include in API requests. By default, fields with
23576	// empty values are omitted from API requests. However, any non-pointer,
23577	// non-interface field appearing in ForceSendFields will be sent to the
23578	// server regardless of whether the field is empty or not. This may be
23579	// used to include empty fields in Patch requests.
23580	ForceSendFields []string `json:"-"`
23581
23582	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
23583	// include in API requests with the JSON null value. By default, fields
23584	// with empty values are omitted from API requests. However, any field
23585	// with an empty value appearing in NullFields will be sent to the
23586	// server as null. It is an error if a field in this list has a
23587	// non-empty value. This may be used to include null fields in Patch
23588	// requests.
23589	NullFields []string `json:"-"`
23590}
23591
23592func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
23593	type NoMethod NetworksAddPeeringRequest
23594	raw := NoMethod(*s)
23595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23596}
23597
23598type NetworksGetEffectiveFirewallsResponse struct {
23599	// Firewalls: Effective firewalls on the network.
23600	Firewalls []*Firewall `json:"firewalls,omitempty"`
23601
23602	// OrganizationFirewalls: Effective firewalls from organization
23603	// policies.
23604	OrganizationFirewalls []*NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
23605
23606	// ServerResponse contains the HTTP response code and headers from the
23607	// server.
23608	googleapi.ServerResponse `json:"-"`
23609
23610	// ForceSendFields is a list of field names (e.g. "Firewalls") to
23611	// unconditionally include in API requests. By default, fields with
23612	// empty values are omitted from API requests. However, any non-pointer,
23613	// non-interface field appearing in ForceSendFields will be sent to the
23614	// server regardless of whether the field is empty or not. This may be
23615	// used to include empty fields in Patch requests.
23616	ForceSendFields []string `json:"-"`
23617
23618	// NullFields is a list of field names (e.g. "Firewalls") to include in
23619	// API requests with the JSON null value. By default, fields with empty
23620	// values are omitted from API requests. However, any field with an
23621	// empty value appearing in NullFields will be sent to the server as
23622	// null. It is an error if a field in this list has a non-empty value.
23623	// This may be used to include null fields in Patch requests.
23624	NullFields []string `json:"-"`
23625}
23626
23627func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
23628	type NoMethod NetworksGetEffectiveFirewallsResponse
23629	raw := NoMethod(*s)
23630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23631}
23632
23633// NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
23634// pruned SecurityPolicy containing ID and any applicable firewall
23635// rules.
23636type NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
23637	// Id: [Output Only] The unique identifier for the security policy. This
23638	// identifier is defined by the server.
23639	Id uint64 `json:"id,omitempty,string"`
23640
23641	// Rules: The rules that apply to the network.
23642	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
23643
23644	// ForceSendFields is a list of field names (e.g. "Id") to
23645	// unconditionally include in API requests. By default, fields with
23646	// empty values are omitted from API requests. However, any non-pointer,
23647	// non-interface field appearing in ForceSendFields will be sent to the
23648	// server regardless of whether the field is empty or not. This may be
23649	// used to include empty fields in Patch requests.
23650	ForceSendFields []string `json:"-"`
23651
23652	// NullFields is a list of field names (e.g. "Id") to include in API
23653	// requests with the JSON null value. By default, fields with empty
23654	// values are omitted from API requests. However, any field with an
23655	// empty value appearing in NullFields will be sent to the server as
23656	// null. It is an error if a field in this list has a non-empty value.
23657	// This may be used to include null fields in Patch requests.
23658	NullFields []string `json:"-"`
23659}
23660
23661func (s *NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
23662	type NoMethod NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
23663	raw := NoMethod(*s)
23664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23665}
23666
23667type NetworksRemovePeeringRequest struct {
23668	// Name: Name of the peering, which should conform to RFC1035.
23669	Name string `json:"name,omitempty"`
23670
23671	// ForceSendFields is a list of field names (e.g. "Name") to
23672	// unconditionally include in API requests. By default, fields with
23673	// empty values are omitted from API requests. However, any non-pointer,
23674	// non-interface field appearing in ForceSendFields will be sent to the
23675	// server regardless of whether the field is empty or not. This may be
23676	// used to include empty fields in Patch requests.
23677	ForceSendFields []string `json:"-"`
23678
23679	// NullFields is a list of field names (e.g. "Name") to include in API
23680	// requests with the JSON null value. By default, fields with empty
23681	// values are omitted from API requests. However, any field with an
23682	// empty value appearing in NullFields will be sent to the server as
23683	// null. It is an error if a field in this list has a non-empty value.
23684	// This may be used to include null fields in Patch requests.
23685	NullFields []string `json:"-"`
23686}
23687
23688func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
23689	type NoMethod NetworksRemovePeeringRequest
23690	raw := NoMethod(*s)
23691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23692}
23693
23694type NetworksUpdatePeeringRequest struct {
23695	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
23696
23697	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
23698	// unconditionally include in API requests. By default, fields with
23699	// empty values are omitted from API requests. However, any non-pointer,
23700	// non-interface field appearing in ForceSendFields will be sent to the
23701	// server regardless of whether the field is empty or not. This may be
23702	// used to include empty fields in Patch requests.
23703	ForceSendFields []string `json:"-"`
23704
23705	// NullFields is a list of field names (e.g. "NetworkPeering") to
23706	// include in API requests with the JSON null value. By default, fields
23707	// with empty values are omitted from API requests. However, any field
23708	// with an empty value appearing in NullFields will be sent to the
23709	// server as null. It is an error if a field in this list has a
23710	// non-empty value. This may be used to include null fields in Patch
23711	// requests.
23712	NullFields []string `json:"-"`
23713}
23714
23715func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
23716	type NoMethod NetworksUpdatePeeringRequest
23717	raw := NoMethod(*s)
23718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23719}
23720
23721// NodeGroup: Represent a sole-tenant Node Group resource.
23722//
23723// A sole-tenant node is a physical server that is dedicated to hosting
23724// VM instances only for your specific project. Use sole-tenant nodes to
23725// keep your instances physically separated from instances in other
23726// projects, or to group your instances together on the same host
23727// hardware. For more information, read Sole-tenant nodes. (==
23728// resource_for {$api_version}.nodeGroups ==)
23729type NodeGroup struct {
23730	// AutoscalingPolicy: Specifies how autoscaling should behave.
23731	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
23732
23733	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23734	// format.
23735	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23736
23737	// Description: An optional description of this resource. Provide this
23738	// property when you create the resource.
23739	Description string `json:"description,omitempty"`
23740
23741	Fingerprint string `json:"fingerprint,omitempty"`
23742
23743	// Id: [Output Only] The unique identifier for the resource. This
23744	// identifier is defined by the server.
23745	Id uint64 `json:"id,omitempty,string"`
23746
23747	// Kind: [Output Only] The type of the resource. Always
23748	// compute#nodeGroup for node group.
23749	Kind string `json:"kind,omitempty"`
23750
23751	// MaintenancePolicy: Specifies how to handle instances when a node in
23752	// the group undergoes maintenance.
23753	//
23754	// Possible values:
23755	//   "DEFAULT"
23756	//   "MAINTENANCE_POLICY_UNSPECIFIED"
23757	//   "MIGRATE_WITHIN_NODE_GROUP"
23758	//   "RESTART_IN_PLACE"
23759	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
23760
23761	// Name: The name of the resource, provided by the client when initially
23762	// creating the resource. The resource name must be 1-63 characters
23763	// long, and comply with RFC1035. Specifically, the name must be 1-63
23764	// characters long and match the regular expression
23765	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
23766	// a lowercase letter, and all following characters must be a dash,
23767	// lowercase letter, or digit, except the last character, which cannot
23768	// be a dash.
23769	Name string `json:"name,omitempty"`
23770
23771	// NodeTemplate: URL of the node template to create the node group from.
23772	NodeTemplate string `json:"nodeTemplate,omitempty"`
23773
23774	// SelfLink: [Output Only] Server-defined URL for the resource.
23775	SelfLink string `json:"selfLink,omitempty"`
23776
23777	// Size: [Output Only] The total number of nodes in the node group.
23778	Size int64 `json:"size,omitempty"`
23779
23780	// Possible values:
23781	//   "CREATING"
23782	//   "DELETING"
23783	//   "INVALID"
23784	//   "READY"
23785	Status string `json:"status,omitempty"`
23786
23787	// Zone: [Output Only] The name of the zone where the node group
23788	// resides, such as us-central1-a.
23789	Zone string `json:"zone,omitempty"`
23790
23791	// ServerResponse contains the HTTP response code and headers from the
23792	// server.
23793	googleapi.ServerResponse `json:"-"`
23794
23795	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
23796	// to unconditionally include in API requests. By default, fields with
23797	// empty values are omitted from API requests. However, any non-pointer,
23798	// non-interface field appearing in ForceSendFields will be sent to the
23799	// server regardless of whether the field is empty or not. This may be
23800	// used to include empty fields in Patch requests.
23801	ForceSendFields []string `json:"-"`
23802
23803	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
23804	// include in API requests with the JSON null value. By default, fields
23805	// with empty values are omitted from API requests. However, any field
23806	// with an empty value appearing in NullFields will be sent to the
23807	// server as null. It is an error if a field in this list has a
23808	// non-empty value. This may be used to include null fields in Patch
23809	// requests.
23810	NullFields []string `json:"-"`
23811}
23812
23813func (s *NodeGroup) MarshalJSON() ([]byte, error) {
23814	type NoMethod NodeGroup
23815	raw := NoMethod(*s)
23816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23817}
23818
23819type NodeGroupAggregatedList struct {
23820	// Id: [Output Only] Unique identifier for the resource; defined by the
23821	// server.
23822	Id string `json:"id,omitempty"`
23823
23824	// Items: A list of NodeGroupsScopedList resources.
23825	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
23826
23827	// Kind: [Output Only] Type of resource.Always
23828	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
23829	Kind string `json:"kind,omitempty"`
23830
23831	// NextPageToken: [Output Only] This token allows you to get the next
23832	// page of results for list requests. If the number of results is larger
23833	// than maxResults, use the nextPageToken as a value for the query
23834	// parameter pageToken in the next list request. Subsequent list
23835	// requests will have their own nextPageToken to continue paging through
23836	// the results.
23837	NextPageToken string `json:"nextPageToken,omitempty"`
23838
23839	// SelfLink: [Output Only] Server-defined URL for this resource.
23840	SelfLink string `json:"selfLink,omitempty"`
23841
23842	// Warning: [Output Only] Informational warning message.
23843	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
23844
23845	// ServerResponse contains the HTTP response code and headers from the
23846	// server.
23847	googleapi.ServerResponse `json:"-"`
23848
23849	// ForceSendFields is a list of field names (e.g. "Id") to
23850	// unconditionally include in API requests. By default, fields with
23851	// empty values are omitted from API requests. However, any non-pointer,
23852	// non-interface field appearing in ForceSendFields will be sent to the
23853	// server regardless of whether the field is empty or not. This may be
23854	// used to include empty fields in Patch requests.
23855	ForceSendFields []string `json:"-"`
23856
23857	// NullFields is a list of field names (e.g. "Id") to include in API
23858	// requests with the JSON null value. By default, fields with empty
23859	// values are omitted from API requests. However, any field with an
23860	// empty value appearing in NullFields will be sent to the server as
23861	// null. It is an error if a field in this list has a non-empty value.
23862	// This may be used to include null fields in Patch requests.
23863	NullFields []string `json:"-"`
23864}
23865
23866func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
23867	type NoMethod NodeGroupAggregatedList
23868	raw := NoMethod(*s)
23869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23870}
23871
23872// NodeGroupAggregatedListWarning: [Output Only] Informational warning
23873// message.
23874type NodeGroupAggregatedListWarning struct {
23875	// Code: [Output Only] A warning code, if applicable. For example,
23876	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23877	// the response.
23878	//
23879	// Possible values:
23880	//   "CLEANUP_FAILED"
23881	//   "DEPRECATED_RESOURCE_USED"
23882	//   "DEPRECATED_TYPE_USED"
23883	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23884	//   "EXPERIMENTAL_TYPE_USED"
23885	//   "EXTERNAL_API_WARNING"
23886	//   "FIELD_VALUE_OVERRIDEN"
23887	//   "INJECTED_KERNELS_DEPRECATED"
23888	//   "MISSING_TYPE_DEPENDENCY"
23889	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23890	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23891	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23892	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23893	//   "NEXT_HOP_NOT_RUNNING"
23894	//   "NOT_CRITICAL_ERROR"
23895	//   "NO_RESULTS_ON_PAGE"
23896	//   "REQUIRED_TOS_AGREEMENT"
23897	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23898	//   "RESOURCE_NOT_DELETED"
23899	//   "SCHEMA_VALIDATION_IGNORED"
23900	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23901	//   "UNDECLARED_PROPERTIES"
23902	//   "UNREACHABLE"
23903	Code string `json:"code,omitempty"`
23904
23905	// Data: [Output Only] Metadata about this warning in key: value format.
23906	// For example:
23907	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23908	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
23909
23910	// Message: [Output Only] A human-readable description of the warning
23911	// code.
23912	Message string `json:"message,omitempty"`
23913
23914	// ForceSendFields is a list of field names (e.g. "Code") to
23915	// unconditionally include in API requests. By default, fields with
23916	// empty values are omitted from API requests. However, any non-pointer,
23917	// non-interface field appearing in ForceSendFields will be sent to the
23918	// server regardless of whether the field is empty or not. This may be
23919	// used to include empty fields in Patch requests.
23920	ForceSendFields []string `json:"-"`
23921
23922	// NullFields is a list of field names (e.g. "Code") to include in API
23923	// requests with the JSON null value. By default, fields with empty
23924	// values are omitted from API requests. However, any field with an
23925	// empty value appearing in NullFields will be sent to the server as
23926	// null. It is an error if a field in this list has a non-empty value.
23927	// This may be used to include null fields in Patch requests.
23928	NullFields []string `json:"-"`
23929}
23930
23931func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
23932	type NoMethod NodeGroupAggregatedListWarning
23933	raw := NoMethod(*s)
23934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23935}
23936
23937type NodeGroupAggregatedListWarningData struct {
23938	// Key: [Output Only] A key that provides more detail on the warning
23939	// being returned. For example, for warnings where there are no results
23940	// in a list request for a particular zone, this key might be scope and
23941	// the key value might be the zone name. Other examples might be a key
23942	// indicating a deprecated resource and a suggested replacement, or a
23943	// warning about invalid network settings (for example, if an instance
23944	// attempts to perform IP forwarding but is not enabled for IP
23945	// forwarding).
23946	Key string `json:"key,omitempty"`
23947
23948	// Value: [Output Only] A warning data value corresponding to the key.
23949	Value string `json:"value,omitempty"`
23950
23951	// ForceSendFields is a list of field names (e.g. "Key") to
23952	// unconditionally include in API requests. By default, fields with
23953	// empty values are omitted from API requests. However, any non-pointer,
23954	// non-interface field appearing in ForceSendFields will be sent to the
23955	// server regardless of whether the field is empty or not. This may be
23956	// used to include empty fields in Patch requests.
23957	ForceSendFields []string `json:"-"`
23958
23959	// NullFields is a list of field names (e.g. "Key") to include in API
23960	// requests with the JSON null value. By default, fields with empty
23961	// values are omitted from API requests. However, any field with an
23962	// empty value appearing in NullFields will be sent to the server as
23963	// null. It is an error if a field in this list has a non-empty value.
23964	// This may be used to include null fields in Patch requests.
23965	NullFields []string `json:"-"`
23966}
23967
23968func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23969	type NoMethod NodeGroupAggregatedListWarningData
23970	raw := NoMethod(*s)
23971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23972}
23973
23974type NodeGroupAutoscalingPolicy struct {
23975	// MaxNodes: The maximum number of nodes that the group should have.
23976	MaxNodes int64 `json:"maxNodes,omitempty"`
23977
23978	// MinNodes: The minimum number of nodes that the group should have.
23979	MinNodes int64 `json:"minNodes,omitempty"`
23980
23981	// Mode: The autoscaling mode.
23982	//
23983	// Possible values:
23984	//   "MODE_UNSPECIFIED"
23985	//   "OFF"
23986	//   "ON"
23987	//   "ONLY_SCALE_OUT"
23988	Mode string `json:"mode,omitempty"`
23989
23990	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
23991	// unconditionally include in API requests. By default, fields with
23992	// empty values are omitted from API requests. However, any non-pointer,
23993	// non-interface field appearing in ForceSendFields will be sent to the
23994	// server regardless of whether the field is empty or not. This may be
23995	// used to include empty fields in Patch requests.
23996	ForceSendFields []string `json:"-"`
23997
23998	// NullFields is a list of field names (e.g. "MaxNodes") to include in
23999	// API requests with the JSON null value. By default, fields with empty
24000	// values are omitted from API requests. However, any field with an
24001	// empty value appearing in NullFields will be sent to the server as
24002	// null. It is an error if a field in this list has a non-empty value.
24003	// This may be used to include null fields in Patch requests.
24004	NullFields []string `json:"-"`
24005}
24006
24007func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
24008	type NoMethod NodeGroupAutoscalingPolicy
24009	raw := NoMethod(*s)
24010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24011}
24012
24013// NodeGroupList: Contains a list of nodeGroups.
24014type NodeGroupList struct {
24015	// Id: [Output Only] Unique identifier for the resource; defined by the
24016	// server.
24017	Id string `json:"id,omitempty"`
24018
24019	// Items: A list of NodeGroup resources.
24020	Items []*NodeGroup `json:"items,omitempty"`
24021
24022	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
24023	// lists of node groups.
24024	Kind string `json:"kind,omitempty"`
24025
24026	// NextPageToken: [Output Only] This token allows you to get the next
24027	// page of results for list requests. If the number of results is larger
24028	// than maxResults, use the nextPageToken as a value for the query
24029	// parameter pageToken in the next list request. Subsequent list
24030	// requests will have their own nextPageToken to continue paging through
24031	// the results.
24032	NextPageToken string `json:"nextPageToken,omitempty"`
24033
24034	// SelfLink: [Output Only] Server-defined URL for this resource.
24035	SelfLink string `json:"selfLink,omitempty"`
24036
24037	// Warning: [Output Only] Informational warning message.
24038	Warning *NodeGroupListWarning `json:"warning,omitempty"`
24039
24040	// ServerResponse contains the HTTP response code and headers from the
24041	// server.
24042	googleapi.ServerResponse `json:"-"`
24043
24044	// ForceSendFields is a list of field names (e.g. "Id") to
24045	// unconditionally include in API requests. By default, fields with
24046	// empty values are omitted from API requests. However, any non-pointer,
24047	// non-interface field appearing in ForceSendFields will be sent to the
24048	// server regardless of whether the field is empty or not. This may be
24049	// used to include empty fields in Patch requests.
24050	ForceSendFields []string `json:"-"`
24051
24052	// NullFields is a list of field names (e.g. "Id") to include in API
24053	// requests with the JSON null value. By default, fields with empty
24054	// values are omitted from API requests. However, any field with an
24055	// empty value appearing in NullFields will be sent to the server as
24056	// null. It is an error if a field in this list has a non-empty value.
24057	// This may be used to include null fields in Patch requests.
24058	NullFields []string `json:"-"`
24059}
24060
24061func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
24062	type NoMethod NodeGroupList
24063	raw := NoMethod(*s)
24064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24065}
24066
24067// NodeGroupListWarning: [Output Only] Informational warning message.
24068type NodeGroupListWarning struct {
24069	// Code: [Output Only] A warning code, if applicable. For example,
24070	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24071	// the response.
24072	//
24073	// Possible values:
24074	//   "CLEANUP_FAILED"
24075	//   "DEPRECATED_RESOURCE_USED"
24076	//   "DEPRECATED_TYPE_USED"
24077	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24078	//   "EXPERIMENTAL_TYPE_USED"
24079	//   "EXTERNAL_API_WARNING"
24080	//   "FIELD_VALUE_OVERRIDEN"
24081	//   "INJECTED_KERNELS_DEPRECATED"
24082	//   "MISSING_TYPE_DEPENDENCY"
24083	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24084	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24085	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24086	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24087	//   "NEXT_HOP_NOT_RUNNING"
24088	//   "NOT_CRITICAL_ERROR"
24089	//   "NO_RESULTS_ON_PAGE"
24090	//   "REQUIRED_TOS_AGREEMENT"
24091	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24092	//   "RESOURCE_NOT_DELETED"
24093	//   "SCHEMA_VALIDATION_IGNORED"
24094	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24095	//   "UNDECLARED_PROPERTIES"
24096	//   "UNREACHABLE"
24097	Code string `json:"code,omitempty"`
24098
24099	// Data: [Output Only] Metadata about this warning in key: value format.
24100	// For example:
24101	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24102	Data []*NodeGroupListWarningData `json:"data,omitempty"`
24103
24104	// Message: [Output Only] A human-readable description of the warning
24105	// code.
24106	Message string `json:"message,omitempty"`
24107
24108	// ForceSendFields is a list of field names (e.g. "Code") to
24109	// unconditionally include in API requests. By default, fields with
24110	// empty values are omitted from API requests. However, any non-pointer,
24111	// non-interface field appearing in ForceSendFields will be sent to the
24112	// server regardless of whether the field is empty or not. This may be
24113	// used to include empty fields in Patch requests.
24114	ForceSendFields []string `json:"-"`
24115
24116	// NullFields is a list of field names (e.g. "Code") to include in API
24117	// requests with the JSON null value. By default, fields with empty
24118	// values are omitted from API requests. However, any field with an
24119	// empty value appearing in NullFields will be sent to the server as
24120	// null. It is an error if a field in this list has a non-empty value.
24121	// This may be used to include null fields in Patch requests.
24122	NullFields []string `json:"-"`
24123}
24124
24125func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
24126	type NoMethod NodeGroupListWarning
24127	raw := NoMethod(*s)
24128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24129}
24130
24131type NodeGroupListWarningData struct {
24132	// Key: [Output Only] A key that provides more detail on the warning
24133	// being returned. For example, for warnings where there are no results
24134	// in a list request for a particular zone, this key might be scope and
24135	// the key value might be the zone name. Other examples might be a key
24136	// indicating a deprecated resource and a suggested replacement, or a
24137	// warning about invalid network settings (for example, if an instance
24138	// attempts to perform IP forwarding but is not enabled for IP
24139	// forwarding).
24140	Key string `json:"key,omitempty"`
24141
24142	// Value: [Output Only] A warning data value corresponding to the key.
24143	Value string `json:"value,omitempty"`
24144
24145	// ForceSendFields is a list of field names (e.g. "Key") to
24146	// unconditionally include in API requests. By default, fields with
24147	// empty values are omitted from API requests. However, any non-pointer,
24148	// non-interface field appearing in ForceSendFields will be sent to the
24149	// server regardless of whether the field is empty or not. This may be
24150	// used to include empty fields in Patch requests.
24151	ForceSendFields []string `json:"-"`
24152
24153	// NullFields is a list of field names (e.g. "Key") to include in API
24154	// requests with the JSON null value. By default, fields with empty
24155	// values are omitted from API requests. However, any field with an
24156	// empty value appearing in NullFields will be sent to the server as
24157	// null. It is an error if a field in this list has a non-empty value.
24158	// This may be used to include null fields in Patch requests.
24159	NullFields []string `json:"-"`
24160}
24161
24162func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
24163	type NoMethod NodeGroupListWarningData
24164	raw := NoMethod(*s)
24165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24166}
24167
24168type NodeGroupNode struct {
24169	// CpuOvercommitType: CPU overcommit.
24170	//
24171	// Possible values:
24172	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
24173	//   "ENABLED"
24174	//   "NONE"
24175	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
24176
24177	// Instances: Instances scheduled on this node.
24178	Instances []string `json:"instances,omitempty"`
24179
24180	// Name: The name of the node.
24181	Name string `json:"name,omitempty"`
24182
24183	// NodeType: The type of this node.
24184	NodeType string `json:"nodeType,omitempty"`
24185
24186	// ServerBinding: Binding properties for the physical server.
24187	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
24188
24189	// ServerId: Server ID associated with this node.
24190	ServerId string `json:"serverId,omitempty"`
24191
24192	// Possible values:
24193	//   "CREATING"
24194	//   "DELETING"
24195	//   "INVALID"
24196	//   "READY"
24197	//   "REPAIRING"
24198	Status string `json:"status,omitempty"`
24199
24200	// ForceSendFields is a list of field names (e.g. "CpuOvercommitType")
24201	// to unconditionally include in API requests. By default, fields with
24202	// empty values are omitted from API requests. However, any non-pointer,
24203	// non-interface field appearing in ForceSendFields will be sent to the
24204	// server regardless of whether the field is empty or not. This may be
24205	// used to include empty fields in Patch requests.
24206	ForceSendFields []string `json:"-"`
24207
24208	// NullFields is a list of field names (e.g. "CpuOvercommitType") to
24209	// include in API requests with the JSON null value. By default, fields
24210	// with empty values are omitted from API requests. However, any field
24211	// with an empty value appearing in NullFields will be sent to the
24212	// server as null. It is an error if a field in this list has a
24213	// non-empty value. This may be used to include null fields in Patch
24214	// requests.
24215	NullFields []string `json:"-"`
24216}
24217
24218func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
24219	type NoMethod NodeGroupNode
24220	raw := NoMethod(*s)
24221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24222}
24223
24224type NodeGroupsAddNodesRequest struct {
24225	// AdditionalNodeCount: Count of additional nodes to be added to the
24226	// node group.
24227	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
24228
24229	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
24230	// to unconditionally include in API requests. By default, fields with
24231	// empty values are omitted from API requests. However, any non-pointer,
24232	// non-interface field appearing in ForceSendFields will be sent to the
24233	// server regardless of whether the field is empty or not. This may be
24234	// used to include empty fields in Patch requests.
24235	ForceSendFields []string `json:"-"`
24236
24237	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
24238	// include in API requests with the JSON null value. By default, fields
24239	// with empty values are omitted from API requests. However, any field
24240	// with an empty value appearing in NullFields will be sent to the
24241	// server as null. It is an error if a field in this list has a
24242	// non-empty value. This may be used to include null fields in Patch
24243	// requests.
24244	NullFields []string `json:"-"`
24245}
24246
24247func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
24248	type NoMethod NodeGroupsAddNodesRequest
24249	raw := NoMethod(*s)
24250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24251}
24252
24253type NodeGroupsDeleteNodesRequest struct {
24254	// Nodes: Names of the nodes to delete.
24255	Nodes []string `json:"nodes,omitempty"`
24256
24257	// ForceSendFields is a list of field names (e.g. "Nodes") to
24258	// unconditionally include in API requests. By default, fields with
24259	// empty values are omitted from API requests. However, any non-pointer,
24260	// non-interface field appearing in ForceSendFields will be sent to the
24261	// server regardless of whether the field is empty or not. This may be
24262	// used to include empty fields in Patch requests.
24263	ForceSendFields []string `json:"-"`
24264
24265	// NullFields is a list of field names (e.g. "Nodes") to include in API
24266	// requests with the JSON null value. By default, fields with empty
24267	// values are omitted from API requests. However, any field with an
24268	// empty value appearing in NullFields will be sent to the server as
24269	// null. It is an error if a field in this list has a non-empty value.
24270	// This may be used to include null fields in Patch requests.
24271	NullFields []string `json:"-"`
24272}
24273
24274func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
24275	type NoMethod NodeGroupsDeleteNodesRequest
24276	raw := NoMethod(*s)
24277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24278}
24279
24280type NodeGroupsListNodes struct {
24281	// Id: [Output Only] Unique identifier for the resource; defined by the
24282	// server.
24283	Id string `json:"id,omitempty"`
24284
24285	// Items: A list of Node resources.
24286	Items []*NodeGroupNode `json:"items,omitempty"`
24287
24288	// Kind: [Output Only] The resource type, which is always
24289	// compute.nodeGroupsListNodes for the list of nodes in the specified
24290	// node group.
24291	Kind string `json:"kind,omitempty"`
24292
24293	// NextPageToken: [Output Only] This token allows you to get the next
24294	// page of results for list requests. If the number of results is larger
24295	// than maxResults, use the nextPageToken as a value for the query
24296	// parameter pageToken in the next list request. Subsequent list
24297	// requests will have their own nextPageToken to continue paging through
24298	// the results.
24299	NextPageToken string `json:"nextPageToken,omitempty"`
24300
24301	// SelfLink: [Output Only] Server-defined URL for this resource.
24302	SelfLink string `json:"selfLink,omitempty"`
24303
24304	// Warning: [Output Only] Informational warning message.
24305	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
24306
24307	// ServerResponse contains the HTTP response code and headers from the
24308	// server.
24309	googleapi.ServerResponse `json:"-"`
24310
24311	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") 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 *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
24329	type NoMethod NodeGroupsListNodes
24330	raw := NoMethod(*s)
24331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24332}
24333
24334// NodeGroupsListNodesWarning: [Output Only] Informational warning
24335// message.
24336type NodeGroupsListNodesWarning struct {
24337	// Code: [Output Only] A warning code, if applicable. For example,
24338	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24339	// the response.
24340	//
24341	// Possible values:
24342	//   "CLEANUP_FAILED"
24343	//   "DEPRECATED_RESOURCE_USED"
24344	//   "DEPRECATED_TYPE_USED"
24345	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24346	//   "EXPERIMENTAL_TYPE_USED"
24347	//   "EXTERNAL_API_WARNING"
24348	//   "FIELD_VALUE_OVERRIDEN"
24349	//   "INJECTED_KERNELS_DEPRECATED"
24350	//   "MISSING_TYPE_DEPENDENCY"
24351	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24352	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24353	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24354	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24355	//   "NEXT_HOP_NOT_RUNNING"
24356	//   "NOT_CRITICAL_ERROR"
24357	//   "NO_RESULTS_ON_PAGE"
24358	//   "REQUIRED_TOS_AGREEMENT"
24359	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24360	//   "RESOURCE_NOT_DELETED"
24361	//   "SCHEMA_VALIDATION_IGNORED"
24362	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24363	//   "UNDECLARED_PROPERTIES"
24364	//   "UNREACHABLE"
24365	Code string `json:"code,omitempty"`
24366
24367	// Data: [Output Only] Metadata about this warning in key: value format.
24368	// For example:
24369	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24370	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
24371
24372	// Message: [Output Only] A human-readable description of the warning
24373	// code.
24374	Message string `json:"message,omitempty"`
24375
24376	// ForceSendFields is a list of field names (e.g. "Code") to
24377	// unconditionally include in API requests. By default, fields with
24378	// empty values are omitted from API requests. However, any non-pointer,
24379	// non-interface field appearing in ForceSendFields will be sent to the
24380	// server regardless of whether the field is empty or not. This may be
24381	// used to include empty fields in Patch requests.
24382	ForceSendFields []string `json:"-"`
24383
24384	// NullFields is a list of field names (e.g. "Code") to include in API
24385	// requests with the JSON null value. By default, fields with empty
24386	// values are omitted from API requests. However, any field with an
24387	// empty value appearing in NullFields will be sent to the server as
24388	// null. It is an error if a field in this list has a non-empty value.
24389	// This may be used to include null fields in Patch requests.
24390	NullFields []string `json:"-"`
24391}
24392
24393func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
24394	type NoMethod NodeGroupsListNodesWarning
24395	raw := NoMethod(*s)
24396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24397}
24398
24399type NodeGroupsListNodesWarningData struct {
24400	// Key: [Output Only] A key that provides more detail on the warning
24401	// being returned. For example, for warnings where there are no results
24402	// in a list request for a particular zone, this key might be scope and
24403	// the key value might be the zone name. Other examples might be a key
24404	// indicating a deprecated resource and a suggested replacement, or a
24405	// warning about invalid network settings (for example, if an instance
24406	// attempts to perform IP forwarding but is not enabled for IP
24407	// forwarding).
24408	Key string `json:"key,omitempty"`
24409
24410	// Value: [Output Only] A warning data value corresponding to the key.
24411	Value string `json:"value,omitempty"`
24412
24413	// ForceSendFields is a list of field names (e.g. "Key") to
24414	// unconditionally include in API requests. By default, fields with
24415	// empty values are omitted from API requests. However, any non-pointer,
24416	// non-interface field appearing in ForceSendFields will be sent to the
24417	// server regardless of whether the field is empty or not. This may be
24418	// used to include empty fields in Patch requests.
24419	ForceSendFields []string `json:"-"`
24420
24421	// NullFields is a list of field names (e.g. "Key") to include in API
24422	// requests with the JSON null value. By default, fields with empty
24423	// values are omitted from API requests. However, any field with an
24424	// empty value appearing in NullFields will be sent to the server as
24425	// null. It is an error if a field in this list has a non-empty value.
24426	// This may be used to include null fields in Patch requests.
24427	NullFields []string `json:"-"`
24428}
24429
24430func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
24431	type NoMethod NodeGroupsListNodesWarningData
24432	raw := NoMethod(*s)
24433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24434}
24435
24436type NodeGroupsScopedList struct {
24437	// NodeGroups: [Output Only] A list of node groups contained in this
24438	// scope.
24439	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
24440
24441	// Warning: [Output Only] An informational warning that appears when the
24442	// nodeGroup list is empty.
24443	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
24444
24445	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
24446	// unconditionally include in API requests. By default, fields with
24447	// empty values are omitted from API requests. However, any non-pointer,
24448	// non-interface field appearing in ForceSendFields will be sent to the
24449	// server regardless of whether the field is empty or not. This may be
24450	// used to include empty fields in Patch requests.
24451	ForceSendFields []string `json:"-"`
24452
24453	// NullFields is a list of field names (e.g. "NodeGroups") to include in
24454	// API requests with the JSON null value. By default, fields with empty
24455	// values are omitted from API requests. However, any field with an
24456	// empty value appearing in NullFields will be sent to the server as
24457	// null. It is an error if a field in this list has a non-empty value.
24458	// This may be used to include null fields in Patch requests.
24459	NullFields []string `json:"-"`
24460}
24461
24462func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
24463	type NoMethod NodeGroupsScopedList
24464	raw := NoMethod(*s)
24465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24466}
24467
24468// NodeGroupsScopedListWarning: [Output Only] An informational warning
24469// that appears when the nodeGroup list is empty.
24470type NodeGroupsScopedListWarning struct {
24471	// Code: [Output Only] A warning code, if applicable. For example,
24472	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24473	// the response.
24474	//
24475	// Possible values:
24476	//   "CLEANUP_FAILED"
24477	//   "DEPRECATED_RESOURCE_USED"
24478	//   "DEPRECATED_TYPE_USED"
24479	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24480	//   "EXPERIMENTAL_TYPE_USED"
24481	//   "EXTERNAL_API_WARNING"
24482	//   "FIELD_VALUE_OVERRIDEN"
24483	//   "INJECTED_KERNELS_DEPRECATED"
24484	//   "MISSING_TYPE_DEPENDENCY"
24485	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24486	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24487	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24488	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24489	//   "NEXT_HOP_NOT_RUNNING"
24490	//   "NOT_CRITICAL_ERROR"
24491	//   "NO_RESULTS_ON_PAGE"
24492	//   "REQUIRED_TOS_AGREEMENT"
24493	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24494	//   "RESOURCE_NOT_DELETED"
24495	//   "SCHEMA_VALIDATION_IGNORED"
24496	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24497	//   "UNDECLARED_PROPERTIES"
24498	//   "UNREACHABLE"
24499	Code string `json:"code,omitempty"`
24500
24501	// Data: [Output Only] Metadata about this warning in key: value format.
24502	// For example:
24503	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24504	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
24505
24506	// Message: [Output Only] A human-readable description of the warning
24507	// code.
24508	Message string `json:"message,omitempty"`
24509
24510	// ForceSendFields is a list of field names (e.g. "Code") to
24511	// unconditionally include in API requests. By default, fields with
24512	// empty values are omitted from API requests. However, any non-pointer,
24513	// non-interface field appearing in ForceSendFields will be sent to the
24514	// server regardless of whether the field is empty or not. This may be
24515	// used to include empty fields in Patch requests.
24516	ForceSendFields []string `json:"-"`
24517
24518	// NullFields is a list of field names (e.g. "Code") to include in API
24519	// requests with the JSON null value. By default, fields with empty
24520	// values are omitted from API requests. However, any field with an
24521	// empty value appearing in NullFields will be sent to the server as
24522	// null. It is an error if a field in this list has a non-empty value.
24523	// This may be used to include null fields in Patch requests.
24524	NullFields []string `json:"-"`
24525}
24526
24527func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
24528	type NoMethod NodeGroupsScopedListWarning
24529	raw := NoMethod(*s)
24530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24531}
24532
24533type NodeGroupsScopedListWarningData struct {
24534	// Key: [Output Only] A key that provides more detail on the warning
24535	// being returned. For example, for warnings where there are no results
24536	// in a list request for a particular zone, this key might be scope and
24537	// the key value might be the zone name. Other examples might be a key
24538	// indicating a deprecated resource and a suggested replacement, or a
24539	// warning about invalid network settings (for example, if an instance
24540	// attempts to perform IP forwarding but is not enabled for IP
24541	// forwarding).
24542	Key string `json:"key,omitempty"`
24543
24544	// Value: [Output Only] A warning data value corresponding to the key.
24545	Value string `json:"value,omitempty"`
24546
24547	// ForceSendFields is a list of field names (e.g. "Key") to
24548	// unconditionally include in API requests. By default, fields with
24549	// empty values are omitted from API requests. However, any non-pointer,
24550	// non-interface field appearing in ForceSendFields will be sent to the
24551	// server regardless of whether the field is empty or not. This may be
24552	// used to include empty fields in Patch requests.
24553	ForceSendFields []string `json:"-"`
24554
24555	// NullFields is a list of field names (e.g. "Key") to include in API
24556	// requests with the JSON null value. By default, fields with empty
24557	// values are omitted from API requests. However, any field with an
24558	// empty value appearing in NullFields will be sent to the server as
24559	// null. It is an error if a field in this list has a non-empty value.
24560	// This may be used to include null fields in Patch requests.
24561	NullFields []string `json:"-"`
24562}
24563
24564func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
24565	type NoMethod NodeGroupsScopedListWarningData
24566	raw := NoMethod(*s)
24567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24568}
24569
24570type NodeGroupsSetNodeTemplateRequest struct {
24571	// NodeTemplate: Full or partial URL of the node template resource to be
24572	// updated for this node group.
24573	NodeTemplate string `json:"nodeTemplate,omitempty"`
24574
24575	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
24576	// unconditionally include in API requests. By default, fields with
24577	// empty values are omitted from API requests. However, any non-pointer,
24578	// non-interface field appearing in ForceSendFields will be sent to the
24579	// server regardless of whether the field is empty or not. This may be
24580	// used to include empty fields in Patch requests.
24581	ForceSendFields []string `json:"-"`
24582
24583	// NullFields is a list of field names (e.g. "NodeTemplate") to include
24584	// in API requests with the JSON null value. By default, fields with
24585	// empty values are omitted from API requests. However, any field with
24586	// an empty value appearing in NullFields will be sent to the server as
24587	// null. It is an error if a field in this list has a non-empty value.
24588	// This may be used to include null fields in Patch requests.
24589	NullFields []string `json:"-"`
24590}
24591
24592func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
24593	type NoMethod NodeGroupsSetNodeTemplateRequest
24594	raw := NoMethod(*s)
24595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24596}
24597
24598// NodeTemplate: Represent a sole-tenant Node Template resource.
24599//
24600// You can use a template to define properties for nodes in a node
24601// group. For more information, read Creating node groups and instances.
24602// (== resource_for {$api_version}.nodeTemplates ==)
24603type NodeTemplate struct {
24604	// CpuOvercommitType: CPU overcommit.
24605	//
24606	// Possible values:
24607	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
24608	//   "ENABLED"
24609	//   "NONE"
24610	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
24611
24612	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24613	// format.
24614	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24615
24616	// Description: An optional description of this resource. Provide this
24617	// property when you create the resource.
24618	Description string `json:"description,omitempty"`
24619
24620	// Id: [Output Only] The unique identifier for the resource. This
24621	// identifier is defined by the server.
24622	Id uint64 `json:"id,omitempty,string"`
24623
24624	// Kind: [Output Only] The type of the resource. Always
24625	// compute#nodeTemplate for node templates.
24626	Kind string `json:"kind,omitempty"`
24627
24628	// Name: The name of the resource, provided by the client when initially
24629	// creating the resource. The resource name must be 1-63 characters
24630	// long, and comply with RFC1035. Specifically, the name must be 1-63
24631	// characters long and match the regular expression
24632	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
24633	// a lowercase letter, and all following characters must be a dash,
24634	// lowercase letter, or digit, except the last character, which cannot
24635	// be a dash.
24636	Name string `json:"name,omitempty"`
24637
24638	// NodeAffinityLabels: Labels to use for node affinity, which will be
24639	// used in instance scheduling.
24640	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
24641
24642	// NodeType: The node type to use for nodes group that are created from
24643	// this template.
24644	NodeType string `json:"nodeType,omitempty"`
24645
24646	// NodeTypeFlexibility: The flexible properties of the desired node
24647	// type. Node groups that use this node template will create nodes of a
24648	// type that matches these properties.
24649	//
24650	// This field is mutually exclusive with the node_type property; you can
24651	// only define one or the other, but not both.
24652	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
24653
24654	// Region: [Output Only] The name of the region where the node template
24655	// resides, such as us-central1.
24656	Region string `json:"region,omitempty"`
24657
24658	// SelfLink: [Output Only] Server-defined URL for the resource.
24659	SelfLink string `json:"selfLink,omitempty"`
24660
24661	// ServerBinding: Sets the binding properties for the physical server.
24662	// Valid values include:
24663	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
24664	// physical server
24665	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
24666	// server whenever possible
24667	//
24668	// See Sole-tenant node options for more information.
24669	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
24670
24671	// Status: [Output Only] The status of the node template. One of the
24672	// following values: CREATING, READY, and DELETING.
24673	//
24674	// Possible values:
24675	//   "CREATING"
24676	//   "DELETING"
24677	//   "INVALID"
24678	//   "READY"
24679	Status string `json:"status,omitempty"`
24680
24681	// StatusMessage: [Output Only] An optional, human-readable explanation
24682	// of the status.
24683	StatusMessage string `json:"statusMessage,omitempty"`
24684
24685	// ServerResponse contains the HTTP response code and headers from the
24686	// server.
24687	googleapi.ServerResponse `json:"-"`
24688
24689	// ForceSendFields is a list of field names (e.g. "CpuOvercommitType")
24690	// to unconditionally include in API requests. By default, fields with
24691	// empty values are omitted from API requests. However, any non-pointer,
24692	// non-interface field appearing in ForceSendFields will be sent to the
24693	// server regardless of whether the field is empty or not. This may be
24694	// used to include empty fields in Patch requests.
24695	ForceSendFields []string `json:"-"`
24696
24697	// NullFields is a list of field names (e.g. "CpuOvercommitType") to
24698	// include in API requests with the JSON null value. By default, fields
24699	// with empty values are omitted from API requests. However, any field
24700	// with an empty value appearing in NullFields will be sent to the
24701	// server as null. It is an error if a field in this list has a
24702	// non-empty value. This may be used to include null fields in Patch
24703	// requests.
24704	NullFields []string `json:"-"`
24705}
24706
24707func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
24708	type NoMethod NodeTemplate
24709	raw := NoMethod(*s)
24710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24711}
24712
24713type NodeTemplateAggregatedList struct {
24714	// Id: [Output Only] Unique identifier for the resource; defined by the
24715	// server.
24716	Id string `json:"id,omitempty"`
24717
24718	// Items: A list of NodeTemplatesScopedList resources.
24719	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
24720
24721	// Kind: [Output Only] Type of resource.Always
24722	// compute#nodeTemplateAggregatedList for aggregated lists of node
24723	// templates.
24724	Kind string `json:"kind,omitempty"`
24725
24726	// NextPageToken: [Output Only] This token allows you to get the next
24727	// page of results for list requests. If the number of results is larger
24728	// than maxResults, use the nextPageToken as a value for the query
24729	// parameter pageToken in the next list request. Subsequent list
24730	// requests will have their own nextPageToken to continue paging through
24731	// the results.
24732	NextPageToken string `json:"nextPageToken,omitempty"`
24733
24734	// SelfLink: [Output Only] Server-defined URL for this resource.
24735	SelfLink string `json:"selfLink,omitempty"`
24736
24737	// Warning: [Output Only] Informational warning message.
24738	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
24739
24740	// ServerResponse contains the HTTP response code and headers from the
24741	// server.
24742	googleapi.ServerResponse `json:"-"`
24743
24744	// ForceSendFields is a list of field names (e.g. "Id") to
24745	// unconditionally include in API requests. By default, fields with
24746	// empty values are omitted from API requests. However, any non-pointer,
24747	// non-interface field appearing in ForceSendFields will be sent to the
24748	// server regardless of whether the field is empty or not. This may be
24749	// used to include empty fields in Patch requests.
24750	ForceSendFields []string `json:"-"`
24751
24752	// NullFields is a list of field names (e.g. "Id") to include in API
24753	// requests with the JSON null value. By default, fields with empty
24754	// values are omitted from API requests. However, any field with an
24755	// empty value appearing in NullFields will be sent to the server as
24756	// null. It is an error if a field in this list has a non-empty value.
24757	// This may be used to include null fields in Patch requests.
24758	NullFields []string `json:"-"`
24759}
24760
24761func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
24762	type NoMethod NodeTemplateAggregatedList
24763	raw := NoMethod(*s)
24764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24765}
24766
24767// NodeTemplateAggregatedListWarning: [Output Only] Informational
24768// warning message.
24769type NodeTemplateAggregatedListWarning struct {
24770	// Code: [Output Only] A warning code, if applicable. For example,
24771	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24772	// the response.
24773	//
24774	// Possible values:
24775	//   "CLEANUP_FAILED"
24776	//   "DEPRECATED_RESOURCE_USED"
24777	//   "DEPRECATED_TYPE_USED"
24778	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24779	//   "EXPERIMENTAL_TYPE_USED"
24780	//   "EXTERNAL_API_WARNING"
24781	//   "FIELD_VALUE_OVERRIDEN"
24782	//   "INJECTED_KERNELS_DEPRECATED"
24783	//   "MISSING_TYPE_DEPENDENCY"
24784	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24785	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24786	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24787	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24788	//   "NEXT_HOP_NOT_RUNNING"
24789	//   "NOT_CRITICAL_ERROR"
24790	//   "NO_RESULTS_ON_PAGE"
24791	//   "REQUIRED_TOS_AGREEMENT"
24792	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24793	//   "RESOURCE_NOT_DELETED"
24794	//   "SCHEMA_VALIDATION_IGNORED"
24795	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24796	//   "UNDECLARED_PROPERTIES"
24797	//   "UNREACHABLE"
24798	Code string `json:"code,omitempty"`
24799
24800	// Data: [Output Only] Metadata about this warning in key: value format.
24801	// For example:
24802	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24803	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
24804
24805	// Message: [Output Only] A human-readable description of the warning
24806	// code.
24807	Message string `json:"message,omitempty"`
24808
24809	// ForceSendFields is a list of field names (e.g. "Code") to
24810	// unconditionally include in API requests. By default, fields with
24811	// empty values are omitted from API requests. However, any non-pointer,
24812	// non-interface field appearing in ForceSendFields will be sent to the
24813	// server regardless of whether the field is empty or not. This may be
24814	// used to include empty fields in Patch requests.
24815	ForceSendFields []string `json:"-"`
24816
24817	// NullFields is a list of field names (e.g. "Code") to include in API
24818	// requests with the JSON null value. By default, fields with empty
24819	// values are omitted from API requests. However, any field with an
24820	// empty value appearing in NullFields will be sent to the server as
24821	// null. It is an error if a field in this list has a non-empty value.
24822	// This may be used to include null fields in Patch requests.
24823	NullFields []string `json:"-"`
24824}
24825
24826func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
24827	type NoMethod NodeTemplateAggregatedListWarning
24828	raw := NoMethod(*s)
24829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24830}
24831
24832type NodeTemplateAggregatedListWarningData struct {
24833	// Key: [Output Only] A key that provides more detail on the warning
24834	// being returned. For example, for warnings where there are no results
24835	// in a list request for a particular zone, this key might be scope and
24836	// the key value might be the zone name. Other examples might be a key
24837	// indicating a deprecated resource and a suggested replacement, or a
24838	// warning about invalid network settings (for example, if an instance
24839	// attempts to perform IP forwarding but is not enabled for IP
24840	// forwarding).
24841	Key string `json:"key,omitempty"`
24842
24843	// Value: [Output Only] A warning data value corresponding to the key.
24844	Value string `json:"value,omitempty"`
24845
24846	// ForceSendFields is a list of field names (e.g. "Key") to
24847	// unconditionally include in API requests. By default, fields with
24848	// empty values are omitted from API requests. However, any non-pointer,
24849	// non-interface field appearing in ForceSendFields will be sent to the
24850	// server regardless of whether the field is empty or not. This may be
24851	// used to include empty fields in Patch requests.
24852	ForceSendFields []string `json:"-"`
24853
24854	// NullFields is a list of field names (e.g. "Key") to include in API
24855	// requests with the JSON null value. By default, fields with empty
24856	// values are omitted from API requests. However, any field with an
24857	// empty value appearing in NullFields will be sent to the server as
24858	// null. It is an error if a field in this list has a non-empty value.
24859	// This may be used to include null fields in Patch requests.
24860	NullFields []string `json:"-"`
24861}
24862
24863func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24864	type NoMethod NodeTemplateAggregatedListWarningData
24865	raw := NoMethod(*s)
24866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24867}
24868
24869// NodeTemplateList: Contains a list of node templates.
24870type NodeTemplateList struct {
24871	// Id: [Output Only] Unique identifier for the resource; defined by the
24872	// server.
24873	Id string `json:"id,omitempty"`
24874
24875	// Items: A list of NodeTemplate resources.
24876	Items []*NodeTemplate `json:"items,omitempty"`
24877
24878	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
24879	// for lists of node templates.
24880	Kind string `json:"kind,omitempty"`
24881
24882	// NextPageToken: [Output Only] This token allows you to get the next
24883	// page of results for list requests. If the number of results is larger
24884	// than maxResults, use the nextPageToken as a value for the query
24885	// parameter pageToken in the next list request. Subsequent list
24886	// requests will have their own nextPageToken to continue paging through
24887	// the results.
24888	NextPageToken string `json:"nextPageToken,omitempty"`
24889
24890	// SelfLink: [Output Only] Server-defined URL for this resource.
24891	SelfLink string `json:"selfLink,omitempty"`
24892
24893	// Warning: [Output Only] Informational warning message.
24894	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
24895
24896	// ServerResponse contains the HTTP response code and headers from the
24897	// server.
24898	googleapi.ServerResponse `json:"-"`
24899
24900	// ForceSendFields is a list of field names (e.g. "Id") to
24901	// unconditionally include in API requests. By default, fields with
24902	// empty values are omitted from API requests. However, any non-pointer,
24903	// non-interface field appearing in ForceSendFields will be sent to the
24904	// server regardless of whether the field is empty or not. This may be
24905	// used to include empty fields in Patch requests.
24906	ForceSendFields []string `json:"-"`
24907
24908	// NullFields is a list of field names (e.g. "Id") to include in API
24909	// requests with the JSON null value. By default, fields with empty
24910	// values are omitted from API requests. However, any field with an
24911	// empty value appearing in NullFields will be sent to the server as
24912	// null. It is an error if a field in this list has a non-empty value.
24913	// This may be used to include null fields in Patch requests.
24914	NullFields []string `json:"-"`
24915}
24916
24917func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
24918	type NoMethod NodeTemplateList
24919	raw := NoMethod(*s)
24920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24921}
24922
24923// NodeTemplateListWarning: [Output Only] Informational warning message.
24924type NodeTemplateListWarning struct {
24925	// Code: [Output Only] A warning code, if applicable. For example,
24926	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24927	// the response.
24928	//
24929	// Possible values:
24930	//   "CLEANUP_FAILED"
24931	//   "DEPRECATED_RESOURCE_USED"
24932	//   "DEPRECATED_TYPE_USED"
24933	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24934	//   "EXPERIMENTAL_TYPE_USED"
24935	//   "EXTERNAL_API_WARNING"
24936	//   "FIELD_VALUE_OVERRIDEN"
24937	//   "INJECTED_KERNELS_DEPRECATED"
24938	//   "MISSING_TYPE_DEPENDENCY"
24939	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24940	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24941	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24942	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24943	//   "NEXT_HOP_NOT_RUNNING"
24944	//   "NOT_CRITICAL_ERROR"
24945	//   "NO_RESULTS_ON_PAGE"
24946	//   "REQUIRED_TOS_AGREEMENT"
24947	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24948	//   "RESOURCE_NOT_DELETED"
24949	//   "SCHEMA_VALIDATION_IGNORED"
24950	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24951	//   "UNDECLARED_PROPERTIES"
24952	//   "UNREACHABLE"
24953	Code string `json:"code,omitempty"`
24954
24955	// Data: [Output Only] Metadata about this warning in key: value format.
24956	// For example:
24957	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24958	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
24959
24960	// Message: [Output Only] A human-readable description of the warning
24961	// code.
24962	Message string `json:"message,omitempty"`
24963
24964	// ForceSendFields is a list of field names (e.g. "Code") to
24965	// unconditionally include in API requests. By default, fields with
24966	// empty values are omitted from API requests. However, any non-pointer,
24967	// non-interface field appearing in ForceSendFields will be sent to the
24968	// server regardless of whether the field is empty or not. This may be
24969	// used to include empty fields in Patch requests.
24970	ForceSendFields []string `json:"-"`
24971
24972	// NullFields is a list of field names (e.g. "Code") to include in API
24973	// requests with the JSON null value. By default, fields with empty
24974	// values are omitted from API requests. However, any field with an
24975	// empty value appearing in NullFields will be sent to the server as
24976	// null. It is an error if a field in this list has a non-empty value.
24977	// This may be used to include null fields in Patch requests.
24978	NullFields []string `json:"-"`
24979}
24980
24981func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
24982	type NoMethod NodeTemplateListWarning
24983	raw := NoMethod(*s)
24984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24985}
24986
24987type NodeTemplateListWarningData struct {
24988	// Key: [Output Only] A key that provides more detail on the warning
24989	// being returned. For example, for warnings where there are no results
24990	// in a list request for a particular zone, this key might be scope and
24991	// the key value might be the zone name. Other examples might be a key
24992	// indicating a deprecated resource and a suggested replacement, or a
24993	// warning about invalid network settings (for example, if an instance
24994	// attempts to perform IP forwarding but is not enabled for IP
24995	// forwarding).
24996	Key string `json:"key,omitempty"`
24997
24998	// Value: [Output Only] A warning data value corresponding to the key.
24999	Value string `json:"value,omitempty"`
25000
25001	// ForceSendFields is a list of field names (e.g. "Key") to
25002	// unconditionally include in API requests. By default, fields with
25003	// empty values are omitted from API requests. However, any non-pointer,
25004	// non-interface field appearing in ForceSendFields will be sent to the
25005	// server regardless of whether the field is empty or not. This may be
25006	// used to include empty fields in Patch requests.
25007	ForceSendFields []string `json:"-"`
25008
25009	// NullFields is a list of field names (e.g. "Key") to include in API
25010	// requests with the JSON null value. By default, fields with empty
25011	// values are omitted from API requests. However, any field with an
25012	// empty value appearing in NullFields will be sent to the server as
25013	// null. It is an error if a field in this list has a non-empty value.
25014	// This may be used to include null fields in Patch requests.
25015	NullFields []string `json:"-"`
25016}
25017
25018func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
25019	type NoMethod NodeTemplateListWarningData
25020	raw := NoMethod(*s)
25021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25022}
25023
25024type NodeTemplateNodeTypeFlexibility struct {
25025	Cpus string `json:"cpus,omitempty"`
25026
25027	LocalSsd string `json:"localSsd,omitempty"`
25028
25029	Memory string `json:"memory,omitempty"`
25030
25031	// ForceSendFields is a list of field names (e.g. "Cpus") to
25032	// unconditionally include in API requests. By default, fields with
25033	// empty values are omitted from API requests. However, any non-pointer,
25034	// non-interface field appearing in ForceSendFields will be sent to the
25035	// server regardless of whether the field is empty or not. This may be
25036	// used to include empty fields in Patch requests.
25037	ForceSendFields []string `json:"-"`
25038
25039	// NullFields is a list of field names (e.g. "Cpus") to include in API
25040	// requests with the JSON null value. By default, fields with empty
25041	// values are omitted from API requests. However, any field with an
25042	// empty value appearing in NullFields will be sent to the server as
25043	// null. It is an error if a field in this list has a non-empty value.
25044	// This may be used to include null fields in Patch requests.
25045	NullFields []string `json:"-"`
25046}
25047
25048func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
25049	type NoMethod NodeTemplateNodeTypeFlexibility
25050	raw := NoMethod(*s)
25051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25052}
25053
25054type NodeTemplatesScopedList struct {
25055	// NodeTemplates: [Output Only] A list of node templates contained in
25056	// this scope.
25057	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
25058
25059	// Warning: [Output Only] An informational warning that appears when the
25060	// node templates list is empty.
25061	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
25062
25063	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
25064	// unconditionally include in API requests. By default, fields with
25065	// empty values are omitted from API requests. However, any non-pointer,
25066	// non-interface field appearing in ForceSendFields will be sent to the
25067	// server regardless of whether the field is empty or not. This may be
25068	// used to include empty fields in Patch requests.
25069	ForceSendFields []string `json:"-"`
25070
25071	// NullFields is a list of field names (e.g. "NodeTemplates") to include
25072	// in API requests with the JSON null value. By default, fields with
25073	// empty values are omitted from API requests. However, any field with
25074	// an empty value appearing in NullFields will be sent to the server as
25075	// null. It is an error if a field in this list has a non-empty value.
25076	// This may be used to include null fields in Patch requests.
25077	NullFields []string `json:"-"`
25078}
25079
25080func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
25081	type NoMethod NodeTemplatesScopedList
25082	raw := NoMethod(*s)
25083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25084}
25085
25086// NodeTemplatesScopedListWarning: [Output Only] An informational
25087// warning that appears when the node templates list is empty.
25088type NodeTemplatesScopedListWarning struct {
25089	// Code: [Output Only] A warning code, if applicable. For example,
25090	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25091	// the response.
25092	//
25093	// Possible values:
25094	//   "CLEANUP_FAILED"
25095	//   "DEPRECATED_RESOURCE_USED"
25096	//   "DEPRECATED_TYPE_USED"
25097	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25098	//   "EXPERIMENTAL_TYPE_USED"
25099	//   "EXTERNAL_API_WARNING"
25100	//   "FIELD_VALUE_OVERRIDEN"
25101	//   "INJECTED_KERNELS_DEPRECATED"
25102	//   "MISSING_TYPE_DEPENDENCY"
25103	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25104	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25105	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25106	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25107	//   "NEXT_HOP_NOT_RUNNING"
25108	//   "NOT_CRITICAL_ERROR"
25109	//   "NO_RESULTS_ON_PAGE"
25110	//   "REQUIRED_TOS_AGREEMENT"
25111	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25112	//   "RESOURCE_NOT_DELETED"
25113	//   "SCHEMA_VALIDATION_IGNORED"
25114	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25115	//   "UNDECLARED_PROPERTIES"
25116	//   "UNREACHABLE"
25117	Code string `json:"code,omitempty"`
25118
25119	// Data: [Output Only] Metadata about this warning in key: value format.
25120	// For example:
25121	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25122	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
25123
25124	// Message: [Output Only] A human-readable description of the warning
25125	// code.
25126	Message string `json:"message,omitempty"`
25127
25128	// ForceSendFields is a list of field names (e.g. "Code") to
25129	// unconditionally include in API requests. By default, fields with
25130	// empty values are omitted from API requests. However, any non-pointer,
25131	// non-interface field appearing in ForceSendFields will be sent to the
25132	// server regardless of whether the field is empty or not. This may be
25133	// used to include empty fields in Patch requests.
25134	ForceSendFields []string `json:"-"`
25135
25136	// NullFields is a list of field names (e.g. "Code") to include in API
25137	// requests with the JSON null value. By default, fields with empty
25138	// values are omitted from API requests. However, any field with an
25139	// empty value appearing in NullFields will be sent to the server as
25140	// null. It is an error if a field in this list has a non-empty value.
25141	// This may be used to include null fields in Patch requests.
25142	NullFields []string `json:"-"`
25143}
25144
25145func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
25146	type NoMethod NodeTemplatesScopedListWarning
25147	raw := NoMethod(*s)
25148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25149}
25150
25151type NodeTemplatesScopedListWarningData struct {
25152	// Key: [Output Only] A key that provides more detail on the warning
25153	// being returned. For example, for warnings where there are no results
25154	// in a list request for a particular zone, this key might be scope and
25155	// the key value might be the zone name. Other examples might be a key
25156	// indicating a deprecated resource and a suggested replacement, or a
25157	// warning about invalid network settings (for example, if an instance
25158	// attempts to perform IP forwarding but is not enabled for IP
25159	// forwarding).
25160	Key string `json:"key,omitempty"`
25161
25162	// Value: [Output Only] A warning data value corresponding to the key.
25163	Value string `json:"value,omitempty"`
25164
25165	// ForceSendFields is a list of field names (e.g. "Key") to
25166	// unconditionally include in API requests. By default, fields with
25167	// empty values are omitted from API requests. However, any non-pointer,
25168	// non-interface field appearing in ForceSendFields will be sent to the
25169	// server regardless of whether the field is empty or not. This may be
25170	// used to include empty fields in Patch requests.
25171	ForceSendFields []string `json:"-"`
25172
25173	// NullFields is a list of field names (e.g. "Key") to include in API
25174	// requests with the JSON null value. By default, fields with empty
25175	// values are omitted from API requests. However, any field with an
25176	// empty value appearing in NullFields will be sent to the server as
25177	// null. It is an error if a field in this list has a non-empty value.
25178	// This may be used to include null fields in Patch requests.
25179	NullFields []string `json:"-"`
25180}
25181
25182func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
25183	type NoMethod NodeTemplatesScopedListWarningData
25184	raw := NoMethod(*s)
25185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25186}
25187
25188// NodeType: Represent a sole-tenant Node Type resource.
25189//
25190// Each node within a node group must have a node type. A node type
25191// specifies the total amount of cores and memory for that node.
25192// Currently, the only available node type is n1-node-96-624 node type
25193// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
25194// For more information read Node types. (== resource_for
25195// {$api_version}.nodeTypes ==)
25196type NodeType struct {
25197	// CpuPlatform: [Output Only] The CPU platform used by this node type.
25198	CpuPlatform string `json:"cpuPlatform,omitempty"`
25199
25200	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25201	// format.
25202	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25203
25204	// Deprecated: [Output Only] The deprecation status associated with this
25205	// node type.
25206	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
25207
25208	// Description: [Output Only] An optional textual description of the
25209	// resource.
25210	Description string `json:"description,omitempty"`
25211
25212	// GuestCpus: [Output Only] The number of virtual CPUs that are
25213	// available to the node type.
25214	GuestCpus int64 `json:"guestCpus,omitempty"`
25215
25216	// Id: [Output Only] The unique identifier for the resource. This
25217	// identifier is defined by the server.
25218	Id uint64 `json:"id,omitempty,string"`
25219
25220	// Kind: [Output Only] The type of the resource. Always compute#nodeType
25221	// for node types.
25222	Kind string `json:"kind,omitempty"`
25223
25224	// LocalSsdGb: [Output Only] Local SSD available to the node type,
25225	// defined in GB.
25226	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
25227
25228	// MemoryMb: [Output Only] The amount of physical memory available to
25229	// the node type, defined in MB.
25230	MemoryMb int64 `json:"memoryMb,omitempty"`
25231
25232	// Name: [Output Only] Name of the resource.
25233	Name string `json:"name,omitempty"`
25234
25235	// SelfLink: [Output Only] Server-defined URL for the resource.
25236	SelfLink string `json:"selfLink,omitempty"`
25237
25238	// Zone: [Output Only] The name of the zone where the node type resides,
25239	// such as us-central1-a.
25240	Zone string `json:"zone,omitempty"`
25241
25242	// ServerResponse contains the HTTP response code and headers from the
25243	// server.
25244	googleapi.ServerResponse `json:"-"`
25245
25246	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
25247	// unconditionally include in API requests. By default, fields with
25248	// empty values are omitted from API requests. However, any non-pointer,
25249	// non-interface field appearing in ForceSendFields will be sent to the
25250	// server regardless of whether the field is empty or not. This may be
25251	// used to include empty fields in Patch requests.
25252	ForceSendFields []string `json:"-"`
25253
25254	// NullFields is a list of field names (e.g. "CpuPlatform") to include
25255	// in API requests with the JSON null value. By default, fields with
25256	// empty values are omitted from API requests. However, any field with
25257	// an empty value appearing in NullFields will be sent to the server as
25258	// null. It is an error if a field in this list has a non-empty value.
25259	// This may be used to include null fields in Patch requests.
25260	NullFields []string `json:"-"`
25261}
25262
25263func (s *NodeType) MarshalJSON() ([]byte, error) {
25264	type NoMethod NodeType
25265	raw := NoMethod(*s)
25266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25267}
25268
25269type NodeTypeAggregatedList struct {
25270	// Id: [Output Only] Unique identifier for the resource; defined by the
25271	// server.
25272	Id string `json:"id,omitempty"`
25273
25274	// Items: A list of NodeTypesScopedList resources.
25275	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
25276
25277	// Kind: [Output Only] Type of resource.Always
25278	// compute#nodeTypeAggregatedList for aggregated lists of node types.
25279	Kind string `json:"kind,omitempty"`
25280
25281	// NextPageToken: [Output Only] This token allows you to get the next
25282	// page of results for list requests. If the number of results is larger
25283	// than maxResults, use the nextPageToken as a value for the query
25284	// parameter pageToken in the next list request. Subsequent list
25285	// requests will have their own nextPageToken to continue paging through
25286	// the results.
25287	NextPageToken string `json:"nextPageToken,omitempty"`
25288
25289	// SelfLink: [Output Only] Server-defined URL for this resource.
25290	SelfLink string `json:"selfLink,omitempty"`
25291
25292	// Warning: [Output Only] Informational warning message.
25293	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
25294
25295	// ServerResponse contains the HTTP response code and headers from the
25296	// server.
25297	googleapi.ServerResponse `json:"-"`
25298
25299	// ForceSendFields is a list of field names (e.g. "Id") to
25300	// unconditionally include in API requests. By default, fields with
25301	// empty values are omitted from API requests. However, any non-pointer,
25302	// non-interface field appearing in ForceSendFields will be sent to the
25303	// server regardless of whether the field is empty or not. This may be
25304	// used to include empty fields in Patch requests.
25305	ForceSendFields []string `json:"-"`
25306
25307	// NullFields is a list of field names (e.g. "Id") to include in API
25308	// requests with the JSON null value. By default, fields with empty
25309	// values are omitted from API requests. However, any field with an
25310	// empty value appearing in NullFields will be sent to the server as
25311	// null. It is an error if a field in this list has a non-empty value.
25312	// This may be used to include null fields in Patch requests.
25313	NullFields []string `json:"-"`
25314}
25315
25316func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
25317	type NoMethod NodeTypeAggregatedList
25318	raw := NoMethod(*s)
25319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25320}
25321
25322// NodeTypeAggregatedListWarning: [Output Only] Informational warning
25323// message.
25324type NodeTypeAggregatedListWarning struct {
25325	// Code: [Output Only] A warning code, if applicable. For example,
25326	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25327	// the response.
25328	//
25329	// Possible values:
25330	//   "CLEANUP_FAILED"
25331	//   "DEPRECATED_RESOURCE_USED"
25332	//   "DEPRECATED_TYPE_USED"
25333	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25334	//   "EXPERIMENTAL_TYPE_USED"
25335	//   "EXTERNAL_API_WARNING"
25336	//   "FIELD_VALUE_OVERRIDEN"
25337	//   "INJECTED_KERNELS_DEPRECATED"
25338	//   "MISSING_TYPE_DEPENDENCY"
25339	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25340	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25341	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25342	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25343	//   "NEXT_HOP_NOT_RUNNING"
25344	//   "NOT_CRITICAL_ERROR"
25345	//   "NO_RESULTS_ON_PAGE"
25346	//   "REQUIRED_TOS_AGREEMENT"
25347	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25348	//   "RESOURCE_NOT_DELETED"
25349	//   "SCHEMA_VALIDATION_IGNORED"
25350	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25351	//   "UNDECLARED_PROPERTIES"
25352	//   "UNREACHABLE"
25353	Code string `json:"code,omitempty"`
25354
25355	// Data: [Output Only] Metadata about this warning in key: value format.
25356	// For example:
25357	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25358	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
25359
25360	// Message: [Output Only] A human-readable description of the warning
25361	// code.
25362	Message string `json:"message,omitempty"`
25363
25364	// ForceSendFields is a list of field names (e.g. "Code") to
25365	// unconditionally include in API requests. By default, fields with
25366	// empty values are omitted from API requests. However, any non-pointer,
25367	// non-interface field appearing in ForceSendFields will be sent to the
25368	// server regardless of whether the field is empty or not. This may be
25369	// used to include empty fields in Patch requests.
25370	ForceSendFields []string `json:"-"`
25371
25372	// NullFields is a list of field names (e.g. "Code") to include in API
25373	// requests with the JSON null value. By default, fields with empty
25374	// values are omitted from API requests. However, any field with an
25375	// empty value appearing in NullFields will be sent to the server as
25376	// null. It is an error if a field in this list has a non-empty value.
25377	// This may be used to include null fields in Patch requests.
25378	NullFields []string `json:"-"`
25379}
25380
25381func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
25382	type NoMethod NodeTypeAggregatedListWarning
25383	raw := NoMethod(*s)
25384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25385}
25386
25387type NodeTypeAggregatedListWarningData struct {
25388	// Key: [Output Only] A key that provides more detail on the warning
25389	// being returned. For example, for warnings where there are no results
25390	// in a list request for a particular zone, this key might be scope and
25391	// the key value might be the zone name. Other examples might be a key
25392	// indicating a deprecated resource and a suggested replacement, or a
25393	// warning about invalid network settings (for example, if an instance
25394	// attempts to perform IP forwarding but is not enabled for IP
25395	// forwarding).
25396	Key string `json:"key,omitempty"`
25397
25398	// Value: [Output Only] A warning data value corresponding to the key.
25399	Value string `json:"value,omitempty"`
25400
25401	// ForceSendFields is a list of field names (e.g. "Key") to
25402	// unconditionally include in API requests. By default, fields with
25403	// empty values are omitted from API requests. However, any non-pointer,
25404	// non-interface field appearing in ForceSendFields will be sent to the
25405	// server regardless of whether the field is empty or not. This may be
25406	// used to include empty fields in Patch requests.
25407	ForceSendFields []string `json:"-"`
25408
25409	// NullFields is a list of field names (e.g. "Key") to include in API
25410	// requests with the JSON null value. By default, fields with empty
25411	// values are omitted from API requests. However, any field with an
25412	// empty value appearing in NullFields will be sent to the server as
25413	// null. It is an error if a field in this list has a non-empty value.
25414	// This may be used to include null fields in Patch requests.
25415	NullFields []string `json:"-"`
25416}
25417
25418func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25419	type NoMethod NodeTypeAggregatedListWarningData
25420	raw := NoMethod(*s)
25421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25422}
25423
25424// NodeTypeList: Contains a list of node types.
25425type NodeTypeList struct {
25426	// Id: [Output Only] Unique identifier for the resource; defined by the
25427	// server.
25428	Id string `json:"id,omitempty"`
25429
25430	// Items: A list of NodeType resources.
25431	Items []*NodeType `json:"items,omitempty"`
25432
25433	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
25434	// lists of node types.
25435	Kind string `json:"kind,omitempty"`
25436
25437	// NextPageToken: [Output Only] This token allows you to get the next
25438	// page of results for list requests. If the number of results is larger
25439	// than maxResults, use the nextPageToken as a value for the query
25440	// parameter pageToken in the next list request. Subsequent list
25441	// requests will have their own nextPageToken to continue paging through
25442	// the results.
25443	NextPageToken string `json:"nextPageToken,omitempty"`
25444
25445	// SelfLink: [Output Only] Server-defined URL for this resource.
25446	SelfLink string `json:"selfLink,omitempty"`
25447
25448	// Warning: [Output Only] Informational warning message.
25449	Warning *NodeTypeListWarning `json:"warning,omitempty"`
25450
25451	// ServerResponse contains the HTTP response code and headers from the
25452	// server.
25453	googleapi.ServerResponse `json:"-"`
25454
25455	// ForceSendFields is a list of field names (e.g. "Id") to
25456	// unconditionally include in API requests. By default, fields with
25457	// empty values are omitted from API requests. However, any non-pointer,
25458	// non-interface field appearing in ForceSendFields will be sent to the
25459	// server regardless of whether the field is empty or not. This may be
25460	// used to include empty fields in Patch requests.
25461	ForceSendFields []string `json:"-"`
25462
25463	// NullFields is a list of field names (e.g. "Id") to include in API
25464	// requests with the JSON null value. By default, fields with empty
25465	// values are omitted from API requests. However, any field with an
25466	// empty value appearing in NullFields will be sent to the server as
25467	// null. It is an error if a field in this list has a non-empty value.
25468	// This may be used to include null fields in Patch requests.
25469	NullFields []string `json:"-"`
25470}
25471
25472func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
25473	type NoMethod NodeTypeList
25474	raw := NoMethod(*s)
25475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25476}
25477
25478// NodeTypeListWarning: [Output Only] Informational warning message.
25479type NodeTypeListWarning struct {
25480	// Code: [Output Only] A warning code, if applicable. For example,
25481	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25482	// the response.
25483	//
25484	// Possible values:
25485	//   "CLEANUP_FAILED"
25486	//   "DEPRECATED_RESOURCE_USED"
25487	//   "DEPRECATED_TYPE_USED"
25488	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25489	//   "EXPERIMENTAL_TYPE_USED"
25490	//   "EXTERNAL_API_WARNING"
25491	//   "FIELD_VALUE_OVERRIDEN"
25492	//   "INJECTED_KERNELS_DEPRECATED"
25493	//   "MISSING_TYPE_DEPENDENCY"
25494	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25495	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25496	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25497	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25498	//   "NEXT_HOP_NOT_RUNNING"
25499	//   "NOT_CRITICAL_ERROR"
25500	//   "NO_RESULTS_ON_PAGE"
25501	//   "REQUIRED_TOS_AGREEMENT"
25502	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25503	//   "RESOURCE_NOT_DELETED"
25504	//   "SCHEMA_VALIDATION_IGNORED"
25505	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25506	//   "UNDECLARED_PROPERTIES"
25507	//   "UNREACHABLE"
25508	Code string `json:"code,omitempty"`
25509
25510	// Data: [Output Only] Metadata about this warning in key: value format.
25511	// For example:
25512	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25513	Data []*NodeTypeListWarningData `json:"data,omitempty"`
25514
25515	// Message: [Output Only] A human-readable description of the warning
25516	// code.
25517	Message string `json:"message,omitempty"`
25518
25519	// ForceSendFields is a list of field names (e.g. "Code") to
25520	// unconditionally include in API requests. By default, fields with
25521	// empty values are omitted from API requests. However, any non-pointer,
25522	// non-interface field appearing in ForceSendFields will be sent to the
25523	// server regardless of whether the field is empty or not. This may be
25524	// used to include empty fields in Patch requests.
25525	ForceSendFields []string `json:"-"`
25526
25527	// NullFields is a list of field names (e.g. "Code") to include in API
25528	// requests with the JSON null value. By default, fields with empty
25529	// values are omitted from API requests. However, any field with an
25530	// empty value appearing in NullFields will be sent to the server as
25531	// null. It is an error if a field in this list has a non-empty value.
25532	// This may be used to include null fields in Patch requests.
25533	NullFields []string `json:"-"`
25534}
25535
25536func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
25537	type NoMethod NodeTypeListWarning
25538	raw := NoMethod(*s)
25539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25540}
25541
25542type NodeTypeListWarningData struct {
25543	// Key: [Output Only] A key that provides more detail on the warning
25544	// being returned. For example, for warnings where there are no results
25545	// in a list request for a particular zone, this key might be scope and
25546	// the key value might be the zone name. Other examples might be a key
25547	// indicating a deprecated resource and a suggested replacement, or a
25548	// warning about invalid network settings (for example, if an instance
25549	// attempts to perform IP forwarding but is not enabled for IP
25550	// forwarding).
25551	Key string `json:"key,omitempty"`
25552
25553	// Value: [Output Only] A warning data value corresponding to the key.
25554	Value string `json:"value,omitempty"`
25555
25556	// ForceSendFields is a list of field names (e.g. "Key") to
25557	// unconditionally include in API requests. By default, fields with
25558	// empty values are omitted from API requests. However, any non-pointer,
25559	// non-interface field appearing in ForceSendFields will be sent to the
25560	// server regardless of whether the field is empty or not. This may be
25561	// used to include empty fields in Patch requests.
25562	ForceSendFields []string `json:"-"`
25563
25564	// NullFields is a list of field names (e.g. "Key") to include in API
25565	// requests with the JSON null value. By default, fields with empty
25566	// values are omitted from API requests. However, any field with an
25567	// empty value appearing in NullFields will be sent to the server as
25568	// null. It is an error if a field in this list has a non-empty value.
25569	// This may be used to include null fields in Patch requests.
25570	NullFields []string `json:"-"`
25571}
25572
25573func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
25574	type NoMethod NodeTypeListWarningData
25575	raw := NoMethod(*s)
25576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25577}
25578
25579type NodeTypesScopedList struct {
25580	// NodeTypes: [Output Only] A list of node types contained in this
25581	// scope.
25582	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
25583
25584	// Warning: [Output Only] An informational warning that appears when the
25585	// node types list is empty.
25586	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
25587
25588	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
25589	// unconditionally include in API requests. By default, fields with
25590	// empty values are omitted from API requests. However, any non-pointer,
25591	// non-interface field appearing in ForceSendFields will be sent to the
25592	// server regardless of whether the field is empty or not. This may be
25593	// used to include empty fields in Patch requests.
25594	ForceSendFields []string `json:"-"`
25595
25596	// NullFields is a list of field names (e.g. "NodeTypes") to include in
25597	// API requests with the JSON null value. By default, fields with empty
25598	// values are omitted from API requests. However, any field with an
25599	// empty value appearing in NullFields will be sent to the server as
25600	// null. It is an error if a field in this list has a non-empty value.
25601	// This may be used to include null fields in Patch requests.
25602	NullFields []string `json:"-"`
25603}
25604
25605func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
25606	type NoMethod NodeTypesScopedList
25607	raw := NoMethod(*s)
25608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25609}
25610
25611// NodeTypesScopedListWarning: [Output Only] An informational warning
25612// that appears when the node types list is empty.
25613type NodeTypesScopedListWarning struct {
25614	// Code: [Output Only] A warning code, if applicable. For example,
25615	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25616	// the response.
25617	//
25618	// Possible values:
25619	//   "CLEANUP_FAILED"
25620	//   "DEPRECATED_RESOURCE_USED"
25621	//   "DEPRECATED_TYPE_USED"
25622	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25623	//   "EXPERIMENTAL_TYPE_USED"
25624	//   "EXTERNAL_API_WARNING"
25625	//   "FIELD_VALUE_OVERRIDEN"
25626	//   "INJECTED_KERNELS_DEPRECATED"
25627	//   "MISSING_TYPE_DEPENDENCY"
25628	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25629	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25630	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25631	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25632	//   "NEXT_HOP_NOT_RUNNING"
25633	//   "NOT_CRITICAL_ERROR"
25634	//   "NO_RESULTS_ON_PAGE"
25635	//   "REQUIRED_TOS_AGREEMENT"
25636	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25637	//   "RESOURCE_NOT_DELETED"
25638	//   "SCHEMA_VALIDATION_IGNORED"
25639	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25640	//   "UNDECLARED_PROPERTIES"
25641	//   "UNREACHABLE"
25642	Code string `json:"code,omitempty"`
25643
25644	// Data: [Output Only] Metadata about this warning in key: value format.
25645	// For example:
25646	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25647	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
25648
25649	// Message: [Output Only] A human-readable description of the warning
25650	// code.
25651	Message string `json:"message,omitempty"`
25652
25653	// ForceSendFields is a list of field names (e.g. "Code") to
25654	// unconditionally include in API requests. By default, fields with
25655	// empty values are omitted from API requests. However, any non-pointer,
25656	// non-interface field appearing in ForceSendFields will be sent to the
25657	// server regardless of whether the field is empty or not. This may be
25658	// used to include empty fields in Patch requests.
25659	ForceSendFields []string `json:"-"`
25660
25661	// NullFields is a list of field names (e.g. "Code") to include in API
25662	// requests with the JSON null value. By default, fields with empty
25663	// values are omitted from API requests. However, any field with an
25664	// empty value appearing in NullFields will be sent to the server as
25665	// null. It is an error if a field in this list has a non-empty value.
25666	// This may be used to include null fields in Patch requests.
25667	NullFields []string `json:"-"`
25668}
25669
25670func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
25671	type NoMethod NodeTypesScopedListWarning
25672	raw := NoMethod(*s)
25673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25674}
25675
25676type NodeTypesScopedListWarningData struct {
25677	// Key: [Output Only] A key that provides more detail on the warning
25678	// being returned. For example, for warnings where there are no results
25679	// in a list request for a particular zone, this key might be scope and
25680	// the key value might be the zone name. Other examples might be a key
25681	// indicating a deprecated resource and a suggested replacement, or a
25682	// warning about invalid network settings (for example, if an instance
25683	// attempts to perform IP forwarding but is not enabled for IP
25684	// forwarding).
25685	Key string `json:"key,omitempty"`
25686
25687	// Value: [Output Only] A warning data value corresponding to the key.
25688	Value string `json:"value,omitempty"`
25689
25690	// ForceSendFields is a list of field names (e.g. "Key") to
25691	// unconditionally include in API requests. By default, fields with
25692	// empty values are omitted from API requests. However, any non-pointer,
25693	// non-interface field appearing in ForceSendFields will be sent to the
25694	// server regardless of whether the field is empty or not. This may be
25695	// used to include empty fields in Patch requests.
25696	ForceSendFields []string `json:"-"`
25697
25698	// NullFields is a list of field names (e.g. "Key") to include in API
25699	// requests with the JSON null value. By default, fields with empty
25700	// values are omitted from API requests. However, any field with an
25701	// empty value appearing in NullFields will be sent to the server as
25702	// null. It is an error if a field in this list has a non-empty value.
25703	// This may be used to include null fields in Patch requests.
25704	NullFields []string `json:"-"`
25705}
25706
25707func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
25708	type NoMethod NodeTypesScopedListWarningData
25709	raw := NoMethod(*s)
25710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25711}
25712
25713// NotificationEndpoint: Represents a notification endpoint.
25714//
25715// A notification endpoint resource defines an endpoint to receive
25716// notifications when there are status changes detected by the
25717// associated health check service.
25718//
25719// For more information, see  Health checks overview. (== resource_for
25720// {$api_version}.notificationEndpoint ==) (== resource_for
25721// {$api_version}.regionNotificationEndpoints ==)
25722type NotificationEndpoint struct {
25723	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25724	// format.
25725	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25726
25727	// Description: An optional description of this resource. Provide this
25728	// property when you create the resource.
25729	Description string `json:"description,omitempty"`
25730
25731	// GrpcSettings: Settings of the gRPC notification endpoint including
25732	// the endpoint URL and the retry duration.
25733	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
25734
25735	// Id: [Output Only] A unique identifier for this resource type. The
25736	// server generates this identifier.
25737	Id uint64 `json:"id,omitempty,string"`
25738
25739	// Kind: [Output Only] Type of the resource. Always
25740	// compute#notificationEndpoint for notification endpoints.
25741	Kind string `json:"kind,omitempty"`
25742
25743	// Name: Name of the resource. Provided by the client when the resource
25744	// is created. The name must be 1-63 characters long, and comply with
25745	// RFC1035. Specifically, the name must be 1-63 characters long and
25746	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
25747	// the first character must be a lowercase letter, and all following
25748	// characters must be a dash, lowercase letter, or digit, except the
25749	// last character, which cannot be a dash.
25750	Name string `json:"name,omitempty"`
25751
25752	// Region: [Output Only] URL of the region where the notification
25753	// endpoint resides. This field applies only to the regional resource.
25754	// You must specify this field as part of the HTTP request URL. It is
25755	// not settable as a field in the request body.
25756	Region string `json:"region,omitempty"`
25757
25758	// SelfLink: [Output Only] Server-defined URL for the resource.
25759	SelfLink string `json:"selfLink,omitempty"`
25760
25761	// ServerResponse contains the HTTP response code and headers from the
25762	// server.
25763	googleapi.ServerResponse `json:"-"`
25764
25765	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
25766	// to unconditionally include in API requests. By default, fields with
25767	// empty values are omitted from API requests. However, any non-pointer,
25768	// non-interface field appearing in ForceSendFields will be sent to the
25769	// server regardless of whether the field is empty or not. This may be
25770	// used to include empty fields in Patch requests.
25771	ForceSendFields []string `json:"-"`
25772
25773	// NullFields is a list of field names (e.g. "CreationTimestamp") to
25774	// include in API requests with the JSON null value. By default, fields
25775	// with empty values are omitted from API requests. However, any field
25776	// with an empty value appearing in NullFields will be sent to the
25777	// server as null. It is an error if a field in this list has a
25778	// non-empty value. This may be used to include null fields in Patch
25779	// requests.
25780	NullFields []string `json:"-"`
25781}
25782
25783func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
25784	type NoMethod NotificationEndpoint
25785	raw := NoMethod(*s)
25786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25787}
25788
25789// NotificationEndpointGrpcSettings: Represents a gRPC setting that
25790// describes one gRPC notification endpoint and the retry duration
25791// attempting to send notification to this endpoint.
25792type NotificationEndpointGrpcSettings struct {
25793	// Authority: Optional. If specified, this field is used to set the
25794	// authority header by the sender of notifications. See
25795	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
25796	Authority string `json:"authority,omitempty"`
25797
25798	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
25799	// a valid gRPCLB DNS name.
25800	Endpoint string `json:"endpoint,omitempty"`
25801
25802	// PayloadName: Optional. If specified, this field is used to populate
25803	// the "name" field in gRPC requests.
25804	PayloadName string `json:"payloadName,omitempty"`
25805
25806	// ResendInterval: Optional. This field is used to configure how often
25807	// to send a full update of all non-healthy backends. If unspecified,
25808	// full updates are not sent. If specified, must be in the range between
25809	// 600 seconds to 3600 seconds. Nanos are disallowed.
25810	ResendInterval *Duration `json:"resendInterval,omitempty"`
25811
25812	// RetryDurationSec: How much time (in seconds) is spent attempting
25813	// notification retries until a successful response is received. Default
25814	// is 30s. Limit is 20m (1200s). Must be a positive number.
25815	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
25816
25817	// ForceSendFields is a list of field names (e.g. "Authority") to
25818	// unconditionally include in API requests. By default, fields with
25819	// empty values are omitted from API requests. However, any non-pointer,
25820	// non-interface field appearing in ForceSendFields will be sent to the
25821	// server regardless of whether the field is empty or not. This may be
25822	// used to include empty fields in Patch requests.
25823	ForceSendFields []string `json:"-"`
25824
25825	// NullFields is a list of field names (e.g. "Authority") to include in
25826	// API requests with the JSON null value. By default, fields with empty
25827	// values are omitted from API requests. However, any field with an
25828	// empty value appearing in NullFields will be sent to the server as
25829	// null. It is an error if a field in this list has a non-empty value.
25830	// This may be used to include null fields in Patch requests.
25831	NullFields []string `json:"-"`
25832}
25833
25834func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
25835	type NoMethod NotificationEndpointGrpcSettings
25836	raw := NoMethod(*s)
25837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25838}
25839
25840type NotificationEndpointList struct {
25841	// Id: [Output Only] Unique identifier for the resource; defined by the
25842	// server.
25843	Id string `json:"id,omitempty"`
25844
25845	// Items: A list of NotificationEndpoint resources.
25846	Items []*NotificationEndpoint `json:"items,omitempty"`
25847
25848	// Kind: [Output Only] Type of the resource. Always
25849	// compute#notificationEndpoint for notification endpoints.
25850	Kind string `json:"kind,omitempty"`
25851
25852	// NextPageToken: [Output Only] This token allows you to get the next
25853	// page of results for list requests. If the number of results is larger
25854	// than maxResults, use the nextPageToken as a value for the query
25855	// parameter pageToken in the next list request. Subsequent list
25856	// requests will have their own nextPageToken to continue paging through
25857	// the results.
25858	NextPageToken string `json:"nextPageToken,omitempty"`
25859
25860	// SelfLink: [Output Only] Server-defined URL for this resource.
25861	SelfLink string `json:"selfLink,omitempty"`
25862
25863	// Warning: [Output Only] Informational warning message.
25864	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
25865
25866	// ServerResponse contains the HTTP response code and headers from the
25867	// server.
25868	googleapi.ServerResponse `json:"-"`
25869
25870	// ForceSendFields is a list of field names (e.g. "Id") to
25871	// unconditionally include in API requests. By default, fields with
25872	// empty values are omitted from API requests. However, any non-pointer,
25873	// non-interface field appearing in ForceSendFields will be sent to the
25874	// server regardless of whether the field is empty or not. This may be
25875	// used to include empty fields in Patch requests.
25876	ForceSendFields []string `json:"-"`
25877
25878	// NullFields is a list of field names (e.g. "Id") to include in API
25879	// requests with the JSON null value. By default, fields with empty
25880	// values are omitted from API requests. However, any field with an
25881	// empty value appearing in NullFields will be sent to the server as
25882	// null. It is an error if a field in this list has a non-empty value.
25883	// This may be used to include null fields in Patch requests.
25884	NullFields []string `json:"-"`
25885}
25886
25887func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
25888	type NoMethod NotificationEndpointList
25889	raw := NoMethod(*s)
25890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25891}
25892
25893// NotificationEndpointListWarning: [Output Only] Informational warning
25894// message.
25895type NotificationEndpointListWarning struct {
25896	// Code: [Output Only] A warning code, if applicable. For example,
25897	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25898	// the response.
25899	//
25900	// Possible values:
25901	//   "CLEANUP_FAILED"
25902	//   "DEPRECATED_RESOURCE_USED"
25903	//   "DEPRECATED_TYPE_USED"
25904	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25905	//   "EXPERIMENTAL_TYPE_USED"
25906	//   "EXTERNAL_API_WARNING"
25907	//   "FIELD_VALUE_OVERRIDEN"
25908	//   "INJECTED_KERNELS_DEPRECATED"
25909	//   "MISSING_TYPE_DEPENDENCY"
25910	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25911	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25912	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25913	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25914	//   "NEXT_HOP_NOT_RUNNING"
25915	//   "NOT_CRITICAL_ERROR"
25916	//   "NO_RESULTS_ON_PAGE"
25917	//   "REQUIRED_TOS_AGREEMENT"
25918	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25919	//   "RESOURCE_NOT_DELETED"
25920	//   "SCHEMA_VALIDATION_IGNORED"
25921	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25922	//   "UNDECLARED_PROPERTIES"
25923	//   "UNREACHABLE"
25924	Code string `json:"code,omitempty"`
25925
25926	// Data: [Output Only] Metadata about this warning in key: value format.
25927	// For example:
25928	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25929	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
25930
25931	// Message: [Output Only] A human-readable description of the warning
25932	// code.
25933	Message string `json:"message,omitempty"`
25934
25935	// ForceSendFields is a list of field names (e.g. "Code") to
25936	// unconditionally include in API requests. By default, fields with
25937	// empty values are omitted from API requests. However, any non-pointer,
25938	// non-interface field appearing in ForceSendFields will be sent to the
25939	// server regardless of whether the field is empty or not. This may be
25940	// used to include empty fields in Patch requests.
25941	ForceSendFields []string `json:"-"`
25942
25943	// NullFields is a list of field names (e.g. "Code") to include in API
25944	// requests with the JSON null value. By default, fields with empty
25945	// values are omitted from API requests. However, any field with an
25946	// empty value appearing in NullFields will be sent to the server as
25947	// null. It is an error if a field in this list has a non-empty value.
25948	// This may be used to include null fields in Patch requests.
25949	NullFields []string `json:"-"`
25950}
25951
25952func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
25953	type NoMethod NotificationEndpointListWarning
25954	raw := NoMethod(*s)
25955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25956}
25957
25958type NotificationEndpointListWarningData struct {
25959	// Key: [Output Only] A key that provides more detail on the warning
25960	// being returned. For example, for warnings where there are no results
25961	// in a list request for a particular zone, this key might be scope and
25962	// the key value might be the zone name. Other examples might be a key
25963	// indicating a deprecated resource and a suggested replacement, or a
25964	// warning about invalid network settings (for example, if an instance
25965	// attempts to perform IP forwarding but is not enabled for IP
25966	// forwarding).
25967	Key string `json:"key,omitempty"`
25968
25969	// Value: [Output Only] A warning data value corresponding to the key.
25970	Value string `json:"value,omitempty"`
25971
25972	// ForceSendFields is a list of field names (e.g. "Key") to
25973	// unconditionally include in API requests. By default, fields with
25974	// empty values are omitted from API requests. However, any non-pointer,
25975	// non-interface field appearing in ForceSendFields will be sent to the
25976	// server regardless of whether the field is empty or not. This may be
25977	// used to include empty fields in Patch requests.
25978	ForceSendFields []string `json:"-"`
25979
25980	// NullFields is a list of field names (e.g. "Key") to include in API
25981	// requests with the JSON null value. By default, fields with empty
25982	// values are omitted from API requests. However, any field with an
25983	// empty value appearing in NullFields will be sent to the server as
25984	// null. It is an error if a field in this list has a non-empty value.
25985	// This may be used to include null fields in Patch requests.
25986	NullFields []string `json:"-"`
25987}
25988
25989func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
25990	type NoMethod NotificationEndpointListWarningData
25991	raw := NoMethod(*s)
25992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25993}
25994
25995// Operation: Represents an Operation resource.
25996//
25997// Google Compute Engine has three Operation resources:
25998//
25999// *
26000// [Global](/compute/docs/reference/rest/{$api_version}/globalOperations)
26001//  *
26002// [Regional](/compute/docs/reference/rest/{$api_version}/regionOperation
26003// s) *
26004// [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations)
26005//
26006// Y
26007// ou can use an operation resource to manage asynchronous API requests.
26008// For more information, read Handling API responses.
26009//
26010// Operations can be global, regional or zonal.
26011// - For global operations, use the `globalOperations` resource.
26012// - For regional operations, use the `regionOperations` resource.
26013// - For zonal operations, use the `zonalOperations` resource.
26014//
26015// For more information, read  Global, Regional, and Zonal Resources.
26016// (== resource_for {$api_version}.globalOperations ==) (== resource_for
26017// {$api_version}.regionOperations ==) (== resource_for
26018// {$api_version}.zoneOperations ==)
26019type Operation struct {
26020	// ClientOperationId: [Output Only] The value of `requestId` if you
26021	// provided it in the request. Not present otherwise.
26022	ClientOperationId string `json:"clientOperationId,omitempty"`
26023
26024	// CreationTimestamp: [Deprecated] This field is deprecated.
26025	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26026
26027	// Description: [Output Only] A textual description of the operation,
26028	// which is set when the operation is created.
26029	Description string `json:"description,omitempty"`
26030
26031	// EndTime: [Output Only] The time that this operation was completed.
26032	// This value is in RFC3339 text format.
26033	EndTime string `json:"endTime,omitempty"`
26034
26035	// Error: [Output Only] If errors are generated during processing of the
26036	// operation, this field will be populated.
26037	Error *OperationError `json:"error,omitempty"`
26038
26039	// HttpErrorMessage: [Output Only] If the operation fails, this field
26040	// contains the HTTP error message that was returned, such as `NOT
26041	// FOUND`.
26042	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
26043
26044	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
26045	// contains the HTTP error status code that was returned. For example, a
26046	// `404` means the resource was not found.
26047	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
26048
26049	// Id: [Output Only] The unique identifier for the operation. This
26050	// identifier is defined by the server.
26051	Id uint64 `json:"id,omitempty,string"`
26052
26053	// InsertTime: [Output Only] The time that this operation was requested.
26054	// This value is in RFC3339 text format.
26055	InsertTime string `json:"insertTime,omitempty"`
26056
26057	// Kind: [Output Only] Type of the resource. Always `compute#operation`
26058	// for Operation resources.
26059	Kind string `json:"kind,omitempty"`
26060
26061	// Name: [Output Only] Name of the operation.
26062	Name string `json:"name,omitempty"`
26063
26064	// OperationType: [Output Only] The type of operation, such as `insert`,
26065	// `update`, or `delete`, and so on.
26066	OperationType string `json:"operationType,omitempty"`
26067
26068	// Progress: [Output Only] An optional progress indicator that ranges
26069	// from 0 to 100. There is no requirement that this be linear or support
26070	// any granularity of operations. This should not be used to guess when
26071	// the operation will be complete. This number should monotonically
26072	// increase as the operation progresses.
26073	Progress int64 `json:"progress,omitempty"`
26074
26075	// Region: [Output Only] The URL of the region where the operation
26076	// resides. Only applicable when performing regional operations.
26077	Region string `json:"region,omitempty"`
26078
26079	// SelfLink: [Output Only] Server-defined URL for the resource.
26080	SelfLink string `json:"selfLink,omitempty"`
26081
26082	// StartTime: [Output Only] The time that this operation was started by
26083	// the server. This value is in RFC3339 text format.
26084	StartTime string `json:"startTime,omitempty"`
26085
26086	// Status: [Output Only] The status of the operation, which can be one
26087	// of the following: `PENDING`, `RUNNING`, or `DONE`.
26088	//
26089	// Possible values:
26090	//   "DONE"
26091	//   "PENDING"
26092	//   "RUNNING"
26093	Status string `json:"status,omitempty"`
26094
26095	// StatusMessage: [Output Only] An optional textual description of the
26096	// current status of the operation.
26097	StatusMessage string `json:"statusMessage,omitempty"`
26098
26099	// TargetId: [Output Only] The unique target ID, which identifies a
26100	// specific incarnation of the target resource.
26101	TargetId uint64 `json:"targetId,omitempty,string"`
26102
26103	// TargetLink: [Output Only] The URL of the resource that the operation
26104	// modifies. For operations related to creating a snapshot, this points
26105	// to the persistent disk that the snapshot was created from.
26106	TargetLink string `json:"targetLink,omitempty"`
26107
26108	// User: [Output Only] User who requested the operation, for example:
26109	// `user@example.com`.
26110	User string `json:"user,omitempty"`
26111
26112	// Warnings: [Output Only] If warning messages are generated during
26113	// processing of the operation, this field will be populated.
26114	Warnings []*OperationWarnings `json:"warnings,omitempty"`
26115
26116	// Zone: [Output Only] The URL of the zone where the operation resides.
26117	// Only applicable when performing per-zone operations.
26118	Zone string `json:"zone,omitempty"`
26119
26120	// ServerResponse contains the HTTP response code and headers from the
26121	// server.
26122	googleapi.ServerResponse `json:"-"`
26123
26124	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
26125	// to unconditionally include in API requests. By default, fields with
26126	// empty values are omitted from API requests. However, any non-pointer,
26127	// non-interface field appearing in ForceSendFields will be sent to the
26128	// server regardless of whether the field is empty or not. This may be
26129	// used to include empty fields in Patch requests.
26130	ForceSendFields []string `json:"-"`
26131
26132	// NullFields is a list of field names (e.g. "ClientOperationId") to
26133	// include in API requests with the JSON null value. By default, fields
26134	// with empty values are omitted from API requests. However, any field
26135	// with an empty value appearing in NullFields will be sent to the
26136	// server as null. It is an error if a field in this list has a
26137	// non-empty value. This may be used to include null fields in Patch
26138	// requests.
26139	NullFields []string `json:"-"`
26140}
26141
26142func (s *Operation) MarshalJSON() ([]byte, error) {
26143	type NoMethod Operation
26144	raw := NoMethod(*s)
26145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26146}
26147
26148// OperationError: [Output Only] If errors are generated during
26149// processing of the operation, this field will be populated.
26150type OperationError struct {
26151	// Errors: [Output Only] The array of errors encountered while
26152	// processing this operation.
26153	Errors []*OperationErrorErrors `json:"errors,omitempty"`
26154
26155	// ForceSendFields is a list of field names (e.g. "Errors") to
26156	// unconditionally include in API requests. By default, fields with
26157	// empty values are omitted from API requests. However, any non-pointer,
26158	// non-interface field appearing in ForceSendFields will be sent to the
26159	// server regardless of whether the field is empty or not. This may be
26160	// used to include empty fields in Patch requests.
26161	ForceSendFields []string `json:"-"`
26162
26163	// NullFields is a list of field names (e.g. "Errors") to include in API
26164	// requests with the JSON null value. By default, fields with empty
26165	// values are omitted from API requests. However, any field with an
26166	// empty value appearing in NullFields will be sent to the server as
26167	// null. It is an error if a field in this list has a non-empty value.
26168	// This may be used to include null fields in Patch requests.
26169	NullFields []string `json:"-"`
26170}
26171
26172func (s *OperationError) MarshalJSON() ([]byte, error) {
26173	type NoMethod OperationError
26174	raw := NoMethod(*s)
26175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26176}
26177
26178type OperationErrorErrors struct {
26179	// Code: [Output Only] The error type identifier for this error.
26180	Code string `json:"code,omitempty"`
26181
26182	// Location: [Output Only] Indicates the field in the request that
26183	// caused the error. This property is optional.
26184	Location string `json:"location,omitempty"`
26185
26186	// Message: [Output Only] An optional, human-readable error message.
26187	Message string `json:"message,omitempty"`
26188
26189	// ForceSendFields is a list of field names (e.g. "Code") to
26190	// unconditionally include in API requests. By default, fields with
26191	// empty values are omitted from API requests. However, any non-pointer,
26192	// non-interface field appearing in ForceSendFields will be sent to the
26193	// server regardless of whether the field is empty or not. This may be
26194	// used to include empty fields in Patch requests.
26195	ForceSendFields []string `json:"-"`
26196
26197	// NullFields is a list of field names (e.g. "Code") to include in API
26198	// requests with the JSON null value. By default, fields with empty
26199	// values are omitted from API requests. However, any field with an
26200	// empty value appearing in NullFields will be sent to the server as
26201	// null. It is an error if a field in this list has a non-empty value.
26202	// This may be used to include null fields in Patch requests.
26203	NullFields []string `json:"-"`
26204}
26205
26206func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
26207	type NoMethod OperationErrorErrors
26208	raw := NoMethod(*s)
26209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26210}
26211
26212type OperationWarnings struct {
26213	// Code: [Output Only] A warning code, if applicable. For example,
26214	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26215	// the response.
26216	//
26217	// Possible values:
26218	//   "CLEANUP_FAILED"
26219	//   "DEPRECATED_RESOURCE_USED"
26220	//   "DEPRECATED_TYPE_USED"
26221	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26222	//   "EXPERIMENTAL_TYPE_USED"
26223	//   "EXTERNAL_API_WARNING"
26224	//   "FIELD_VALUE_OVERRIDEN"
26225	//   "INJECTED_KERNELS_DEPRECATED"
26226	//   "MISSING_TYPE_DEPENDENCY"
26227	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26228	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26229	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26230	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26231	//   "NEXT_HOP_NOT_RUNNING"
26232	//   "NOT_CRITICAL_ERROR"
26233	//   "NO_RESULTS_ON_PAGE"
26234	//   "REQUIRED_TOS_AGREEMENT"
26235	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26236	//   "RESOURCE_NOT_DELETED"
26237	//   "SCHEMA_VALIDATION_IGNORED"
26238	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26239	//   "UNDECLARED_PROPERTIES"
26240	//   "UNREACHABLE"
26241	Code string `json:"code,omitempty"`
26242
26243	// Data: [Output Only] Metadata about this warning in key: value format.
26244	// For example:
26245	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26246	Data []*OperationWarningsData `json:"data,omitempty"`
26247
26248	// Message: [Output Only] A human-readable description of the warning
26249	// code.
26250	Message string `json:"message,omitempty"`
26251
26252	// ForceSendFields is a list of field names (e.g. "Code") to
26253	// unconditionally include in API requests. By default, fields with
26254	// empty values are omitted from API requests. However, any non-pointer,
26255	// non-interface field appearing in ForceSendFields will be sent to the
26256	// server regardless of whether the field is empty or not. This may be
26257	// used to include empty fields in Patch requests.
26258	ForceSendFields []string `json:"-"`
26259
26260	// NullFields is a list of field names (e.g. "Code") to include in API
26261	// requests with the JSON null value. By default, fields with empty
26262	// values are omitted from API requests. However, any field with an
26263	// empty value appearing in NullFields will be sent to the server as
26264	// null. It is an error if a field in this list has a non-empty value.
26265	// This may be used to include null fields in Patch requests.
26266	NullFields []string `json:"-"`
26267}
26268
26269func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
26270	type NoMethod OperationWarnings
26271	raw := NoMethod(*s)
26272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26273}
26274
26275type OperationWarningsData struct {
26276	// Key: [Output Only] A key that provides more detail on the warning
26277	// being returned. For example, for warnings where there are no results
26278	// in a list request for a particular zone, this key might be scope and
26279	// the key value might be the zone name. Other examples might be a key
26280	// indicating a deprecated resource and a suggested replacement, or a
26281	// warning about invalid network settings (for example, if an instance
26282	// attempts to perform IP forwarding but is not enabled for IP
26283	// forwarding).
26284	Key string `json:"key,omitempty"`
26285
26286	// Value: [Output Only] A warning data value corresponding to the key.
26287	Value string `json:"value,omitempty"`
26288
26289	// ForceSendFields is a list of field names (e.g. "Key") to
26290	// unconditionally include in API requests. By default, fields with
26291	// empty values are omitted from API requests. However, any non-pointer,
26292	// non-interface field appearing in ForceSendFields will be sent to the
26293	// server regardless of whether the field is empty or not. This may be
26294	// used to include empty fields in Patch requests.
26295	ForceSendFields []string `json:"-"`
26296
26297	// NullFields is a list of field names (e.g. "Key") to include in API
26298	// requests with the JSON null value. By default, fields with empty
26299	// values are omitted from API requests. However, any field with an
26300	// empty value appearing in NullFields will be sent to the server as
26301	// null. It is an error if a field in this list has a non-empty value.
26302	// This may be used to include null fields in Patch requests.
26303	NullFields []string `json:"-"`
26304}
26305
26306func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
26307	type NoMethod OperationWarningsData
26308	raw := NoMethod(*s)
26309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26310}
26311
26312type OperationAggregatedList struct {
26313	// Id: [Output Only] The unique identifier for the resource. This
26314	// identifier is defined by the server.
26315	Id string `json:"id,omitempty"`
26316
26317	// Items: [Output Only] A map of scoped operation lists.
26318	Items map[string]OperationsScopedList `json:"items,omitempty"`
26319
26320	// Kind: [Output Only] Type of resource. Always
26321	// `compute#operationAggregatedList` for aggregated lists of operations.
26322	Kind string `json:"kind,omitempty"`
26323
26324	// NextPageToken: [Output Only] This token allows you to get the next
26325	// page of results for list requests. If the number of results is larger
26326	// than `maxResults`, use the `nextPageToken` as a value for the query
26327	// parameter `pageToken` in the next list request. Subsequent list
26328	// requests will have their own `nextPageToken` to continue paging
26329	// through the results.
26330	NextPageToken string `json:"nextPageToken,omitempty"`
26331
26332	// SelfLink: [Output Only] Server-defined URL for this resource.
26333	SelfLink string `json:"selfLink,omitempty"`
26334
26335	// Warning: [Output Only] Informational warning message.
26336	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
26337
26338	// ServerResponse contains the HTTP response code and headers from the
26339	// server.
26340	googleapi.ServerResponse `json:"-"`
26341
26342	// ForceSendFields is a list of field names (e.g. "Id") to
26343	// unconditionally include in API requests. By default, fields with
26344	// empty values are omitted from API requests. However, any non-pointer,
26345	// non-interface field appearing in ForceSendFields will be sent to the
26346	// server regardless of whether the field is empty or not. This may be
26347	// used to include empty fields in Patch requests.
26348	ForceSendFields []string `json:"-"`
26349
26350	// NullFields is a list of field names (e.g. "Id") to include in API
26351	// requests with the JSON null value. By default, fields with empty
26352	// values are omitted from API requests. However, any field with an
26353	// empty value appearing in NullFields will be sent to the server as
26354	// null. It is an error if a field in this list has a non-empty value.
26355	// This may be used to include null fields in Patch requests.
26356	NullFields []string `json:"-"`
26357}
26358
26359func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
26360	type NoMethod OperationAggregatedList
26361	raw := NoMethod(*s)
26362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26363}
26364
26365// OperationAggregatedListWarning: [Output Only] Informational warning
26366// message.
26367type OperationAggregatedListWarning struct {
26368	// Code: [Output Only] A warning code, if applicable. For example,
26369	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26370	// the response.
26371	//
26372	// Possible values:
26373	//   "CLEANUP_FAILED"
26374	//   "DEPRECATED_RESOURCE_USED"
26375	//   "DEPRECATED_TYPE_USED"
26376	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26377	//   "EXPERIMENTAL_TYPE_USED"
26378	//   "EXTERNAL_API_WARNING"
26379	//   "FIELD_VALUE_OVERRIDEN"
26380	//   "INJECTED_KERNELS_DEPRECATED"
26381	//   "MISSING_TYPE_DEPENDENCY"
26382	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26383	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26384	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26385	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26386	//   "NEXT_HOP_NOT_RUNNING"
26387	//   "NOT_CRITICAL_ERROR"
26388	//   "NO_RESULTS_ON_PAGE"
26389	//   "REQUIRED_TOS_AGREEMENT"
26390	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26391	//   "RESOURCE_NOT_DELETED"
26392	//   "SCHEMA_VALIDATION_IGNORED"
26393	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26394	//   "UNDECLARED_PROPERTIES"
26395	//   "UNREACHABLE"
26396	Code string `json:"code,omitempty"`
26397
26398	// Data: [Output Only] Metadata about this warning in key: value format.
26399	// For example:
26400	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26401	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
26402
26403	// Message: [Output Only] A human-readable description of the warning
26404	// code.
26405	Message string `json:"message,omitempty"`
26406
26407	// ForceSendFields is a list of field names (e.g. "Code") to
26408	// unconditionally include in API requests. By default, fields with
26409	// empty values are omitted from API requests. However, any non-pointer,
26410	// non-interface field appearing in ForceSendFields will be sent to the
26411	// server regardless of whether the field is empty or not. This may be
26412	// used to include empty fields in Patch requests.
26413	ForceSendFields []string `json:"-"`
26414
26415	// NullFields is a list of field names (e.g. "Code") to include in API
26416	// requests with the JSON null value. By default, fields with empty
26417	// values are omitted from API requests. However, any field with an
26418	// empty value appearing in NullFields will be sent to the server as
26419	// null. It is an error if a field in this list has a non-empty value.
26420	// This may be used to include null fields in Patch requests.
26421	NullFields []string `json:"-"`
26422}
26423
26424func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
26425	type NoMethod OperationAggregatedListWarning
26426	raw := NoMethod(*s)
26427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26428}
26429
26430type OperationAggregatedListWarningData struct {
26431	// Key: [Output Only] A key that provides more detail on the warning
26432	// being returned. For example, for warnings where there are no results
26433	// in a list request for a particular zone, this key might be scope and
26434	// the key value might be the zone name. Other examples might be a key
26435	// indicating a deprecated resource and a suggested replacement, or a
26436	// warning about invalid network settings (for example, if an instance
26437	// attempts to perform IP forwarding but is not enabled for IP
26438	// forwarding).
26439	Key string `json:"key,omitempty"`
26440
26441	// Value: [Output Only] A warning data value corresponding to the key.
26442	Value string `json:"value,omitempty"`
26443
26444	// ForceSendFields is a list of field names (e.g. "Key") to
26445	// unconditionally include in API requests. By default, fields with
26446	// empty values are omitted from API requests. However, any non-pointer,
26447	// non-interface field appearing in ForceSendFields will be sent to the
26448	// server regardless of whether the field is empty or not. This may be
26449	// used to include empty fields in Patch requests.
26450	ForceSendFields []string `json:"-"`
26451
26452	// NullFields is a list of field names (e.g. "Key") to include in API
26453	// requests with the JSON null value. By default, fields with empty
26454	// values are omitted from API requests. However, any field with an
26455	// empty value appearing in NullFields will be sent to the server as
26456	// null. It is an error if a field in this list has a non-empty value.
26457	// This may be used to include null fields in Patch requests.
26458	NullFields []string `json:"-"`
26459}
26460
26461func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26462	type NoMethod OperationAggregatedListWarningData
26463	raw := NoMethod(*s)
26464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26465}
26466
26467// OperationList: Contains a list of Operation resources.
26468type OperationList struct {
26469	// Id: [Output Only] The unique identifier for the resource. This
26470	// identifier is defined by the server.
26471	Id string `json:"id,omitempty"`
26472
26473	// Items: [Output Only] A list of Operation resources.
26474	Items []*Operation `json:"items,omitempty"`
26475
26476	// Kind: [Output Only] Type of resource. Always `compute#operations` for
26477	// Operations resource.
26478	Kind string `json:"kind,omitempty"`
26479
26480	// NextPageToken: [Output Only] This token allows you to get the next
26481	// page of results for list requests. If the number of results is larger
26482	// than `maxResults`, use the `nextPageToken` as a value for the query
26483	// parameter `pageToken` in the next list request. Subsequent list
26484	// requests will have their own `nextPageToken` to continue paging
26485	// through the results.
26486	NextPageToken string `json:"nextPageToken,omitempty"`
26487
26488	// SelfLink: [Output Only] Server-defined URL for this resource.
26489	SelfLink string `json:"selfLink,omitempty"`
26490
26491	// Warning: [Output Only] Informational warning message.
26492	Warning *OperationListWarning `json:"warning,omitempty"`
26493
26494	// ServerResponse contains the HTTP response code and headers from the
26495	// server.
26496	googleapi.ServerResponse `json:"-"`
26497
26498	// ForceSendFields is a list of field names (e.g. "Id") to
26499	// unconditionally include in API requests. By default, fields with
26500	// empty values are omitted from API requests. However, any non-pointer,
26501	// non-interface field appearing in ForceSendFields will be sent to the
26502	// server regardless of whether the field is empty or not. This may be
26503	// used to include empty fields in Patch requests.
26504	ForceSendFields []string `json:"-"`
26505
26506	// NullFields is a list of field names (e.g. "Id") to include in API
26507	// requests with the JSON null value. By default, fields with empty
26508	// values are omitted from API requests. However, any field with an
26509	// empty value appearing in NullFields will be sent to the server as
26510	// null. It is an error if a field in this list has a non-empty value.
26511	// This may be used to include null fields in Patch requests.
26512	NullFields []string `json:"-"`
26513}
26514
26515func (s *OperationList) MarshalJSON() ([]byte, error) {
26516	type NoMethod OperationList
26517	raw := NoMethod(*s)
26518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26519}
26520
26521// OperationListWarning: [Output Only] Informational warning message.
26522type OperationListWarning struct {
26523	// Code: [Output Only] A warning code, if applicable. For example,
26524	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26525	// the response.
26526	//
26527	// Possible values:
26528	//   "CLEANUP_FAILED"
26529	//   "DEPRECATED_RESOURCE_USED"
26530	//   "DEPRECATED_TYPE_USED"
26531	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26532	//   "EXPERIMENTAL_TYPE_USED"
26533	//   "EXTERNAL_API_WARNING"
26534	//   "FIELD_VALUE_OVERRIDEN"
26535	//   "INJECTED_KERNELS_DEPRECATED"
26536	//   "MISSING_TYPE_DEPENDENCY"
26537	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26538	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26539	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26540	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26541	//   "NEXT_HOP_NOT_RUNNING"
26542	//   "NOT_CRITICAL_ERROR"
26543	//   "NO_RESULTS_ON_PAGE"
26544	//   "REQUIRED_TOS_AGREEMENT"
26545	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26546	//   "RESOURCE_NOT_DELETED"
26547	//   "SCHEMA_VALIDATION_IGNORED"
26548	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26549	//   "UNDECLARED_PROPERTIES"
26550	//   "UNREACHABLE"
26551	Code string `json:"code,omitempty"`
26552
26553	// Data: [Output Only] Metadata about this warning in key: value format.
26554	// For example:
26555	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26556	Data []*OperationListWarningData `json:"data,omitempty"`
26557
26558	// Message: [Output Only] A human-readable description of the warning
26559	// code.
26560	Message string `json:"message,omitempty"`
26561
26562	// ForceSendFields is a list of field names (e.g. "Code") to
26563	// unconditionally include in API requests. By default, fields with
26564	// empty values are omitted from API requests. However, any non-pointer,
26565	// non-interface field appearing in ForceSendFields will be sent to the
26566	// server regardless of whether the field is empty or not. This may be
26567	// used to include empty fields in Patch requests.
26568	ForceSendFields []string `json:"-"`
26569
26570	// NullFields is a list of field names (e.g. "Code") to include in API
26571	// requests with the JSON null value. By default, fields with empty
26572	// values are omitted from API requests. However, any field with an
26573	// empty value appearing in NullFields will be sent to the server as
26574	// null. It is an error if a field in this list has a non-empty value.
26575	// This may be used to include null fields in Patch requests.
26576	NullFields []string `json:"-"`
26577}
26578
26579func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
26580	type NoMethod OperationListWarning
26581	raw := NoMethod(*s)
26582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26583}
26584
26585type OperationListWarningData struct {
26586	// Key: [Output Only] A key that provides more detail on the warning
26587	// being returned. For example, for warnings where there are no results
26588	// in a list request for a particular zone, this key might be scope and
26589	// the key value might be the zone name. Other examples might be a key
26590	// indicating a deprecated resource and a suggested replacement, or a
26591	// warning about invalid network settings (for example, if an instance
26592	// attempts to perform IP forwarding but is not enabled for IP
26593	// forwarding).
26594	Key string `json:"key,omitempty"`
26595
26596	// Value: [Output Only] A warning data value corresponding to the key.
26597	Value string `json:"value,omitempty"`
26598
26599	// ForceSendFields is a list of field names (e.g. "Key") to
26600	// unconditionally include in API requests. By default, fields with
26601	// empty values are omitted from API requests. However, any non-pointer,
26602	// non-interface field appearing in ForceSendFields will be sent to the
26603	// server regardless of whether the field is empty or not. This may be
26604	// used to include empty fields in Patch requests.
26605	ForceSendFields []string `json:"-"`
26606
26607	// NullFields is a list of field names (e.g. "Key") to include in API
26608	// requests with the JSON null value. By default, fields with empty
26609	// values are omitted from API requests. However, any field with an
26610	// empty value appearing in NullFields will be sent to the server as
26611	// null. It is an error if a field in this list has a non-empty value.
26612	// This may be used to include null fields in Patch requests.
26613	NullFields []string `json:"-"`
26614}
26615
26616func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
26617	type NoMethod OperationListWarningData
26618	raw := NoMethod(*s)
26619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26620}
26621
26622type OperationsScopedList struct {
26623	// Operations: [Output Only] A list of operations contained in this
26624	// scope.
26625	Operations []*Operation `json:"operations,omitempty"`
26626
26627	// Warning: [Output Only] Informational warning which replaces the list
26628	// of operations when the list is empty.
26629	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
26630
26631	// ForceSendFields is a list of field names (e.g. "Operations") to
26632	// unconditionally include in API requests. By default, fields with
26633	// empty values are omitted from API requests. However, any non-pointer,
26634	// non-interface field appearing in ForceSendFields will be sent to the
26635	// server regardless of whether the field is empty or not. This may be
26636	// used to include empty fields in Patch requests.
26637	ForceSendFields []string `json:"-"`
26638
26639	// NullFields is a list of field names (e.g. "Operations") to include in
26640	// API requests with the JSON null value. By default, fields with empty
26641	// values are omitted from API requests. However, any field with an
26642	// empty value appearing in NullFields will be sent to the server as
26643	// null. It is an error if a field in this list has a non-empty value.
26644	// This may be used to include null fields in Patch requests.
26645	NullFields []string `json:"-"`
26646}
26647
26648func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
26649	type NoMethod OperationsScopedList
26650	raw := NoMethod(*s)
26651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26652}
26653
26654// OperationsScopedListWarning: [Output Only] Informational warning
26655// which replaces the list of operations when the list is empty.
26656type OperationsScopedListWarning struct {
26657	// Code: [Output Only] A warning code, if applicable. For example,
26658	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26659	// the response.
26660	//
26661	// Possible values:
26662	//   "CLEANUP_FAILED"
26663	//   "DEPRECATED_RESOURCE_USED"
26664	//   "DEPRECATED_TYPE_USED"
26665	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26666	//   "EXPERIMENTAL_TYPE_USED"
26667	//   "EXTERNAL_API_WARNING"
26668	//   "FIELD_VALUE_OVERRIDEN"
26669	//   "INJECTED_KERNELS_DEPRECATED"
26670	//   "MISSING_TYPE_DEPENDENCY"
26671	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26672	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26673	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26674	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26675	//   "NEXT_HOP_NOT_RUNNING"
26676	//   "NOT_CRITICAL_ERROR"
26677	//   "NO_RESULTS_ON_PAGE"
26678	//   "REQUIRED_TOS_AGREEMENT"
26679	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26680	//   "RESOURCE_NOT_DELETED"
26681	//   "SCHEMA_VALIDATION_IGNORED"
26682	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26683	//   "UNDECLARED_PROPERTIES"
26684	//   "UNREACHABLE"
26685	Code string `json:"code,omitempty"`
26686
26687	// Data: [Output Only] Metadata about this warning in key: value format.
26688	// For example:
26689	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26690	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
26691
26692	// Message: [Output Only] A human-readable description of the warning
26693	// code.
26694	Message string `json:"message,omitempty"`
26695
26696	// ForceSendFields is a list of field names (e.g. "Code") to
26697	// unconditionally include in API requests. By default, fields with
26698	// empty values are omitted from API requests. However, any non-pointer,
26699	// non-interface field appearing in ForceSendFields will be sent to the
26700	// server regardless of whether the field is empty or not. This may be
26701	// used to include empty fields in Patch requests.
26702	ForceSendFields []string `json:"-"`
26703
26704	// NullFields is a list of field names (e.g. "Code") to include in API
26705	// requests with the JSON null value. By default, fields with empty
26706	// values are omitted from API requests. However, any field with an
26707	// empty value appearing in NullFields will be sent to the server as
26708	// null. It is an error if a field in this list has a non-empty value.
26709	// This may be used to include null fields in Patch requests.
26710	NullFields []string `json:"-"`
26711}
26712
26713func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
26714	type NoMethod OperationsScopedListWarning
26715	raw := NoMethod(*s)
26716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26717}
26718
26719type OperationsScopedListWarningData struct {
26720	// Key: [Output Only] A key that provides more detail on the warning
26721	// being returned. For example, for warnings where there are no results
26722	// in a list request for a particular zone, this key might be scope and
26723	// the key value might be the zone name. Other examples might be a key
26724	// indicating a deprecated resource and a suggested replacement, or a
26725	// warning about invalid network settings (for example, if an instance
26726	// attempts to perform IP forwarding but is not enabled for IP
26727	// forwarding).
26728	Key string `json:"key,omitempty"`
26729
26730	// Value: [Output Only] A warning data value corresponding to the key.
26731	Value string `json:"value,omitempty"`
26732
26733	// ForceSendFields is a list of field names (e.g. "Key") to
26734	// unconditionally include in API requests. By default, fields with
26735	// empty values are omitted from API requests. However, any non-pointer,
26736	// non-interface field appearing in ForceSendFields will be sent to the
26737	// server regardless of whether the field is empty or not. This may be
26738	// used to include empty fields in Patch requests.
26739	ForceSendFields []string `json:"-"`
26740
26741	// NullFields is a list of field names (e.g. "Key") to include in API
26742	// requests with the JSON null value. By default, fields with empty
26743	// values are omitted from API requests. However, any field with an
26744	// empty value appearing in NullFields will be sent to the server as
26745	// null. It is an error if a field in this list has a non-empty value.
26746	// This may be used to include null fields in Patch requests.
26747	NullFields []string `json:"-"`
26748}
26749
26750func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
26751	type NoMethod OperationsScopedListWarningData
26752	raw := NoMethod(*s)
26753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26754}
26755
26756type OrganizationSecurityPoliciesListAssociationsResponse struct {
26757	// Associations: A list of associations.
26758	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
26759
26760	// Kind: [Output Only] Type of securityPolicy associations. Always
26761	// compute#organizationSecurityPoliciesListAssociations for lists of
26762	// securityPolicy associations.
26763	Kind string `json:"kind,omitempty"`
26764
26765	// ServerResponse contains the HTTP response code and headers from the
26766	// server.
26767	googleapi.ServerResponse `json:"-"`
26768
26769	// ForceSendFields is a list of field names (e.g. "Associations") to
26770	// unconditionally include in API requests. By default, fields with
26771	// empty values are omitted from API requests. However, any non-pointer,
26772	// non-interface field appearing in ForceSendFields will be sent to the
26773	// server regardless of whether the field is empty or not. This may be
26774	// used to include empty fields in Patch requests.
26775	ForceSendFields []string `json:"-"`
26776
26777	// NullFields is a list of field names (e.g. "Associations") to include
26778	// in API requests with the JSON null value. By default, fields with
26779	// empty values are omitted from API requests. However, any field with
26780	// an empty value appearing in NullFields will be sent to the server as
26781	// null. It is an error if a field in this list has a non-empty value.
26782	// This may be used to include null fields in Patch requests.
26783	NullFields []string `json:"-"`
26784}
26785
26786func (s *OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
26787	type NoMethod OrganizationSecurityPoliciesListAssociationsResponse
26788	raw := NoMethod(*s)
26789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26790}
26791
26792// OutlierDetection: Settings controlling the eviction of unhealthy
26793// hosts from the load balancing pool for the backend service.
26794type OutlierDetection struct {
26795	// BaseEjectionTime: The base time that a host is ejected for. The real
26796	// ejection time is equal to the base ejection time multiplied by the
26797	// number of times the host has been ejected. Defaults to 30000ms or
26798	// 30s.
26799	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
26800
26801	// ConsecutiveErrors: Number of errors before a host is ejected from the
26802	// connection pool. When the backend host is accessed over HTTP, a 5xx
26803	// return code qualifies as an error. Defaults to 5.
26804	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
26805
26806	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
26807	// (502, 503, 504 status or connection errors that are mapped to one of
26808	// those status codes) before a consecutive gateway failure ejection
26809	// occurs. Defaults to 3.
26810	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
26811
26812	// EnforcingConsecutiveErrors: The percentage chance that a host will be
26813	// actually ejected when an outlier status is detected through
26814	// consecutive 5xx. This setting can be used to disable ejection or to
26815	// ramp it up slowly. Defaults to 0.
26816	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
26817
26818	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
26819	// will be actually ejected when an outlier status is detected through
26820	// consecutive gateway failures. This setting can be used to disable
26821	// ejection or to ramp it up slowly. Defaults to 100.
26822	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
26823
26824	// EnforcingSuccessRate: The percentage chance that a host will be
26825	// actually ejected when an outlier status is detected through success
26826	// rate statistics. This setting can be used to disable ejection or to
26827	// ramp it up slowly. Defaults to 100.
26828	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
26829
26830	// Interval: Time interval between ejection analysis sweeps. This can
26831	// result in both new ejections as well as hosts being returned to
26832	// service. Defaults to 1 second.
26833	Interval *Duration `json:"interval,omitempty"`
26834
26835	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
26836	// pool for the backend service that can be ejected. Defaults to 50%.
26837	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
26838
26839	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
26840	// have enough request volume to detect success rate outliers. If the
26841	// number of hosts is less than this setting, outlier detection via
26842	// success rate statistics is not performed for any host in the cluster.
26843	// Defaults to 5.
26844	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
26845
26846	// SuccessRateRequestVolume: The minimum number of total requests that
26847	// must be collected in one interval (as defined by the interval
26848	// duration above) to include this host in success rate based outlier
26849	// detection. If the volume is lower than this setting, outlier
26850	// detection via success rate statistics is not performed for that host.
26851	// Defaults to 100.
26852	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
26853
26854	// SuccessRateStdevFactor: This factor is used to determine the ejection
26855	// threshold for success rate outlier ejection. The ejection threshold
26856	// is the difference between the mean success rate, and the product of
26857	// this factor and the standard deviation of the mean success rate: mean
26858	// - (stdev * success_rate_stdev_factor). This factor is divided by a
26859	// thousand to get a double. That is, if the desired factor is 1.9, the
26860	// runtime value should be 1900. Defaults to 1900.
26861	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
26862
26863	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
26864	// unconditionally include in API requests. By default, fields with
26865	// empty values are omitted from API requests. However, any non-pointer,
26866	// non-interface field appearing in ForceSendFields will be sent to the
26867	// server regardless of whether the field is empty or not. This may be
26868	// used to include empty fields in Patch requests.
26869	ForceSendFields []string `json:"-"`
26870
26871	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
26872	// include in API requests with the JSON null value. By default, fields
26873	// with empty values are omitted from API requests. However, any field
26874	// with an empty value appearing in NullFields will be sent to the
26875	// server as null. It is an error if a field in this list has a
26876	// non-empty value. This may be used to include null fields in Patch
26877	// requests.
26878	NullFields []string `json:"-"`
26879}
26880
26881func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
26882	type NoMethod OutlierDetection
26883	raw := NoMethod(*s)
26884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26885}
26886
26887// PacketIntervals: Next free: 7
26888type PacketIntervals struct {
26889	// AvgMs: Average observed inter-packet interval in milliseconds.
26890	AvgMs int64 `json:"avgMs,omitempty,string"`
26891
26892	// Duration: From how long ago in the past these intervals were
26893	// observed.
26894	//
26895	// Possible values:
26896	//   "DURATION_UNSPECIFIED"
26897	//   "HOUR"
26898	//   "MAX"
26899	//   "MINUTE"
26900	Duration string `json:"duration,omitempty"`
26901
26902	// MaxMs: Maximum observed inter-packet interval in milliseconds.
26903	MaxMs int64 `json:"maxMs,omitempty,string"`
26904
26905	// MinMs: Minimum observed inter-packet interval in milliseconds.
26906	MinMs int64 `json:"minMs,omitempty,string"`
26907
26908	// NumIntervals: Number of inter-packet intervals from which these
26909	// statistics were derived.
26910	NumIntervals int64 `json:"numIntervals,omitempty,string"`
26911
26912	// Type: The type of packets for which inter-packet intervals were
26913	// computed.
26914	//
26915	// Possible values:
26916	//   "LOOPBACK"
26917	//   "RECEIVE"
26918	//   "TRANSMIT"
26919	//   "TYPE_UNSPECIFIED"
26920	Type string `json:"type,omitempty"`
26921
26922	// ForceSendFields is a list of field names (e.g. "AvgMs") to
26923	// unconditionally include in API requests. By default, fields with
26924	// empty values are omitted from API requests. However, any non-pointer,
26925	// non-interface field appearing in ForceSendFields will be sent to the
26926	// server regardless of whether the field is empty or not. This may be
26927	// used to include empty fields in Patch requests.
26928	ForceSendFields []string `json:"-"`
26929
26930	// NullFields is a list of field names (e.g. "AvgMs") to include in API
26931	// requests with the JSON null value. By default, fields with empty
26932	// values are omitted from API requests. However, any field with an
26933	// empty value appearing in NullFields will be sent to the server as
26934	// null. It is an error if a field in this list has a non-empty value.
26935	// This may be used to include null fields in Patch requests.
26936	NullFields []string `json:"-"`
26937}
26938
26939func (s *PacketIntervals) MarshalJSON() ([]byte, error) {
26940	type NoMethod PacketIntervals
26941	raw := NoMethod(*s)
26942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26943}
26944
26945// PacketMirroring: Represents a Packet Mirroring resource.
26946//
26947// Packet Mirroring clones the traffic of specified instances in your
26948// Virtual Private Cloud (VPC) network and forwards it to a collector
26949// destination, such as an instance group of an internal TCP/UDP load
26950// balancer, for analysis or examination. For more information about
26951// setting up Packet Mirroring, see Using Packet Mirroring. (==
26952// resource_for {$api_version}.packetMirrorings ==)
26953type PacketMirroring struct {
26954	// CollectorIlb: The Forwarding Rule resource of type
26955	// loadBalancingScheme=INTERNAL that will be used as collector for
26956	// mirrored traffic. The specified forwarding rule must have
26957	// isMirroringCollector set to true.
26958	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
26959
26960	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26961	// format.
26962	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26963
26964	// Description: An optional description of this resource. Provide this
26965	// property when you create the resource.
26966	Description string `json:"description,omitempty"`
26967
26968	// Enable: Indicates whether or not this packet mirroring takes effect.
26969	// If set to FALSE, this packet mirroring policy will not be enforced on
26970	// the network.
26971	//
26972	// The default is TRUE.
26973	//
26974	// Possible values:
26975	//   "FALSE"
26976	//   "TRUE"
26977	Enable string `json:"enable,omitempty"`
26978
26979	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
26980	// mirrored.
26981	Filter *PacketMirroringFilter `json:"filter,omitempty"`
26982
26983	// Id: [Output Only] The unique identifier for the resource. This
26984	// identifier is defined by the server.
26985	Id uint64 `json:"id,omitempty,string"`
26986
26987	// Kind: [Output Only] Type of the resource. Always
26988	// compute#packetMirroring for packet mirrorings.
26989	Kind string `json:"kind,omitempty"`
26990
26991	// MirroredResources: PacketMirroring mirroredResourceInfos.
26992	// MirroredResourceInfo specifies a set of mirrored VM instances,
26993	// subnetworks and/or tags for which traffic from/to all VM instances
26994	// will be mirrored.
26995	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
26996
26997	// Name: Name of the resource; provided by the client when the resource
26998	// is created. The name must be 1-63 characters long, and comply with
26999	// RFC1035. Specifically, the name must be 1-63 characters long and
27000	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
27001	// the first character must be a lowercase letter, and all following
27002	// characters must be a dash, lowercase letter, or digit, except the
27003	// last character, which cannot be a dash.
27004	Name string `json:"name,omitempty"`
27005
27006	// Network: Specifies the mirrored VPC network. Only packets in this
27007	// network will be mirrored. All mirrored VMs should have a NIC in the
27008	// given network. All mirrored subnetworks should belong to the given
27009	// network.
27010	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
27011
27012	// Priority: The priority of applying this configuration. Priority is
27013	// used to break ties in cases where there is more than one matching
27014	// rule. In the case of two rules that apply for a given Instance, the
27015	// one with the lowest-numbered priority value wins.
27016	//
27017	// Default value is 1000. Valid range is 0 through 65535.
27018	Priority int64 `json:"priority,omitempty"`
27019
27020	// Region: [Output Only] URI of the region where the packetMirroring
27021	// resides.
27022	Region string `json:"region,omitempty"`
27023
27024	// SelfLink: [Output Only] Server-defined URL for the resource.
27025	SelfLink string `json:"selfLink,omitempty"`
27026
27027	// ServerResponse contains the HTTP response code and headers from the
27028	// server.
27029	googleapi.ServerResponse `json:"-"`
27030
27031	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
27032	// unconditionally include in API requests. By default, fields with
27033	// empty values are omitted from API requests. However, any non-pointer,
27034	// non-interface field appearing in ForceSendFields will be sent to the
27035	// server regardless of whether the field is empty or not. This may be
27036	// used to include empty fields in Patch requests.
27037	ForceSendFields []string `json:"-"`
27038
27039	// NullFields is a list of field names (e.g. "CollectorIlb") to include
27040	// in API requests with the JSON null value. By default, fields with
27041	// empty values are omitted from API requests. However, any field with
27042	// an empty value appearing in NullFields will be sent to the server as
27043	// null. It is an error if a field in this list has a non-empty value.
27044	// This may be used to include null fields in Patch requests.
27045	NullFields []string `json:"-"`
27046}
27047
27048func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
27049	type NoMethod PacketMirroring
27050	raw := NoMethod(*s)
27051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27052}
27053
27054// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
27055type PacketMirroringAggregatedList struct {
27056	// Id: [Output Only] Unique identifier for the resource; defined by the
27057	// server.
27058	Id string `json:"id,omitempty"`
27059
27060	// Items: A list of PacketMirroring resources.
27061	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
27062
27063	// Kind: Type of resource.
27064	Kind string `json:"kind,omitempty"`
27065
27066	// NextPageToken: [Output Only] This token allows you to get the next
27067	// page of results for list requests. If the number of results is larger
27068	// than maxResults, use the nextPageToken as a value for the query
27069	// parameter pageToken in the next list request. Subsequent list
27070	// requests will have their own nextPageToken to continue paging through
27071	// the results.
27072	NextPageToken string `json:"nextPageToken,omitempty"`
27073
27074	// SelfLink: [Output Only] Server-defined URL for this resource.
27075	SelfLink string `json:"selfLink,omitempty"`
27076
27077	// Warning: [Output Only] Informational warning message.
27078	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
27079
27080	// ServerResponse contains the HTTP response code and headers from the
27081	// server.
27082	googleapi.ServerResponse `json:"-"`
27083
27084	// ForceSendFields is a list of field names (e.g. "Id") to
27085	// unconditionally include in API requests. By default, fields with
27086	// empty values are omitted from API requests. However, any non-pointer,
27087	// non-interface field appearing in ForceSendFields will be sent to the
27088	// server regardless of whether the field is empty or not. This may be
27089	// used to include empty fields in Patch requests.
27090	ForceSendFields []string `json:"-"`
27091
27092	// NullFields is a list of field names (e.g. "Id") to include in API
27093	// requests with the JSON null value. By default, fields with empty
27094	// values are omitted from API requests. However, any field with an
27095	// empty value appearing in NullFields will be sent to the server as
27096	// null. It is an error if a field in this list has a non-empty value.
27097	// This may be used to include null fields in Patch requests.
27098	NullFields []string `json:"-"`
27099}
27100
27101func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
27102	type NoMethod PacketMirroringAggregatedList
27103	raw := NoMethod(*s)
27104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27105}
27106
27107// PacketMirroringAggregatedListWarning: [Output Only] Informational
27108// warning message.
27109type PacketMirroringAggregatedListWarning struct {
27110	// Code: [Output Only] A warning code, if applicable. For example,
27111	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27112	// the response.
27113	//
27114	// Possible values:
27115	//   "CLEANUP_FAILED"
27116	//   "DEPRECATED_RESOURCE_USED"
27117	//   "DEPRECATED_TYPE_USED"
27118	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27119	//   "EXPERIMENTAL_TYPE_USED"
27120	//   "EXTERNAL_API_WARNING"
27121	//   "FIELD_VALUE_OVERRIDEN"
27122	//   "INJECTED_KERNELS_DEPRECATED"
27123	//   "MISSING_TYPE_DEPENDENCY"
27124	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27125	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27126	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27127	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27128	//   "NEXT_HOP_NOT_RUNNING"
27129	//   "NOT_CRITICAL_ERROR"
27130	//   "NO_RESULTS_ON_PAGE"
27131	//   "REQUIRED_TOS_AGREEMENT"
27132	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27133	//   "RESOURCE_NOT_DELETED"
27134	//   "SCHEMA_VALIDATION_IGNORED"
27135	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27136	//   "UNDECLARED_PROPERTIES"
27137	//   "UNREACHABLE"
27138	Code string `json:"code,omitempty"`
27139
27140	// Data: [Output Only] Metadata about this warning in key: value format.
27141	// For example:
27142	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27143	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
27144
27145	// Message: [Output Only] A human-readable description of the warning
27146	// code.
27147	Message string `json:"message,omitempty"`
27148
27149	// ForceSendFields is a list of field names (e.g. "Code") to
27150	// unconditionally include in API requests. By default, fields with
27151	// empty values are omitted from API requests. However, any non-pointer,
27152	// non-interface field appearing in ForceSendFields will be sent to the
27153	// server regardless of whether the field is empty or not. This may be
27154	// used to include empty fields in Patch requests.
27155	ForceSendFields []string `json:"-"`
27156
27157	// NullFields is a list of field names (e.g. "Code") to include in API
27158	// requests with the JSON null value. By default, fields with empty
27159	// values are omitted from API requests. However, any field with an
27160	// empty value appearing in NullFields will be sent to the server as
27161	// null. It is an error if a field in this list has a non-empty value.
27162	// This may be used to include null fields in Patch requests.
27163	NullFields []string `json:"-"`
27164}
27165
27166func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
27167	type NoMethod PacketMirroringAggregatedListWarning
27168	raw := NoMethod(*s)
27169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27170}
27171
27172type PacketMirroringAggregatedListWarningData struct {
27173	// Key: [Output Only] A key that provides more detail on the warning
27174	// being returned. For example, for warnings where there are no results
27175	// in a list request for a particular zone, this key might be scope and
27176	// the key value might be the zone name. Other examples might be a key
27177	// indicating a deprecated resource and a suggested replacement, or a
27178	// warning about invalid network settings (for example, if an instance
27179	// attempts to perform IP forwarding but is not enabled for IP
27180	// forwarding).
27181	Key string `json:"key,omitempty"`
27182
27183	// Value: [Output Only] A warning data value corresponding to the key.
27184	Value string `json:"value,omitempty"`
27185
27186	// ForceSendFields is a list of field names (e.g. "Key") to
27187	// unconditionally include in API requests. By default, fields with
27188	// empty values are omitted from API requests. However, any non-pointer,
27189	// non-interface field appearing in ForceSendFields will be sent to the
27190	// server regardless of whether the field is empty or not. This may be
27191	// used to include empty fields in Patch requests.
27192	ForceSendFields []string `json:"-"`
27193
27194	// NullFields is a list of field names (e.g. "Key") to include in API
27195	// requests with the JSON null value. By default, fields with empty
27196	// values are omitted from API requests. However, any field with an
27197	// empty value appearing in NullFields will be sent to the server as
27198	// null. It is an error if a field in this list has a non-empty value.
27199	// This may be used to include null fields in Patch requests.
27200	NullFields []string `json:"-"`
27201}
27202
27203func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27204	type NoMethod PacketMirroringAggregatedListWarningData
27205	raw := NoMethod(*s)
27206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27207}
27208
27209type PacketMirroringFilter struct {
27210	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
27211	// no protocols are specified, all traffic that matches the specified
27212	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
27213	// specified, all traffic is mirrored.
27214	IPProtocols []string `json:"IPProtocols,omitempty"`
27215
27216	// CidrRanges: IP CIDR ranges that apply as filter on the source
27217	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
27218	// supported. If no ranges are specified, all traffic that matches the
27219	// specified IPProtocols is mirrored. If neither cidrRanges nor
27220	// IPProtocols is specified, all traffic is mirrored.
27221	CidrRanges []string `json:"cidrRanges,omitempty"`
27222
27223	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
27224	// unconditionally include in API requests. By default, fields with
27225	// empty values are omitted from API requests. However, any non-pointer,
27226	// non-interface field appearing in ForceSendFields will be sent to the
27227	// server regardless of whether the field is empty or not. This may be
27228	// used to include empty fields in Patch requests.
27229	ForceSendFields []string `json:"-"`
27230
27231	// NullFields is a list of field names (e.g. "IPProtocols") to include
27232	// in API requests with the JSON null value. By default, fields with
27233	// empty values are omitted from API requests. However, any field with
27234	// an empty value appearing in NullFields will be sent to the server as
27235	// null. It is an error if a field in this list has a non-empty value.
27236	// This may be used to include null fields in Patch requests.
27237	NullFields []string `json:"-"`
27238}
27239
27240func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
27241	type NoMethod PacketMirroringFilter
27242	raw := NoMethod(*s)
27243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27244}
27245
27246type PacketMirroringForwardingRuleInfo struct {
27247	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
27248	// rule; defined by the server.
27249	CanonicalUrl string `json:"canonicalUrl,omitempty"`
27250
27251	// Url: Resource URL to the forwarding rule representing the ILB
27252	// configured as destination of the mirrored traffic.
27253	Url string `json:"url,omitempty"`
27254
27255	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
27256	// unconditionally include in API requests. By default, fields with
27257	// empty values are omitted from API requests. However, any non-pointer,
27258	// non-interface field appearing in ForceSendFields will be sent to the
27259	// server regardless of whether the field is empty or not. This may be
27260	// used to include empty fields in Patch requests.
27261	ForceSendFields []string `json:"-"`
27262
27263	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
27264	// in API requests with the JSON null value. By default, fields with
27265	// empty values are omitted from API requests. However, any field with
27266	// an empty value appearing in NullFields will be sent to the server as
27267	// null. It is an error if a field in this list has a non-empty value.
27268	// This may be used to include null fields in Patch requests.
27269	NullFields []string `json:"-"`
27270}
27271
27272func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
27273	type NoMethod PacketMirroringForwardingRuleInfo
27274	raw := NoMethod(*s)
27275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27276}
27277
27278// PacketMirroringList: Contains a list of PacketMirroring resources.
27279type PacketMirroringList struct {
27280	// Id: [Output Only] Unique identifier for the resource; defined by the
27281	// server.
27282	Id string `json:"id,omitempty"`
27283
27284	// Items: A list of PacketMirroring resources.
27285	Items []*PacketMirroring `json:"items,omitempty"`
27286
27287	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
27288	// for packetMirrorings.
27289	Kind string `json:"kind,omitempty"`
27290
27291	// NextPageToken: [Output Only] This token allows you to get the next
27292	// page of results for list requests. If the number of results is larger
27293	// than maxResults, use the nextPageToken as a value for the query
27294	// parameter pageToken in the next list request. Subsequent list
27295	// requests will have their own nextPageToken to continue paging through
27296	// the results.
27297	NextPageToken string `json:"nextPageToken,omitempty"`
27298
27299	// SelfLink: [Output Only] Server-defined URL for this resource.
27300	SelfLink string `json:"selfLink,omitempty"`
27301
27302	// Warning: [Output Only] Informational warning message.
27303	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
27304
27305	// ServerResponse contains the HTTP response code and headers from the
27306	// server.
27307	googleapi.ServerResponse `json:"-"`
27308
27309	// ForceSendFields is a list of field names (e.g. "Id") to
27310	// unconditionally include in API requests. By default, fields with
27311	// empty values are omitted from API requests. However, any non-pointer,
27312	// non-interface field appearing in ForceSendFields will be sent to the
27313	// server regardless of whether the field is empty or not. This may be
27314	// used to include empty fields in Patch requests.
27315	ForceSendFields []string `json:"-"`
27316
27317	// NullFields is a list of field names (e.g. "Id") to include in API
27318	// requests with the JSON null value. By default, fields with empty
27319	// values are omitted from API requests. However, any field with an
27320	// empty value appearing in NullFields will be sent to the server as
27321	// null. It is an error if a field in this list has a non-empty value.
27322	// This may be used to include null fields in Patch requests.
27323	NullFields []string `json:"-"`
27324}
27325
27326func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
27327	type NoMethod PacketMirroringList
27328	raw := NoMethod(*s)
27329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27330}
27331
27332// PacketMirroringListWarning: [Output Only] Informational warning
27333// message.
27334type PacketMirroringListWarning struct {
27335	// Code: [Output Only] A warning code, if applicable. For example,
27336	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27337	// the response.
27338	//
27339	// Possible values:
27340	//   "CLEANUP_FAILED"
27341	//   "DEPRECATED_RESOURCE_USED"
27342	//   "DEPRECATED_TYPE_USED"
27343	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27344	//   "EXPERIMENTAL_TYPE_USED"
27345	//   "EXTERNAL_API_WARNING"
27346	//   "FIELD_VALUE_OVERRIDEN"
27347	//   "INJECTED_KERNELS_DEPRECATED"
27348	//   "MISSING_TYPE_DEPENDENCY"
27349	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27350	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27351	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27352	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27353	//   "NEXT_HOP_NOT_RUNNING"
27354	//   "NOT_CRITICAL_ERROR"
27355	//   "NO_RESULTS_ON_PAGE"
27356	//   "REQUIRED_TOS_AGREEMENT"
27357	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27358	//   "RESOURCE_NOT_DELETED"
27359	//   "SCHEMA_VALIDATION_IGNORED"
27360	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27361	//   "UNDECLARED_PROPERTIES"
27362	//   "UNREACHABLE"
27363	Code string `json:"code,omitempty"`
27364
27365	// Data: [Output Only] Metadata about this warning in key: value format.
27366	// For example:
27367	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27368	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
27369
27370	// Message: [Output Only] A human-readable description of the warning
27371	// code.
27372	Message string `json:"message,omitempty"`
27373
27374	// ForceSendFields is a list of field names (e.g. "Code") to
27375	// unconditionally include in API requests. By default, fields with
27376	// empty values are omitted from API requests. However, any non-pointer,
27377	// non-interface field appearing in ForceSendFields will be sent to the
27378	// server regardless of whether the field is empty or not. This may be
27379	// used to include empty fields in Patch requests.
27380	ForceSendFields []string `json:"-"`
27381
27382	// NullFields is a list of field names (e.g. "Code") to include in API
27383	// requests with the JSON null value. By default, fields with empty
27384	// values are omitted from API requests. However, any field with an
27385	// empty value appearing in NullFields will be sent to the server as
27386	// null. It is an error if a field in this list has a non-empty value.
27387	// This may be used to include null fields in Patch requests.
27388	NullFields []string `json:"-"`
27389}
27390
27391func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
27392	type NoMethod PacketMirroringListWarning
27393	raw := NoMethod(*s)
27394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27395}
27396
27397type PacketMirroringListWarningData struct {
27398	// Key: [Output Only] A key that provides more detail on the warning
27399	// being returned. For example, for warnings where there are no results
27400	// in a list request for a particular zone, this key might be scope and
27401	// the key value might be the zone name. Other examples might be a key
27402	// indicating a deprecated resource and a suggested replacement, or a
27403	// warning about invalid network settings (for example, if an instance
27404	// attempts to perform IP forwarding but is not enabled for IP
27405	// forwarding).
27406	Key string `json:"key,omitempty"`
27407
27408	// Value: [Output Only] A warning data value corresponding to the key.
27409	Value string `json:"value,omitempty"`
27410
27411	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
27429	type NoMethod PacketMirroringListWarningData
27430	raw := NoMethod(*s)
27431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27432}
27433
27434type PacketMirroringMirroredResourceInfo struct {
27435	// Instances: A set of virtual machine instances that are being
27436	// mirrored. They must live in zones contained in the same region as
27437	// this packetMirroring.
27438	//
27439	// Note that this config will apply only to those network interfaces of
27440	// the Instances that belong to the network specified in this
27441	// packetMirroring.
27442	//
27443	// You may specify a maximum of 50 Instances.
27444	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
27445
27446	// Subnetworks: A set of subnetworks for which traffic from/to all VM
27447	// instances will be mirrored. They must live in the same region as this
27448	// packetMirroring.
27449	//
27450	// You may specify a maximum of 5 subnetworks.
27451	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
27452
27453	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
27454	// have one or more of these tags will be mirrored.
27455	Tags []string `json:"tags,omitempty"`
27456
27457	// ForceSendFields is a list of field names (e.g. "Instances") to
27458	// unconditionally include in API requests. By default, fields with
27459	// empty values are omitted from API requests. However, any non-pointer,
27460	// non-interface field appearing in ForceSendFields will be sent to the
27461	// server regardless of whether the field is empty or not. This may be
27462	// used to include empty fields in Patch requests.
27463	ForceSendFields []string `json:"-"`
27464
27465	// NullFields is a list of field names (e.g. "Instances") to include in
27466	// API requests with the JSON null value. By default, fields with empty
27467	// values are omitted from API requests. However, any field with an
27468	// empty value appearing in NullFields will be sent to the server as
27469	// null. It is an error if a field in this list has a non-empty value.
27470	// This may be used to include null fields in Patch requests.
27471	NullFields []string `json:"-"`
27472}
27473
27474func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
27475	type NoMethod PacketMirroringMirroredResourceInfo
27476	raw := NoMethod(*s)
27477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27478}
27479
27480type PacketMirroringMirroredResourceInfoInstanceInfo struct {
27481	// CanonicalUrl: [Output Only] Unique identifier for the instance;
27482	// defined by the server.
27483	CanonicalUrl string `json:"canonicalUrl,omitempty"`
27484
27485	// Url: Resource URL to the virtual machine instance which is being
27486	// mirrored.
27487	Url string `json:"url,omitempty"`
27488
27489	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
27490	// unconditionally include in API requests. By default, fields with
27491	// empty values are omitted from API requests. However, any non-pointer,
27492	// non-interface field appearing in ForceSendFields will be sent to the
27493	// server regardless of whether the field is empty or not. This may be
27494	// used to include empty fields in Patch requests.
27495	ForceSendFields []string `json:"-"`
27496
27497	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
27498	// in API requests with the JSON null value. By default, fields with
27499	// empty values are omitted from API requests. However, any field with
27500	// an empty value appearing in NullFields will be sent to the server as
27501	// null. It is an error if a field in this list has a non-empty value.
27502	// This may be used to include null fields in Patch requests.
27503	NullFields []string `json:"-"`
27504}
27505
27506func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
27507	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
27508	raw := NoMethod(*s)
27509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27510}
27511
27512type PacketMirroringMirroredResourceInfoSubnetInfo struct {
27513	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
27514	// defined by the server.
27515	CanonicalUrl string `json:"canonicalUrl,omitempty"`
27516
27517	// Url: Resource URL to the subnetwork for which traffic from/to all VM
27518	// instances will be mirrored.
27519	Url string `json:"url,omitempty"`
27520
27521	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
27522	// unconditionally include in API requests. By default, fields with
27523	// empty values are omitted from API requests. However, any non-pointer,
27524	// non-interface field appearing in ForceSendFields will be sent to the
27525	// server regardless of whether the field is empty or not. This may be
27526	// used to include empty fields in Patch requests.
27527	ForceSendFields []string `json:"-"`
27528
27529	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
27530	// in API requests with the JSON null value. By default, fields with
27531	// empty values are omitted from API requests. However, any field with
27532	// an empty value appearing in NullFields will be sent to the server as
27533	// null. It is an error if a field in this list has a non-empty value.
27534	// This may be used to include null fields in Patch requests.
27535	NullFields []string `json:"-"`
27536}
27537
27538func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
27539	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
27540	raw := NoMethod(*s)
27541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27542}
27543
27544type PacketMirroringNetworkInfo struct {
27545	// CanonicalUrl: [Output Only] Unique identifier for the network;
27546	// defined by the server.
27547	CanonicalUrl string `json:"canonicalUrl,omitempty"`
27548
27549	// Url: URL of the network resource.
27550	Url string `json:"url,omitempty"`
27551
27552	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
27553	// unconditionally include in API requests. By default, fields with
27554	// empty values are omitted from API requests. However, any non-pointer,
27555	// non-interface field appearing in ForceSendFields will be sent to the
27556	// server regardless of whether the field is empty or not. This may be
27557	// used to include empty fields in Patch requests.
27558	ForceSendFields []string `json:"-"`
27559
27560	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
27561	// in API requests with the JSON null value. By default, fields with
27562	// empty values are omitted from API requests. However, any field with
27563	// an empty value appearing in NullFields will be sent to the server as
27564	// null. It is an error if a field in this list has a non-empty value.
27565	// This may be used to include null fields in Patch requests.
27566	NullFields []string `json:"-"`
27567}
27568
27569func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
27570	type NoMethod PacketMirroringNetworkInfo
27571	raw := NoMethod(*s)
27572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27573}
27574
27575type PacketMirroringsScopedList struct {
27576	// PacketMirrorings: A list of packetMirrorings contained in this scope.
27577	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
27578
27579	// Warning: Informational warning which replaces the list of
27580	// packetMirrorings when the list is empty.
27581	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
27582
27583	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
27584	// unconditionally include in API requests. By default, fields with
27585	// empty values are omitted from API requests. However, any non-pointer,
27586	// non-interface field appearing in ForceSendFields will be sent to the
27587	// server regardless of whether the field is empty or not. This may be
27588	// used to include empty fields in Patch requests.
27589	ForceSendFields []string `json:"-"`
27590
27591	// NullFields is a list of field names (e.g. "PacketMirrorings") to
27592	// include in API requests with the JSON null value. By default, fields
27593	// with empty values are omitted from API requests. However, any field
27594	// with an empty value appearing in NullFields will be sent to the
27595	// server as null. It is an error if a field in this list has a
27596	// non-empty value. This may be used to include null fields in Patch
27597	// requests.
27598	NullFields []string `json:"-"`
27599}
27600
27601func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
27602	type NoMethod PacketMirroringsScopedList
27603	raw := NoMethod(*s)
27604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27605}
27606
27607// PacketMirroringsScopedListWarning: Informational warning which
27608// replaces the list of packetMirrorings when the list is empty.
27609type PacketMirroringsScopedListWarning struct {
27610	// Code: [Output Only] A warning code, if applicable. For example,
27611	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27612	// the response.
27613	//
27614	// Possible values:
27615	//   "CLEANUP_FAILED"
27616	//   "DEPRECATED_RESOURCE_USED"
27617	//   "DEPRECATED_TYPE_USED"
27618	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27619	//   "EXPERIMENTAL_TYPE_USED"
27620	//   "EXTERNAL_API_WARNING"
27621	//   "FIELD_VALUE_OVERRIDEN"
27622	//   "INJECTED_KERNELS_DEPRECATED"
27623	//   "MISSING_TYPE_DEPENDENCY"
27624	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27625	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27626	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27627	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27628	//   "NEXT_HOP_NOT_RUNNING"
27629	//   "NOT_CRITICAL_ERROR"
27630	//   "NO_RESULTS_ON_PAGE"
27631	//   "REQUIRED_TOS_AGREEMENT"
27632	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27633	//   "RESOURCE_NOT_DELETED"
27634	//   "SCHEMA_VALIDATION_IGNORED"
27635	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27636	//   "UNDECLARED_PROPERTIES"
27637	//   "UNREACHABLE"
27638	Code string `json:"code,omitempty"`
27639
27640	// Data: [Output Only] Metadata about this warning in key: value format.
27641	// For example:
27642	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27643	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
27644
27645	// Message: [Output Only] A human-readable description of the warning
27646	// code.
27647	Message string `json:"message,omitempty"`
27648
27649	// ForceSendFields is a list of field names (e.g. "Code") to
27650	// unconditionally include in API requests. By default, fields with
27651	// empty values are omitted from API requests. However, any non-pointer,
27652	// non-interface field appearing in ForceSendFields will be sent to the
27653	// server regardless of whether the field is empty or not. This may be
27654	// used to include empty fields in Patch requests.
27655	ForceSendFields []string `json:"-"`
27656
27657	// NullFields is a list of field names (e.g. "Code") to include in API
27658	// requests with the JSON null value. By default, fields with empty
27659	// values are omitted from API requests. However, any field with an
27660	// empty value appearing in NullFields will be sent to the server as
27661	// null. It is an error if a field in this list has a non-empty value.
27662	// This may be used to include null fields in Patch requests.
27663	NullFields []string `json:"-"`
27664}
27665
27666func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
27667	type NoMethod PacketMirroringsScopedListWarning
27668	raw := NoMethod(*s)
27669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27670}
27671
27672type PacketMirroringsScopedListWarningData struct {
27673	// Key: [Output Only] A key that provides more detail on the warning
27674	// being returned. For example, for warnings where there are no results
27675	// in a list request for a particular zone, this key might be scope and
27676	// the key value might be the zone name. Other examples might be a key
27677	// indicating a deprecated resource and a suggested replacement, or a
27678	// warning about invalid network settings (for example, if an instance
27679	// attempts to perform IP forwarding but is not enabled for IP
27680	// forwarding).
27681	Key string `json:"key,omitempty"`
27682
27683	// Value: [Output Only] A warning data value corresponding to the key.
27684	Value string `json:"value,omitempty"`
27685
27686	// ForceSendFields is a list of field names (e.g. "Key") to
27687	// unconditionally include in API requests. By default, fields with
27688	// empty values are omitted from API requests. However, any non-pointer,
27689	// non-interface field appearing in ForceSendFields will be sent to the
27690	// server regardless of whether the field is empty or not. This may be
27691	// used to include empty fields in Patch requests.
27692	ForceSendFields []string `json:"-"`
27693
27694	// NullFields is a list of field names (e.g. "Key") to include in API
27695	// requests with the JSON null value. By default, fields with empty
27696	// values are omitted from API requests. However, any field with an
27697	// empty value appearing in NullFields will be sent to the server as
27698	// null. It is an error if a field in this list has a non-empty value.
27699	// This may be used to include null fields in Patch requests.
27700	NullFields []string `json:"-"`
27701}
27702
27703func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
27704	type NoMethod PacketMirroringsScopedListWarningData
27705	raw := NoMethod(*s)
27706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27707}
27708
27709// PathMatcher: A matcher for the path portion of the URL. The
27710// BackendService from the longest-matched rule will serve the URL. If
27711// no rule was matched, the default service will be used.
27712type PathMatcher struct {
27713	// DefaultRouteAction: defaultRouteAction takes effect when none of the
27714	// pathRules or routeRules match. The load balancer performs advanced
27715	// routing actions like URL rewrites, header transformations, etc. prior
27716	// to forwarding the request to the selected backend. If
27717	// defaultRouteAction specifies any weightedBackendServices,
27718	// defaultService must not be set. Conversely if defaultService is set,
27719	// defaultRouteAction cannot contain any  weightedBackendServices.
27720	// Only one of defaultRouteAction or defaultUrlRedirect must be
27721	// set.
27722	// UrlMaps for external HTTP(S) load balancers support only the
27723	// urlRewrite action within a pathMatcher's defaultRouteAction.
27724	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
27725
27726	// DefaultService: The full or partial URL to the BackendService
27727	// resource. This will be used if none of the pathRules or routeRules
27728	// defined by this PathMatcher are matched. For example, the following
27729	// are all valid URLs to a BackendService resource:
27730	// -
27731	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
27732	// - compute/v1/projects/project/global/backendServices/backendService
27733	//
27734	// - global/backendServices/backendService  If defaultRouteAction is
27735	// additionally specified, advanced routing actions like URL Rewrites,
27736	// etc. take effect prior to sending the request to the backend.
27737	// However, if defaultService is specified, defaultRouteAction cannot
27738	// contain any weightedBackendServices. Conversely, if
27739	// defaultRouteAction specifies any weightedBackendServices,
27740	// defaultService must not be specified.
27741	// Only one of defaultService, defaultUrlRedirect  or
27742	// defaultRouteAction.weightedBackendService must be set.
27743	// Authorization requires one or more of the following Google IAM
27744	// permissions on the specified resource default_service:
27745	// - compute.backendBuckets.use
27746	// - compute.backendServices.use
27747	DefaultService string `json:"defaultService,omitempty"`
27748
27749	// DefaultUrlRedirect: When none of the specified pathRules or
27750	// routeRules match, the request is redirected to a URL specified by
27751	// defaultUrlRedirect.
27752	// If defaultUrlRedirect is specified, defaultService or
27753	// defaultRouteAction must not be set.
27754	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
27755
27756	// Description: An optional description of this resource. Provide this
27757	// property when you create the resource.
27758	Description string `json:"description,omitempty"`
27759
27760	// HeaderAction: Specifies changes to request and response headers that
27761	// need to take effect for the selected backendService.
27762	// HeaderAction specified here are applied after the matching
27763	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
27764	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
27765
27766	// Name: The name to which this PathMatcher is referred by the HostRule.
27767	Name string `json:"name,omitempty"`
27768
27769	// PathRules: The list of path rules. Use this list instead of
27770	// routeRules when routing based on simple path matching is all that's
27771	// required. The order by which path rules are specified does not
27772	// matter. Matches are always done on the longest-path-first basis.
27773	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
27774	// irrespective of the order in which those paths appear in this
27775	// list.
27776	// Within a given pathMatcher, only one of pathRules or routeRules must
27777	// be set.
27778	PathRules []*PathRule `json:"pathRules,omitempty"`
27779
27780	// RouteRules: The list of HTTP route rules. Use this list instead of
27781	// pathRules when advanced route matching and routing actions are
27782	// desired. routeRules are evaluated in order of priority, from the
27783	// lowest to highest number.
27784	// Within a given pathMatcher, you can set only one of pathRules or
27785	// routeRules.
27786	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
27787
27788	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
27789	// to unconditionally include in API requests. By default, fields with
27790	// empty values are omitted from API requests. However, any non-pointer,
27791	// non-interface field appearing in ForceSendFields will be sent to the
27792	// server regardless of whether the field is empty or not. This may be
27793	// used to include empty fields in Patch requests.
27794	ForceSendFields []string `json:"-"`
27795
27796	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
27797	// include in API requests with the JSON null value. By default, fields
27798	// with empty values are omitted from API requests. However, any field
27799	// with an empty value appearing in NullFields will be sent to the
27800	// server as null. It is an error if a field in this list has a
27801	// non-empty value. This may be used to include null fields in Patch
27802	// requests.
27803	NullFields []string `json:"-"`
27804}
27805
27806func (s *PathMatcher) MarshalJSON() ([]byte, error) {
27807	type NoMethod PathMatcher
27808	raw := NoMethod(*s)
27809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27810}
27811
27812// PathRule: A path-matching rule for a URL. If matched, will use the
27813// specified BackendService to handle the traffic arriving at this URL.
27814type PathRule struct {
27815	// Paths: The list of path patterns to match. Each must start with / and
27816	// the only place a * is allowed is at the end following a /. The string
27817	// fed to the path matcher does not include any text after the first ?
27818	// or #, and those chars are not allowed here.
27819	Paths []string `json:"paths,omitempty"`
27820
27821	// RouteAction: In response to a matching path, the load balancer
27822	// performs advanced routing actions like URL rewrites, header
27823	// transformations, etc. prior to forwarding the request to the selected
27824	// backend. If routeAction specifies any  weightedBackendServices,
27825	// service must not be set. Conversely if service is set, routeAction
27826	// cannot contain any  weightedBackendServices.
27827	// Only one of routeAction or urlRedirect must be set.
27828	// UrlMaps for external HTTP(S) load balancers support only the
27829	// urlRewrite action within a pathRule's routeAction.
27830	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
27831
27832	// Service: The full or partial URL of the backend service resource to
27833	// which traffic is directed if this rule is matched. If routeAction is
27834	// additionally specified, advanced routing actions like URL Rewrites,
27835	// etc. take effect prior to sending the request to the backend.
27836	// However, if service is specified, routeAction cannot contain any
27837	// weightedBackendService s. Conversely, if routeAction specifies any
27838	// weightedBackendServices, service must not be specified.
27839	// Only one of urlRedirect, service or
27840	// routeAction.weightedBackendService must be set.
27841	Service string `json:"service,omitempty"`
27842
27843	// UrlRedirect: When a path pattern is matched, the request is
27844	// redirected to a URL specified by urlRedirect.
27845	// If urlRedirect is specified, service or routeAction must not be set.
27846	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
27847
27848	// ForceSendFields is a list of field names (e.g. "Paths") to
27849	// unconditionally include in API requests. By default, fields with
27850	// empty values are omitted from API requests. However, any non-pointer,
27851	// non-interface field appearing in ForceSendFields will be sent to the
27852	// server regardless of whether the field is empty or not. This may be
27853	// used to include empty fields in Patch requests.
27854	ForceSendFields []string `json:"-"`
27855
27856	// NullFields is a list of field names (e.g. "Paths") to include in API
27857	// requests with the JSON null value. By default, fields with empty
27858	// values are omitted from API requests. However, any field with an
27859	// empty value appearing in NullFields will be sent to the server as
27860	// null. It is an error if a field in this list has a non-empty value.
27861	// This may be used to include null fields in Patch requests.
27862	NullFields []string `json:"-"`
27863}
27864
27865func (s *PathRule) MarshalJSON() ([]byte, error) {
27866	type NoMethod PathRule
27867	raw := NoMethod(*s)
27868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27869}
27870
27871type PerInstanceConfig struct {
27872	// Fingerprint: Fingerprint of this per-instance config. This field can
27873	// be used in optimistic locking. It is ignored when inserting a
27874	// per-instance config. An up-to-date fingerprint must be provided in
27875	// order to update an existing per-instance config or the field needs to
27876	// be unset.
27877	Fingerprint string `json:"fingerprint,omitempty"`
27878
27879	// Name: The name of a per-instance config and its corresponding
27880	// instance. Serves as a merge key during UpdatePerInstanceConfigs
27881	// operations, that is, if a per-instance config with the same name
27882	// exists then it will be updated, otherwise a new one will be created
27883	// for the VM instance with the same name. An attempt to create a
27884	// per-instance config for a VM instance that either doesn't exist or is
27885	// not part of the group will result in an error.
27886	Name string `json:"name,omitempty"`
27887
27888	// PreservedState: The intended preserved state for the given instance.
27889	// Does not contain preserved state generated from a stateful policy.
27890	PreservedState *PreservedState `json:"preservedState,omitempty"`
27891
27892	// Status: The status of applying this per-instance config on the
27893	// corresponding managed instance.
27894	//
27895	// Possible values:
27896	//   "APPLYING"
27897	//   "DELETING"
27898	//   "EFFECTIVE"
27899	//   "NONE"
27900	//   "UNAPPLIED"
27901	//   "UNAPPLIED_DELETION"
27902	Status string `json:"status,omitempty"`
27903
27904	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
27905	// unconditionally include in API requests. By default, fields with
27906	// empty values are omitted from API requests. However, any non-pointer,
27907	// non-interface field appearing in ForceSendFields will be sent to the
27908	// server regardless of whether the field is empty or not. This may be
27909	// used to include empty fields in Patch requests.
27910	ForceSendFields []string `json:"-"`
27911
27912	// NullFields is a list of field names (e.g. "Fingerprint") to include
27913	// in API requests with the JSON null value. By default, fields with
27914	// empty values are omitted from API requests. However, any field with
27915	// an empty value appearing in NullFields will be sent to the server as
27916	// null. It is an error if a field in this list has a non-empty value.
27917	// This may be used to include null fields in Patch requests.
27918	NullFields []string `json:"-"`
27919}
27920
27921func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
27922	type NoMethod PerInstanceConfig
27923	raw := NoMethod(*s)
27924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27925}
27926
27927// Policy: An Identity and Access Management (IAM) policy, which
27928// specifies access controls for Google Cloud resources.
27929//
27930//
27931//
27932// A `Policy` is a collection of `bindings`. A `binding` binds one or
27933// more `members` to a single `role`. Members can be user accounts,
27934// service accounts, Google groups, and domains (such as G Suite). A
27935// `role` is a named list of permissions; each `role` can be an IAM
27936// predefined role or a user-created custom role.
27937//
27938// For some types of Google Cloud resources, a `binding` can also
27939// specify a `condition`, which is a logical expression that allows
27940// access to a resource only if the expression evaluates to `true`. A
27941// condition can add constraints based on attributes of the request, the
27942// resource, or both. To learn which resources support conditions in
27943// their IAM policies, see the [IAM
27944// documentation](https://cloud.google.com/iam/help/conditions/resource-p
27945// olicies).
27946//
27947// **JSON example:**
27948//
27949// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
27950// "members": [ "user:mike@example.com", "group:admins@example.com",
27951// "domain:google.com",
27952// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
27953// "role": "roles/resourcemanager.organizationViewer", "members": [
27954// "user:eve@example.com" ], "condition": { "title": "expirable access",
27955// "description": "Does not grant access after Sep 2020", "expression":
27956// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
27957// "etag": "BwWWja0YfJA=", "version": 3 }
27958//
27959// **YAML example:**
27960//
27961// bindings: - members: - user:mike@example.com -
27962// group:admins@example.com - domain:google.com -
27963// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
27964// roles/resourcemanager.organizationAdmin - members: -
27965// user:eve@example.com role: roles/resourcemanager.organizationViewer
27966// condition: title: expirable access description: Does not grant access
27967// after Sep 2020 expression: request.time <
27968// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
27969// 3
27970//
27971// For a description of IAM and its features, see the [IAM
27972// documentation](https://cloud.google.com/iam/docs/).
27973type Policy struct {
27974	// AuditConfigs: Specifies cloud audit logging configuration for this
27975	// policy.
27976	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
27977
27978	// Bindings: Associates a list of `members` to a `role`. Optionally, may
27979	// specify a `condition` that determines how and when the `bindings` are
27980	// applied. Each of the `bindings` must contain at least one member.
27981	Bindings []*Binding `json:"bindings,omitempty"`
27982
27983	// Etag: `etag` is used for optimistic concurrency control as a way to
27984	// help prevent simultaneous updates of a policy from overwriting each
27985	// other. It is strongly suggested that systems make use of the `etag`
27986	// in the read-modify-write cycle to perform policy updates in order to
27987	// avoid race conditions: An `etag` is returned in the response to
27988	// `getIamPolicy`, and systems are expected to put that etag in the
27989	// request to `setIamPolicy` to ensure that their change will be applied
27990	// to the same version of the policy.
27991	//
27992	// **Important:** If you use IAM Conditions, you must include the `etag`
27993	// field whenever you call `setIamPolicy`. If you omit this field, then
27994	// IAM allows you to overwrite a version `3` policy with a version `1`
27995	// policy, and all of the conditions in the version `3` policy are lost.
27996	Etag string `json:"etag,omitempty"`
27997
27998	IamOwned bool `json:"iamOwned,omitempty"`
27999
28000	// Rules: If more than one rule is specified, the rules are applied in
28001	// the following manner: - All matching LOG rules are always applied. -
28002	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
28003	// will be applied if one or more matching rule requires logging. -
28004	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
28005	// granted. Logging will be applied if one or more matching rule
28006	// requires logging. - Otherwise, if no rule applies, permission is
28007	// denied.
28008	Rules []*Rule `json:"rules,omitempty"`
28009
28010	// Version: Specifies the format of the policy.
28011	//
28012	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
28013	// value are rejected.
28014	//
28015	// Any operation that affects conditional role bindings must specify
28016	// version `3`. This requirement applies to the following operations:
28017	//
28018	// * Getting a policy that includes a conditional role binding * Adding
28019	// a conditional role binding to a policy * Changing a conditional role
28020	// binding in a policy * Removing any role binding, with or without a
28021	// condition, from a policy that includes conditions
28022	//
28023	// **Important:** If you use IAM Conditions, you must include the `etag`
28024	// field whenever you call `setIamPolicy`. If you omit this field, then
28025	// IAM allows you to overwrite a version `3` policy with a version `1`
28026	// policy, and all of the conditions in the version `3` policy are
28027	// lost.
28028	//
28029	// If a policy does not include any conditions, operations on that
28030	// policy may specify any valid version or leave the field unset.
28031	//
28032	// To learn which resources support conditions in their IAM policies,
28033	// see the [IAM
28034	// documentation](https://cloud.google.com/iam/help/conditions/resource-p
28035	// olicies).
28036	Version int64 `json:"version,omitempty"`
28037
28038	// ServerResponse contains the HTTP response code and headers from the
28039	// server.
28040	googleapi.ServerResponse `json:"-"`
28041
28042	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
28043	// unconditionally include in API requests. By default, fields with
28044	// empty values are omitted from API requests. However, any non-pointer,
28045	// non-interface field appearing in ForceSendFields will be sent to the
28046	// server regardless of whether the field is empty or not. This may be
28047	// used to include empty fields in Patch requests.
28048	ForceSendFields []string `json:"-"`
28049
28050	// NullFields is a list of field names (e.g. "AuditConfigs") to include
28051	// in API requests with the JSON null value. By default, fields with
28052	// empty values are omitted from API requests. However, any field with
28053	// an empty value appearing in NullFields will be sent to the server as
28054	// null. It is an error if a field in this list has a non-empty value.
28055	// This may be used to include null fields in Patch requests.
28056	NullFields []string `json:"-"`
28057}
28058
28059func (s *Policy) MarshalJSON() ([]byte, error) {
28060	type NoMethod Policy
28061	raw := NoMethod(*s)
28062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28063}
28064
28065type PreconfiguredWafSet struct {
28066	// ExpressionSets: List of entities that are currently supported for WAF
28067	// rules.
28068	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
28069
28070	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
28071	// unconditionally include in API requests. By default, fields with
28072	// empty values are omitted from API requests. However, any non-pointer,
28073	// non-interface field appearing in ForceSendFields will be sent to the
28074	// server regardless of whether the field is empty or not. This may be
28075	// used to include empty fields in Patch requests.
28076	ForceSendFields []string `json:"-"`
28077
28078	// NullFields is a list of field names (e.g. "ExpressionSets") to
28079	// include in API requests with the JSON null value. By default, fields
28080	// with empty values are omitted from API requests. However, any field
28081	// with an empty value appearing in NullFields will be sent to the
28082	// server as null. It is an error if a field in this list has a
28083	// non-empty value. This may be used to include null fields in Patch
28084	// requests.
28085	NullFields []string `json:"-"`
28086}
28087
28088func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
28089	type NoMethod PreconfiguredWafSet
28090	raw := NoMethod(*s)
28091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28092}
28093
28094// PreservedState: Preserved state for a given instance.
28095type PreservedState struct {
28096	// Disks: Preserved disks defined for this instance. This map is keyed
28097	// with the device names of the disks.
28098	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
28099
28100	// Metadata: Preserved metadata defined for this instance.
28101	Metadata map[string]string `json:"metadata,omitempty"`
28102
28103	// ForceSendFields is a list of field names (e.g. "Disks") to
28104	// unconditionally include in API requests. By default, fields with
28105	// empty values are omitted from API requests. However, any non-pointer,
28106	// non-interface field appearing in ForceSendFields will be sent to the
28107	// server regardless of whether the field is empty or not. This may be
28108	// used to include empty fields in Patch requests.
28109	ForceSendFields []string `json:"-"`
28110
28111	// NullFields is a list of field names (e.g. "Disks") to include in API
28112	// requests with the JSON null value. By default, fields with empty
28113	// values are omitted from API requests. However, any field with an
28114	// empty value appearing in NullFields will be sent to the server as
28115	// null. It is an error if a field in this list has a non-empty value.
28116	// This may be used to include null fields in Patch requests.
28117	NullFields []string `json:"-"`
28118}
28119
28120func (s *PreservedState) MarshalJSON() ([]byte, error) {
28121	type NoMethod PreservedState
28122	raw := NoMethod(*s)
28123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28124}
28125
28126type PreservedStatePreservedDisk struct {
28127	// AutoDelete: These stateful disks will never be deleted during
28128	// autohealing, update, instance recreate operations. This flag is used
28129	// to configure if the disk should be deleted after it is no longer used
28130	// by the group, e.g. when the given instance or the whole MIG is
28131	// deleted. Note: disks attached in READ_ONLY mode cannot be
28132	// auto-deleted.
28133	//
28134	// Possible values:
28135	//   "NEVER"
28136	//   "ON_PERMANENT_INSTANCE_DELETION"
28137	AutoDelete string `json:"autoDelete,omitempty"`
28138
28139	// Mode: The mode in which to attach this disk, either READ_WRITE or
28140	// READ_ONLY. If not specified, the default is to attach the disk in
28141	// READ_WRITE mode.
28142	//
28143	// Possible values:
28144	//   "READ_ONLY"
28145	//   "READ_WRITE"
28146	Mode string `json:"mode,omitempty"`
28147
28148	// Source: The URL of the disk resource that is stateful and should be
28149	// attached to the VM instance.
28150	Source string `json:"source,omitempty"`
28151
28152	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
28153	// unconditionally include in API requests. By default, fields with
28154	// empty values are omitted from API requests. However, any non-pointer,
28155	// non-interface field appearing in ForceSendFields will be sent to the
28156	// server regardless of whether the field is empty or not. This may be
28157	// used to include empty fields in Patch requests.
28158	ForceSendFields []string `json:"-"`
28159
28160	// NullFields is a list of field names (e.g. "AutoDelete") to include in
28161	// API requests with the JSON null value. By default, fields with empty
28162	// values are omitted from API requests. However, any field with an
28163	// empty value appearing in NullFields will be sent to the server as
28164	// null. It is an error if a field in this list has a non-empty value.
28165	// This may be used to include null fields in Patch requests.
28166	NullFields []string `json:"-"`
28167}
28168
28169func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
28170	type NoMethod PreservedStatePreservedDisk
28171	raw := NoMethod(*s)
28172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28173}
28174
28175// Project: Represents a Project resource.
28176//
28177// A project is used to organize resources in a Google Cloud Platform
28178// environment. For more information, read about the  Resource
28179// Hierarchy. (== resource_for {$api_version}.projects ==)
28180type Project struct {
28181	// CommonInstanceMetadata: Metadata key/value pairs available to all
28182	// instances contained in this project. See Custom metadata for more
28183	// information.
28184	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
28185
28186	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28187	// format.
28188	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28189
28190	// DefaultNetworkTier: This signifies the default network tier used for
28191	// configuring resources of the project and can only take the following
28192	// values: PREMIUM, STANDARD. Initially the default network tier is
28193	// PREMIUM.
28194	//
28195	// Possible values:
28196	//   "PREMIUM"
28197	//   "STANDARD"
28198	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
28199
28200	// DefaultServiceAccount: [Output Only] Default service account used by
28201	// VMs running in this project.
28202	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
28203
28204	// Description: An optional textual description of the resource.
28205	Description string `json:"description,omitempty"`
28206
28207	// EnabledFeatures: Restricted features enabled for use on this project.
28208	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
28209
28210	// Id: [Output Only] The unique identifier for the resource. This
28211	// identifier is defined by the server. This is not the project ID, and
28212	// is just a unique ID used by Compute Engine to identify resources.
28213	Id uint64 `json:"id,omitempty,string"`
28214
28215	// Kind: [Output Only] Type of the resource. Always compute#project for
28216	// projects.
28217	Kind string `json:"kind,omitempty"`
28218
28219	// Name: The project ID. For example: my-example-project. Use the
28220	// project ID to make requests to Compute Engine.
28221	Name string `json:"name,omitempty"`
28222
28223	// Quotas: [Output Only] Quotas assigned to this project.
28224	Quotas []*Quota `json:"quotas,omitempty"`
28225
28226	// SelfLink: [Output Only] Server-defined URL for the resource.
28227	SelfLink string `json:"selfLink,omitempty"`
28228
28229	// UsageExportLocation: The naming prefix for daily usage reports and
28230	// the Google Cloud Storage bucket where they are stored.
28231	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
28232
28233	// XpnProjectStatus: [Output Only] The role this project has in a shared
28234	// VPC configuration. Currently only HOST projects are differentiated.
28235	//
28236	// Possible values:
28237	//   "HOST"
28238	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
28239	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
28240
28241	// ServerResponse contains the HTTP response code and headers from the
28242	// server.
28243	googleapi.ServerResponse `json:"-"`
28244
28245	// ForceSendFields is a list of field names (e.g.
28246	// "CommonInstanceMetadata") to unconditionally include in API requests.
28247	// By default, fields with empty values are omitted from API requests.
28248	// However, any non-pointer, non-interface field appearing in
28249	// ForceSendFields will be sent to the server regardless of whether the
28250	// field is empty or not. This may be used to include empty fields in
28251	// Patch requests.
28252	ForceSendFields []string `json:"-"`
28253
28254	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
28255	// to include in API requests with the JSON null value. By default,
28256	// fields with empty values are omitted from API requests. However, any
28257	// field with an empty value appearing in NullFields will be sent to the
28258	// server as null. It is an error if a field in this list has a
28259	// non-empty value. This may be used to include null fields in Patch
28260	// requests.
28261	NullFields []string `json:"-"`
28262}
28263
28264func (s *Project) MarshalJSON() ([]byte, error) {
28265	type NoMethod Project
28266	raw := NoMethod(*s)
28267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28268}
28269
28270type ProjectsDisableXpnResourceRequest struct {
28271	// XpnResource: Service resource (a.k.a service project) ID.
28272	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
28273
28274	// ForceSendFields is a list of field names (e.g. "XpnResource") to
28275	// unconditionally include in API requests. By default, fields with
28276	// empty values are omitted from API requests. However, any non-pointer,
28277	// non-interface field appearing in ForceSendFields will be sent to the
28278	// server regardless of whether the field is empty or not. This may be
28279	// used to include empty fields in Patch requests.
28280	ForceSendFields []string `json:"-"`
28281
28282	// NullFields is a list of field names (e.g. "XpnResource") to include
28283	// in API requests with the JSON null value. By default, fields with
28284	// empty values are omitted from API requests. However, any field with
28285	// an empty value appearing in NullFields will be sent to the server as
28286	// null. It is an error if a field in this list has a non-empty value.
28287	// This may be used to include null fields in Patch requests.
28288	NullFields []string `json:"-"`
28289}
28290
28291func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
28292	type NoMethod ProjectsDisableXpnResourceRequest
28293	raw := NoMethod(*s)
28294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28295}
28296
28297type ProjectsEnableXpnResourceRequest struct {
28298	// XpnResource: Service resource (a.k.a service project) ID.
28299	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
28300
28301	// ForceSendFields is a list of field names (e.g. "XpnResource") to
28302	// unconditionally include in API requests. By default, fields with
28303	// empty values are omitted from API requests. However, any non-pointer,
28304	// non-interface field appearing in ForceSendFields will be sent to the
28305	// server regardless of whether the field is empty or not. This may be
28306	// used to include empty fields in Patch requests.
28307	ForceSendFields []string `json:"-"`
28308
28309	// NullFields is a list of field names (e.g. "XpnResource") to include
28310	// in API requests with the JSON null value. By default, fields with
28311	// empty values are omitted from API requests. However, any field with
28312	// an empty value appearing in NullFields will be sent to the server as
28313	// null. It is an error if a field in this list has a non-empty value.
28314	// This may be used to include null fields in Patch requests.
28315	NullFields []string `json:"-"`
28316}
28317
28318func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
28319	type NoMethod ProjectsEnableXpnResourceRequest
28320	raw := NoMethod(*s)
28321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28322}
28323
28324type ProjectsGetXpnResources struct {
28325	// Kind: [Output Only] Type of resource. Always
28326	// compute#projectsGetXpnResources for lists of service resources (a.k.a
28327	// service projects)
28328	Kind string `json:"kind,omitempty"`
28329
28330	// NextPageToken: [Output Only] This token allows you to get the next
28331	// page of results for list requests. If the number of results is larger
28332	// than maxResults, use the nextPageToken as a value for the query
28333	// parameter pageToken in the next list request. Subsequent list
28334	// requests will have their own nextPageToken to continue paging through
28335	// the results.
28336	NextPageToken string `json:"nextPageToken,omitempty"`
28337
28338	// Resources: Service resources (a.k.a service projects) attached to
28339	// this project as their shared VPC host.
28340	Resources []*XpnResourceId `json:"resources,omitempty"`
28341
28342	// ServerResponse contains the HTTP response code and headers from the
28343	// server.
28344	googleapi.ServerResponse `json:"-"`
28345
28346	// ForceSendFields is a list of field names (e.g. "Kind") to
28347	// unconditionally include in API requests. By default, fields with
28348	// empty values are omitted from API requests. However, any non-pointer,
28349	// non-interface field appearing in ForceSendFields will be sent to the
28350	// server regardless of whether the field is empty or not. This may be
28351	// used to include empty fields in Patch requests.
28352	ForceSendFields []string `json:"-"`
28353
28354	// NullFields is a list of field names (e.g. "Kind") to include in API
28355	// requests with the JSON null value. By default, fields with empty
28356	// values are omitted from API requests. However, any field with an
28357	// empty value appearing in NullFields will be sent to the server as
28358	// null. It is an error if a field in this list has a non-empty value.
28359	// This may be used to include null fields in Patch requests.
28360	NullFields []string `json:"-"`
28361}
28362
28363func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
28364	type NoMethod ProjectsGetXpnResources
28365	raw := NoMethod(*s)
28366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28367}
28368
28369type ProjectsListXpnHostsRequest struct {
28370	// Organization: Optional organization ID managed by Cloud Resource
28371	// Manager, for which to list shared VPC host projects. If not
28372	// specified, the organization will be inferred from the project.
28373	Organization string `json:"organization,omitempty"`
28374
28375	// ForceSendFields is a list of field names (e.g. "Organization") to
28376	// unconditionally include in API requests. By default, fields with
28377	// empty values are omitted from API requests. However, any non-pointer,
28378	// non-interface field appearing in ForceSendFields will be sent to the
28379	// server regardless of whether the field is empty or not. This may be
28380	// used to include empty fields in Patch requests.
28381	ForceSendFields []string `json:"-"`
28382
28383	// NullFields is a list of field names (e.g. "Organization") to include
28384	// in API requests with the JSON null value. By default, fields with
28385	// empty values are omitted from API requests. However, any field with
28386	// an empty value appearing in NullFields will be sent to the server as
28387	// null. It is an error if a field in this list has a non-empty value.
28388	// This may be used to include null fields in Patch requests.
28389	NullFields []string `json:"-"`
28390}
28391
28392func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
28393	type NoMethod ProjectsListXpnHostsRequest
28394	raw := NoMethod(*s)
28395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28396}
28397
28398type ProjectsSetDefaultNetworkTierRequest struct {
28399	// NetworkTier: Default network tier to be set.
28400	//
28401	// Possible values:
28402	//   "PREMIUM"
28403	//   "STANDARD"
28404	NetworkTier string `json:"networkTier,omitempty"`
28405
28406	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
28407	// unconditionally include in API requests. By default, fields with
28408	// empty values are omitted from API requests. However, any non-pointer,
28409	// non-interface field appearing in ForceSendFields will be sent to the
28410	// server regardless of whether the field is empty or not. This may be
28411	// used to include empty fields in Patch requests.
28412	ForceSendFields []string `json:"-"`
28413
28414	// NullFields is a list of field names (e.g. "NetworkTier") to include
28415	// in API requests with the JSON null value. By default, fields with
28416	// empty values are omitted from API requests. However, any field with
28417	// an empty value appearing in NullFields will be sent to the server as
28418	// null. It is an error if a field in this list has a non-empty value.
28419	// This may be used to include null fields in Patch requests.
28420	NullFields []string `json:"-"`
28421}
28422
28423func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
28424	type NoMethod ProjectsSetDefaultNetworkTierRequest
28425	raw := NoMethod(*s)
28426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28427}
28428
28429// Quota: A quotas entry.
28430type Quota struct {
28431	// Limit: [Output Only] Quota limit for this metric.
28432	Limit float64 `json:"limit,omitempty"`
28433
28434	// Metric: [Output Only] Name of the quota metric.
28435	//
28436	// Possible values:
28437	//   "A2_CPUS"
28438	//   "AFFINITY_GROUPS"
28439	//   "AUTOSCALERS"
28440	//   "BACKEND_BUCKETS"
28441	//   "BACKEND_SERVICES"
28442	//   "C2_CPUS"
28443	//   "COMMITMENTS"
28444	//   "COMMITTED_A2_CPUS"
28445	//   "COMMITTED_C2_CPUS"
28446	//   "COMMITTED_CPUS"
28447	//   "COMMITTED_LICENSES"
28448	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
28449	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
28450	//   "COMMITTED_N2D_CPUS"
28451	//   "COMMITTED_N2_CPUS"
28452	//   "COMMITTED_NVIDIA_A100_GPUS"
28453	//   "COMMITTED_NVIDIA_K80_GPUS"
28454	//   "COMMITTED_NVIDIA_P100_GPUS"
28455	//   "COMMITTED_NVIDIA_P4_GPUS"
28456	//   "COMMITTED_NVIDIA_T4_GPUS"
28457	//   "COMMITTED_NVIDIA_V100_GPUS"
28458	//   "CPUS"
28459	//   "CPUS_ALL_REGIONS"
28460	//   "DISKS_TOTAL_GB"
28461	//   "EXTERNAL_VPN_GATEWAYS"
28462	//   "FIREWALLS"
28463	//   "FORWARDING_RULES"
28464	//   "GLOBAL_INTERNAL_ADDRESSES"
28465	//   "GPUS_ALL_REGIONS"
28466	//   "HEALTH_CHECKS"
28467	//   "IMAGES"
28468	//   "INSTANCES"
28469	//   "INSTANCE_GROUPS"
28470	//   "INSTANCE_GROUP_MANAGERS"
28471	//   "INSTANCE_TEMPLATES"
28472	//   "INTERCONNECTS"
28473	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
28474	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
28475	//   "INTERCONNECT_TOTAL_GBPS"
28476	//   "INTERNAL_ADDRESSES"
28477	//   "IN_PLACE_SNAPSHOTS"
28478	//   "IN_USE_ADDRESSES"
28479	//   "IN_USE_BACKUP_SCHEDULES"
28480	//   "IN_USE_SNAPSHOT_SCHEDULES"
28481	//   "LOCAL_SSD_TOTAL_GB"
28482	//   "M1_CPUS"
28483	//   "M2_CPUS"
28484	//   "MACHINE_IMAGES"
28485	//   "N2D_CPUS"
28486	//   "N2_CPUS"
28487	//   "NETWORKS"
28488	//   "NETWORK_ENDPOINT_GROUPS"
28489	//   "NETWORK_FIREWALL_POLICIES"
28490	//   "NODE_GROUPS"
28491	//   "NODE_TEMPLATES"
28492	//   "NVIDIA_A100_GPUS"
28493	//   "NVIDIA_K80_GPUS"
28494	//   "NVIDIA_P100_GPUS"
28495	//   "NVIDIA_P100_VWS_GPUS"
28496	//   "NVIDIA_P4_GPUS"
28497	//   "NVIDIA_P4_VWS_GPUS"
28498	//   "NVIDIA_T4_GPUS"
28499	//   "NVIDIA_T4_VWS_GPUS"
28500	//   "NVIDIA_V100_GPUS"
28501	//   "PACKET_MIRRORINGS"
28502	//   "PREEMPTIBLE_CPUS"
28503	//   "PREEMPTIBLE_LOCAL_SSD_GB"
28504	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
28505	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
28506	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
28507	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
28508	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
28509	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
28510	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
28511	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
28512	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
28513	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
28514	//   "PUBLIC_ADVERTISED_PREFIXES"
28515	//   "PUBLIC_DELEGATED_PREFIXES"
28516	//   "REGIONAL_AUTOSCALERS"
28517	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
28518	//   "RESERVATIONS"
28519	//   "RESOURCE_POLICIES"
28520	//   "ROUTERS"
28521	//   "ROUTES"
28522	//   "SECURITY_POLICIES"
28523	//   "SECURITY_POLICY_CEVAL_RULES"
28524	//   "SECURITY_POLICY_RULES"
28525	//   "SNAPSHOTS"
28526	//   "SSD_TOTAL_GB"
28527	//   "SSL_CERTIFICATES"
28528	//   "STATIC_ADDRESSES"
28529	//   "STATIC_BYOIP_ADDRESSES"
28530	//   "SUBNETWORKS"
28531	//   "TARGET_HTTPS_PROXIES"
28532	//   "TARGET_HTTP_PROXIES"
28533	//   "TARGET_INSTANCES"
28534	//   "TARGET_POOLS"
28535	//   "TARGET_SSL_PROXIES"
28536	//   "TARGET_TCP_PROXIES"
28537	//   "TARGET_VPN_GATEWAYS"
28538	//   "URL_MAPS"
28539	//   "VPN_GATEWAYS"
28540	//   "VPN_TUNNELS"
28541	Metric string `json:"metric,omitempty"`
28542
28543	// Owner: [Output Only] Owning resource. This is the resource on which
28544	// this quota is applied.
28545	Owner string `json:"owner,omitempty"`
28546
28547	// Usage: [Output Only] Current usage of this metric.
28548	Usage float64 `json:"usage,omitempty"`
28549
28550	// ForceSendFields is a list of field names (e.g. "Limit") to
28551	// unconditionally include in API requests. By default, fields with
28552	// empty values are omitted from API requests. However, any non-pointer,
28553	// non-interface field appearing in ForceSendFields will be sent to the
28554	// server regardless of whether the field is empty or not. This may be
28555	// used to include empty fields in Patch requests.
28556	ForceSendFields []string `json:"-"`
28557
28558	// NullFields is a list of field names (e.g. "Limit") to include in API
28559	// requests with the JSON null value. By default, fields with empty
28560	// values are omitted from API requests. However, any field with an
28561	// empty value appearing in NullFields will be sent to the server as
28562	// null. It is an error if a field in this list has a non-empty value.
28563	// This may be used to include null fields in Patch requests.
28564	NullFields []string `json:"-"`
28565}
28566
28567func (s *Quota) MarshalJSON() ([]byte, error) {
28568	type NoMethod Quota
28569	raw := NoMethod(*s)
28570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28571}
28572
28573func (s *Quota) UnmarshalJSON(data []byte) error {
28574	type NoMethod Quota
28575	var s1 struct {
28576		Limit gensupport.JSONFloat64 `json:"limit"`
28577		Usage gensupport.JSONFloat64 `json:"usage"`
28578		*NoMethod
28579	}
28580	s1.NoMethod = (*NoMethod)(s)
28581	if err := json.Unmarshal(data, &s1); err != nil {
28582		return err
28583	}
28584	s.Limit = float64(s1.Limit)
28585	s.Usage = float64(s1.Usage)
28586	return nil
28587}
28588
28589// Reference: Represents a reference to a resource.
28590type Reference struct {
28591	// Kind: [Output Only] Type of the resource. Always compute#reference
28592	// for references.
28593	Kind string `json:"kind,omitempty"`
28594
28595	// ReferenceType: A description of the reference type with no implied
28596	// semantics. Possible values include:
28597	// - MEMBER_OF
28598	ReferenceType string `json:"referenceType,omitempty"`
28599
28600	// Referrer: URL of the resource which refers to the target.
28601	Referrer string `json:"referrer,omitempty"`
28602
28603	// Target: URL of the resource to which this reference points.
28604	Target string `json:"target,omitempty"`
28605
28606	// ForceSendFields is a list of field names (e.g. "Kind") to
28607	// unconditionally include in API requests. By default, fields with
28608	// empty values are omitted from API requests. However, any non-pointer,
28609	// non-interface field appearing in ForceSendFields will be sent to the
28610	// server regardless of whether the field is empty or not. This may be
28611	// used to include empty fields in Patch requests.
28612	ForceSendFields []string `json:"-"`
28613
28614	// NullFields is a list of field names (e.g. "Kind") to include in API
28615	// requests with the JSON null value. By default, fields with empty
28616	// values are omitted from API requests. However, any field with an
28617	// empty value appearing in NullFields will be sent to the server as
28618	// null. It is an error if a field in this list has a non-empty value.
28619	// This may be used to include null fields in Patch requests.
28620	NullFields []string `json:"-"`
28621}
28622
28623func (s *Reference) MarshalJSON() ([]byte, error) {
28624	type NoMethod Reference
28625	raw := NoMethod(*s)
28626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28627}
28628
28629// Region: Represents a Region resource.
28630//
28631// A region is a geographical area where a resource is located. For more
28632// information, read Regions and Zones. (== resource_for
28633// {$api_version}.regions ==)
28634type Region struct {
28635	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28636	// format.
28637	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28638
28639	// Deprecated: [Output Only] The deprecation status associated with this
28640	// region.
28641	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
28642
28643	// Description: [Output Only] Textual description of the resource.
28644	Description string `json:"description,omitempty"`
28645
28646	// Id: [Output Only] The unique identifier for the resource. This
28647	// identifier is defined by the server.
28648	Id uint64 `json:"id,omitempty,string"`
28649
28650	// Kind: [Output Only] Type of the resource. Always compute#region for
28651	// regions.
28652	Kind string `json:"kind,omitempty"`
28653
28654	// Name: [Output Only] Name of the resource.
28655	Name string `json:"name,omitempty"`
28656
28657	// Quotas: [Output Only] Quotas assigned to this region.
28658	Quotas []*Quota `json:"quotas,omitempty"`
28659
28660	// SelfLink: [Output Only] Server-defined URL for the resource.
28661	SelfLink string `json:"selfLink,omitempty"`
28662
28663	// Status: [Output Only] Status of the region, either UP or DOWN.
28664	//
28665	// Possible values:
28666	//   "DOWN"
28667	//   "UP"
28668	Status string `json:"status,omitempty"`
28669
28670	// Zones: [Output Only] A list of zones available in this region, in the
28671	// form of resource URLs.
28672	Zones []string `json:"zones,omitempty"`
28673
28674	// ServerResponse contains the HTTP response code and headers from the
28675	// server.
28676	googleapi.ServerResponse `json:"-"`
28677
28678	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28679	// to unconditionally include in API requests. By default, fields with
28680	// empty values are omitted from API requests. However, any non-pointer,
28681	// non-interface field appearing in ForceSendFields will be sent to the
28682	// server regardless of whether the field is empty or not. This may be
28683	// used to include empty fields in Patch requests.
28684	ForceSendFields []string `json:"-"`
28685
28686	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28687	// include in API requests with the JSON null value. By default, fields
28688	// with empty values are omitted from API requests. However, any field
28689	// with an empty value appearing in NullFields will be sent to the
28690	// server as null. It is an error if a field in this list has a
28691	// non-empty value. This may be used to include null fields in Patch
28692	// requests.
28693	NullFields []string `json:"-"`
28694}
28695
28696func (s *Region) MarshalJSON() ([]byte, error) {
28697	type NoMethod Region
28698	raw := NoMethod(*s)
28699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28700}
28701
28702// RegionAutoscalerList: Contains a list of autoscalers.
28703type RegionAutoscalerList struct {
28704	// Id: [Output Only] Unique identifier for the resource; defined by the
28705	// server.
28706	Id string `json:"id,omitempty"`
28707
28708	// Items: A list of Autoscaler resources.
28709	Items []*Autoscaler `json:"items,omitempty"`
28710
28711	// Kind: Type of resource.
28712	Kind string `json:"kind,omitempty"`
28713
28714	// NextPageToken: [Output Only] This token allows you to get the next
28715	// page of results for list requests. If the number of results is larger
28716	// than maxResults, use the nextPageToken as a value for the query
28717	// parameter pageToken in the next list request. Subsequent list
28718	// requests will have their own nextPageToken to continue paging through
28719	// the results.
28720	NextPageToken string `json:"nextPageToken,omitempty"`
28721
28722	// SelfLink: [Output Only] Server-defined URL for this resource.
28723	SelfLink string `json:"selfLink,omitempty"`
28724
28725	// Warning: [Output Only] Informational warning message.
28726	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
28727
28728	// ServerResponse contains the HTTP response code and headers from the
28729	// server.
28730	googleapi.ServerResponse `json:"-"`
28731
28732	// ForceSendFields is a list of field names (e.g. "Id") to
28733	// unconditionally include in API requests. By default, fields with
28734	// empty values are omitted from API requests. However, any non-pointer,
28735	// non-interface field appearing in ForceSendFields will be sent to the
28736	// server regardless of whether the field is empty or not. This may be
28737	// used to include empty fields in Patch requests.
28738	ForceSendFields []string `json:"-"`
28739
28740	// NullFields is a list of field names (e.g. "Id") to include in API
28741	// requests with the JSON null value. By default, fields with empty
28742	// values are omitted from API requests. However, any field with an
28743	// empty value appearing in NullFields will be sent to the server as
28744	// null. It is an error if a field in this list has a non-empty value.
28745	// This may be used to include null fields in Patch requests.
28746	NullFields []string `json:"-"`
28747}
28748
28749func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
28750	type NoMethod RegionAutoscalerList
28751	raw := NoMethod(*s)
28752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28753}
28754
28755// RegionAutoscalerListWarning: [Output Only] Informational warning
28756// message.
28757type RegionAutoscalerListWarning struct {
28758	// Code: [Output Only] A warning code, if applicable. For example,
28759	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28760	// the response.
28761	//
28762	// Possible values:
28763	//   "CLEANUP_FAILED"
28764	//   "DEPRECATED_RESOURCE_USED"
28765	//   "DEPRECATED_TYPE_USED"
28766	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28767	//   "EXPERIMENTAL_TYPE_USED"
28768	//   "EXTERNAL_API_WARNING"
28769	//   "FIELD_VALUE_OVERRIDEN"
28770	//   "INJECTED_KERNELS_DEPRECATED"
28771	//   "MISSING_TYPE_DEPENDENCY"
28772	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28773	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28774	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28775	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28776	//   "NEXT_HOP_NOT_RUNNING"
28777	//   "NOT_CRITICAL_ERROR"
28778	//   "NO_RESULTS_ON_PAGE"
28779	//   "REQUIRED_TOS_AGREEMENT"
28780	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28781	//   "RESOURCE_NOT_DELETED"
28782	//   "SCHEMA_VALIDATION_IGNORED"
28783	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28784	//   "UNDECLARED_PROPERTIES"
28785	//   "UNREACHABLE"
28786	Code string `json:"code,omitempty"`
28787
28788	// Data: [Output Only] Metadata about this warning in key: value format.
28789	// For example:
28790	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28791	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
28792
28793	// Message: [Output Only] A human-readable description of the warning
28794	// code.
28795	Message string `json:"message,omitempty"`
28796
28797	// ForceSendFields is a list of field names (e.g. "Code") to
28798	// unconditionally include in API requests. By default, fields with
28799	// empty values are omitted from API requests. However, any non-pointer,
28800	// non-interface field appearing in ForceSendFields will be sent to the
28801	// server regardless of whether the field is empty or not. This may be
28802	// used to include empty fields in Patch requests.
28803	ForceSendFields []string `json:"-"`
28804
28805	// NullFields is a list of field names (e.g. "Code") to include in API
28806	// requests with the JSON null value. By default, fields with empty
28807	// values are omitted from API requests. However, any field with an
28808	// empty value appearing in NullFields will be sent to the server as
28809	// null. It is an error if a field in this list has a non-empty value.
28810	// This may be used to include null fields in Patch requests.
28811	NullFields []string `json:"-"`
28812}
28813
28814func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
28815	type NoMethod RegionAutoscalerListWarning
28816	raw := NoMethod(*s)
28817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28818}
28819
28820type RegionAutoscalerListWarningData struct {
28821	// Key: [Output Only] A key that provides more detail on the warning
28822	// being returned. For example, for warnings where there are no results
28823	// in a list request for a particular zone, this key might be scope and
28824	// the key value might be the zone name. Other examples might be a key
28825	// indicating a deprecated resource and a suggested replacement, or a
28826	// warning about invalid network settings (for example, if an instance
28827	// attempts to perform IP forwarding but is not enabled for IP
28828	// forwarding).
28829	Key string `json:"key,omitempty"`
28830
28831	// Value: [Output Only] A warning data value corresponding to the key.
28832	Value string `json:"value,omitempty"`
28833
28834	// ForceSendFields is a list of field names (e.g. "Key") to
28835	// unconditionally include in API requests. By default, fields with
28836	// empty values are omitted from API requests. However, any non-pointer,
28837	// non-interface field appearing in ForceSendFields will be sent to the
28838	// server regardless of whether the field is empty or not. This may be
28839	// used to include empty fields in Patch requests.
28840	ForceSendFields []string `json:"-"`
28841
28842	// NullFields is a list of field names (e.g. "Key") to include in API
28843	// requests with the JSON null value. By default, fields with empty
28844	// values are omitted from API requests. However, any field with an
28845	// empty value appearing in NullFields will be sent to the server as
28846	// null. It is an error if a field in this list has a non-empty value.
28847	// This may be used to include null fields in Patch requests.
28848	NullFields []string `json:"-"`
28849}
28850
28851func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
28852	type NoMethod RegionAutoscalerListWarningData
28853	raw := NoMethod(*s)
28854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28855}
28856
28857type RegionCommitmentsUpdateReservationsRequest struct {
28858	// Reservations: A list of two reservations to transfer GPUs and local
28859	// SSD between.
28860	Reservations []*Reservation `json:"reservations,omitempty"`
28861
28862	// ForceSendFields is a list of field names (e.g. "Reservations") to
28863	// unconditionally include in API requests. By default, fields with
28864	// empty values are omitted from API requests. However, any non-pointer,
28865	// non-interface field appearing in ForceSendFields will be sent to the
28866	// server regardless of whether the field is empty or not. This may be
28867	// used to include empty fields in Patch requests.
28868	ForceSendFields []string `json:"-"`
28869
28870	// NullFields is a list of field names (e.g. "Reservations") to include
28871	// in API requests with the JSON null value. By default, fields with
28872	// empty values are omitted from API requests. However, any field with
28873	// an empty value appearing in NullFields will be sent to the server as
28874	// null. It is an error if a field in this list has a non-empty value.
28875	// This may be used to include null fields in Patch requests.
28876	NullFields []string `json:"-"`
28877}
28878
28879func (s *RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
28880	type NoMethod RegionCommitmentsUpdateReservationsRequest
28881	raw := NoMethod(*s)
28882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28883}
28884
28885type RegionDiskTypeList struct {
28886	// Id: [Output Only] Unique identifier for the resource; defined by the
28887	// server.
28888	Id string `json:"id,omitempty"`
28889
28890	// Items: A list of DiskType resources.
28891	Items []*DiskType `json:"items,omitempty"`
28892
28893	// Kind: [Output Only] Type of resource. Always
28894	// compute#regionDiskTypeList for region disk types.
28895	Kind string `json:"kind,omitempty"`
28896
28897	// NextPageToken: [Output Only] This token allows you to get the next
28898	// page of results for list requests. If the number of results is larger
28899	// than maxResults, use the nextPageToken as a value for the query
28900	// parameter pageToken in the next list request. Subsequent list
28901	// requests will have their own nextPageToken to continue paging through
28902	// the results.
28903	NextPageToken string `json:"nextPageToken,omitempty"`
28904
28905	// SelfLink: [Output Only] Server-defined URL for this resource.
28906	SelfLink string `json:"selfLink,omitempty"`
28907
28908	// Warning: [Output Only] Informational warning message.
28909	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
28910
28911	// ServerResponse contains the HTTP response code and headers from the
28912	// server.
28913	googleapi.ServerResponse `json:"-"`
28914
28915	// ForceSendFields is a list of field names (e.g. "Id") to
28916	// unconditionally include in API requests. By default, fields with
28917	// empty values are omitted from API requests. However, any non-pointer,
28918	// non-interface field appearing in ForceSendFields will be sent to the
28919	// server regardless of whether the field is empty or not. This may be
28920	// used to include empty fields in Patch requests.
28921	ForceSendFields []string `json:"-"`
28922
28923	// NullFields is a list of field names (e.g. "Id") to include in API
28924	// requests with the JSON null value. By default, fields with empty
28925	// values are omitted from API requests. However, any field with an
28926	// empty value appearing in NullFields will be sent to the server as
28927	// null. It is an error if a field in this list has a non-empty value.
28928	// This may be used to include null fields in Patch requests.
28929	NullFields []string `json:"-"`
28930}
28931
28932func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
28933	type NoMethod RegionDiskTypeList
28934	raw := NoMethod(*s)
28935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28936}
28937
28938// RegionDiskTypeListWarning: [Output Only] Informational warning
28939// message.
28940type RegionDiskTypeListWarning struct {
28941	// Code: [Output Only] A warning code, if applicable. For example,
28942	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28943	// the response.
28944	//
28945	// Possible values:
28946	//   "CLEANUP_FAILED"
28947	//   "DEPRECATED_RESOURCE_USED"
28948	//   "DEPRECATED_TYPE_USED"
28949	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28950	//   "EXPERIMENTAL_TYPE_USED"
28951	//   "EXTERNAL_API_WARNING"
28952	//   "FIELD_VALUE_OVERRIDEN"
28953	//   "INJECTED_KERNELS_DEPRECATED"
28954	//   "MISSING_TYPE_DEPENDENCY"
28955	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28956	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28957	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28958	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28959	//   "NEXT_HOP_NOT_RUNNING"
28960	//   "NOT_CRITICAL_ERROR"
28961	//   "NO_RESULTS_ON_PAGE"
28962	//   "REQUIRED_TOS_AGREEMENT"
28963	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28964	//   "RESOURCE_NOT_DELETED"
28965	//   "SCHEMA_VALIDATION_IGNORED"
28966	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28967	//   "UNDECLARED_PROPERTIES"
28968	//   "UNREACHABLE"
28969	Code string `json:"code,omitempty"`
28970
28971	// Data: [Output Only] Metadata about this warning in key: value format.
28972	// For example:
28973	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28974	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
28975
28976	// Message: [Output Only] A human-readable description of the warning
28977	// code.
28978	Message string `json:"message,omitempty"`
28979
28980	// ForceSendFields is a list of field names (e.g. "Code") to
28981	// unconditionally include in API requests. By default, fields with
28982	// empty values are omitted from API requests. However, any non-pointer,
28983	// non-interface field appearing in ForceSendFields will be sent to the
28984	// server regardless of whether the field is empty or not. This may be
28985	// used to include empty fields in Patch requests.
28986	ForceSendFields []string `json:"-"`
28987
28988	// NullFields is a list of field names (e.g. "Code") to include in API
28989	// requests with the JSON null value. By default, fields with empty
28990	// values are omitted from API requests. However, any field with an
28991	// empty value appearing in NullFields will be sent to the server as
28992	// null. It is an error if a field in this list has a non-empty value.
28993	// This may be used to include null fields in Patch requests.
28994	NullFields []string `json:"-"`
28995}
28996
28997func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
28998	type NoMethod RegionDiskTypeListWarning
28999	raw := NoMethod(*s)
29000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29001}
29002
29003type RegionDiskTypeListWarningData struct {
29004	// Key: [Output Only] A key that provides more detail on the warning
29005	// being returned. For example, for warnings where there are no results
29006	// in a list request for a particular zone, this key might be scope and
29007	// the key value might be the zone name. Other examples might be a key
29008	// indicating a deprecated resource and a suggested replacement, or a
29009	// warning about invalid network settings (for example, if an instance
29010	// attempts to perform IP forwarding but is not enabled for IP
29011	// forwarding).
29012	Key string `json:"key,omitempty"`
29013
29014	// Value: [Output Only] A warning data value corresponding to the key.
29015	Value string `json:"value,omitempty"`
29016
29017	// ForceSendFields is a list of field names (e.g. "Key") to
29018	// unconditionally include in API requests. By default, fields with
29019	// empty values are omitted from API requests. However, any non-pointer,
29020	// non-interface field appearing in ForceSendFields will be sent to the
29021	// server regardless of whether the field is empty or not. This may be
29022	// used to include empty fields in Patch requests.
29023	ForceSendFields []string `json:"-"`
29024
29025	// NullFields is a list of field names (e.g. "Key") to include in API
29026	// requests with the JSON null value. By default, fields with empty
29027	// values are omitted from API requests. However, any field with an
29028	// empty value appearing in NullFields will be sent to the server as
29029	// null. It is an error if a field in this list has a non-empty value.
29030	// This may be used to include null fields in Patch requests.
29031	NullFields []string `json:"-"`
29032}
29033
29034func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
29035	type NoMethod RegionDiskTypeListWarningData
29036	raw := NoMethod(*s)
29037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29038}
29039
29040type RegionDisksAddResourcePoliciesRequest struct {
29041	// ResourcePolicies: Resource policies to be added to this disk.
29042	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
29043
29044	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
29045	// unconditionally include in API requests. By default, fields with
29046	// empty values are omitted from API requests. However, any non-pointer,
29047	// non-interface field appearing in ForceSendFields will be sent to the
29048	// server regardless of whether the field is empty or not. This may be
29049	// used to include empty fields in Patch requests.
29050	ForceSendFields []string `json:"-"`
29051
29052	// NullFields is a list of field names (e.g. "ResourcePolicies") to
29053	// include in API requests with the JSON null value. By default, fields
29054	// with empty values are omitted from API requests. However, any field
29055	// with an empty value appearing in NullFields will be sent to the
29056	// server as null. It is an error if a field in this list has a
29057	// non-empty value. This may be used to include null fields in Patch
29058	// requests.
29059	NullFields []string `json:"-"`
29060}
29061
29062func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
29063	type NoMethod RegionDisksAddResourcePoliciesRequest
29064	raw := NoMethod(*s)
29065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29066}
29067
29068type RegionDisksRemoveResourcePoliciesRequest struct {
29069	// ResourcePolicies: Resource policies to be removed from this disk.
29070	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
29071
29072	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") 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. "ResourcePolicies") to
29081	// include in API requests with the JSON null value. By default, fields
29082	// with empty values are omitted from API requests. However, any field
29083	// with an empty value appearing in NullFields will be sent to the
29084	// server as null. It is an error if a field in this list has a
29085	// non-empty value. This may be used to include null fields in Patch
29086	// requests.
29087	NullFields []string `json:"-"`
29088}
29089
29090func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
29091	type NoMethod RegionDisksRemoveResourcePoliciesRequest
29092	raw := NoMethod(*s)
29093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29094}
29095
29096type RegionDisksResizeRequest struct {
29097	// SizeGb: The new size of the regional persistent disk, which is
29098	// specified in GB.
29099	SizeGb int64 `json:"sizeGb,omitempty,string"`
29100
29101	// ForceSendFields is a list of field names (e.g. "SizeGb") to
29102	// unconditionally include in API requests. By default, fields with
29103	// empty values are omitted from API requests. However, any non-pointer,
29104	// non-interface field appearing in ForceSendFields will be sent to the
29105	// server regardless of whether the field is empty or not. This may be
29106	// used to include empty fields in Patch requests.
29107	ForceSendFields []string `json:"-"`
29108
29109	// NullFields is a list of field names (e.g. "SizeGb") to include in API
29110	// requests with the JSON null value. By default, fields with empty
29111	// values are omitted from API requests. However, any field with an
29112	// empty value appearing in NullFields will be sent to the server as
29113	// null. It is an error if a field in this list has a non-empty value.
29114	// This may be used to include null fields in Patch requests.
29115	NullFields []string `json:"-"`
29116}
29117
29118func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
29119	type NoMethod RegionDisksResizeRequest
29120	raw := NoMethod(*s)
29121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29122}
29123
29124// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
29125type RegionInstanceGroupList struct {
29126	// Id: [Output Only] Unique identifier for the resource; defined by the
29127	// server.
29128	Id string `json:"id,omitempty"`
29129
29130	// Items: A list of InstanceGroup resources.
29131	Items []*InstanceGroup `json:"items,omitempty"`
29132
29133	// Kind: The resource type.
29134	Kind string `json:"kind,omitempty"`
29135
29136	// NextPageToken: [Output Only] This token allows you to get the next
29137	// page of results for list requests. If the number of results is larger
29138	// than maxResults, use the nextPageToken as a value for the query
29139	// parameter pageToken in the next list request. Subsequent list
29140	// requests will have their own nextPageToken to continue paging through
29141	// the results.
29142	NextPageToken string `json:"nextPageToken,omitempty"`
29143
29144	// SelfLink: [Output Only] Server-defined URL for this resource.
29145	SelfLink string `json:"selfLink,omitempty"`
29146
29147	// Warning: [Output Only] Informational warning message.
29148	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
29149
29150	// ServerResponse contains the HTTP response code and headers from the
29151	// server.
29152	googleapi.ServerResponse `json:"-"`
29153
29154	// ForceSendFields is a list of field names (e.g. "Id") to
29155	// unconditionally include in API requests. By default, fields with
29156	// empty values are omitted from API requests. However, any non-pointer,
29157	// non-interface field appearing in ForceSendFields will be sent to the
29158	// server regardless of whether the field is empty or not. This may be
29159	// used to include empty fields in Patch requests.
29160	ForceSendFields []string `json:"-"`
29161
29162	// NullFields is a list of field names (e.g. "Id") to include in API
29163	// requests with the JSON null value. By default, fields with empty
29164	// values are omitted from API requests. However, any field with an
29165	// empty value appearing in NullFields will be sent to the server as
29166	// null. It is an error if a field in this list has a non-empty value.
29167	// This may be used to include null fields in Patch requests.
29168	NullFields []string `json:"-"`
29169}
29170
29171func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
29172	type NoMethod RegionInstanceGroupList
29173	raw := NoMethod(*s)
29174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29175}
29176
29177// RegionInstanceGroupListWarning: [Output Only] Informational warning
29178// message.
29179type RegionInstanceGroupListWarning struct {
29180	// Code: [Output Only] A warning code, if applicable. For example,
29181	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29182	// the response.
29183	//
29184	// Possible values:
29185	//   "CLEANUP_FAILED"
29186	//   "DEPRECATED_RESOURCE_USED"
29187	//   "DEPRECATED_TYPE_USED"
29188	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29189	//   "EXPERIMENTAL_TYPE_USED"
29190	//   "EXTERNAL_API_WARNING"
29191	//   "FIELD_VALUE_OVERRIDEN"
29192	//   "INJECTED_KERNELS_DEPRECATED"
29193	//   "MISSING_TYPE_DEPENDENCY"
29194	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29195	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29196	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29197	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29198	//   "NEXT_HOP_NOT_RUNNING"
29199	//   "NOT_CRITICAL_ERROR"
29200	//   "NO_RESULTS_ON_PAGE"
29201	//   "REQUIRED_TOS_AGREEMENT"
29202	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29203	//   "RESOURCE_NOT_DELETED"
29204	//   "SCHEMA_VALIDATION_IGNORED"
29205	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29206	//   "UNDECLARED_PROPERTIES"
29207	//   "UNREACHABLE"
29208	Code string `json:"code,omitempty"`
29209
29210	// Data: [Output Only] Metadata about this warning in key: value format.
29211	// For example:
29212	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29213	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
29214
29215	// Message: [Output Only] A human-readable description of the warning
29216	// code.
29217	Message string `json:"message,omitempty"`
29218
29219	// ForceSendFields is a list of field names (e.g. "Code") to
29220	// unconditionally include in API requests. By default, fields with
29221	// empty values are omitted from API requests. However, any non-pointer,
29222	// non-interface field appearing in ForceSendFields will be sent to the
29223	// server regardless of whether the field is empty or not. This may be
29224	// used to include empty fields in Patch requests.
29225	ForceSendFields []string `json:"-"`
29226
29227	// NullFields is a list of field names (e.g. "Code") to include in API
29228	// requests with the JSON null value. By default, fields with empty
29229	// values are omitted from API requests. However, any field with an
29230	// empty value appearing in NullFields will be sent to the server as
29231	// null. It is an error if a field in this list has a non-empty value.
29232	// This may be used to include null fields in Patch requests.
29233	NullFields []string `json:"-"`
29234}
29235
29236func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
29237	type NoMethod RegionInstanceGroupListWarning
29238	raw := NoMethod(*s)
29239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29240}
29241
29242type RegionInstanceGroupListWarningData struct {
29243	// Key: [Output Only] A key that provides more detail on the warning
29244	// being returned. For example, for warnings where there are no results
29245	// in a list request for a particular zone, this key might be scope and
29246	// the key value might be the zone name. Other examples might be a key
29247	// indicating a deprecated resource and a suggested replacement, or a
29248	// warning about invalid network settings (for example, if an instance
29249	// attempts to perform IP forwarding but is not enabled for IP
29250	// forwarding).
29251	Key string `json:"key,omitempty"`
29252
29253	// Value: [Output Only] A warning data value corresponding to the key.
29254	Value string `json:"value,omitempty"`
29255
29256	// ForceSendFields is a list of field names (e.g. "Key") to
29257	// unconditionally include in API requests. By default, fields with
29258	// empty values are omitted from API requests. However, any non-pointer,
29259	// non-interface field appearing in ForceSendFields will be sent to the
29260	// server regardless of whether the field is empty or not. This may be
29261	// used to include empty fields in Patch requests.
29262	ForceSendFields []string `json:"-"`
29263
29264	// NullFields is a list of field names (e.g. "Key") to include in API
29265	// requests with the JSON null value. By default, fields with empty
29266	// values are omitted from API requests. However, any field with an
29267	// empty value appearing in NullFields will be sent to the server as
29268	// null. It is an error if a field in this list has a non-empty value.
29269	// This may be used to include null fields in Patch requests.
29270	NullFields []string `json:"-"`
29271}
29272
29273func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
29274	type NoMethod RegionInstanceGroupListWarningData
29275	raw := NoMethod(*s)
29276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29277}
29278
29279// RegionInstanceGroupManagerDeleteInstanceConfigReq:
29280// RegionInstanceGroupManagers.deletePerInstanceConfigs
29281type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
29282	// Names: The list of instance names for which we want to delete
29283	// per-instance configs on this managed instance group.
29284	Names []string `json:"names,omitempty"`
29285
29286	// ForceSendFields is a list of field names (e.g. "Names") to
29287	// unconditionally include in API requests. By default, fields with
29288	// empty values are omitted from API requests. However, any non-pointer,
29289	// non-interface field appearing in ForceSendFields will be sent to the
29290	// server regardless of whether the field is empty or not. This may be
29291	// used to include empty fields in Patch requests.
29292	ForceSendFields []string `json:"-"`
29293
29294	// NullFields is a list of field names (e.g. "Names") to include in API
29295	// requests with the JSON null value. By default, fields with empty
29296	// values are omitted from API requests. However, any field with an
29297	// empty value appearing in NullFields will be sent to the server as
29298	// null. It is an error if a field in this list has a non-empty value.
29299	// This may be used to include null fields in Patch requests.
29300	NullFields []string `json:"-"`
29301}
29302
29303func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
29304	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
29305	raw := NoMethod(*s)
29306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29307}
29308
29309// RegionInstanceGroupManagerList: Contains a list of managed instance
29310// groups.
29311type RegionInstanceGroupManagerList struct {
29312	// Id: [Output Only] Unique identifier for the resource; defined by the
29313	// server.
29314	Id string `json:"id,omitempty"`
29315
29316	// Items: A list of InstanceGroupManager resources.
29317	Items []*InstanceGroupManager `json:"items,omitempty"`
29318
29319	// Kind: [Output Only] The resource type, which is always
29320	// compute#instanceGroupManagerList for a list of managed instance
29321	// groups that exist in th regional scope.
29322	Kind string `json:"kind,omitempty"`
29323
29324	// NextPageToken: [Output Only] This token allows you to get the next
29325	// page of results for list requests. If the number of results is larger
29326	// than maxResults, use the nextPageToken as a value for the query
29327	// parameter pageToken in the next list request. Subsequent list
29328	// requests will have their own nextPageToken to continue paging through
29329	// the results.
29330	NextPageToken string `json:"nextPageToken,omitempty"`
29331
29332	// SelfLink: [Output Only] Server-defined URL for this resource.
29333	SelfLink string `json:"selfLink,omitempty"`
29334
29335	// Warning: [Output Only] Informational warning message.
29336	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
29337
29338	// ServerResponse contains the HTTP response code and headers from the
29339	// server.
29340	googleapi.ServerResponse `json:"-"`
29341
29342	// ForceSendFields is a list of field names (e.g. "Id") to
29343	// unconditionally include in API requests. By default, fields with
29344	// empty values are omitted from API requests. However, any non-pointer,
29345	// non-interface field appearing in ForceSendFields will be sent to the
29346	// server regardless of whether the field is empty or not. This may be
29347	// used to include empty fields in Patch requests.
29348	ForceSendFields []string `json:"-"`
29349
29350	// NullFields is a list of field names (e.g. "Id") to include in API
29351	// requests with the JSON null value. By default, fields with empty
29352	// values are omitted from API requests. However, any field with an
29353	// empty value appearing in NullFields will be sent to the server as
29354	// null. It is an error if a field in this list has a non-empty value.
29355	// This may be used to include null fields in Patch requests.
29356	NullFields []string `json:"-"`
29357}
29358
29359func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
29360	type NoMethod RegionInstanceGroupManagerList
29361	raw := NoMethod(*s)
29362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29363}
29364
29365// RegionInstanceGroupManagerListWarning: [Output Only] Informational
29366// warning message.
29367type RegionInstanceGroupManagerListWarning struct {
29368	// Code: [Output Only] A warning code, if applicable. For example,
29369	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29370	// the response.
29371	//
29372	// Possible values:
29373	//   "CLEANUP_FAILED"
29374	//   "DEPRECATED_RESOURCE_USED"
29375	//   "DEPRECATED_TYPE_USED"
29376	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29377	//   "EXPERIMENTAL_TYPE_USED"
29378	//   "EXTERNAL_API_WARNING"
29379	//   "FIELD_VALUE_OVERRIDEN"
29380	//   "INJECTED_KERNELS_DEPRECATED"
29381	//   "MISSING_TYPE_DEPENDENCY"
29382	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29383	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29384	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29385	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29386	//   "NEXT_HOP_NOT_RUNNING"
29387	//   "NOT_CRITICAL_ERROR"
29388	//   "NO_RESULTS_ON_PAGE"
29389	//   "REQUIRED_TOS_AGREEMENT"
29390	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29391	//   "RESOURCE_NOT_DELETED"
29392	//   "SCHEMA_VALIDATION_IGNORED"
29393	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29394	//   "UNDECLARED_PROPERTIES"
29395	//   "UNREACHABLE"
29396	Code string `json:"code,omitempty"`
29397
29398	// Data: [Output Only] Metadata about this warning in key: value format.
29399	// For example:
29400	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29401	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
29402
29403	// Message: [Output Only] A human-readable description of the warning
29404	// code.
29405	Message string `json:"message,omitempty"`
29406
29407	// ForceSendFields is a list of field names (e.g. "Code") to
29408	// unconditionally include in API requests. By default, fields with
29409	// empty values are omitted from API requests. However, any non-pointer,
29410	// non-interface field appearing in ForceSendFields will be sent to the
29411	// server regardless of whether the field is empty or not. This may be
29412	// used to include empty fields in Patch requests.
29413	ForceSendFields []string `json:"-"`
29414
29415	// NullFields is a list of field names (e.g. "Code") to include in API
29416	// requests with the JSON null value. By default, fields with empty
29417	// values are omitted from API requests. However, any field with an
29418	// empty value appearing in NullFields will be sent to the server as
29419	// null. It is an error if a field in this list has a non-empty value.
29420	// This may be used to include null fields in Patch requests.
29421	NullFields []string `json:"-"`
29422}
29423
29424func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
29425	type NoMethod RegionInstanceGroupManagerListWarning
29426	raw := NoMethod(*s)
29427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29428}
29429
29430type RegionInstanceGroupManagerListWarningData struct {
29431	// Key: [Output Only] A key that provides more detail on the warning
29432	// being returned. For example, for warnings where there are no results
29433	// in a list request for a particular zone, this key might be scope and
29434	// the key value might be the zone name. Other examples might be a key
29435	// indicating a deprecated resource and a suggested replacement, or a
29436	// warning about invalid network settings (for example, if an instance
29437	// attempts to perform IP forwarding but is not enabled for IP
29438	// forwarding).
29439	Key string `json:"key,omitempty"`
29440
29441	// Value: [Output Only] A warning data value corresponding to the key.
29442	Value string `json:"value,omitempty"`
29443
29444	// ForceSendFields is a list of field names (e.g. "Key") to
29445	// unconditionally include in API requests. By default, fields with
29446	// empty values are omitted from API requests. However, any non-pointer,
29447	// non-interface field appearing in ForceSendFields will be sent to the
29448	// server regardless of whether the field is empty or not. This may be
29449	// used to include empty fields in Patch requests.
29450	ForceSendFields []string `json:"-"`
29451
29452	// NullFields is a list of field names (e.g. "Key") to include in API
29453	// requests with the JSON null value. By default, fields with empty
29454	// values are omitted from API requests. However, any field with an
29455	// empty value appearing in NullFields will be sent to the server as
29456	// null. It is an error if a field in this list has a non-empty value.
29457	// This may be used to include null fields in Patch requests.
29458	NullFields []string `json:"-"`
29459}
29460
29461func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
29462	type NoMethod RegionInstanceGroupManagerListWarningData
29463	raw := NoMethod(*s)
29464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29465}
29466
29467// RegionInstanceGroupManagerPatchInstanceConfigReq:
29468// RegionInstanceGroupManagers.patchPerInstanceConfigs
29469type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
29470	// PerInstanceConfigs: The list of per-instance configs to insert or
29471	// patch on this managed instance group.
29472	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
29473
29474	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
29475	// to unconditionally include in API requests. By default, fields with
29476	// empty values are omitted from API requests. However, any non-pointer,
29477	// non-interface field appearing in ForceSendFields will be sent to the
29478	// server regardless of whether the field is empty or not. This may be
29479	// used to include empty fields in Patch requests.
29480	ForceSendFields []string `json:"-"`
29481
29482	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
29483	// include in API requests with the JSON null value. By default, fields
29484	// with empty values are omitted from API requests. However, any field
29485	// with an empty value appearing in NullFields will be sent to the
29486	// server as null. It is an error if a field in this list has a
29487	// non-empty value. This may be used to include null fields in Patch
29488	// requests.
29489	NullFields []string `json:"-"`
29490}
29491
29492func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
29493	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
29494	raw := NoMethod(*s)
29495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29496}
29497
29498// RegionInstanceGroupManagerUpdateInstanceConfigReq:
29499// RegionInstanceGroupManagers.updatePerInstanceConfigs
29500type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
29501	// PerInstanceConfigs: The list of per-instance configs to insert or
29502	// patch on this managed instance group.
29503	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
29504
29505	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
29506	// to unconditionally include in API requests. By default, fields with
29507	// empty values are omitted from API requests. However, any non-pointer,
29508	// non-interface field appearing in ForceSendFields will be sent to the
29509	// server regardless of whether the field is empty or not. This may be
29510	// used to include empty fields in Patch requests.
29511	ForceSendFields []string `json:"-"`
29512
29513	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
29514	// include in API requests with the JSON null value. By default, fields
29515	// with empty values are omitted from API requests. However, any field
29516	// with an empty value appearing in NullFields will be sent to the
29517	// server as null. It is an error if a field in this list has a
29518	// non-empty value. This may be used to include null fields in Patch
29519	// requests.
29520	NullFields []string `json:"-"`
29521}
29522
29523func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
29524	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
29525	raw := NoMethod(*s)
29526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29527}
29528
29529type RegionInstanceGroupManagersAbandonInstancesRequest struct {
29530	// Instances: The URLs of one or more instances to abandon. This can be
29531	// a full URL or a partial URL, such as
29532	// zones/[ZONE]/instances/[INSTANCE_NAME].
29533	Instances []string `json:"instances,omitempty"`
29534
29535	// ForceSendFields is a list of field names (e.g. "Instances") to
29536	// unconditionally include in API requests. By default, fields with
29537	// empty values are omitted from API requests. However, any non-pointer,
29538	// non-interface field appearing in ForceSendFields will be sent to the
29539	// server regardless of whether the field is empty or not. This may be
29540	// used to include empty fields in Patch requests.
29541	ForceSendFields []string `json:"-"`
29542
29543	// NullFields is a list of field names (e.g. "Instances") to include in
29544	// API requests with the JSON null value. By default, fields with empty
29545	// values are omitted from API requests. However, any field with an
29546	// empty value appearing in NullFields will be sent to the server as
29547	// null. It is an error if a field in this list has a non-empty value.
29548	// This may be used to include null fields in Patch requests.
29549	NullFields []string `json:"-"`
29550}
29551
29552func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
29553	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
29554	raw := NoMethod(*s)
29555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29556}
29557
29558// RegionInstanceGroupManagersApplyUpdatesRequest:
29559// InstanceGroupManagers.applyUpdatesToInstances
29560type RegionInstanceGroupManagersApplyUpdatesRequest struct {
29561	// Instances: The list of URLs of one or more instances for which you
29562	// want to apply updates. Each URL can be a full URL or a partial URL,
29563	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
29564	Instances []string `json:"instances,omitempty"`
29565
29566	// MinimalAction: The minimal action that you want to perform on each
29567	// instance during the update:
29568	// - REPLACE: At minimum, delete the instance and create it again.
29569	// - RESTART: Stop the instance and start it again.
29570	// - REFRESH: Do not stop the instance.
29571	// - NONE: Do not disrupt the instance at all.  By default, the minimum
29572	// action is NONE. If your update requires a more disruptive action than
29573	// you set with this flag, the necessary action is performed to execute
29574	// the update.
29575	//
29576	// Possible values:
29577	//   "NONE"
29578	//   "REFRESH"
29579	//   "REPLACE"
29580	//   "RESTART"
29581	MinimalAction string `json:"minimalAction,omitempty"`
29582
29583	// MostDisruptiveAllowedAction: The most disruptive action that you want
29584	// to perform on each instance during the update:
29585	// - REPLACE: Delete the instance and create it again.
29586	// - RESTART: Stop the instance and start it again.
29587	// - REFRESH: Do not stop the instance.
29588	// - NONE: Do not disrupt the instance at all.  By default, the most
29589	// disruptive allowed action is REPLACE. If your update requires a more
29590	// disruptive action than you set with this flag, the update request
29591	// will fail.
29592	//
29593	// Possible values:
29594	//   "NONE"
29595	//   "REFRESH"
29596	//   "REPLACE"
29597	//   "RESTART"
29598	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
29599
29600	// ForceSendFields is a list of field names (e.g. "Instances") to
29601	// unconditionally include in API requests. By default, fields with
29602	// empty values are omitted from API requests. However, any non-pointer,
29603	// non-interface field appearing in ForceSendFields will be sent to the
29604	// server regardless of whether the field is empty or not. This may be
29605	// used to include empty fields in Patch requests.
29606	ForceSendFields []string `json:"-"`
29607
29608	// NullFields is a list of field names (e.g. "Instances") to include in
29609	// API requests with the JSON null value. By default, fields with empty
29610	// values are omitted from API requests. However, any field with an
29611	// empty value appearing in NullFields will be sent to the server as
29612	// null. It is an error if a field in this list has a non-empty value.
29613	// This may be used to include null fields in Patch requests.
29614	NullFields []string `json:"-"`
29615}
29616
29617func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
29618	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
29619	raw := NoMethod(*s)
29620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29621}
29622
29623// RegionInstanceGroupManagersCreateInstancesRequest:
29624// RegionInstanceGroupManagers.createInstances
29625type RegionInstanceGroupManagersCreateInstancesRequest struct {
29626	// Instances: [Required] List of specifications of per-instance configs.
29627	Instances []*PerInstanceConfig `json:"instances,omitempty"`
29628
29629	// ForceSendFields is a list of field names (e.g. "Instances") to
29630	// unconditionally include in API requests. By default, fields with
29631	// empty values are omitted from API requests. However, any non-pointer,
29632	// non-interface field appearing in ForceSendFields will be sent to the
29633	// server regardless of whether the field is empty or not. This may be
29634	// used to include empty fields in Patch requests.
29635	ForceSendFields []string `json:"-"`
29636
29637	// NullFields is a list of field names (e.g. "Instances") to include in
29638	// API requests with the JSON null value. By default, fields with empty
29639	// values are omitted from API requests. However, any field with an
29640	// empty value appearing in NullFields will be sent to the server as
29641	// null. It is an error if a field in this list has a non-empty value.
29642	// This may be used to include null fields in Patch requests.
29643	NullFields []string `json:"-"`
29644}
29645
29646func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
29647	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
29648	raw := NoMethod(*s)
29649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29650}
29651
29652type RegionInstanceGroupManagersDeleteInstancesRequest struct {
29653	// Instances: The URLs of one or more instances to delete. This can be a
29654	// full URL or a partial URL, such as
29655	// zones/[ZONE]/instances/[INSTANCE_NAME].
29656	Instances []string `json:"instances,omitempty"`
29657
29658	// ForceSendFields is a list of field names (e.g. "Instances") to
29659	// unconditionally include in API requests. By default, fields with
29660	// empty values are omitted from API requests. However, any non-pointer,
29661	// non-interface field appearing in ForceSendFields will be sent to the
29662	// server regardless of whether the field is empty or not. This may be
29663	// used to include empty fields in Patch requests.
29664	ForceSendFields []string `json:"-"`
29665
29666	// NullFields is a list of field names (e.g. "Instances") to include in
29667	// API requests with the JSON null value. By default, fields with empty
29668	// values are omitted from API requests. However, any field with an
29669	// empty value appearing in NullFields will be sent to the server as
29670	// null. It is an error if a field in this list has a non-empty value.
29671	// This may be used to include null fields in Patch requests.
29672	NullFields []string `json:"-"`
29673}
29674
29675func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
29676	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
29677	raw := NoMethod(*s)
29678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29679}
29680
29681type RegionInstanceGroupManagersListErrorsResponse struct {
29682	// Items: [Output Only] The list of errors of the managed instance
29683	// group.
29684	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
29685
29686	// NextPageToken: [Output Only] This token allows you to get the next
29687	// page of results for list requests. If the number of results is larger
29688	// than maxResults, use the nextPageToken as a value for the query
29689	// parameter pageToken in the next list request. Subsequent list
29690	// requests will have their own nextPageToken to continue paging through
29691	// the results.
29692	NextPageToken string `json:"nextPageToken,omitempty"`
29693
29694	// ServerResponse contains the HTTP response code and headers from the
29695	// server.
29696	googleapi.ServerResponse `json:"-"`
29697
29698	// ForceSendFields is a list of field names (e.g. "Items") to
29699	// unconditionally include in API requests. By default, fields with
29700	// empty values are omitted from API requests. However, any non-pointer,
29701	// non-interface field appearing in ForceSendFields will be sent to the
29702	// server regardless of whether the field is empty or not. This may be
29703	// used to include empty fields in Patch requests.
29704	ForceSendFields []string `json:"-"`
29705
29706	// NullFields is a list of field names (e.g. "Items") to include in API
29707	// requests with the JSON null value. By default, fields with empty
29708	// values are omitted from API requests. However, any field with an
29709	// empty value appearing in NullFields will be sent to the server as
29710	// null. It is an error if a field in this list has a non-empty value.
29711	// This may be used to include null fields in Patch requests.
29712	NullFields []string `json:"-"`
29713}
29714
29715func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
29716	type NoMethod RegionInstanceGroupManagersListErrorsResponse
29717	raw := NoMethod(*s)
29718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29719}
29720
29721type RegionInstanceGroupManagersListInstanceConfigsResp struct {
29722	// Items: [Output Only] The list of PerInstanceConfig.
29723	Items []*PerInstanceConfig `json:"items,omitempty"`
29724
29725	// NextPageToken: [Output Only] This token allows you to get the next
29726	// page of results for list requests. If the number of results is larger
29727	// than maxResults, use the nextPageToken as a value for the query
29728	// parameter pageToken in the next list request. Subsequent list
29729	// requests will have their own nextPageToken to continue paging through
29730	// the results.
29731	NextPageToken string `json:"nextPageToken,omitempty"`
29732
29733	// Warning: [Output Only] Informational warning message.
29734	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
29735
29736	// ServerResponse contains the HTTP response code and headers from the
29737	// server.
29738	googleapi.ServerResponse `json:"-"`
29739
29740	// ForceSendFields is a list of field names (e.g. "Items") to
29741	// unconditionally include in API requests. By default, fields with
29742	// empty values are omitted from API requests. However, any non-pointer,
29743	// non-interface field appearing in ForceSendFields will be sent to the
29744	// server regardless of whether the field is empty or not. This may be
29745	// used to include empty fields in Patch requests.
29746	ForceSendFields []string `json:"-"`
29747
29748	// NullFields is a list of field names (e.g. "Items") to include in API
29749	// requests with the JSON null value. By default, fields with empty
29750	// values are omitted from API requests. However, any field with an
29751	// empty value appearing in NullFields will be sent to the server as
29752	// null. It is an error if a field in this list has a non-empty value.
29753	// This may be used to include null fields in Patch requests.
29754	NullFields []string `json:"-"`
29755}
29756
29757func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
29758	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
29759	raw := NoMethod(*s)
29760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29761}
29762
29763// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
29764// Only] Informational warning message.
29765type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
29766	// Code: [Output Only] A warning code, if applicable. For example,
29767	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29768	// the response.
29769	//
29770	// Possible values:
29771	//   "CLEANUP_FAILED"
29772	//   "DEPRECATED_RESOURCE_USED"
29773	//   "DEPRECATED_TYPE_USED"
29774	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29775	//   "EXPERIMENTAL_TYPE_USED"
29776	//   "EXTERNAL_API_WARNING"
29777	//   "FIELD_VALUE_OVERRIDEN"
29778	//   "INJECTED_KERNELS_DEPRECATED"
29779	//   "MISSING_TYPE_DEPENDENCY"
29780	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29781	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29782	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29783	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29784	//   "NEXT_HOP_NOT_RUNNING"
29785	//   "NOT_CRITICAL_ERROR"
29786	//   "NO_RESULTS_ON_PAGE"
29787	//   "REQUIRED_TOS_AGREEMENT"
29788	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29789	//   "RESOURCE_NOT_DELETED"
29790	//   "SCHEMA_VALIDATION_IGNORED"
29791	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29792	//   "UNDECLARED_PROPERTIES"
29793	//   "UNREACHABLE"
29794	Code string `json:"code,omitempty"`
29795
29796	// Data: [Output Only] Metadata about this warning in key: value format.
29797	// For example:
29798	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29799	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
29800
29801	// Message: [Output Only] A human-readable description of the warning
29802	// code.
29803	Message string `json:"message,omitempty"`
29804
29805	// ForceSendFields is a list of field names (e.g. "Code") to
29806	// unconditionally include in API requests. By default, fields with
29807	// empty values are omitted from API requests. However, any non-pointer,
29808	// non-interface field appearing in ForceSendFields will be sent to the
29809	// server regardless of whether the field is empty or not. This may be
29810	// used to include empty fields in Patch requests.
29811	ForceSendFields []string `json:"-"`
29812
29813	// NullFields is a list of field names (e.g. "Code") to include in API
29814	// requests with the JSON null value. By default, fields with empty
29815	// values are omitted from API requests. However, any field with an
29816	// empty value appearing in NullFields will be sent to the server as
29817	// null. It is an error if a field in this list has a non-empty value.
29818	// This may be used to include null fields in Patch requests.
29819	NullFields []string `json:"-"`
29820}
29821
29822func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
29823	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
29824	raw := NoMethod(*s)
29825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29826}
29827
29828type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
29829	// Key: [Output Only] A key that provides more detail on the warning
29830	// being returned. For example, for warnings where there are no results
29831	// in a list request for a particular zone, this key might be scope and
29832	// the key value might be the zone name. Other examples might be a key
29833	// indicating a deprecated resource and a suggested replacement, or a
29834	// warning about invalid network settings (for example, if an instance
29835	// attempts to perform IP forwarding but is not enabled for IP
29836	// forwarding).
29837	Key string `json:"key,omitempty"`
29838
29839	// Value: [Output Only] A warning data value corresponding to the key.
29840	Value string `json:"value,omitempty"`
29841
29842	// ForceSendFields is a list of field names (e.g. "Key") to
29843	// unconditionally include in API requests. By default, fields with
29844	// empty values are omitted from API requests. However, any non-pointer,
29845	// non-interface field appearing in ForceSendFields will be sent to the
29846	// server regardless of whether the field is empty or not. This may be
29847	// used to include empty fields in Patch requests.
29848	ForceSendFields []string `json:"-"`
29849
29850	// NullFields is a list of field names (e.g. "Key") to include in API
29851	// requests with the JSON null value. By default, fields with empty
29852	// values are omitted from API requests. However, any field with an
29853	// empty value appearing in NullFields will be sent to the server as
29854	// null. It is an error if a field in this list has a non-empty value.
29855	// This may be used to include null fields in Patch requests.
29856	NullFields []string `json:"-"`
29857}
29858
29859func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
29860	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
29861	raw := NoMethod(*s)
29862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29863}
29864
29865type RegionInstanceGroupManagersListInstancesResponse struct {
29866	// ManagedInstances: A list of managed instances.
29867	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
29868
29869	// NextPageToken: [Output Only] This token allows you to get the next
29870	// page of results for list requests. If the number of results is larger
29871	// than maxResults, use the nextPageToken as a value for the query
29872	// parameter pageToken in the next list request. Subsequent list
29873	// requests will have their own nextPageToken to continue paging through
29874	// the results.
29875	NextPageToken string `json:"nextPageToken,omitempty"`
29876
29877	// ServerResponse contains the HTTP response code and headers from the
29878	// server.
29879	googleapi.ServerResponse `json:"-"`
29880
29881	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
29882	// unconditionally include in API requests. By default, fields with
29883	// empty values are omitted from API requests. However, any non-pointer,
29884	// non-interface field appearing in ForceSendFields will be sent to the
29885	// server regardless of whether the field is empty or not. This may be
29886	// used to include empty fields in Patch requests.
29887	ForceSendFields []string `json:"-"`
29888
29889	// NullFields is a list of field names (e.g. "ManagedInstances") to
29890	// include in API requests with the JSON null value. By default, fields
29891	// with empty values are omitted from API requests. However, any field
29892	// with an empty value appearing in NullFields will be sent to the
29893	// server as null. It is an error if a field in this list has a
29894	// non-empty value. This may be used to include null fields in Patch
29895	// requests.
29896	NullFields []string `json:"-"`
29897}
29898
29899func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
29900	type NoMethod RegionInstanceGroupManagersListInstancesResponse
29901	raw := NoMethod(*s)
29902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29903}
29904
29905type RegionInstanceGroupManagersRecreateRequest struct {
29906	// Instances: The URLs of one or more instances to recreate. This can be
29907	// a full URL or a partial URL, such as
29908	// zones/[ZONE]/instances/[INSTANCE_NAME].
29909	Instances []string `json:"instances,omitempty"`
29910
29911	// ForceSendFields is a list of field names (e.g. "Instances") to
29912	// unconditionally include in API requests. By default, fields with
29913	// empty values are omitted from API requests. However, any non-pointer,
29914	// non-interface field appearing in ForceSendFields will be sent to the
29915	// server regardless of whether the field is empty or not. This may be
29916	// used to include empty fields in Patch requests.
29917	ForceSendFields []string `json:"-"`
29918
29919	// NullFields is a list of field names (e.g. "Instances") to include in
29920	// API requests with the JSON null value. By default, fields with empty
29921	// values are omitted from API requests. However, any field with an
29922	// empty value appearing in NullFields will be sent to the server as
29923	// null. It is an error if a field in this list has a non-empty value.
29924	// This may be used to include null fields in Patch requests.
29925	NullFields []string `json:"-"`
29926}
29927
29928func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
29929	type NoMethod RegionInstanceGroupManagersRecreateRequest
29930	raw := NoMethod(*s)
29931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29932}
29933
29934type RegionInstanceGroupManagersSetAutoHealingRequest struct {
29935	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
29936
29937	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
29938	// to unconditionally include in API requests. By default, fields with
29939	// empty values are omitted from API requests. However, any non-pointer,
29940	// non-interface field appearing in ForceSendFields will be sent to the
29941	// server regardless of whether the field is empty or not. This may be
29942	// used to include empty fields in Patch requests.
29943	ForceSendFields []string `json:"-"`
29944
29945	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
29946	// include in API requests with the JSON null value. By default, fields
29947	// with empty values are omitted from API requests. However, any field
29948	// with an empty value appearing in NullFields will be sent to the
29949	// server as null. It is an error if a field in this list has a
29950	// non-empty value. This may be used to include null fields in Patch
29951	// requests.
29952	NullFields []string `json:"-"`
29953}
29954
29955func (s *RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
29956	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
29957	raw := NoMethod(*s)
29958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29959}
29960
29961type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
29962	// Fingerprint: Fingerprint of the target pools information, which is a
29963	// hash of the contents. This field is used for optimistic locking when
29964	// you update the target pool entries. This field is optional.
29965	Fingerprint string `json:"fingerprint,omitempty"`
29966
29967	// TargetPools: The URL of all TargetPool resources to which instances
29968	// in the instanceGroup field are added. The target pools automatically
29969	// apply to all of the instances in the managed instance group.
29970	TargetPools []string `json:"targetPools,omitempty"`
29971
29972	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
29973	// unconditionally include in API requests. By default, fields with
29974	// empty values are omitted from API requests. However, any non-pointer,
29975	// non-interface field appearing in ForceSendFields will be sent to the
29976	// server regardless of whether the field is empty or not. This may be
29977	// used to include empty fields in Patch requests.
29978	ForceSendFields []string `json:"-"`
29979
29980	// NullFields is a list of field names (e.g. "Fingerprint") to include
29981	// in API requests with the JSON null value. By default, fields with
29982	// empty values are omitted from API requests. However, any field with
29983	// an empty value appearing in NullFields will be sent to the server as
29984	// null. It is an error if a field in this list has a non-empty value.
29985	// This may be used to include null fields in Patch requests.
29986	NullFields []string `json:"-"`
29987}
29988
29989func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
29990	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
29991	raw := NoMethod(*s)
29992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29993}
29994
29995type RegionInstanceGroupManagersSetTemplateRequest struct {
29996	// InstanceTemplate: URL of the InstanceTemplate resource from which all
29997	// new instances will be created.
29998	InstanceTemplate string `json:"instanceTemplate,omitempty"`
29999
30000	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
30001	// unconditionally include in API requests. By default, fields with
30002	// empty values are omitted from API requests. However, any non-pointer,
30003	// non-interface field appearing in ForceSendFields will be sent to the
30004	// server regardless of whether the field is empty or not. This may be
30005	// used to include empty fields in Patch requests.
30006	ForceSendFields []string `json:"-"`
30007
30008	// NullFields is a list of field names (e.g. "InstanceTemplate") to
30009	// include in API requests with the JSON null value. By default, fields
30010	// with empty values are omitted from API requests. However, any field
30011	// with an empty value appearing in NullFields will be sent to the
30012	// server as null. It is an error if a field in this list has a
30013	// non-empty value. This may be used to include null fields in Patch
30014	// requests.
30015	NullFields []string `json:"-"`
30016}
30017
30018func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
30019	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
30020	raw := NoMethod(*s)
30021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30022}
30023
30024type RegionInstanceGroupsListInstances struct {
30025	// Id: [Output Only] Unique identifier for the resource; defined by the
30026	// server.
30027	Id string `json:"id,omitempty"`
30028
30029	// Items: A list of InstanceWithNamedPorts resources.
30030	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
30031
30032	// Kind: The resource type.
30033	Kind string `json:"kind,omitempty"`
30034
30035	// NextPageToken: [Output Only] This token allows you to get the next
30036	// page of results for list requests. If the number of results is larger
30037	// than maxResults, use the nextPageToken as a value for the query
30038	// parameter pageToken in the next list request. Subsequent list
30039	// requests will have their own nextPageToken to continue paging through
30040	// the results.
30041	NextPageToken string `json:"nextPageToken,omitempty"`
30042
30043	// SelfLink: [Output Only] Server-defined URL for this resource.
30044	SelfLink string `json:"selfLink,omitempty"`
30045
30046	// Warning: [Output Only] Informational warning message.
30047	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
30048
30049	// ServerResponse contains the HTTP response code and headers from the
30050	// server.
30051	googleapi.ServerResponse `json:"-"`
30052
30053	// ForceSendFields is a list of field names (e.g. "Id") to
30054	// unconditionally include in API requests. By default, fields with
30055	// empty values are omitted from API requests. However, any non-pointer,
30056	// non-interface field appearing in ForceSendFields will be sent to the
30057	// server regardless of whether the field is empty or not. This may be
30058	// used to include empty fields in Patch requests.
30059	ForceSendFields []string `json:"-"`
30060
30061	// NullFields is a list of field names (e.g. "Id") to include in API
30062	// requests with the JSON null value. By default, fields with empty
30063	// values are omitted from API requests. However, any field with an
30064	// empty value appearing in NullFields will be sent to the server as
30065	// null. It is an error if a field in this list has a non-empty value.
30066	// This may be used to include null fields in Patch requests.
30067	NullFields []string `json:"-"`
30068}
30069
30070func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
30071	type NoMethod RegionInstanceGroupsListInstances
30072	raw := NoMethod(*s)
30073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30074}
30075
30076// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
30077// warning message.
30078type RegionInstanceGroupsListInstancesWarning struct {
30079	// Code: [Output Only] A warning code, if applicable. For example,
30080	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30081	// the response.
30082	//
30083	// Possible values:
30084	//   "CLEANUP_FAILED"
30085	//   "DEPRECATED_RESOURCE_USED"
30086	//   "DEPRECATED_TYPE_USED"
30087	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30088	//   "EXPERIMENTAL_TYPE_USED"
30089	//   "EXTERNAL_API_WARNING"
30090	//   "FIELD_VALUE_OVERRIDEN"
30091	//   "INJECTED_KERNELS_DEPRECATED"
30092	//   "MISSING_TYPE_DEPENDENCY"
30093	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30094	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30095	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30096	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30097	//   "NEXT_HOP_NOT_RUNNING"
30098	//   "NOT_CRITICAL_ERROR"
30099	//   "NO_RESULTS_ON_PAGE"
30100	//   "REQUIRED_TOS_AGREEMENT"
30101	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30102	//   "RESOURCE_NOT_DELETED"
30103	//   "SCHEMA_VALIDATION_IGNORED"
30104	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30105	//   "UNDECLARED_PROPERTIES"
30106	//   "UNREACHABLE"
30107	Code string `json:"code,omitempty"`
30108
30109	// Data: [Output Only] Metadata about this warning in key: value format.
30110	// For example:
30111	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30112	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
30113
30114	// Message: [Output Only] A human-readable description of the warning
30115	// code.
30116	Message string `json:"message,omitempty"`
30117
30118	// ForceSendFields is a list of field names (e.g. "Code") to
30119	// unconditionally include in API requests. By default, fields with
30120	// empty values are omitted from API requests. However, any non-pointer,
30121	// non-interface field appearing in ForceSendFields will be sent to the
30122	// server regardless of whether the field is empty or not. This may be
30123	// used to include empty fields in Patch requests.
30124	ForceSendFields []string `json:"-"`
30125
30126	// NullFields is a list of field names (e.g. "Code") to include in API
30127	// requests with the JSON null value. By default, fields with empty
30128	// values are omitted from API requests. However, any field with an
30129	// empty value appearing in NullFields will be sent to the server as
30130	// null. It is an error if a field in this list has a non-empty value.
30131	// This may be used to include null fields in Patch requests.
30132	NullFields []string `json:"-"`
30133}
30134
30135func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
30136	type NoMethod RegionInstanceGroupsListInstancesWarning
30137	raw := NoMethod(*s)
30138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30139}
30140
30141type RegionInstanceGroupsListInstancesWarningData struct {
30142	// Key: [Output Only] A key that provides more detail on the warning
30143	// being returned. For example, for warnings where there are no results
30144	// in a list request for a particular zone, this key might be scope and
30145	// the key value might be the zone name. Other examples might be a key
30146	// indicating a deprecated resource and a suggested replacement, or a
30147	// warning about invalid network settings (for example, if an instance
30148	// attempts to perform IP forwarding but is not enabled for IP
30149	// forwarding).
30150	Key string `json:"key,omitempty"`
30151
30152	// Value: [Output Only] A warning data value corresponding to the key.
30153	Value string `json:"value,omitempty"`
30154
30155	// ForceSendFields is a list of field names (e.g. "Key") to
30156	// unconditionally include in API requests. By default, fields with
30157	// empty values are omitted from API requests. However, any non-pointer,
30158	// non-interface field appearing in ForceSendFields will be sent to the
30159	// server regardless of whether the field is empty or not. This may be
30160	// used to include empty fields in Patch requests.
30161	ForceSendFields []string `json:"-"`
30162
30163	// NullFields is a list of field names (e.g. "Key") to include in API
30164	// requests with the JSON null value. By default, fields with empty
30165	// values are omitted from API requests. However, any field with an
30166	// empty value appearing in NullFields will be sent to the server as
30167	// null. It is an error if a field in this list has a non-empty value.
30168	// This may be used to include null fields in Patch requests.
30169	NullFields []string `json:"-"`
30170}
30171
30172func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
30173	type NoMethod RegionInstanceGroupsListInstancesWarningData
30174	raw := NoMethod(*s)
30175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30176}
30177
30178type RegionInstanceGroupsListInstancesRequest struct {
30179	// InstanceState: Instances in which state should be returned. Valid
30180	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
30181	//
30182	// Possible values:
30183	//   "ALL"
30184	//   "RUNNING"
30185	InstanceState string `json:"instanceState,omitempty"`
30186
30187	// PortName: Name of port user is interested in. It is optional. If it
30188	// is set, only information about this ports will be returned. If it is
30189	// not set, all the named ports will be returned. Always lists all
30190	// instances.
30191	PortName string `json:"portName,omitempty"`
30192
30193	// ForceSendFields is a list of field names (e.g. "InstanceState") to
30194	// unconditionally include in API requests. By default, fields with
30195	// empty values are omitted from API requests. However, any non-pointer,
30196	// non-interface field appearing in ForceSendFields will be sent to the
30197	// server regardless of whether the field is empty or not. This may be
30198	// used to include empty fields in Patch requests.
30199	ForceSendFields []string `json:"-"`
30200
30201	// NullFields is a list of field names (e.g. "InstanceState") to include
30202	// in API requests with the JSON null value. By default, fields with
30203	// empty values are omitted from API requests. However, any field with
30204	// an empty value appearing in NullFields will be sent to the server as
30205	// null. It is an error if a field in this list has a non-empty value.
30206	// This may be used to include null fields in Patch requests.
30207	NullFields []string `json:"-"`
30208}
30209
30210func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
30211	type NoMethod RegionInstanceGroupsListInstancesRequest
30212	raw := NoMethod(*s)
30213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30214}
30215
30216type RegionInstanceGroupsSetNamedPortsRequest struct {
30217	// Fingerprint: The fingerprint of the named ports information for this
30218	// instance group. Use this optional property to prevent conflicts when
30219	// multiple users change the named ports settings concurrently. Obtain
30220	// the fingerprint with the instanceGroups.get method. Then, include the
30221	// fingerprint in your request to ensure that you do not overwrite
30222	// changes that were applied from another concurrent request.
30223	Fingerprint string `json:"fingerprint,omitempty"`
30224
30225	// NamedPorts: The list of named ports to set for this instance group.
30226	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
30227
30228	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
30229	// unconditionally include in API requests. By default, fields with
30230	// empty values are omitted from API requests. However, any non-pointer,
30231	// non-interface field appearing in ForceSendFields will be sent to the
30232	// server regardless of whether the field is empty or not. This may be
30233	// used to include empty fields in Patch requests.
30234	ForceSendFields []string `json:"-"`
30235
30236	// NullFields is a list of field names (e.g. "Fingerprint") to include
30237	// in API requests with the JSON null value. By default, fields with
30238	// empty values are omitted from API requests. However, any field with
30239	// an empty value appearing in NullFields will be sent to the server as
30240	// null. It is an error if a field in this list has a non-empty value.
30241	// This may be used to include null fields in Patch requests.
30242	NullFields []string `json:"-"`
30243}
30244
30245func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
30246	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
30247	raw := NoMethod(*s)
30248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30249}
30250
30251// RegionList: Contains a list of region resources.
30252type RegionList struct {
30253	// Id: [Output Only] Unique identifier for the resource; defined by the
30254	// server.
30255	Id string `json:"id,omitempty"`
30256
30257	// Items: A list of Region resources.
30258	Items []*Region `json:"items,omitempty"`
30259
30260	// Kind: [Output Only] Type of resource. Always compute#regionList for
30261	// lists of regions.
30262	Kind string `json:"kind,omitempty"`
30263
30264	// NextPageToken: [Output Only] This token allows you to get the next
30265	// page of results for list requests. If the number of results is larger
30266	// than maxResults, use the nextPageToken as a value for the query
30267	// parameter pageToken in the next list request. Subsequent list
30268	// requests will have their own nextPageToken to continue paging through
30269	// the results.
30270	NextPageToken string `json:"nextPageToken,omitempty"`
30271
30272	// SelfLink: [Output Only] Server-defined URL for this resource.
30273	SelfLink string `json:"selfLink,omitempty"`
30274
30275	// Warning: [Output Only] Informational warning message.
30276	Warning *RegionListWarning `json:"warning,omitempty"`
30277
30278	// ServerResponse contains the HTTP response code and headers from the
30279	// server.
30280	googleapi.ServerResponse `json:"-"`
30281
30282	// ForceSendFields is a list of field names (e.g. "Id") to
30283	// unconditionally include in API requests. By default, fields with
30284	// empty values are omitted from API requests. However, any non-pointer,
30285	// non-interface field appearing in ForceSendFields will be sent to the
30286	// server regardless of whether the field is empty or not. This may be
30287	// used to include empty fields in Patch requests.
30288	ForceSendFields []string `json:"-"`
30289
30290	// NullFields is a list of field names (e.g. "Id") to include in API
30291	// requests with the JSON null value. By default, fields with empty
30292	// values are omitted from API requests. However, any field with an
30293	// empty value appearing in NullFields will be sent to the server as
30294	// null. It is an error if a field in this list has a non-empty value.
30295	// This may be used to include null fields in Patch requests.
30296	NullFields []string `json:"-"`
30297}
30298
30299func (s *RegionList) MarshalJSON() ([]byte, error) {
30300	type NoMethod RegionList
30301	raw := NoMethod(*s)
30302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30303}
30304
30305// RegionListWarning: [Output Only] Informational warning message.
30306type RegionListWarning struct {
30307	// Code: [Output Only] A warning code, if applicable. For example,
30308	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30309	// the response.
30310	//
30311	// Possible values:
30312	//   "CLEANUP_FAILED"
30313	//   "DEPRECATED_RESOURCE_USED"
30314	//   "DEPRECATED_TYPE_USED"
30315	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30316	//   "EXPERIMENTAL_TYPE_USED"
30317	//   "EXTERNAL_API_WARNING"
30318	//   "FIELD_VALUE_OVERRIDEN"
30319	//   "INJECTED_KERNELS_DEPRECATED"
30320	//   "MISSING_TYPE_DEPENDENCY"
30321	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30322	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30323	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30324	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30325	//   "NEXT_HOP_NOT_RUNNING"
30326	//   "NOT_CRITICAL_ERROR"
30327	//   "NO_RESULTS_ON_PAGE"
30328	//   "REQUIRED_TOS_AGREEMENT"
30329	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30330	//   "RESOURCE_NOT_DELETED"
30331	//   "SCHEMA_VALIDATION_IGNORED"
30332	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30333	//   "UNDECLARED_PROPERTIES"
30334	//   "UNREACHABLE"
30335	Code string `json:"code,omitempty"`
30336
30337	// Data: [Output Only] Metadata about this warning in key: value format.
30338	// For example:
30339	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30340	Data []*RegionListWarningData `json:"data,omitempty"`
30341
30342	// Message: [Output Only] A human-readable description of the warning
30343	// code.
30344	Message string `json:"message,omitempty"`
30345
30346	// ForceSendFields is a list of field names (e.g. "Code") to
30347	// unconditionally include in API requests. By default, fields with
30348	// empty values are omitted from API requests. However, any non-pointer,
30349	// non-interface field appearing in ForceSendFields will be sent to the
30350	// server regardless of whether the field is empty or not. This may be
30351	// used to include empty fields in Patch requests.
30352	ForceSendFields []string `json:"-"`
30353
30354	// NullFields is a list of field names (e.g. "Code") to include in API
30355	// requests with the JSON null value. By default, fields with empty
30356	// values are omitted from API requests. However, any field with an
30357	// empty value appearing in NullFields will be sent to the server as
30358	// null. It is an error if a field in this list has a non-empty value.
30359	// This may be used to include null fields in Patch requests.
30360	NullFields []string `json:"-"`
30361}
30362
30363func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
30364	type NoMethod RegionListWarning
30365	raw := NoMethod(*s)
30366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30367}
30368
30369type RegionListWarningData struct {
30370	// Key: [Output Only] A key that provides more detail on the warning
30371	// being returned. For example, for warnings where there are no results
30372	// in a list request for a particular zone, this key might be scope and
30373	// the key value might be the zone name. Other examples might be a key
30374	// indicating a deprecated resource and a suggested replacement, or a
30375	// warning about invalid network settings (for example, if an instance
30376	// attempts to perform IP forwarding but is not enabled for IP
30377	// forwarding).
30378	Key string `json:"key,omitempty"`
30379
30380	// Value: [Output Only] A warning data value corresponding to the key.
30381	Value string `json:"value,omitempty"`
30382
30383	// ForceSendFields is a list of field names (e.g. "Key") to
30384	// unconditionally include in API requests. By default, fields with
30385	// empty values are omitted from API requests. However, any non-pointer,
30386	// non-interface field appearing in ForceSendFields will be sent to the
30387	// server regardless of whether the field is empty or not. This may be
30388	// used to include empty fields in Patch requests.
30389	ForceSendFields []string `json:"-"`
30390
30391	// NullFields is a list of field names (e.g. "Key") to include in API
30392	// requests with the JSON null value. By default, fields with empty
30393	// values are omitted from API requests. However, any field with an
30394	// empty value appearing in NullFields will be sent to the server as
30395	// null. It is an error if a field in this list has a non-empty value.
30396	// This may be used to include null fields in Patch requests.
30397	NullFields []string `json:"-"`
30398}
30399
30400func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
30401	type NoMethod RegionListWarningData
30402	raw := NoMethod(*s)
30403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30404}
30405
30406type RegionSetLabelsRequest struct {
30407	// LabelFingerprint: The fingerprint of the previous set of labels for
30408	// this resource, used to detect conflicts. The fingerprint is initially
30409	// generated by Compute Engine and changes after every request to modify
30410	// or update labels. You must always provide an up-to-date fingerprint
30411	// hash in order to update or change labels. Make a get() request to the
30412	// resource to get the latest fingerprint.
30413	LabelFingerprint string `json:"labelFingerprint,omitempty"`
30414
30415	// Labels: The labels to set for this resource.
30416	Labels map[string]string `json:"labels,omitempty"`
30417
30418	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
30419	// unconditionally include in API requests. By default, fields with
30420	// empty values are omitted from API requests. However, any non-pointer,
30421	// non-interface field appearing in ForceSendFields will be sent to the
30422	// server regardless of whether the field is empty or not. This may be
30423	// used to include empty fields in Patch requests.
30424	ForceSendFields []string `json:"-"`
30425
30426	// NullFields is a list of field names (e.g. "LabelFingerprint") to
30427	// include in API requests with the JSON null value. By default, fields
30428	// with empty values are omitted from API requests. However, any field
30429	// with an empty value appearing in NullFields will be sent to the
30430	// server as null. It is an error if a field in this list has a
30431	// non-empty value. This may be used to include null fields in Patch
30432	// requests.
30433	NullFields []string `json:"-"`
30434}
30435
30436func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
30437	type NoMethod RegionSetLabelsRequest
30438	raw := NoMethod(*s)
30439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30440}
30441
30442type RegionSetPolicyRequest struct {
30443	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
30444	// Deprecated. Use 'policy' to specify bindings.
30445	Bindings []*Binding `json:"bindings,omitempty"`
30446
30447	// Etag: Flatten Policy to create a backward compatible wire-format.
30448	// Deprecated. Use 'policy' to specify the etag.
30449	Etag string `json:"etag,omitempty"`
30450
30451	// Policy: REQUIRED: The complete policy to be applied to the
30452	// 'resource'. The size of the policy is limited to a few 10s of KB. An
30453	// empty policy is in general a valid policy but certain services (like
30454	// Projects) might reject them.
30455	Policy *Policy `json:"policy,omitempty"`
30456
30457	// ForceSendFields is a list of field names (e.g. "Bindings") to
30458	// unconditionally include in API requests. By default, fields with
30459	// empty values are omitted from API requests. However, any non-pointer,
30460	// non-interface field appearing in ForceSendFields will be sent to the
30461	// server regardless of whether the field is empty or not. This may be
30462	// used to include empty fields in Patch requests.
30463	ForceSendFields []string `json:"-"`
30464
30465	// NullFields is a list of field names (e.g. "Bindings") to include in
30466	// API requests with the JSON null value. By default, fields with empty
30467	// values are omitted from API requests. However, any field with an
30468	// empty value appearing in NullFields will be sent to the server as
30469	// null. It is an error if a field in this list has a non-empty value.
30470	// This may be used to include null fields in Patch requests.
30471	NullFields []string `json:"-"`
30472}
30473
30474func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
30475	type NoMethod RegionSetPolicyRequest
30476	raw := NoMethod(*s)
30477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30478}
30479
30480type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
30481	// SslCertificates: New set of SslCertificate resources to associate
30482	// with this TargetHttpsProxy resource. Currently exactly one
30483	// SslCertificate resource must be specified.
30484	SslCertificates []string `json:"sslCertificates,omitempty"`
30485
30486	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
30487	// unconditionally include in API requests. By default, fields with
30488	// empty values are omitted from API requests. However, any non-pointer,
30489	// non-interface field appearing in ForceSendFields will be sent to the
30490	// server regardless of whether the field is empty or not. This may be
30491	// used to include empty fields in Patch requests.
30492	ForceSendFields []string `json:"-"`
30493
30494	// NullFields is a list of field names (e.g. "SslCertificates") to
30495	// include in API requests with the JSON null value. By default, fields
30496	// with empty values are omitted from API requests. However, any field
30497	// with an empty value appearing in NullFields will be sent to the
30498	// server as null. It is an error if a field in this list has a
30499	// non-empty value. This may be used to include null fields in Patch
30500	// requests.
30501	NullFields []string `json:"-"`
30502}
30503
30504func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
30505	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
30506	raw := NoMethod(*s)
30507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30508}
30509
30510type RegionUrlMapsValidateRequest struct {
30511	// Resource: Content of the UrlMap to be validated.
30512	Resource *UrlMap `json:"resource,omitempty"`
30513
30514	// ForceSendFields is a list of field names (e.g. "Resource") to
30515	// unconditionally include in API requests. By default, fields with
30516	// empty values are omitted from API requests. However, any non-pointer,
30517	// non-interface field appearing in ForceSendFields will be sent to the
30518	// server regardless of whether the field is empty or not. This may be
30519	// used to include empty fields in Patch requests.
30520	ForceSendFields []string `json:"-"`
30521
30522	// NullFields is a list of field names (e.g. "Resource") to include in
30523	// API requests with the JSON null value. By default, fields with empty
30524	// values are omitted from API requests. However, any field with an
30525	// empty value appearing in NullFields will be sent to the server as
30526	// null. It is an error if a field in this list has a non-empty value.
30527	// This may be used to include null fields in Patch requests.
30528	NullFields []string `json:"-"`
30529}
30530
30531func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
30532	type NoMethod RegionUrlMapsValidateRequest
30533	raw := NoMethod(*s)
30534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30535}
30536
30537// RequestMirrorPolicy: A policy that specifies how requests intended
30538// for the route's backends are shadowed to a separate mirrored backend
30539// service. Loadbalancer does not wait for responses from the shadow
30540// service. Prior to sending traffic to the shadow service, the host /
30541// authority header is suffixed with -shadow.
30542type RequestMirrorPolicy struct {
30543	// BackendService: The full or partial URL to the BackendService
30544	// resource being mirrored to.
30545	BackendService string `json:"backendService,omitempty"`
30546
30547	// ForceSendFields is a list of field names (e.g. "BackendService") to
30548	// unconditionally include in API requests. By default, fields with
30549	// empty values are omitted from API requests. However, any non-pointer,
30550	// non-interface field appearing in ForceSendFields will be sent to the
30551	// server regardless of whether the field is empty or not. This may be
30552	// used to include empty fields in Patch requests.
30553	ForceSendFields []string `json:"-"`
30554
30555	// NullFields is a list of field names (e.g. "BackendService") to
30556	// include in API requests with the JSON null value. By default, fields
30557	// with empty values are omitted from API requests. However, any field
30558	// with an empty value appearing in NullFields will be sent to the
30559	// server as null. It is an error if a field in this list has a
30560	// non-empty value. This may be used to include null fields in Patch
30561	// requests.
30562	NullFields []string `json:"-"`
30563}
30564
30565func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
30566	type NoMethod RequestMirrorPolicy
30567	raw := NoMethod(*s)
30568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30569}
30570
30571// Reservation: Represents a reservation resource. A reservation ensures
30572// that capacity is held in a specific zone even if the reserved VMs are
30573// not running. For more information, read  Reserving zonal resources.
30574// (== resource_for {$api_version}.reservations ==)
30575type Reservation struct {
30576	// Commitment: [Output Only] Full or partial URL to a parent commitment.
30577	// This field displays for reservations that are tied to a commitment.
30578	Commitment string `json:"commitment,omitempty"`
30579
30580	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30581	// format.
30582	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30583
30584	// Description: An optional description of this resource. Provide this
30585	// property when you create the resource.
30586	Description string `json:"description,omitempty"`
30587
30588	// Id: [Output Only] The unique identifier for the resource. This
30589	// identifier is defined by the server.
30590	Id uint64 `json:"id,omitempty,string"`
30591
30592	// Kind: [Output Only] Type of the resource. Always compute#reservations
30593	// for reservations.
30594	Kind string `json:"kind,omitempty"`
30595
30596	// Name: The name of the resource, provided by the client when initially
30597	// creating the resource. The resource name must be 1-63 characters
30598	// long, and comply with RFC1035. Specifically, the name must be 1-63
30599	// characters long and match the regular expression
30600	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
30601	// a lowercase letter, and all following characters must be a dash,
30602	// lowercase letter, or digit, except the last character, which cannot
30603	// be a dash.
30604	Name string `json:"name,omitempty"`
30605
30606	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
30607	// resource.
30608	SelfLink string `json:"selfLink,omitempty"`
30609
30610	// SpecificReservation: Reservation for instances with specific machine
30611	// shapes.
30612	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
30613
30614	// SpecificReservationRequired: Indicates whether the reservation can be
30615	// consumed by VMs with affinity for "any" reservation. If the field is
30616	// set, then only VMs that target the reservation by name can consume
30617	// from this reservation.
30618	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
30619
30620	// Status: [Output Only] The status of the reservation.
30621	//
30622	// Possible values:
30623	//   "CREATING"
30624	//   "DELETING"
30625	//   "INVALID"
30626	//   "READY"
30627	//   "UPDATING"
30628	Status string `json:"status,omitempty"`
30629
30630	// Zone: Zone in which the reservation resides. A zone must be provided
30631	// if the reservation is created within a commitment.
30632	Zone string `json:"zone,omitempty"`
30633
30634	// ServerResponse contains the HTTP response code and headers from the
30635	// server.
30636	googleapi.ServerResponse `json:"-"`
30637
30638	// ForceSendFields is a list of field names (e.g. "Commitment") to
30639	// unconditionally include in API requests. By default, fields with
30640	// empty values are omitted from API requests. However, any non-pointer,
30641	// non-interface field appearing in ForceSendFields will be sent to the
30642	// server regardless of whether the field is empty or not. This may be
30643	// used to include empty fields in Patch requests.
30644	ForceSendFields []string `json:"-"`
30645
30646	// NullFields is a list of field names (e.g. "Commitment") to include in
30647	// API requests with the JSON null value. By default, fields with empty
30648	// values are omitted from API requests. However, any field with an
30649	// empty value appearing in NullFields will be sent to the server as
30650	// null. It is an error if a field in this list has a non-empty value.
30651	// This may be used to include null fields in Patch requests.
30652	NullFields []string `json:"-"`
30653}
30654
30655func (s *Reservation) MarshalJSON() ([]byte, error) {
30656	type NoMethod Reservation
30657	raw := NoMethod(*s)
30658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30659}
30660
30661// ReservationAffinity: Specifies the reservations that this instance
30662// can consume from.
30663type ReservationAffinity struct {
30664	// ConsumeReservationType: Specifies the type of reservation from which
30665	// this instance can consume resources: ANY_RESERVATION (default),
30666	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
30667	// instances for examples.
30668	//
30669	// Possible values:
30670	//   "ANY_RESERVATION"
30671	//   "NO_RESERVATION"
30672	//   "SPECIFIC_RESERVATION"
30673	//   "SPECIFIC_THEN_ANY_RESERVATION"
30674	//   "UNSPECIFIED"
30675	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
30676
30677	// Key: Corresponds to the label key of a reservation resource. To
30678	// target a SPECIFIC_RESERVATION by name, specify
30679	// googleapis.com/reservation-name as the key and specify the name of
30680	// your reservation as its value.
30681	Key string `json:"key,omitempty"`
30682
30683	// Values: Corresponds to the label values of a reservation resource.
30684	Values []string `json:"values,omitempty"`
30685
30686	// ForceSendFields is a list of field names (e.g.
30687	// "ConsumeReservationType") to unconditionally include in API requests.
30688	// By default, fields with empty values are omitted from API requests.
30689	// However, any non-pointer, non-interface field appearing in
30690	// ForceSendFields will be sent to the server regardless of whether the
30691	// field is empty or not. This may be used to include empty fields in
30692	// Patch requests.
30693	ForceSendFields []string `json:"-"`
30694
30695	// NullFields is a list of field names (e.g. "ConsumeReservationType")
30696	// to include in API requests with the JSON null value. By default,
30697	// fields with empty values are omitted from API requests. However, any
30698	// field with an empty value appearing in NullFields will be sent to the
30699	// server as null. It is an error if a field in this list has a
30700	// non-empty value. This may be used to include null fields in Patch
30701	// requests.
30702	NullFields []string `json:"-"`
30703}
30704
30705func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
30706	type NoMethod ReservationAffinity
30707	raw := NoMethod(*s)
30708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30709}
30710
30711// ReservationAggregatedList: Contains a list of reservations.
30712type ReservationAggregatedList struct {
30713	// Id: [Output Only] Unique identifier for the resource; defined by the
30714	// server.
30715	Id string `json:"id,omitempty"`
30716
30717	// Items: A list of Allocation resources.
30718	Items map[string]ReservationsScopedList `json:"items,omitempty"`
30719
30720	// Kind: Type of resource.
30721	Kind string `json:"kind,omitempty"`
30722
30723	// NextPageToken: [Output Only] This token allows you to get the next
30724	// page of results for list requests. If the number of results is larger
30725	// than maxResults, use the nextPageToken as a value for the query
30726	// parameter pageToken in the next list request. Subsequent list
30727	// requests will have their own nextPageToken to continue paging through
30728	// the results.
30729	NextPageToken string `json:"nextPageToken,omitempty"`
30730
30731	// SelfLink: [Output Only] Server-defined URL for this resource.
30732	SelfLink string `json:"selfLink,omitempty"`
30733
30734	// Warning: [Output Only] Informational warning message.
30735	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
30736
30737	// ServerResponse contains the HTTP response code and headers from the
30738	// server.
30739	googleapi.ServerResponse `json:"-"`
30740
30741	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") 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 *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
30759	type NoMethod ReservationAggregatedList
30760	raw := NoMethod(*s)
30761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30762}
30763
30764// ReservationAggregatedListWarning: [Output Only] Informational warning
30765// message.
30766type ReservationAggregatedListWarning struct {
30767	// Code: [Output Only] A warning code, if applicable. For example,
30768	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30769	// the response.
30770	//
30771	// Possible values:
30772	//   "CLEANUP_FAILED"
30773	//   "DEPRECATED_RESOURCE_USED"
30774	//   "DEPRECATED_TYPE_USED"
30775	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30776	//   "EXPERIMENTAL_TYPE_USED"
30777	//   "EXTERNAL_API_WARNING"
30778	//   "FIELD_VALUE_OVERRIDEN"
30779	//   "INJECTED_KERNELS_DEPRECATED"
30780	//   "MISSING_TYPE_DEPENDENCY"
30781	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30782	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30783	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30784	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30785	//   "NEXT_HOP_NOT_RUNNING"
30786	//   "NOT_CRITICAL_ERROR"
30787	//   "NO_RESULTS_ON_PAGE"
30788	//   "REQUIRED_TOS_AGREEMENT"
30789	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30790	//   "RESOURCE_NOT_DELETED"
30791	//   "SCHEMA_VALIDATION_IGNORED"
30792	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30793	//   "UNDECLARED_PROPERTIES"
30794	//   "UNREACHABLE"
30795	Code string `json:"code,omitempty"`
30796
30797	// Data: [Output Only] Metadata about this warning in key: value format.
30798	// For example:
30799	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30800	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
30801
30802	// Message: [Output Only] A human-readable description of the warning
30803	// code.
30804	Message string `json:"message,omitempty"`
30805
30806	// ForceSendFields is a list of field names (e.g. "Code") to
30807	// unconditionally include in API requests. By default, fields with
30808	// empty values are omitted from API requests. However, any non-pointer,
30809	// non-interface field appearing in ForceSendFields will be sent to the
30810	// server regardless of whether the field is empty or not. This may be
30811	// used to include empty fields in Patch requests.
30812	ForceSendFields []string `json:"-"`
30813
30814	// NullFields is a list of field names (e.g. "Code") to include in API
30815	// requests with the JSON null value. By default, fields with empty
30816	// values are omitted from API requests. However, any field with an
30817	// empty value appearing in NullFields will be sent to the server as
30818	// null. It is an error if a field in this list has a non-empty value.
30819	// This may be used to include null fields in Patch requests.
30820	NullFields []string `json:"-"`
30821}
30822
30823func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
30824	type NoMethod ReservationAggregatedListWarning
30825	raw := NoMethod(*s)
30826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30827}
30828
30829type ReservationAggregatedListWarningData struct {
30830	// Key: [Output Only] A key that provides more detail on the warning
30831	// being returned. For example, for warnings where there are no results
30832	// in a list request for a particular zone, this key might be scope and
30833	// the key value might be the zone name. Other examples might be a key
30834	// indicating a deprecated resource and a suggested replacement, or a
30835	// warning about invalid network settings (for example, if an instance
30836	// attempts to perform IP forwarding but is not enabled for IP
30837	// forwarding).
30838	Key string `json:"key,omitempty"`
30839
30840	// Value: [Output Only] A warning data value corresponding to the key.
30841	Value string `json:"value,omitempty"`
30842
30843	// ForceSendFields is a list of field names (e.g. "Key") to
30844	// unconditionally include in API requests. By default, fields with
30845	// empty values are omitted from API requests. However, any non-pointer,
30846	// non-interface field appearing in ForceSendFields will be sent to the
30847	// server regardless of whether the field is empty or not. This may be
30848	// used to include empty fields in Patch requests.
30849	ForceSendFields []string `json:"-"`
30850
30851	// NullFields is a list of field names (e.g. "Key") to include in API
30852	// requests with the JSON null value. By default, fields with empty
30853	// values are omitted from API requests. However, any field with an
30854	// empty value appearing in NullFields will be sent to the server as
30855	// null. It is an error if a field in this list has a non-empty value.
30856	// This may be used to include null fields in Patch requests.
30857	NullFields []string `json:"-"`
30858}
30859
30860func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30861	type NoMethod ReservationAggregatedListWarningData
30862	raw := NoMethod(*s)
30863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30864}
30865
30866type ReservationList struct {
30867	// Id: [Output Only] The unique identifier for the resource. This
30868	// identifier is defined by the server.
30869	Id string `json:"id,omitempty"`
30870
30871	// Items: [Output Only] A list of Allocation resources.
30872	Items []*Reservation `json:"items,omitempty"`
30873
30874	// Kind: [Output Only] Type of resource.Always compute#reservationsList
30875	// for listsof reservations
30876	Kind string `json:"kind,omitempty"`
30877
30878	// NextPageToken: [Output Only] This token allows you to get the next
30879	// page of results for list requests. If the number of results is larger
30880	// than maxResults, use the nextPageToken as a value for the query
30881	// parameter pageToken in the next list request. Subsequent list
30882	// requests will have their own nextPageToken to continue paging through
30883	// the results.
30884	NextPageToken string `json:"nextPageToken,omitempty"`
30885
30886	// SelfLink: [Output Only] Server-defined URL for this resource.
30887	SelfLink string `json:"selfLink,omitempty"`
30888
30889	// Warning: [Output Only] Informational warning message.
30890	Warning *ReservationListWarning `json:"warning,omitempty"`
30891
30892	// ServerResponse contains the HTTP response code and headers from the
30893	// server.
30894	googleapi.ServerResponse `json:"-"`
30895
30896	// ForceSendFields is a list of field names (e.g. "Id") to
30897	// unconditionally include in API requests. By default, fields with
30898	// empty values are omitted from API requests. However, any non-pointer,
30899	// non-interface field appearing in ForceSendFields will be sent to the
30900	// server regardless of whether the field is empty or not. This may be
30901	// used to include empty fields in Patch requests.
30902	ForceSendFields []string `json:"-"`
30903
30904	// NullFields is a list of field names (e.g. "Id") to include in API
30905	// requests with the JSON null value. By default, fields with empty
30906	// values are omitted from API requests. However, any field with an
30907	// empty value appearing in NullFields will be sent to the server as
30908	// null. It is an error if a field in this list has a non-empty value.
30909	// This may be used to include null fields in Patch requests.
30910	NullFields []string `json:"-"`
30911}
30912
30913func (s *ReservationList) MarshalJSON() ([]byte, error) {
30914	type NoMethod ReservationList
30915	raw := NoMethod(*s)
30916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30917}
30918
30919// ReservationListWarning: [Output Only] Informational warning message.
30920type ReservationListWarning struct {
30921	// Code: [Output Only] A warning code, if applicable. For example,
30922	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30923	// the response.
30924	//
30925	// Possible values:
30926	//   "CLEANUP_FAILED"
30927	//   "DEPRECATED_RESOURCE_USED"
30928	//   "DEPRECATED_TYPE_USED"
30929	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30930	//   "EXPERIMENTAL_TYPE_USED"
30931	//   "EXTERNAL_API_WARNING"
30932	//   "FIELD_VALUE_OVERRIDEN"
30933	//   "INJECTED_KERNELS_DEPRECATED"
30934	//   "MISSING_TYPE_DEPENDENCY"
30935	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30936	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30937	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30938	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30939	//   "NEXT_HOP_NOT_RUNNING"
30940	//   "NOT_CRITICAL_ERROR"
30941	//   "NO_RESULTS_ON_PAGE"
30942	//   "REQUIRED_TOS_AGREEMENT"
30943	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30944	//   "RESOURCE_NOT_DELETED"
30945	//   "SCHEMA_VALIDATION_IGNORED"
30946	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30947	//   "UNDECLARED_PROPERTIES"
30948	//   "UNREACHABLE"
30949	Code string `json:"code,omitempty"`
30950
30951	// Data: [Output Only] Metadata about this warning in key: value format.
30952	// For example:
30953	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30954	Data []*ReservationListWarningData `json:"data,omitempty"`
30955
30956	// Message: [Output Only] A human-readable description of the warning
30957	// code.
30958	Message string `json:"message,omitempty"`
30959
30960	// ForceSendFields is a list of field names (e.g. "Code") to
30961	// unconditionally include in API requests. By default, fields with
30962	// empty values are omitted from API requests. However, any non-pointer,
30963	// non-interface field appearing in ForceSendFields will be sent to the
30964	// server regardless of whether the field is empty or not. This may be
30965	// used to include empty fields in Patch requests.
30966	ForceSendFields []string `json:"-"`
30967
30968	// NullFields is a list of field names (e.g. "Code") to include in API
30969	// requests with the JSON null value. By default, fields with empty
30970	// values are omitted from API requests. However, any field with an
30971	// empty value appearing in NullFields will be sent to the server as
30972	// null. It is an error if a field in this list has a non-empty value.
30973	// This may be used to include null fields in Patch requests.
30974	NullFields []string `json:"-"`
30975}
30976
30977func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
30978	type NoMethod ReservationListWarning
30979	raw := NoMethod(*s)
30980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30981}
30982
30983type ReservationListWarningData struct {
30984	// Key: [Output Only] A key that provides more detail on the warning
30985	// being returned. For example, for warnings where there are no results
30986	// in a list request for a particular zone, this key might be scope and
30987	// the key value might be the zone name. Other examples might be a key
30988	// indicating a deprecated resource and a suggested replacement, or a
30989	// warning about invalid network settings (for example, if an instance
30990	// attempts to perform IP forwarding but is not enabled for IP
30991	// forwarding).
30992	Key string `json:"key,omitempty"`
30993
30994	// Value: [Output Only] A warning data value corresponding to the key.
30995	Value string `json:"value,omitempty"`
30996
30997	// ForceSendFields is a list of field names (e.g. "Key") to
30998	// unconditionally include in API requests. By default, fields with
30999	// empty values are omitted from API requests. However, any non-pointer,
31000	// non-interface field appearing in ForceSendFields will be sent to the
31001	// server regardless of whether the field is empty or not. This may be
31002	// used to include empty fields in Patch requests.
31003	ForceSendFields []string `json:"-"`
31004
31005	// NullFields is a list of field names (e.g. "Key") to include in API
31006	// requests with the JSON null value. By default, fields with empty
31007	// values are omitted from API requests. However, any field with an
31008	// empty value appearing in NullFields will be sent to the server as
31009	// null. It is an error if a field in this list has a non-empty value.
31010	// This may be used to include null fields in Patch requests.
31011	NullFields []string `json:"-"`
31012}
31013
31014func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
31015	type NoMethod ReservationListWarningData
31016	raw := NoMethod(*s)
31017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31018}
31019
31020type ReservationsResizeRequest struct {
31021	// SpecificSkuCount: Number of allocated resources can be resized with
31022	// minimum = 1 and maximum = 1000.
31023	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
31024
31025	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
31026	// unconditionally include in API requests. By default, fields with
31027	// empty values are omitted from API requests. However, any non-pointer,
31028	// non-interface field appearing in ForceSendFields will be sent to the
31029	// server regardless of whether the field is empty or not. This may be
31030	// used to include empty fields in Patch requests.
31031	ForceSendFields []string `json:"-"`
31032
31033	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
31034	// include in API requests with the JSON null value. By default, fields
31035	// with empty values are omitted from API requests. However, any field
31036	// with an empty value appearing in NullFields will be sent to the
31037	// server as null. It is an error if a field in this list has a
31038	// non-empty value. This may be used to include null fields in Patch
31039	// requests.
31040	NullFields []string `json:"-"`
31041}
31042
31043func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
31044	type NoMethod ReservationsResizeRequest
31045	raw := NoMethod(*s)
31046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31047}
31048
31049type ReservationsScopedList struct {
31050	// Reservations: A list of reservations contained in this scope.
31051	Reservations []*Reservation `json:"reservations,omitempty"`
31052
31053	// Warning: Informational warning which replaces the list of
31054	// reservations when the list is empty.
31055	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
31056
31057	// ForceSendFields is a list of field names (e.g. "Reservations") to
31058	// unconditionally include in API requests. By default, fields with
31059	// empty values are omitted from API requests. However, any non-pointer,
31060	// non-interface field appearing in ForceSendFields will be sent to the
31061	// server regardless of whether the field is empty or not. This may be
31062	// used to include empty fields in Patch requests.
31063	ForceSendFields []string `json:"-"`
31064
31065	// NullFields is a list of field names (e.g. "Reservations") to include
31066	// in API requests with the JSON null value. By default, fields with
31067	// empty values are omitted from API requests. However, any field with
31068	// an empty value appearing in NullFields will be sent to the server as
31069	// null. It is an error if a field in this list has a non-empty value.
31070	// This may be used to include null fields in Patch requests.
31071	NullFields []string `json:"-"`
31072}
31073
31074func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
31075	type NoMethod ReservationsScopedList
31076	raw := NoMethod(*s)
31077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31078}
31079
31080// ReservationsScopedListWarning: Informational warning which replaces
31081// the list of reservations when the list is empty.
31082type ReservationsScopedListWarning struct {
31083	// Code: [Output Only] A warning code, if applicable. For example,
31084	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31085	// the response.
31086	//
31087	// Possible values:
31088	//   "CLEANUP_FAILED"
31089	//   "DEPRECATED_RESOURCE_USED"
31090	//   "DEPRECATED_TYPE_USED"
31091	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31092	//   "EXPERIMENTAL_TYPE_USED"
31093	//   "EXTERNAL_API_WARNING"
31094	//   "FIELD_VALUE_OVERRIDEN"
31095	//   "INJECTED_KERNELS_DEPRECATED"
31096	//   "MISSING_TYPE_DEPENDENCY"
31097	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31098	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31099	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31100	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31101	//   "NEXT_HOP_NOT_RUNNING"
31102	//   "NOT_CRITICAL_ERROR"
31103	//   "NO_RESULTS_ON_PAGE"
31104	//   "REQUIRED_TOS_AGREEMENT"
31105	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31106	//   "RESOURCE_NOT_DELETED"
31107	//   "SCHEMA_VALIDATION_IGNORED"
31108	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31109	//   "UNDECLARED_PROPERTIES"
31110	//   "UNREACHABLE"
31111	Code string `json:"code,omitempty"`
31112
31113	// Data: [Output Only] Metadata about this warning in key: value format.
31114	// For example:
31115	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31116	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
31117
31118	// Message: [Output Only] A human-readable description of the warning
31119	// code.
31120	Message string `json:"message,omitempty"`
31121
31122	// ForceSendFields is a list of field names (e.g. "Code") to
31123	// unconditionally include in API requests. By default, fields with
31124	// empty values are omitted from API requests. However, any non-pointer,
31125	// non-interface field appearing in ForceSendFields will be sent to the
31126	// server regardless of whether the field is empty or not. This may be
31127	// used to include empty fields in Patch requests.
31128	ForceSendFields []string `json:"-"`
31129
31130	// NullFields is a list of field names (e.g. "Code") to include in API
31131	// requests with the JSON null value. By default, fields with empty
31132	// values are omitted from API requests. However, any field with an
31133	// empty value appearing in NullFields will be sent to the server as
31134	// null. It is an error if a field in this list has a non-empty value.
31135	// This may be used to include null fields in Patch requests.
31136	NullFields []string `json:"-"`
31137}
31138
31139func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
31140	type NoMethod ReservationsScopedListWarning
31141	raw := NoMethod(*s)
31142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31143}
31144
31145type ReservationsScopedListWarningData struct {
31146	// Key: [Output Only] A key that provides more detail on the warning
31147	// being returned. For example, for warnings where there are no results
31148	// in a list request for a particular zone, this key might be scope and
31149	// the key value might be the zone name. Other examples might be a key
31150	// indicating a deprecated resource and a suggested replacement, or a
31151	// warning about invalid network settings (for example, if an instance
31152	// attempts to perform IP forwarding but is not enabled for IP
31153	// forwarding).
31154	Key string `json:"key,omitempty"`
31155
31156	// Value: [Output Only] A warning data value corresponding to the key.
31157	Value string `json:"value,omitempty"`
31158
31159	// ForceSendFields is a list of field names (e.g. "Key") to
31160	// unconditionally include in API requests. By default, fields with
31161	// empty values are omitted from API requests. However, any non-pointer,
31162	// non-interface field appearing in ForceSendFields will be sent to the
31163	// server regardless of whether the field is empty or not. This may be
31164	// used to include empty fields in Patch requests.
31165	ForceSendFields []string `json:"-"`
31166
31167	// NullFields is a list of field names (e.g. "Key") to include in API
31168	// requests with the JSON null value. By default, fields with empty
31169	// values are omitted from API requests. However, any field with an
31170	// empty value appearing in NullFields will be sent to the server as
31171	// null. It is an error if a field in this list has a non-empty value.
31172	// This may be used to include null fields in Patch requests.
31173	NullFields []string `json:"-"`
31174}
31175
31176func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
31177	type NoMethod ReservationsScopedListWarningData
31178	raw := NoMethod(*s)
31179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31180}
31181
31182// ResourceCommitment: Commitment for a particular resource (a
31183// Commitment is composed of one or more of these).
31184type ResourceCommitment struct {
31185	// AcceleratorType: Name of the accelerator type resource. Applicable
31186	// only when the type is ACCELERATOR.
31187	AcceleratorType string `json:"acceleratorType,omitempty"`
31188
31189	// Amount: The amount of the resource purchased (in a type-dependent
31190	// unit, such as bytes). For vCPUs, this can just be an integer. For
31191	// memory, this must be provided in MB. Memory must be a multiple of 256
31192	// MB, with up to 6.5GB of memory per every vCPU.
31193	Amount int64 `json:"amount,omitempty,string"`
31194
31195	// Type: Type of resource for which this commitment applies. Possible
31196	// values are VCPU and MEMORY
31197	//
31198	// Possible values:
31199	//   "ACCELERATOR"
31200	//   "LOCAL_SSD"
31201	//   "MEMORY"
31202	//   "UNSPECIFIED"
31203	//   "VCPU"
31204	Type string `json:"type,omitempty"`
31205
31206	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
31207	// unconditionally include in API requests. By default, fields with
31208	// empty values are omitted from API requests. However, any non-pointer,
31209	// non-interface field appearing in ForceSendFields will be sent to the
31210	// server regardless of whether the field is empty or not. This may be
31211	// used to include empty fields in Patch requests.
31212	ForceSendFields []string `json:"-"`
31213
31214	// NullFields is a list of field names (e.g. "AcceleratorType") to
31215	// include in API requests with the JSON null value. By default, fields
31216	// with empty values are omitted from API requests. However, any field
31217	// with an empty value appearing in NullFields will be sent to the
31218	// server as null. It is an error if a field in this list has a
31219	// non-empty value. This may be used to include null fields in Patch
31220	// requests.
31221	NullFields []string `json:"-"`
31222}
31223
31224func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
31225	type NoMethod ResourceCommitment
31226	raw := NoMethod(*s)
31227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31228}
31229
31230type ResourceGroupReference struct {
31231	// Group: A URI referencing one of the instance groups or network
31232	// endpoint groups listed in the backend service.
31233	Group string `json:"group,omitempty"`
31234
31235	// ForceSendFields is a list of field names (e.g. "Group") to
31236	// unconditionally include in API requests. By default, fields with
31237	// empty values are omitted from API requests. However, any non-pointer,
31238	// non-interface field appearing in ForceSendFields will be sent to the
31239	// server regardless of whether the field is empty or not. This may be
31240	// used to include empty fields in Patch requests.
31241	ForceSendFields []string `json:"-"`
31242
31243	// NullFields is a list of field names (e.g. "Group") to include in API
31244	// requests with the JSON null value. By default, fields with empty
31245	// values are omitted from API requests. However, any field with an
31246	// empty value appearing in NullFields will be sent to the server as
31247	// null. It is an error if a field in this list has a non-empty value.
31248	// This may be used to include null fields in Patch requests.
31249	NullFields []string `json:"-"`
31250}
31251
31252func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
31253	type NoMethod ResourceGroupReference
31254	raw := NoMethod(*s)
31255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31256}
31257
31258type ResourcePoliciesScopedList struct {
31259	// ResourcePolicies: A list of resourcePolicies contained in this scope.
31260	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
31261
31262	// Warning: Informational warning which replaces the list of
31263	// resourcePolicies when the list is empty.
31264	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
31265
31266	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
31267	// unconditionally include in API requests. By default, fields with
31268	// empty values are omitted from API requests. However, any non-pointer,
31269	// non-interface field appearing in ForceSendFields will be sent to the
31270	// server regardless of whether the field is empty or not. This may be
31271	// used to include empty fields in Patch requests.
31272	ForceSendFields []string `json:"-"`
31273
31274	// NullFields is a list of field names (e.g. "ResourcePolicies") to
31275	// include in API requests with the JSON null value. By default, fields
31276	// with empty values are omitted from API requests. However, any field
31277	// with an empty value appearing in NullFields will be sent to the
31278	// server as null. It is an error if a field in this list has a
31279	// non-empty value. This may be used to include null fields in Patch
31280	// requests.
31281	NullFields []string `json:"-"`
31282}
31283
31284func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
31285	type NoMethod ResourcePoliciesScopedList
31286	raw := NoMethod(*s)
31287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31288}
31289
31290// ResourcePoliciesScopedListWarning: Informational warning which
31291// replaces the list of resourcePolicies when the list is empty.
31292type ResourcePoliciesScopedListWarning struct {
31293	// Code: [Output Only] A warning code, if applicable. For example,
31294	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31295	// the response.
31296	//
31297	// Possible values:
31298	//   "CLEANUP_FAILED"
31299	//   "DEPRECATED_RESOURCE_USED"
31300	//   "DEPRECATED_TYPE_USED"
31301	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31302	//   "EXPERIMENTAL_TYPE_USED"
31303	//   "EXTERNAL_API_WARNING"
31304	//   "FIELD_VALUE_OVERRIDEN"
31305	//   "INJECTED_KERNELS_DEPRECATED"
31306	//   "MISSING_TYPE_DEPENDENCY"
31307	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31308	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31309	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31310	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31311	//   "NEXT_HOP_NOT_RUNNING"
31312	//   "NOT_CRITICAL_ERROR"
31313	//   "NO_RESULTS_ON_PAGE"
31314	//   "REQUIRED_TOS_AGREEMENT"
31315	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31316	//   "RESOURCE_NOT_DELETED"
31317	//   "SCHEMA_VALIDATION_IGNORED"
31318	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31319	//   "UNDECLARED_PROPERTIES"
31320	//   "UNREACHABLE"
31321	Code string `json:"code,omitempty"`
31322
31323	// Data: [Output Only] Metadata about this warning in key: value format.
31324	// For example:
31325	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31326	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
31327
31328	// Message: [Output Only] A human-readable description of the warning
31329	// code.
31330	Message string `json:"message,omitempty"`
31331
31332	// ForceSendFields is a list of field names (e.g. "Code") to
31333	// unconditionally include in API requests. By default, fields with
31334	// empty values are omitted from API requests. However, any non-pointer,
31335	// non-interface field appearing in ForceSendFields will be sent to the
31336	// server regardless of whether the field is empty or not. This may be
31337	// used to include empty fields in Patch requests.
31338	ForceSendFields []string `json:"-"`
31339
31340	// NullFields is a list of field names (e.g. "Code") to include in API
31341	// requests with the JSON null value. By default, fields with empty
31342	// values are omitted from API requests. However, any field with an
31343	// empty value appearing in NullFields will be sent to the server as
31344	// null. It is an error if a field in this list has a non-empty value.
31345	// This may be used to include null fields in Patch requests.
31346	NullFields []string `json:"-"`
31347}
31348
31349func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
31350	type NoMethod ResourcePoliciesScopedListWarning
31351	raw := NoMethod(*s)
31352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31353}
31354
31355type ResourcePoliciesScopedListWarningData struct {
31356	// Key: [Output Only] A key that provides more detail on the warning
31357	// being returned. For example, for warnings where there are no results
31358	// in a list request for a particular zone, this key might be scope and
31359	// the key value might be the zone name. Other examples might be a key
31360	// indicating a deprecated resource and a suggested replacement, or a
31361	// warning about invalid network settings (for example, if an instance
31362	// attempts to perform IP forwarding but is not enabled for IP
31363	// forwarding).
31364	Key string `json:"key,omitempty"`
31365
31366	// Value: [Output Only] A warning data value corresponding to the key.
31367	Value string `json:"value,omitempty"`
31368
31369	// ForceSendFields is a list of field names (e.g. "Key") to
31370	// unconditionally include in API requests. By default, fields with
31371	// empty values are omitted from API requests. However, any non-pointer,
31372	// non-interface field appearing in ForceSendFields will be sent to the
31373	// server regardless of whether the field is empty or not. This may be
31374	// used to include empty fields in Patch requests.
31375	ForceSendFields []string `json:"-"`
31376
31377	// NullFields is a list of field names (e.g. "Key") to include in API
31378	// requests with the JSON null value. By default, fields with empty
31379	// values are omitted from API requests. However, any field with an
31380	// empty value appearing in NullFields will be sent to the server as
31381	// null. It is an error if a field in this list has a non-empty value.
31382	// This may be used to include null fields in Patch requests.
31383	NullFields []string `json:"-"`
31384}
31385
31386func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
31387	type NoMethod ResourcePoliciesScopedListWarningData
31388	raw := NoMethod(*s)
31389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31390}
31391
31392// ResourcePolicy: Represents a Resource Policy resource. You can use
31393// resource policies to schedule actions for some Compute Engine
31394// resources. For example, you can use them to schedule persistent disk
31395// snapshots.
31396//
31397// (== resource_for {$api_version}.resourcePolicies ==)
31398type ResourcePolicy struct {
31399	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31400	// format.
31401	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31402
31403	Description string `json:"description,omitempty"`
31404
31405	// GroupPlacementPolicy: Resource policy for instacnes for placement
31406	// configuration.
31407	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
31408
31409	// Id: [Output Only] The unique identifier for the resource. This
31410	// identifier is defined by the server.
31411	Id uint64 `json:"id,omitempty,string"`
31412
31413	// Kind: [Output Only] Type of the resource. Always
31414	// compute#resource_policies for resource policies.
31415	Kind string `json:"kind,omitempty"`
31416
31417	// Name: The name of the resource, provided by the client when initially
31418	// creating the resource. The resource name must be 1-63 characters
31419	// long, and comply with RFC1035. Specifically, the name must be 1-63
31420	// characters long and match the regular expression
31421	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
31422	// a lowercase letter, and all following characters must be a dash,
31423	// lowercase letter, or digit, except the last character, which cannot
31424	// be a dash.
31425	Name string `json:"name,omitempty"`
31426
31427	Region string `json:"region,omitempty"`
31428
31429	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
31430	// resource.
31431	SelfLink string `json:"selfLink,omitempty"`
31432
31433	// SnapshotSchedulePolicy: Resource policy for persistent disks for
31434	// creating snapshots.
31435	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
31436
31437	// Status: [Output Only] The status of resource policy creation.
31438	//
31439	// Possible values:
31440	//   "CREATING"
31441	//   "DELETING"
31442	//   "INVALID"
31443	//   "READY"
31444	Status string `json:"status,omitempty"`
31445
31446	// ServerResponse contains the HTTP response code and headers from the
31447	// server.
31448	googleapi.ServerResponse `json:"-"`
31449
31450	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31451	// to unconditionally include in API requests. By default, fields with
31452	// empty values are omitted from API requests. However, any non-pointer,
31453	// non-interface field appearing in ForceSendFields will be sent to the
31454	// server regardless of whether the field is empty or not. This may be
31455	// used to include empty fields in Patch requests.
31456	ForceSendFields []string `json:"-"`
31457
31458	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31459	// include in API requests with the JSON null value. By default, fields
31460	// with empty values are omitted from API requests. However, any field
31461	// with an empty value appearing in NullFields will be sent to the
31462	// server as null. It is an error if a field in this list has a
31463	// non-empty value. This may be used to include null fields in Patch
31464	// requests.
31465	NullFields []string `json:"-"`
31466}
31467
31468func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
31469	type NoMethod ResourcePolicy
31470	raw := NoMethod(*s)
31471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31472}
31473
31474// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
31475type ResourcePolicyAggregatedList struct {
31476	Etag string `json:"etag,omitempty"`
31477
31478	// Id: [Output Only] Unique identifier for the resource; defined by the
31479	// server.
31480	Id string `json:"id,omitempty"`
31481
31482	// Items: A list of ResourcePolicy resources.
31483	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
31484
31485	// Kind: Type of resource.
31486	Kind string `json:"kind,omitempty"`
31487
31488	// NextPageToken: [Output Only] This token allows you to get the next
31489	// page of results for list requests. If the number of results is larger
31490	// than maxResults, use the nextPageToken as a value for the query
31491	// parameter pageToken in the next list request. Subsequent list
31492	// requests will have their own nextPageToken to continue paging through
31493	// the results.
31494	NextPageToken string `json:"nextPageToken,omitempty"`
31495
31496	// SelfLink: [Output Only] Server-defined URL for this resource.
31497	SelfLink string `json:"selfLink,omitempty"`
31498
31499	// Warning: [Output Only] Informational warning message.
31500	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
31501
31502	// ServerResponse contains the HTTP response code and headers from the
31503	// server.
31504	googleapi.ServerResponse `json:"-"`
31505
31506	// ForceSendFields is a list of field names (e.g. "Etag") to
31507	// unconditionally include in API requests. By default, fields with
31508	// empty values are omitted from API requests. However, any non-pointer,
31509	// non-interface field appearing in ForceSendFields will be sent to the
31510	// server regardless of whether the field is empty or not. This may be
31511	// used to include empty fields in Patch requests.
31512	ForceSendFields []string `json:"-"`
31513
31514	// NullFields is a list of field names (e.g. "Etag") to include in API
31515	// requests with the JSON null value. By default, fields with empty
31516	// values are omitted from API requests. However, any field with an
31517	// empty value appearing in NullFields will be sent to the server as
31518	// null. It is an error if a field in this list has a non-empty value.
31519	// This may be used to include null fields in Patch requests.
31520	NullFields []string `json:"-"`
31521}
31522
31523func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
31524	type NoMethod ResourcePolicyAggregatedList
31525	raw := NoMethod(*s)
31526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31527}
31528
31529// ResourcePolicyAggregatedListWarning: [Output Only] Informational
31530// warning message.
31531type ResourcePolicyAggregatedListWarning struct {
31532	// Code: [Output Only] A warning code, if applicable. For example,
31533	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31534	// the response.
31535	//
31536	// Possible values:
31537	//   "CLEANUP_FAILED"
31538	//   "DEPRECATED_RESOURCE_USED"
31539	//   "DEPRECATED_TYPE_USED"
31540	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31541	//   "EXPERIMENTAL_TYPE_USED"
31542	//   "EXTERNAL_API_WARNING"
31543	//   "FIELD_VALUE_OVERRIDEN"
31544	//   "INJECTED_KERNELS_DEPRECATED"
31545	//   "MISSING_TYPE_DEPENDENCY"
31546	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31547	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31548	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31549	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31550	//   "NEXT_HOP_NOT_RUNNING"
31551	//   "NOT_CRITICAL_ERROR"
31552	//   "NO_RESULTS_ON_PAGE"
31553	//   "REQUIRED_TOS_AGREEMENT"
31554	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31555	//   "RESOURCE_NOT_DELETED"
31556	//   "SCHEMA_VALIDATION_IGNORED"
31557	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31558	//   "UNDECLARED_PROPERTIES"
31559	//   "UNREACHABLE"
31560	Code string `json:"code,omitempty"`
31561
31562	// Data: [Output Only] Metadata about this warning in key: value format.
31563	// For example:
31564	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31565	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
31566
31567	// Message: [Output Only] A human-readable description of the warning
31568	// code.
31569	Message string `json:"message,omitempty"`
31570
31571	// ForceSendFields is a list of field names (e.g. "Code") to
31572	// unconditionally include in API requests. By default, fields with
31573	// empty values are omitted from API requests. However, any non-pointer,
31574	// non-interface field appearing in ForceSendFields will be sent to the
31575	// server regardless of whether the field is empty or not. This may be
31576	// used to include empty fields in Patch requests.
31577	ForceSendFields []string `json:"-"`
31578
31579	// NullFields is a list of field names (e.g. "Code") to include in API
31580	// requests with the JSON null value. By default, fields with empty
31581	// values are omitted from API requests. However, any field with an
31582	// empty value appearing in NullFields will be sent to the server as
31583	// null. It is an error if a field in this list has a non-empty value.
31584	// This may be used to include null fields in Patch requests.
31585	NullFields []string `json:"-"`
31586}
31587
31588func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
31589	type NoMethod ResourcePolicyAggregatedListWarning
31590	raw := NoMethod(*s)
31591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31592}
31593
31594type ResourcePolicyAggregatedListWarningData struct {
31595	// Key: [Output Only] A key that provides more detail on the warning
31596	// being returned. For example, for warnings where there are no results
31597	// in a list request for a particular zone, this key might be scope and
31598	// the key value might be the zone name. Other examples might be a key
31599	// indicating a deprecated resource and a suggested replacement, or a
31600	// warning about invalid network settings (for example, if an instance
31601	// attempts to perform IP forwarding but is not enabled for IP
31602	// forwarding).
31603	Key string `json:"key,omitempty"`
31604
31605	// Value: [Output Only] A warning data value corresponding to the key.
31606	Value string `json:"value,omitempty"`
31607
31608	// ForceSendFields is a list of field names (e.g. "Key") to
31609	// unconditionally include in API requests. By default, fields with
31610	// empty values are omitted from API requests. However, any non-pointer,
31611	// non-interface field appearing in ForceSendFields will be sent to the
31612	// server regardless of whether the field is empty or not. This may be
31613	// used to include empty fields in Patch requests.
31614	ForceSendFields []string `json:"-"`
31615
31616	// NullFields is a list of field names (e.g. "Key") to include in API
31617	// requests with the JSON null value. By default, fields with empty
31618	// values are omitted from API requests. However, any field with an
31619	// empty value appearing in NullFields will be sent to the server as
31620	// null. It is an error if a field in this list has a non-empty value.
31621	// This may be used to include null fields in Patch requests.
31622	NullFields []string `json:"-"`
31623}
31624
31625func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
31626	type NoMethod ResourcePolicyAggregatedListWarningData
31627	raw := NoMethod(*s)
31628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31629}
31630
31631// ResourcePolicyDailyCycle: Time window specified for daily operations.
31632type ResourcePolicyDailyCycle struct {
31633	// DaysInCycle: Defines a schedule with units measured in months. The
31634	// value determines how many months pass between the start of each
31635	// cycle.
31636	DaysInCycle int64 `json:"daysInCycle,omitempty"`
31637
31638	// Duration: [Output only] A predetermined duration for the window,
31639	// automatically chosen to be the smallest possible in the given
31640	// scenario.
31641	Duration string `json:"duration,omitempty"`
31642
31643	// StartTime: Start time of the window. This must be in UTC format that
31644	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
31645	// example, both 13:00-5 and 08:00 are valid.
31646	StartTime string `json:"startTime,omitempty"`
31647
31648	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
31649	// unconditionally include in API requests. By default, fields with
31650	// empty values are omitted from API requests. However, any non-pointer,
31651	// non-interface field appearing in ForceSendFields will be sent to the
31652	// server regardless of whether the field is empty or not. This may be
31653	// used to include empty fields in Patch requests.
31654	ForceSendFields []string `json:"-"`
31655
31656	// NullFields is a list of field names (e.g. "DaysInCycle") to include
31657	// in API requests with the JSON null value. By default, fields with
31658	// empty values are omitted from API requests. However, any field with
31659	// an empty value appearing in NullFields will be sent to the server as
31660	// null. It is an error if a field in this list has a non-empty value.
31661	// This may be used to include null fields in Patch requests.
31662	NullFields []string `json:"-"`
31663}
31664
31665func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
31666	type NoMethod ResourcePolicyDailyCycle
31667	raw := NoMethod(*s)
31668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31669}
31670
31671// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
31672// resource placement configuration. It specifies the failure bucket
31673// separation as well as network locality
31674type ResourcePolicyGroupPlacementPolicy struct {
31675	// AvailabilityDomainCount: The number of availability domains instances
31676	// will be spread across. If two instances are in different availability
31677	// domain, they will not be put in the same low latency network
31678	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
31679
31680	// Collocation: Specifies network collocation
31681	//
31682	// Possible values:
31683	//   "COLLOCATED"
31684	//   "UNSPECIFIED_COLLOCATION"
31685	Collocation string `json:"collocation,omitempty"`
31686
31687	// VmCount: Number of vms in this placement group
31688	VmCount int64 `json:"vmCount,omitempty"`
31689
31690	// ForceSendFields is a list of field names (e.g.
31691	// "AvailabilityDomainCount") to unconditionally include in API
31692	// requests. By default, fields with empty values are omitted from API
31693	// requests. However, any non-pointer, non-interface field appearing in
31694	// ForceSendFields will be sent to the server regardless of whether the
31695	// field is empty or not. This may be used to include empty fields in
31696	// Patch requests.
31697	ForceSendFields []string `json:"-"`
31698
31699	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
31700	// to include in API requests with the JSON null value. By default,
31701	// fields with empty values are omitted from API requests. However, any
31702	// field with an empty value appearing in NullFields will be sent to the
31703	// server as null. It is an error if a field in this list has a
31704	// non-empty value. This may be used to include null fields in Patch
31705	// requests.
31706	NullFields []string `json:"-"`
31707}
31708
31709func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
31710	type NoMethod ResourcePolicyGroupPlacementPolicy
31711	raw := NoMethod(*s)
31712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31713}
31714
31715// ResourcePolicyHourlyCycle: Time window specified for hourly
31716// operations.
31717type ResourcePolicyHourlyCycle struct {
31718	// Duration: [Output only] Duration of the time window, automatically
31719	// chosen to be smallest possible in the given scenario.
31720	Duration string `json:"duration,omitempty"`
31721
31722	// HoursInCycle: Defines a schedule with units measured in hours. The
31723	// value determines how many hours pass between the start of each cycle.
31724	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
31725
31726	// StartTime: Time within the window to start the operations. It must be
31727	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
31728	StartTime string `json:"startTime,omitempty"`
31729
31730	// ForceSendFields is a list of field names (e.g. "Duration") to
31731	// unconditionally include in API requests. By default, fields with
31732	// empty values are omitted from API requests. However, any non-pointer,
31733	// non-interface field appearing in ForceSendFields will be sent to the
31734	// server regardless of whether the field is empty or not. This may be
31735	// used to include empty fields in Patch requests.
31736	ForceSendFields []string `json:"-"`
31737
31738	// NullFields is a list of field names (e.g. "Duration") to include in
31739	// API requests with the JSON null value. By default, fields with empty
31740	// values are omitted from API requests. However, any field with an
31741	// empty value appearing in NullFields will be sent to the server as
31742	// null. It is an error if a field in this list has a non-empty value.
31743	// This may be used to include null fields in Patch requests.
31744	NullFields []string `json:"-"`
31745}
31746
31747func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
31748	type NoMethod ResourcePolicyHourlyCycle
31749	raw := NoMethod(*s)
31750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31751}
31752
31753type ResourcePolicyList struct {
31754	Etag string `json:"etag,omitempty"`
31755
31756	// Id: [Output Only] The unique identifier for the resource. This
31757	// identifier is defined by the server.
31758	Id string `json:"id,omitempty"`
31759
31760	// Items: [Output Only] A list of ResourcePolicy resources.
31761	Items []*ResourcePolicy `json:"items,omitempty"`
31762
31763	// Kind: [Output Only] Type of resource.Always
31764	// compute#resourcePoliciesList for listsof resourcePolicies
31765	Kind string `json:"kind,omitempty"`
31766
31767	// NextPageToken: [Output Only] This token allows you to get the next
31768	// page of results for list requests. If the number of results is larger
31769	// than maxResults, use the nextPageToken as a value for the query
31770	// parameter pageToken in the next list request. Subsequent list
31771	// requests will have their own nextPageToken to continue paging through
31772	// the results.
31773	NextPageToken string `json:"nextPageToken,omitempty"`
31774
31775	// SelfLink: [Output Only] Server-defined URL for this resource.
31776	SelfLink string `json:"selfLink,omitempty"`
31777
31778	// Warning: [Output Only] Informational warning message.
31779	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
31780
31781	// ServerResponse contains the HTTP response code and headers from the
31782	// server.
31783	googleapi.ServerResponse `json:"-"`
31784
31785	// ForceSendFields is a list of field names (e.g. "Etag") to
31786	// unconditionally include in API requests. By default, fields with
31787	// empty values are omitted from API requests. However, any non-pointer,
31788	// non-interface field appearing in ForceSendFields will be sent to the
31789	// server regardless of whether the field is empty or not. This may be
31790	// used to include empty fields in Patch requests.
31791	ForceSendFields []string `json:"-"`
31792
31793	// NullFields is a list of field names (e.g. "Etag") to include in API
31794	// requests with the JSON null value. By default, fields with empty
31795	// values are omitted from API requests. However, any field with an
31796	// empty value appearing in NullFields will be sent to the server as
31797	// null. It is an error if a field in this list has a non-empty value.
31798	// This may be used to include null fields in Patch requests.
31799	NullFields []string `json:"-"`
31800}
31801
31802func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
31803	type NoMethod ResourcePolicyList
31804	raw := NoMethod(*s)
31805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31806}
31807
31808// ResourcePolicyListWarning: [Output Only] Informational warning
31809// message.
31810type ResourcePolicyListWarning struct {
31811	// Code: [Output Only] A warning code, if applicable. For example,
31812	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31813	// the response.
31814	//
31815	// Possible values:
31816	//   "CLEANUP_FAILED"
31817	//   "DEPRECATED_RESOURCE_USED"
31818	//   "DEPRECATED_TYPE_USED"
31819	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31820	//   "EXPERIMENTAL_TYPE_USED"
31821	//   "EXTERNAL_API_WARNING"
31822	//   "FIELD_VALUE_OVERRIDEN"
31823	//   "INJECTED_KERNELS_DEPRECATED"
31824	//   "MISSING_TYPE_DEPENDENCY"
31825	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31826	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31827	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31828	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31829	//   "NEXT_HOP_NOT_RUNNING"
31830	//   "NOT_CRITICAL_ERROR"
31831	//   "NO_RESULTS_ON_PAGE"
31832	//   "REQUIRED_TOS_AGREEMENT"
31833	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31834	//   "RESOURCE_NOT_DELETED"
31835	//   "SCHEMA_VALIDATION_IGNORED"
31836	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31837	//   "UNDECLARED_PROPERTIES"
31838	//   "UNREACHABLE"
31839	Code string `json:"code,omitempty"`
31840
31841	// Data: [Output Only] Metadata about this warning in key: value format.
31842	// For example:
31843	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31844	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
31845
31846	// Message: [Output Only] A human-readable description of the warning
31847	// code.
31848	Message string `json:"message,omitempty"`
31849
31850	// ForceSendFields is a list of field names (e.g. "Code") to
31851	// unconditionally include in API requests. By default, fields with
31852	// empty values are omitted from API requests. However, any non-pointer,
31853	// non-interface field appearing in ForceSendFields will be sent to the
31854	// server regardless of whether the field is empty or not. This may be
31855	// used to include empty fields in Patch requests.
31856	ForceSendFields []string `json:"-"`
31857
31858	// NullFields is a list of field names (e.g. "Code") to include in API
31859	// requests with the JSON null value. By default, fields with empty
31860	// values are omitted from API requests. However, any field with an
31861	// empty value appearing in NullFields will be sent to the server as
31862	// null. It is an error if a field in this list has a non-empty value.
31863	// This may be used to include null fields in Patch requests.
31864	NullFields []string `json:"-"`
31865}
31866
31867func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
31868	type NoMethod ResourcePolicyListWarning
31869	raw := NoMethod(*s)
31870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31871}
31872
31873type ResourcePolicyListWarningData struct {
31874	// Key: [Output Only] A key that provides more detail on the warning
31875	// being returned. For example, for warnings where there are no results
31876	// in a list request for a particular zone, this key might be scope and
31877	// the key value might be the zone name. Other examples might be a key
31878	// indicating a deprecated resource and a suggested replacement, or a
31879	// warning about invalid network settings (for example, if an instance
31880	// attempts to perform IP forwarding but is not enabled for IP
31881	// forwarding).
31882	Key string `json:"key,omitempty"`
31883
31884	// Value: [Output Only] A warning data value corresponding to the key.
31885	Value string `json:"value,omitempty"`
31886
31887	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
31905	type NoMethod ResourcePolicyListWarningData
31906	raw := NoMethod(*s)
31907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31908}
31909
31910// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
31911// specifies when and how frequently snapshots are to be created for the
31912// target disk. Also specifies how many and how long these scheduled
31913// snapshots should be retained.
31914type ResourcePolicySnapshotSchedulePolicy struct {
31915	// RetentionPolicy: Retention policy applied to snapshots created by
31916	// this resource policy.
31917	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
31918
31919	// Schedule: A Vm Maintenance Policy specifies what kind of
31920	// infrastructure maintenance we are allowed to perform on this VM and
31921	// when. Schedule that is applied to disks covered by this policy.
31922	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
31923
31924	// SnapshotProperties: Properties with which snapshots are created such
31925	// as labels, encryption keys.
31926	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
31927
31928	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
31929	// unconditionally include in API requests. By default, fields with
31930	// empty values are omitted from API requests. However, any non-pointer,
31931	// non-interface field appearing in ForceSendFields will be sent to the
31932	// server regardless of whether the field is empty or not. This may be
31933	// used to include empty fields in Patch requests.
31934	ForceSendFields []string `json:"-"`
31935
31936	// NullFields is a list of field names (e.g. "RetentionPolicy") to
31937	// include in API requests with the JSON null value. By default, fields
31938	// with empty values are omitted from API requests. However, any field
31939	// with an empty value appearing in NullFields will be sent to the
31940	// server as null. It is an error if a field in this list has a
31941	// non-empty value. This may be used to include null fields in Patch
31942	// requests.
31943	NullFields []string `json:"-"`
31944}
31945
31946func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
31947	type NoMethod ResourcePolicySnapshotSchedulePolicy
31948	raw := NoMethod(*s)
31949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31950}
31951
31952// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
31953// retention of scheduled snapshots.
31954type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
31955	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
31956	// kept.
31957	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
31958
31959	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
31960	// snapshots when the source disk is deleted.
31961	//
31962	// Possible values:
31963	//   "APPLY_RETENTION_POLICY"
31964	//   "KEEP_AUTO_SNAPSHOTS"
31965	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
31966	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
31967
31968	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
31969	// unconditionally include in API requests. By default, fields with
31970	// empty values are omitted from API requests. However, any non-pointer,
31971	// non-interface field appearing in ForceSendFields will be sent to the
31972	// server regardless of whether the field is empty or not. This may be
31973	// used to include empty fields in Patch requests.
31974	ForceSendFields []string `json:"-"`
31975
31976	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
31977	// include in API requests with the JSON null value. By default, fields
31978	// with empty values are omitted from API requests. However, any field
31979	// with an empty value appearing in NullFields will be sent to the
31980	// server as null. It is an error if a field in this list has a
31981	// non-empty value. This may be used to include null fields in Patch
31982	// requests.
31983	NullFields []string `json:"-"`
31984}
31985
31986func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
31987	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
31988	raw := NoMethod(*s)
31989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31990}
31991
31992// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
31993// where the schedueled operations are performed.
31994type ResourcePolicySnapshotSchedulePolicySchedule struct {
31995	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
31996
31997	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
31998
31999	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
32000
32001	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
32002	// unconditionally include in API requests. By default, fields with
32003	// empty values are omitted from API requests. However, any non-pointer,
32004	// non-interface field appearing in ForceSendFields will be sent to the
32005	// server regardless of whether the field is empty or not. This may be
32006	// used to include empty fields in Patch requests.
32007	ForceSendFields []string `json:"-"`
32008
32009	// NullFields is a list of field names (e.g. "DailySchedule") to include
32010	// in API requests with the JSON null value. By default, fields with
32011	// empty values are omitted from API requests. However, any field with
32012	// an empty value appearing in NullFields will be sent to the server as
32013	// null. It is an error if a field in this list has a non-empty value.
32014	// This may be used to include null fields in Patch requests.
32015	NullFields []string `json:"-"`
32016}
32017
32018func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
32019	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
32020	raw := NoMethod(*s)
32021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32022}
32023
32024// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
32025// snapshot properties for scheduled snapshots created by this policy.
32026type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
32027	// ChainName: Chain name that the snapshot is created in.
32028	ChainName string `json:"chainName,omitempty"`
32029
32030	// GuestFlush: Indication to perform a 'guest aware' snapshot.
32031	GuestFlush bool `json:"guestFlush,omitempty"`
32032
32033	// Labels: Labels to apply to scheduled snapshots. These can be later
32034	// modified by the setLabels method. Label values may be empty.
32035	Labels map[string]string `json:"labels,omitempty"`
32036
32037	// StorageLocations: Cloud Storage bucket storage location of the auto
32038	// snapshot (regional or multi-regional).
32039	StorageLocations []string `json:"storageLocations,omitempty"`
32040
32041	// ForceSendFields is a list of field names (e.g. "ChainName") to
32042	// unconditionally include in API requests. By default, fields with
32043	// empty values are omitted from API requests. However, any non-pointer,
32044	// non-interface field appearing in ForceSendFields will be sent to the
32045	// server regardless of whether the field is empty or not. This may be
32046	// used to include empty fields in Patch requests.
32047	ForceSendFields []string `json:"-"`
32048
32049	// NullFields is a list of field names (e.g. "ChainName") to include in
32050	// API requests with the JSON null value. By default, fields with empty
32051	// values are omitted from API requests. However, any field with an
32052	// empty value appearing in NullFields will be sent to the server as
32053	// null. It is an error if a field in this list has a non-empty value.
32054	// This may be used to include null fields in Patch requests.
32055	NullFields []string `json:"-"`
32056}
32057
32058func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
32059	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
32060	raw := NoMethod(*s)
32061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32062}
32063
32064// ResourcePolicyWeeklyCycle: Time window specified for weekly
32065// operations.
32066type ResourcePolicyWeeklyCycle struct {
32067	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
32068	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
32069
32070	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
32071	// unconditionally include in API requests. By default, fields with
32072	// empty values are omitted from API requests. However, any non-pointer,
32073	// non-interface field appearing in ForceSendFields will be sent to the
32074	// server regardless of whether the field is empty or not. This may be
32075	// used to include empty fields in Patch requests.
32076	ForceSendFields []string `json:"-"`
32077
32078	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
32079	// API requests with the JSON null value. By default, fields with empty
32080	// values are omitted from API requests. However, any field with an
32081	// empty value appearing in NullFields will be sent to the server as
32082	// null. It is an error if a field in this list has a non-empty value.
32083	// This may be used to include null fields in Patch requests.
32084	NullFields []string `json:"-"`
32085}
32086
32087func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
32088	type NoMethod ResourcePolicyWeeklyCycle
32089	raw := NoMethod(*s)
32090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32091}
32092
32093type ResourcePolicyWeeklyCycleDayOfWeek struct {
32094	// Day: Defines a schedule that runs on specific days of the week.
32095	// Specify one or more days. The following options are available:
32096	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
32097	//
32098	// Possible values:
32099	//   "FRIDAY"
32100	//   "INVALID"
32101	//   "MONDAY"
32102	//   "SATURDAY"
32103	//   "SUNDAY"
32104	//   "THURSDAY"
32105	//   "TUESDAY"
32106	//   "WEDNESDAY"
32107	Day string `json:"day,omitempty"`
32108
32109	// Duration: [Output only] Duration of the time window, automatically
32110	// chosen to be smallest possible in the given scenario.
32111	Duration string `json:"duration,omitempty"`
32112
32113	// StartTime: Time within the window to start the operations. It must be
32114	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
32115	StartTime string `json:"startTime,omitempty"`
32116
32117	// ForceSendFields is a list of field names (e.g. "Day") to
32118	// unconditionally include in API requests. By default, fields with
32119	// empty values are omitted from API requests. However, any non-pointer,
32120	// non-interface field appearing in ForceSendFields will be sent to the
32121	// server regardless of whether the field is empty or not. This may be
32122	// used to include empty fields in Patch requests.
32123	ForceSendFields []string `json:"-"`
32124
32125	// NullFields is a list of field names (e.g. "Day") to include in API
32126	// requests with the JSON null value. By default, fields with empty
32127	// values are omitted from API requests. However, any field with an
32128	// empty value appearing in NullFields will be sent to the server as
32129	// null. It is an error if a field in this list has a non-empty value.
32130	// This may be used to include null fields in Patch requests.
32131	NullFields []string `json:"-"`
32132}
32133
32134func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
32135	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
32136	raw := NoMethod(*s)
32137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32138}
32139
32140// Route: Represents a Route resource.
32141//
32142// A route defines a path from VM instances in the VPC network to a
32143// specific destination. This destination can be inside or outside the
32144// VPC network. For more information, read the Routes overview. (==
32145// resource_for {$api_version}.routes ==)
32146type Route struct {
32147	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32148	// format.
32149	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32150
32151	// Description: An optional description of this resource. Provide this
32152	// field when you create the resource.
32153	Description string `json:"description,omitempty"`
32154
32155	// DestRange: The destination range of outgoing packets that this route
32156	// applies to. Only IPv4 is supported.
32157	DestRange string `json:"destRange,omitempty"`
32158
32159	// Id: [Output Only] The unique identifier for the resource. This
32160	// identifier is defined by the server.
32161	Id uint64 `json:"id,omitempty,string"`
32162
32163	// Kind: [Output Only] Type of this resource. Always compute#routes for
32164	// Route resources.
32165	Kind string `json:"kind,omitempty"`
32166
32167	// Name: Name of the resource. Provided by the client when the resource
32168	// is created. The name must be 1-63 characters long, and comply with
32169	// RFC1035. Specifically, the name must be 1-63 characters long and
32170	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
32171	// character must be a lowercase letter, and all following characters
32172	// (except for the last character) must be a dash, lowercase letter, or
32173	// digit. The last character must be a lowercase letter or digit.
32174	Name string `json:"name,omitempty"`
32175
32176	// Network: Fully-qualified URL of the network that this route applies
32177	// to.
32178	Network string `json:"network,omitempty"`
32179
32180	// NextHopGateway: The URL to a gateway that should handle matching
32181	// packets. You can only specify the internet gateway using a full or
32182	// partial valid URL:
32183	// projects/project/global/gateways/default-internet-gateway
32184	NextHopGateway string `json:"nextHopGateway,omitempty"`
32185
32186	// NextHopIlb: The URL to a forwarding rule of type
32187	// loadBalancingScheme=INTERNAL that should handle matching packets. You
32188	// can only specify the forwarding rule as a partial or full URL. For
32189	// example, the following are all valid URLs:
32190	// -
32191	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
32192	// - regions/region/forwardingRules/forwardingRule
32193	NextHopIlb string `json:"nextHopIlb,omitempty"`
32194
32195	// NextHopInstance: The URL to an instance that should handle matching
32196	// packets. You can specify this as a full or partial URL. For
32197	// example:
32198	// https://www.googleapis.com/compute/v1/projects/project/zones/
32199	// zone/instances/
32200	NextHopInstance string `json:"nextHopInstance,omitempty"`
32201
32202	// NextHopInterconnectAttachment: [Output Only] The URL to an
32203	// InterconnectAttachment which is the next hop for the route. This
32204	// field will only be populated for the dynamic routes generated by
32205	// Cloud Router with a linked interconnectAttachment.
32206	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
32207
32208	// NextHopIp: The network IP address of an instance that should handle
32209	// matching packets. Only IPv4 is supported.
32210	NextHopIp string `json:"nextHopIp,omitempty"`
32211
32212	// NextHopNetwork: The URL of the local network if it should handle
32213	// matching packets.
32214	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
32215
32216	// NextHopPeering: [Output Only] The network peering name that should
32217	// handle matching packets, which should conform to RFC1035.
32218	NextHopPeering string `json:"nextHopPeering,omitempty"`
32219
32220	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
32221	// packets.
32222	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
32223
32224	// Priority: The priority of this route. Priority is used to break ties
32225	// in cases where there is more than one matching route of equal prefix
32226	// length. In cases where multiple routes have equal prefix length, the
32227	// one with the lowest-numbered priority value wins. The default value
32228	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
32229	Priority int64 `json:"priority,omitempty"`
32230
32231	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
32232	// resource.
32233	SelfLink string `json:"selfLink,omitempty"`
32234
32235	// Tags: A list of instance tags to which this route applies.
32236	Tags []string `json:"tags,omitempty"`
32237
32238	// Warnings: [Output Only] If potential misconfigurations are detected
32239	// for this route, this field will be populated with warning messages.
32240	Warnings []*RouteWarnings `json:"warnings,omitempty"`
32241
32242	// ServerResponse contains the HTTP response code and headers from the
32243	// server.
32244	googleapi.ServerResponse `json:"-"`
32245
32246	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
32247	// to unconditionally include in API requests. By default, fields with
32248	// empty values are omitted from API requests. However, any non-pointer,
32249	// non-interface field appearing in ForceSendFields will be sent to the
32250	// server regardless of whether the field is empty or not. This may be
32251	// used to include empty fields in Patch requests.
32252	ForceSendFields []string `json:"-"`
32253
32254	// NullFields is a list of field names (e.g. "CreationTimestamp") to
32255	// include in API requests with the JSON null value. By default, fields
32256	// with empty values are omitted from API requests. However, any field
32257	// with an empty value appearing in NullFields will be sent to the
32258	// server as null. It is an error if a field in this list has a
32259	// non-empty value. This may be used to include null fields in Patch
32260	// requests.
32261	NullFields []string `json:"-"`
32262}
32263
32264func (s *Route) MarshalJSON() ([]byte, error) {
32265	type NoMethod Route
32266	raw := NoMethod(*s)
32267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32268}
32269
32270type RouteWarnings struct {
32271	// Code: [Output Only] A warning code, if applicable. For example,
32272	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32273	// the response.
32274	//
32275	// Possible values:
32276	//   "CLEANUP_FAILED"
32277	//   "DEPRECATED_RESOURCE_USED"
32278	//   "DEPRECATED_TYPE_USED"
32279	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32280	//   "EXPERIMENTAL_TYPE_USED"
32281	//   "EXTERNAL_API_WARNING"
32282	//   "FIELD_VALUE_OVERRIDEN"
32283	//   "INJECTED_KERNELS_DEPRECATED"
32284	//   "MISSING_TYPE_DEPENDENCY"
32285	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32286	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32287	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32288	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32289	//   "NEXT_HOP_NOT_RUNNING"
32290	//   "NOT_CRITICAL_ERROR"
32291	//   "NO_RESULTS_ON_PAGE"
32292	//   "REQUIRED_TOS_AGREEMENT"
32293	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32294	//   "RESOURCE_NOT_DELETED"
32295	//   "SCHEMA_VALIDATION_IGNORED"
32296	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32297	//   "UNDECLARED_PROPERTIES"
32298	//   "UNREACHABLE"
32299	Code string `json:"code,omitempty"`
32300
32301	// Data: [Output Only] Metadata about this warning in key: value format.
32302	// For example:
32303	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32304	Data []*RouteWarningsData `json:"data,omitempty"`
32305
32306	// Message: [Output Only] A human-readable description of the warning
32307	// code.
32308	Message string `json:"message,omitempty"`
32309
32310	// ForceSendFields is a list of field names (e.g. "Code") to
32311	// unconditionally include in API requests. By default, fields with
32312	// empty values are omitted from API requests. However, any non-pointer,
32313	// non-interface field appearing in ForceSendFields will be sent to the
32314	// server regardless of whether the field is empty or not. This may be
32315	// used to include empty fields in Patch requests.
32316	ForceSendFields []string `json:"-"`
32317
32318	// NullFields is a list of field names (e.g. "Code") to include in API
32319	// requests with the JSON null value. By default, fields with empty
32320	// values are omitted from API requests. However, any field with an
32321	// empty value appearing in NullFields will be sent to the server as
32322	// null. It is an error if a field in this list has a non-empty value.
32323	// This may be used to include null fields in Patch requests.
32324	NullFields []string `json:"-"`
32325}
32326
32327func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
32328	type NoMethod RouteWarnings
32329	raw := NoMethod(*s)
32330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32331}
32332
32333type RouteWarningsData struct {
32334	// Key: [Output Only] A key that provides more detail on the warning
32335	// being returned. For example, for warnings where there are no results
32336	// in a list request for a particular zone, this key might be scope and
32337	// the key value might be the zone name. Other examples might be a key
32338	// indicating a deprecated resource and a suggested replacement, or a
32339	// warning about invalid network settings (for example, if an instance
32340	// attempts to perform IP forwarding but is not enabled for IP
32341	// forwarding).
32342	Key string `json:"key,omitempty"`
32343
32344	// Value: [Output Only] A warning data value corresponding to the key.
32345	Value string `json:"value,omitempty"`
32346
32347	// ForceSendFields is a list of field names (e.g. "Key") to
32348	// unconditionally include in API requests. By default, fields with
32349	// empty values are omitted from API requests. However, any non-pointer,
32350	// non-interface field appearing in ForceSendFields will be sent to the
32351	// server regardless of whether the field is empty or not. This may be
32352	// used to include empty fields in Patch requests.
32353	ForceSendFields []string `json:"-"`
32354
32355	// NullFields is a list of field names (e.g. "Key") to include in API
32356	// requests with the JSON null value. By default, fields with empty
32357	// values are omitted from API requests. However, any field with an
32358	// empty value appearing in NullFields will be sent to the server as
32359	// null. It is an error if a field in this list has a non-empty value.
32360	// This may be used to include null fields in Patch requests.
32361	NullFields []string `json:"-"`
32362}
32363
32364func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
32365	type NoMethod RouteWarningsData
32366	raw := NoMethod(*s)
32367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32368}
32369
32370// RouteList: Contains a list of Route resources.
32371type RouteList struct {
32372	// Id: [Output Only] Unique identifier for the resource; defined by the
32373	// server.
32374	Id string `json:"id,omitempty"`
32375
32376	// Items: A list of Route resources.
32377	Items []*Route `json:"items,omitempty"`
32378
32379	// Kind: Type of resource.
32380	Kind string `json:"kind,omitempty"`
32381
32382	// NextPageToken: [Output Only] This token allows you to get the next
32383	// page of results for list requests. If the number of results is larger
32384	// than maxResults, use the nextPageToken as a value for the query
32385	// parameter pageToken in the next list request. Subsequent list
32386	// requests will have their own nextPageToken to continue paging through
32387	// the results.
32388	NextPageToken string `json:"nextPageToken,omitempty"`
32389
32390	// SelfLink: [Output Only] Server-defined URL for this resource.
32391	SelfLink string `json:"selfLink,omitempty"`
32392
32393	// Warning: [Output Only] Informational warning message.
32394	Warning *RouteListWarning `json:"warning,omitempty"`
32395
32396	// ServerResponse contains the HTTP response code and headers from the
32397	// server.
32398	googleapi.ServerResponse `json:"-"`
32399
32400	// ForceSendFields is a list of field names (e.g. "Id") to
32401	// unconditionally include in API requests. By default, fields with
32402	// empty values are omitted from API requests. However, any non-pointer,
32403	// non-interface field appearing in ForceSendFields will be sent to the
32404	// server regardless of whether the field is empty or not. This may be
32405	// used to include empty fields in Patch requests.
32406	ForceSendFields []string `json:"-"`
32407
32408	// NullFields is a list of field names (e.g. "Id") to include in API
32409	// requests with the JSON null value. By default, fields with empty
32410	// values are omitted from API requests. However, any field with an
32411	// empty value appearing in NullFields will be sent to the server as
32412	// null. It is an error if a field in this list has a non-empty value.
32413	// This may be used to include null fields in Patch requests.
32414	NullFields []string `json:"-"`
32415}
32416
32417func (s *RouteList) MarshalJSON() ([]byte, error) {
32418	type NoMethod RouteList
32419	raw := NoMethod(*s)
32420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32421}
32422
32423// RouteListWarning: [Output Only] Informational warning message.
32424type RouteListWarning struct {
32425	// Code: [Output Only] A warning code, if applicable. For example,
32426	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32427	// the response.
32428	//
32429	// Possible values:
32430	//   "CLEANUP_FAILED"
32431	//   "DEPRECATED_RESOURCE_USED"
32432	//   "DEPRECATED_TYPE_USED"
32433	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32434	//   "EXPERIMENTAL_TYPE_USED"
32435	//   "EXTERNAL_API_WARNING"
32436	//   "FIELD_VALUE_OVERRIDEN"
32437	//   "INJECTED_KERNELS_DEPRECATED"
32438	//   "MISSING_TYPE_DEPENDENCY"
32439	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32440	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32441	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32442	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32443	//   "NEXT_HOP_NOT_RUNNING"
32444	//   "NOT_CRITICAL_ERROR"
32445	//   "NO_RESULTS_ON_PAGE"
32446	//   "REQUIRED_TOS_AGREEMENT"
32447	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32448	//   "RESOURCE_NOT_DELETED"
32449	//   "SCHEMA_VALIDATION_IGNORED"
32450	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32451	//   "UNDECLARED_PROPERTIES"
32452	//   "UNREACHABLE"
32453	Code string `json:"code,omitempty"`
32454
32455	// Data: [Output Only] Metadata about this warning in key: value format.
32456	// For example:
32457	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32458	Data []*RouteListWarningData `json:"data,omitempty"`
32459
32460	// Message: [Output Only] A human-readable description of the warning
32461	// code.
32462	Message string `json:"message,omitempty"`
32463
32464	// ForceSendFields is a list of field names (e.g. "Code") to
32465	// unconditionally include in API requests. By default, fields with
32466	// empty values are omitted from API requests. However, any non-pointer,
32467	// non-interface field appearing in ForceSendFields will be sent to the
32468	// server regardless of whether the field is empty or not. This may be
32469	// used to include empty fields in Patch requests.
32470	ForceSendFields []string `json:"-"`
32471
32472	// NullFields is a list of field names (e.g. "Code") to include in API
32473	// requests with the JSON null value. By default, fields with empty
32474	// values are omitted from API requests. However, any field with an
32475	// empty value appearing in NullFields will be sent to the server as
32476	// null. It is an error if a field in this list has a non-empty value.
32477	// This may be used to include null fields in Patch requests.
32478	NullFields []string `json:"-"`
32479}
32480
32481func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
32482	type NoMethod RouteListWarning
32483	raw := NoMethod(*s)
32484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32485}
32486
32487type RouteListWarningData struct {
32488	// Key: [Output Only] A key that provides more detail on the warning
32489	// being returned. For example, for warnings where there are no results
32490	// in a list request for a particular zone, this key might be scope and
32491	// the key value might be the zone name. Other examples might be a key
32492	// indicating a deprecated resource and a suggested replacement, or a
32493	// warning about invalid network settings (for example, if an instance
32494	// attempts to perform IP forwarding but is not enabled for IP
32495	// forwarding).
32496	Key string `json:"key,omitempty"`
32497
32498	// Value: [Output Only] A warning data value corresponding to the key.
32499	Value string `json:"value,omitempty"`
32500
32501	// ForceSendFields is a list of field names (e.g. "Key") to
32502	// unconditionally include in API requests. By default, fields with
32503	// empty values are omitted from API requests. However, any non-pointer,
32504	// non-interface field appearing in ForceSendFields will be sent to the
32505	// server regardless of whether the field is empty or not. This may be
32506	// used to include empty fields in Patch requests.
32507	ForceSendFields []string `json:"-"`
32508
32509	// NullFields is a list of field names (e.g. "Key") to include in API
32510	// requests with the JSON null value. By default, fields with empty
32511	// values are omitted from API requests. However, any field with an
32512	// empty value appearing in NullFields will be sent to the server as
32513	// null. It is an error if a field in this list has a non-empty value.
32514	// This may be used to include null fields in Patch requests.
32515	NullFields []string `json:"-"`
32516}
32517
32518func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
32519	type NoMethod RouteListWarningData
32520	raw := NoMethod(*s)
32521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32522}
32523
32524// Router: Represents a Cloud Router resource.
32525//
32526// For more information about Cloud Router, read the Cloud Router
32527// overview.
32528type Router struct {
32529	// Bgp: BGP information specific to this router.
32530	Bgp *RouterBgp `json:"bgp,omitempty"`
32531
32532	// BgpPeers: BGP information that must be configured into the routing
32533	// stack to establish BGP peering. This information must specify the
32534	// peer ASN and either the interface name, IP address, or peer IP
32535	// address. Please refer to RFC4273.
32536	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
32537
32538	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32539	// format.
32540	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32541
32542	// Description: An optional description of this resource. Provide this
32543	// property when you create the resource.
32544	Description string `json:"description,omitempty"`
32545
32546	// Id: [Output Only] The unique identifier for the resource. This
32547	// identifier is defined by the server.
32548	Id uint64 `json:"id,omitempty,string"`
32549
32550	// Interfaces: Router interfaces. Each interface requires either one
32551	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
32552	// address range (for example, ipRange), or both.
32553	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
32554
32555	// Kind: [Output Only] Type of resource. Always compute#router for
32556	// routers.
32557	Kind string `json:"kind,omitempty"`
32558
32559	// Name: Name of the resource. Provided by the client when the resource
32560	// is created. The name must be 1-63 characters long, and comply with
32561	// RFC1035. Specifically, the name must be 1-63 characters long and
32562	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
32563	// the first character must be a lowercase letter, and all following
32564	// characters must be a dash, lowercase letter, or digit, except the
32565	// last character, which cannot be a dash.
32566	Name string `json:"name,omitempty"`
32567
32568	// Nats: A list of NAT services created in this router.
32569	Nats []*RouterNat `json:"nats,omitempty"`
32570
32571	// Network: URI of the network to which this router belongs.
32572	Network string `json:"network,omitempty"`
32573
32574	// Region: [Output Only] URI of the region where the router resides. You
32575	// must specify this field as part of the HTTP request URL. It is not
32576	// settable as a field in the request body.
32577	Region string `json:"region,omitempty"`
32578
32579	// SelfLink: [Output Only] Server-defined URL for the resource.
32580	SelfLink string `json:"selfLink,omitempty"`
32581
32582	// ServerResponse contains the HTTP response code and headers from the
32583	// server.
32584	googleapi.ServerResponse `json:"-"`
32585
32586	// ForceSendFields is a list of field names (e.g. "Bgp") to
32587	// unconditionally include in API requests. By default, fields with
32588	// empty values are omitted from API requests. However, any non-pointer,
32589	// non-interface field appearing in ForceSendFields will be sent to the
32590	// server regardless of whether the field is empty or not. This may be
32591	// used to include empty fields in Patch requests.
32592	ForceSendFields []string `json:"-"`
32593
32594	// NullFields is a list of field names (e.g. "Bgp") to include in API
32595	// requests with the JSON null value. By default, fields with empty
32596	// values are omitted from API requests. However, any field with an
32597	// empty value appearing in NullFields will be sent to the server as
32598	// null. It is an error if a field in this list has a non-empty value.
32599	// This may be used to include null fields in Patch requests.
32600	NullFields []string `json:"-"`
32601}
32602
32603func (s *Router) MarshalJSON() ([]byte, error) {
32604	type NoMethod Router
32605	raw := NoMethod(*s)
32606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32607}
32608
32609// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
32610// to advertise.
32611type RouterAdvertisedIpRange struct {
32612	// Description: User-specified description for the IP range.
32613	Description string `json:"description,omitempty"`
32614
32615	// Range: The IP range to advertise. The value must be a CIDR-formatted
32616	// string.
32617	Range string `json:"range,omitempty"`
32618
32619	// ForceSendFields is a list of field names (e.g. "Description") to
32620	// unconditionally include in API requests. By default, fields with
32621	// empty values are omitted from API requests. However, any non-pointer,
32622	// non-interface field appearing in ForceSendFields will be sent to the
32623	// server regardless of whether the field is empty or not. This may be
32624	// used to include empty fields in Patch requests.
32625	ForceSendFields []string `json:"-"`
32626
32627	// NullFields is a list of field names (e.g. "Description") to include
32628	// in API requests with the JSON null value. By default, fields with
32629	// empty values are omitted from API requests. However, any field with
32630	// an empty value appearing in NullFields will be sent to the server as
32631	// null. It is an error if a field in this list has a non-empty value.
32632	// This may be used to include null fields in Patch requests.
32633	NullFields []string `json:"-"`
32634}
32635
32636func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
32637	type NoMethod RouterAdvertisedIpRange
32638	raw := NoMethod(*s)
32639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32640}
32641
32642// RouterAggregatedList: Contains a list of routers.
32643type RouterAggregatedList struct {
32644	// Id: [Output Only] Unique identifier for the resource; defined by the
32645	// server.
32646	Id string `json:"id,omitempty"`
32647
32648	// Items: A list of Router resources.
32649	Items map[string]RoutersScopedList `json:"items,omitempty"`
32650
32651	// Kind: Type of resource.
32652	Kind string `json:"kind,omitempty"`
32653
32654	// NextPageToken: [Output Only] This token allows you to get the next
32655	// page of results for list requests. If the number of results is larger
32656	// than maxResults, use the nextPageToken as a value for the query
32657	// parameter pageToken in the next list request. Subsequent list
32658	// requests will have their own nextPageToken to continue paging through
32659	// the results.
32660	NextPageToken string `json:"nextPageToken,omitempty"`
32661
32662	// SelfLink: [Output Only] Server-defined URL for this resource.
32663	SelfLink string `json:"selfLink,omitempty"`
32664
32665	// Warning: [Output Only] Informational warning message.
32666	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
32667
32668	// ServerResponse contains the HTTP response code and headers from the
32669	// server.
32670	googleapi.ServerResponse `json:"-"`
32671
32672	// ForceSendFields is a list of field names (e.g. "Id") to
32673	// unconditionally include in API requests. By default, fields with
32674	// empty values are omitted from API requests. However, any non-pointer,
32675	// non-interface field appearing in ForceSendFields will be sent to the
32676	// server regardless of whether the field is empty or not. This may be
32677	// used to include empty fields in Patch requests.
32678	ForceSendFields []string `json:"-"`
32679
32680	// NullFields is a list of field names (e.g. "Id") to include in API
32681	// requests with the JSON null value. By default, fields with empty
32682	// values are omitted from API requests. However, any field with an
32683	// empty value appearing in NullFields will be sent to the server as
32684	// null. It is an error if a field in this list has a non-empty value.
32685	// This may be used to include null fields in Patch requests.
32686	NullFields []string `json:"-"`
32687}
32688
32689func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
32690	type NoMethod RouterAggregatedList
32691	raw := NoMethod(*s)
32692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32693}
32694
32695// RouterAggregatedListWarning: [Output Only] Informational warning
32696// message.
32697type RouterAggregatedListWarning struct {
32698	// Code: [Output Only] A warning code, if applicable. For example,
32699	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32700	// the response.
32701	//
32702	// Possible values:
32703	//   "CLEANUP_FAILED"
32704	//   "DEPRECATED_RESOURCE_USED"
32705	//   "DEPRECATED_TYPE_USED"
32706	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32707	//   "EXPERIMENTAL_TYPE_USED"
32708	//   "EXTERNAL_API_WARNING"
32709	//   "FIELD_VALUE_OVERRIDEN"
32710	//   "INJECTED_KERNELS_DEPRECATED"
32711	//   "MISSING_TYPE_DEPENDENCY"
32712	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32713	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32714	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32715	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32716	//   "NEXT_HOP_NOT_RUNNING"
32717	//   "NOT_CRITICAL_ERROR"
32718	//   "NO_RESULTS_ON_PAGE"
32719	//   "REQUIRED_TOS_AGREEMENT"
32720	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32721	//   "RESOURCE_NOT_DELETED"
32722	//   "SCHEMA_VALIDATION_IGNORED"
32723	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32724	//   "UNDECLARED_PROPERTIES"
32725	//   "UNREACHABLE"
32726	Code string `json:"code,omitempty"`
32727
32728	// Data: [Output Only] Metadata about this warning in key: value format.
32729	// For example:
32730	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32731	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
32732
32733	// Message: [Output Only] A human-readable description of the warning
32734	// code.
32735	Message string `json:"message,omitempty"`
32736
32737	// ForceSendFields is a list of field names (e.g. "Code") to
32738	// unconditionally include in API requests. By default, fields with
32739	// empty values are omitted from API requests. However, any non-pointer,
32740	// non-interface field appearing in ForceSendFields will be sent to the
32741	// server regardless of whether the field is empty or not. This may be
32742	// used to include empty fields in Patch requests.
32743	ForceSendFields []string `json:"-"`
32744
32745	// NullFields is a list of field names (e.g. "Code") to include in API
32746	// requests with the JSON null value. By default, fields with empty
32747	// values are omitted from API requests. However, any field with an
32748	// empty value appearing in NullFields will be sent to the server as
32749	// null. It is an error if a field in this list has a non-empty value.
32750	// This may be used to include null fields in Patch requests.
32751	NullFields []string `json:"-"`
32752}
32753
32754func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
32755	type NoMethod RouterAggregatedListWarning
32756	raw := NoMethod(*s)
32757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32758}
32759
32760type RouterAggregatedListWarningData struct {
32761	// Key: [Output Only] A key that provides more detail on the warning
32762	// being returned. For example, for warnings where there are no results
32763	// in a list request for a particular zone, this key might be scope and
32764	// the key value might be the zone name. Other examples might be a key
32765	// indicating a deprecated resource and a suggested replacement, or a
32766	// warning about invalid network settings (for example, if an instance
32767	// attempts to perform IP forwarding but is not enabled for IP
32768	// forwarding).
32769	Key string `json:"key,omitempty"`
32770
32771	// Value: [Output Only] A warning data value corresponding to the key.
32772	Value string `json:"value,omitempty"`
32773
32774	// ForceSendFields is a list of field names (e.g. "Key") to
32775	// unconditionally include in API requests. By default, fields with
32776	// empty values are omitted from API requests. However, any non-pointer,
32777	// non-interface field appearing in ForceSendFields will be sent to the
32778	// server regardless of whether the field is empty or not. This may be
32779	// used to include empty fields in Patch requests.
32780	ForceSendFields []string `json:"-"`
32781
32782	// NullFields is a list of field names (e.g. "Key") to include in API
32783	// requests with the JSON null value. By default, fields with empty
32784	// values are omitted from API requests. However, any field with an
32785	// empty value appearing in NullFields will be sent to the server as
32786	// null. It is an error if a field in this list has a non-empty value.
32787	// This may be used to include null fields in Patch requests.
32788	NullFields []string `json:"-"`
32789}
32790
32791func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
32792	type NoMethod RouterAggregatedListWarningData
32793	raw := NoMethod(*s)
32794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32795}
32796
32797type RouterBgp struct {
32798	// AdvertiseMode: User-specified flag to indicate which mode to use for
32799	// advertisement. The options are DEFAULT or CUSTOM.
32800	//
32801	// Possible values:
32802	//   "CUSTOM"
32803	//   "DEFAULT"
32804	AdvertiseMode string `json:"advertiseMode,omitempty"`
32805
32806	// AdvertisedGroups: User-specified list of prefix groups to advertise
32807	// in custom mode. This field can only be populated if advertise_mode is
32808	// CUSTOM and is advertised to all peers of the router. These groups
32809	// will be advertised in addition to any specified prefixes. Leave this
32810	// field blank to advertise no custom groups.
32811	//
32812	// Possible values:
32813	//   "ALL_SUBNETS"
32814	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
32815
32816	// AdvertisedIpRanges: User-specified list of individual IP ranges to
32817	// advertise in custom mode. This field can only be populated if
32818	// advertise_mode is CUSTOM and is advertised to all peers of the
32819	// router. These IP ranges will be advertised in addition to any
32820	// specified groups. Leave this field blank to advertise no custom IP
32821	// ranges.
32822	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
32823
32824	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
32825	// private ASN, either 16-bit or 32-bit. The value will be fixed for
32826	// this router resource. All VPN tunnels that link to this router will
32827	// have the same local ASN.
32828	Asn int64 `json:"asn,omitempty"`
32829
32830	// KeepaliveInterval: The interval in seconds between BGP keepalive
32831	// messages that are sent to the peer.
32832	// Not currently available publicly.
32833	// Hold time is three times the interval at which keepalive messages are
32834	// sent, and the hold time is the maximum number of seconds allowed to
32835	// elapse between successive keepalive messages that BGP receives from a
32836	// peer.
32837	// BGP will use the smaller of either the local hold time value or the
32838	// peer's hold time value as the hold time for the BGP connection
32839	// between the two peers.
32840	// If set, this value must be between 1 and 120. The default is 20.
32841	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
32842
32843	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
32844	// unconditionally include in API requests. By default, fields with
32845	// empty values are omitted from API requests. However, any non-pointer,
32846	// non-interface field appearing in ForceSendFields will be sent to the
32847	// server regardless of whether the field is empty or not. This may be
32848	// used to include empty fields in Patch requests.
32849	ForceSendFields []string `json:"-"`
32850
32851	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
32852	// in API requests with the JSON null value. By default, fields with
32853	// empty values are omitted from API requests. However, any field with
32854	// an empty value appearing in NullFields will be sent to the server as
32855	// null. It is an error if a field in this list has a non-empty value.
32856	// This may be used to include null fields in Patch requests.
32857	NullFields []string `json:"-"`
32858}
32859
32860func (s *RouterBgp) MarshalJSON() ([]byte, error) {
32861	type NoMethod RouterBgp
32862	raw := NoMethod(*s)
32863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32864}
32865
32866type RouterBgpPeer struct {
32867	// AdvertiseMode: User-specified flag to indicate which mode to use for
32868	// advertisement.
32869	//
32870	// Possible values:
32871	//   "CUSTOM"
32872	//   "DEFAULT"
32873	AdvertiseMode string `json:"advertiseMode,omitempty"`
32874
32875	// AdvertisedGroups: User-specified list of prefix groups to advertise
32876	// in custom mode, which can take one of the following options:
32877	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
32878	// subnets.
32879	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
32880	// - ALL_PEER_VPC_SUBNETS: Advertises peer subnets of the router's VPC
32881	// network. Note that this field can only be populated if advertise_mode
32882	// is CUSTOM and overrides the list defined for the router (in the "bgp"
32883	// message). These groups are advertised in addition to any specified
32884	// prefixes. Leave this field blank to advertise no custom groups.
32885	//
32886	// Possible values:
32887	//   "ALL_SUBNETS"
32888	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
32889
32890	// AdvertisedIpRanges: User-specified list of individual IP ranges to
32891	// advertise in custom mode. This field can only be populated if
32892	// advertise_mode is CUSTOM and overrides the list defined for the
32893	// router (in the "bgp" message). These IP ranges are advertised in
32894	// addition to any specified groups. Leave this field blank to advertise
32895	// no custom IP ranges.
32896	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
32897
32898	// AdvertisedRoutePriority: The priority of routes advertised to this
32899	// BGP peer. Where there is more than one matching route of maximum
32900	// length, the routes with the lowest priority value win.
32901	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
32902
32903	// Bfd: BFD configuration for the BGP peering.
32904	// Not currently available publicly.
32905	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
32906
32907	// Enable: The status of the BGP peer connection.
32908	// Not currently available publicly.
32909	// If set to FALSE, any active session with the peer is terminated and
32910	// all associated routing information is removed. If set to TRUE, the
32911	// peer connection can be established with routing information. The
32912	// default is TRUE.
32913	//
32914	// Possible values:
32915	//   "FALSE"
32916	//   "TRUE"
32917	Enable string `json:"enable,omitempty"`
32918
32919	// InterfaceName: Name of the interface the BGP peer is associated with.
32920	InterfaceName string `json:"interfaceName,omitempty"`
32921
32922	// IpAddress: IP address of the interface inside Google Cloud Platform.
32923	// Only IPv4 is supported.
32924	IpAddress string `json:"ipAddress,omitempty"`
32925
32926	// ManagementType: [Output Only] The resource that configures and
32927	// manages this BGP peer.
32928	// - MANAGED_BY_USER is the default value and can be managed by you or
32929	// other users
32930	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
32931	// by Cloud Interconnect, specifically by an InterconnectAttachment of
32932	// type PARTNER. Google automatically creates, updates, and deletes this
32933	// type of BGP peer when the PARTNER InterconnectAttachment is created,
32934	// updated, or deleted.
32935	//
32936	// Possible values:
32937	//   "MANAGED_BY_ATTACHMENT"
32938	//   "MANAGED_BY_USER"
32939	ManagementType string `json:"managementType,omitempty"`
32940
32941	// Name: Name of this BGP peer. The name must be 1-63 characters long,
32942	// and comply with RFC1035. Specifically, the name must be 1-63
32943	// characters long and match the regular expression
32944	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
32945	// a lowercase letter, and all following characters must be a dash,
32946	// lowercase letter, or digit, except the last character, which cannot
32947	// be a dash.
32948	Name string `json:"name,omitempty"`
32949
32950	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
32951	// may use a different value.
32952	PeerAsn int64 `json:"peerAsn,omitempty"`
32953
32954	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
32955	// Platform. Only IPv4 is supported.
32956	PeerIpAddress string `json:"peerIpAddress,omitempty"`
32957
32958	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") 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. "AdvertiseMode") to include
32967	// in API requests with the JSON null value. By default, fields with
32968	// empty values are omitted from API requests. However, any field with
32969	// an 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 *RouterBgpPeer) MarshalJSON() ([]byte, error) {
32976	type NoMethod RouterBgpPeer
32977	raw := NoMethod(*s)
32978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32979}
32980
32981type RouterBgpPeerBfd struct {
32982	// MinReceiveInterval: The minimum interval, in milliseconds, between
32983	// BFD control packets received from the peer router. The actual value
32984	// is negotiated between the two routers and is equal to the greater of
32985	// this value and the transmit interval of the other router.
32986	// Not currently available publicly.
32987	// If set, this value must be between 100 and 30000.
32988	// The default is 300.
32989	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
32990
32991	// MinTransmitInterval: The minimum interval, in milliseconds, between
32992	// BFD control packets transmitted to the peer router. The actual value
32993	// is negotiated between the two routers and is equal to the greater of
32994	// this value and the corresponding receive interval of the other
32995	// router.
32996	// Not currently available publicly.
32997	// If set, this value must be between 100 and 30000.
32998	// The default is 300.
32999	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
33000
33001	// Multiplier: The number of consecutive BFD packets that must be missed
33002	// before BFD declares that a peer is unavailable.
33003	// Not currently available publicly.
33004	// If set, the value must be a value between 2 and 16.
33005	// The default is 3.
33006	Multiplier int64 `json:"multiplier,omitempty"`
33007
33008	// SessionInitializationMode: The BFD session initialization mode for
33009	// this BGP peer.
33010	// Not currently available publicly.
33011	// If set to ACTIVE, the Cloud Router will initiate the BFD session for
33012	// this BGP peer. If set to PASSIVE, the Cloud Router will wait for the
33013	// peer router to initiate the BFD session for this BGP peer. If set to
33014	// DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE.
33015	//
33016	// Possible values:
33017	//   "ACTIVE"
33018	//   "DISABLED"
33019	//   "PASSIVE"
33020	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
33021
33022	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
33023	// to unconditionally include in API requests. By default, fields with
33024	// empty values are omitted from API requests. However, any non-pointer,
33025	// non-interface field appearing in ForceSendFields will be sent to the
33026	// server regardless of whether the field is empty or not. This may be
33027	// used to include empty fields in Patch requests.
33028	ForceSendFields []string `json:"-"`
33029
33030	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
33031	// include in API requests with the JSON null value. By default, fields
33032	// with empty values are omitted from API requests. However, any field
33033	// with an empty value appearing in NullFields will be sent to the
33034	// server as null. It is an error if a field in this list has a
33035	// non-empty value. This may be used to include null fields in Patch
33036	// requests.
33037	NullFields []string `json:"-"`
33038}
33039
33040func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
33041	type NoMethod RouterBgpPeerBfd
33042	raw := NoMethod(*s)
33043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33044}
33045
33046type RouterInterface struct {
33047	// IpRange: IP address and range of the interface. The IP range must be
33048	// in the RFC3927 link-local IP address space. The value must be a
33049	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
33050	// truncate the address as it represents the IP address of the
33051	// interface.
33052	IpRange string `json:"ipRange,omitempty"`
33053
33054	// LinkedInterconnectAttachment: URI of the linked Interconnect
33055	// attachment. It must be in the same region as the router. Each
33056	// interface can have one linked resource, which can be a VPN tunnel, an
33057	// Interconnect attachment, or a virtual machine instance.
33058	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
33059
33060	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
33061	// same region as the router. Each interface can have one linked
33062	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
33063	// virtual machine instance.
33064	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
33065
33066	// ManagementType: [Output Only] The resource that configures and
33067	// manages this interface.
33068	// - MANAGED_BY_USER is the default value and can be managed directly by
33069	// users.
33070	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
33071	// managed by Cloud Interconnect, specifically, by an
33072	// InterconnectAttachment of type PARTNER. Google automatically creates,
33073	// updates, and deletes this type of interface when the PARTNER
33074	// InterconnectAttachment is created, updated, or deleted.
33075	//
33076	// Possible values:
33077	//   "MANAGED_BY_ATTACHMENT"
33078	//   "MANAGED_BY_USER"
33079	ManagementType string `json:"managementType,omitempty"`
33080
33081	// Name: Name of this interface entry. The name must be 1-63 characters
33082	// long, and comply with RFC1035. Specifically, the name must be 1-63
33083	// characters long and match the regular expression
33084	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33085	// a lowercase letter, and all following characters must be a dash,
33086	// lowercase letter, or digit, except the last character, which cannot
33087	// be a dash.
33088	Name string `json:"name,omitempty"`
33089
33090	// ForceSendFields is a list of field names (e.g. "IpRange") to
33091	// unconditionally include in API requests. By default, fields with
33092	// empty values are omitted from API requests. However, any non-pointer,
33093	// non-interface field appearing in ForceSendFields will be sent to the
33094	// server regardless of whether the field is empty or not. This may be
33095	// used to include empty fields in Patch requests.
33096	ForceSendFields []string `json:"-"`
33097
33098	// NullFields is a list of field names (e.g. "IpRange") to include in
33099	// API requests with the JSON null value. By default, fields with empty
33100	// values are omitted from API requests. However, any field with an
33101	// empty value appearing in NullFields will be sent to the server as
33102	// null. It is an error if a field in this list has a non-empty value.
33103	// This may be used to include null fields in Patch requests.
33104	NullFields []string `json:"-"`
33105}
33106
33107func (s *RouterInterface) MarshalJSON() ([]byte, error) {
33108	type NoMethod RouterInterface
33109	raw := NoMethod(*s)
33110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33111}
33112
33113// RouterList: Contains a list of Router resources.
33114type RouterList struct {
33115	// Id: [Output Only] Unique identifier for the resource; defined by the
33116	// server.
33117	Id string `json:"id,omitempty"`
33118
33119	// Items: A list of Router resources.
33120	Items []*Router `json:"items,omitempty"`
33121
33122	// Kind: [Output Only] Type of resource. Always compute#router for
33123	// routers.
33124	Kind string `json:"kind,omitempty"`
33125
33126	// NextPageToken: [Output Only] This token allows you to get the next
33127	// page of results for list requests. If the number of results is larger
33128	// than maxResults, use the nextPageToken as a value for the query
33129	// parameter pageToken in the next list request. Subsequent list
33130	// requests will have their own nextPageToken to continue paging through
33131	// the results.
33132	NextPageToken string `json:"nextPageToken,omitempty"`
33133
33134	// SelfLink: [Output Only] Server-defined URL for this resource.
33135	SelfLink string `json:"selfLink,omitempty"`
33136
33137	// Warning: [Output Only] Informational warning message.
33138	Warning *RouterListWarning `json:"warning,omitempty"`
33139
33140	// ServerResponse contains the HTTP response code and headers from the
33141	// server.
33142	googleapi.ServerResponse `json:"-"`
33143
33144	// ForceSendFields is a list of field names (e.g. "Id") to
33145	// unconditionally include in API requests. By default, fields with
33146	// empty values are omitted from API requests. However, any non-pointer,
33147	// non-interface field appearing in ForceSendFields will be sent to the
33148	// server regardless of whether the field is empty or not. This may be
33149	// used to include empty fields in Patch requests.
33150	ForceSendFields []string `json:"-"`
33151
33152	// NullFields is a list of field names (e.g. "Id") to include in API
33153	// requests with the JSON null value. By default, fields with empty
33154	// values are omitted from API requests. However, any field with an
33155	// empty value appearing in NullFields will be sent to the server as
33156	// null. It is an error if a field in this list has a non-empty value.
33157	// This may be used to include null fields in Patch requests.
33158	NullFields []string `json:"-"`
33159}
33160
33161func (s *RouterList) MarshalJSON() ([]byte, error) {
33162	type NoMethod RouterList
33163	raw := NoMethod(*s)
33164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33165}
33166
33167// RouterListWarning: [Output Only] Informational warning message.
33168type RouterListWarning struct {
33169	// Code: [Output Only] A warning code, if applicable. For example,
33170	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33171	// the response.
33172	//
33173	// Possible values:
33174	//   "CLEANUP_FAILED"
33175	//   "DEPRECATED_RESOURCE_USED"
33176	//   "DEPRECATED_TYPE_USED"
33177	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33178	//   "EXPERIMENTAL_TYPE_USED"
33179	//   "EXTERNAL_API_WARNING"
33180	//   "FIELD_VALUE_OVERRIDEN"
33181	//   "INJECTED_KERNELS_DEPRECATED"
33182	//   "MISSING_TYPE_DEPENDENCY"
33183	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33184	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33185	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33186	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33187	//   "NEXT_HOP_NOT_RUNNING"
33188	//   "NOT_CRITICAL_ERROR"
33189	//   "NO_RESULTS_ON_PAGE"
33190	//   "REQUIRED_TOS_AGREEMENT"
33191	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33192	//   "RESOURCE_NOT_DELETED"
33193	//   "SCHEMA_VALIDATION_IGNORED"
33194	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33195	//   "UNDECLARED_PROPERTIES"
33196	//   "UNREACHABLE"
33197	Code string `json:"code,omitempty"`
33198
33199	// Data: [Output Only] Metadata about this warning in key: value format.
33200	// For example:
33201	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33202	Data []*RouterListWarningData `json:"data,omitempty"`
33203
33204	// Message: [Output Only] A human-readable description of the warning
33205	// code.
33206	Message string `json:"message,omitempty"`
33207
33208	// ForceSendFields is a list of field names (e.g. "Code") to
33209	// unconditionally include in API requests. By default, fields with
33210	// empty values are omitted from API requests. However, any non-pointer,
33211	// non-interface field appearing in ForceSendFields will be sent to the
33212	// server regardless of whether the field is empty or not. This may be
33213	// used to include empty fields in Patch requests.
33214	ForceSendFields []string `json:"-"`
33215
33216	// NullFields is a list of field names (e.g. "Code") to include in API
33217	// requests with the JSON null value. By default, fields with empty
33218	// values are omitted from API requests. However, any field with an
33219	// empty value appearing in NullFields will be sent to the server as
33220	// null. It is an error if a field in this list has a non-empty value.
33221	// This may be used to include null fields in Patch requests.
33222	NullFields []string `json:"-"`
33223}
33224
33225func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
33226	type NoMethod RouterListWarning
33227	raw := NoMethod(*s)
33228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33229}
33230
33231type RouterListWarningData struct {
33232	// Key: [Output Only] A key that provides more detail on the warning
33233	// being returned. For example, for warnings where there are no results
33234	// in a list request for a particular zone, this key might be scope and
33235	// the key value might be the zone name. Other examples might be a key
33236	// indicating a deprecated resource and a suggested replacement, or a
33237	// warning about invalid network settings (for example, if an instance
33238	// attempts to perform IP forwarding but is not enabled for IP
33239	// forwarding).
33240	Key string `json:"key,omitempty"`
33241
33242	// Value: [Output Only] A warning data value corresponding to the key.
33243	Value string `json:"value,omitempty"`
33244
33245	// ForceSendFields is a list of field names (e.g. "Key") to
33246	// unconditionally include in API requests. By default, fields with
33247	// empty values are omitted from API requests. However, any non-pointer,
33248	// non-interface field appearing in ForceSendFields will be sent to the
33249	// server regardless of whether the field is empty or not. This may be
33250	// used to include empty fields in Patch requests.
33251	ForceSendFields []string `json:"-"`
33252
33253	// NullFields is a list of field names (e.g. "Key") to include in API
33254	// requests with the JSON null value. By default, fields with empty
33255	// values are omitted from API requests. However, any field with an
33256	// empty value appearing in NullFields will be sent to the server as
33257	// null. It is an error if a field in this list has a non-empty value.
33258	// This may be used to include null fields in Patch requests.
33259	NullFields []string `json:"-"`
33260}
33261
33262func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
33263	type NoMethod RouterListWarningData
33264	raw := NoMethod(*s)
33265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33266}
33267
33268// RouterNat: Represents a Nat resource. It enables the VMs within the
33269// specified subnetworks to access Internet without external IP
33270// addresses. It specifies a list of subnetworks (and the ranges within)
33271// that want to use NAT. Customers can also provide the external IPs
33272// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
33273// no external IPs are provided.
33274type RouterNat struct {
33275	// DrainNatIps: A list of URLs of the IP resources to be drained. These
33276	// IPs must be valid static external IPs that have been assigned to the
33277	// NAT. These IPs should be used for updating/patching a NAT only.
33278	DrainNatIps []string `json:"drainNatIps,omitempty"`
33279
33280	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
33281	// Defaults to 30s if not set.
33282	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
33283
33284	// LogConfig: Configure logging on this NAT.
33285	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
33286
33287	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
33288	// NAT config. If not set, a default number of ports is allocated to a
33289	// VM. This is rounded up to the nearest power of 2. For example, if the
33290	// value of this field is 50, at least 64 ports are allocated to a VM.
33291	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
33292
33293	// Name: Unique name of this Nat service. The name must be 1-63
33294	// characters long and comply with RFC1035.
33295	Name string `json:"name,omitempty"`
33296
33297	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
33298	// one of the following values:
33299	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
33300	// there are not enough specified Nat IPs, the Nat service fails for new
33301	// VMs.
33302	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
33303	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
33304	// nat_ip should be empty.
33305	//
33306	// Possible values:
33307	//   "AUTO_ONLY"
33308	//   "MANUAL_ONLY"
33309	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
33310
33311	// NatIps: A list of URLs of the IP resources used for this Nat service.
33312	// These IP addresses must be valid static external IP addresses
33313	// assigned to the project.
33314	NatIps []string `json:"natIps,omitempty"`
33315
33316	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
33317	// one of the following values:
33318	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
33319	// Subnetwork are allowed to Nat.
33320	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
33321	// in every Subnetwork are allowed to Nat.
33322	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
33323	// (specified in the field subnetwork below) The default is
33324	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
33325	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
33326	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
33327	// other Router.Nat section in any Router for this network in this
33328	// region.
33329	//
33330	// Possible values:
33331	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
33332	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
33333	//   "LIST_OF_SUBNETWORKS"
33334	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
33335
33336	// Subnetworks: A list of Subnetwork resources whose traffic should be
33337	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
33338	// is selected for the SubnetworkIpRangeToNatOption above.
33339	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
33340
33341	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
33342	// established connections. Defaults to 1200s if not set.
33343	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
33344
33345	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
33346	// connections. Defaults to 30s if not set.
33347	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
33348
33349	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
33350	// to 30s if not set.
33351	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
33352
33353	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
33354	// unconditionally include in API requests. By default, fields with
33355	// empty values are omitted from API requests. However, any non-pointer,
33356	// non-interface field appearing in ForceSendFields will be sent to the
33357	// server regardless of whether the field is empty or not. This may be
33358	// used to include empty fields in Patch requests.
33359	ForceSendFields []string `json:"-"`
33360
33361	// NullFields is a list of field names (e.g. "DrainNatIps") to include
33362	// in API requests with the JSON null value. By default, fields with
33363	// empty values are omitted from API requests. However, any field with
33364	// an empty value appearing in NullFields will be sent to the server as
33365	// null. It is an error if a field in this list has a non-empty value.
33366	// This may be used to include null fields in Patch requests.
33367	NullFields []string `json:"-"`
33368}
33369
33370func (s *RouterNat) MarshalJSON() ([]byte, error) {
33371	type NoMethod RouterNat
33372	raw := NoMethod(*s)
33373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33374}
33375
33376// RouterNatLogConfig: Configuration of logging on a NAT.
33377type RouterNatLogConfig struct {
33378	// Enable: Indicates whether or not to export logs. This is false by
33379	// default.
33380	Enable bool `json:"enable,omitempty"`
33381
33382	// Filter: Specify the desired filtering of logs on this NAT. If
33383	// unspecified, logs are exported for all connections handled by this
33384	// NAT. This option can take one of the following values:
33385	// - ERRORS_ONLY: Export logs only for connection failures.
33386	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
33387	// - ALL: Export logs for all connections, successful and unsuccessful.
33388	//
33389	// Possible values:
33390	//   "ALL"
33391	//   "ERRORS_ONLY"
33392	//   "TRANSLATIONS_ONLY"
33393	Filter string `json:"filter,omitempty"`
33394
33395	// ForceSendFields is a list of field names (e.g. "Enable") to
33396	// unconditionally include in API requests. By default, fields with
33397	// empty values are omitted from API requests. However, any non-pointer,
33398	// non-interface field appearing in ForceSendFields will be sent to the
33399	// server regardless of whether the field is empty or not. This may be
33400	// used to include empty fields in Patch requests.
33401	ForceSendFields []string `json:"-"`
33402
33403	// NullFields is a list of field names (e.g. "Enable") to include in API
33404	// requests with the JSON null value. By default, fields with empty
33405	// values are omitted from API requests. However, any field with an
33406	// empty value appearing in NullFields will be sent to the server as
33407	// null. It is an error if a field in this list has a non-empty value.
33408	// This may be used to include null fields in Patch requests.
33409	NullFields []string `json:"-"`
33410}
33411
33412func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
33413	type NoMethod RouterNatLogConfig
33414	raw := NoMethod(*s)
33415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33416}
33417
33418// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
33419// for a subnetwork.
33420type RouterNatSubnetworkToNat struct {
33421	// Name: URL for the subnetwork resource that will use NAT.
33422	Name string `json:"name,omitempty"`
33423
33424	// SecondaryIpRangeNames: A list of the secondary ranges of the
33425	// Subnetwork that are allowed to use NAT. This can be populated only if
33426	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
33427	// source_ip_ranges_to_nat.
33428	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
33429
33430	// SourceIpRangesToNat: Specify the options for NAT ranges in the
33431	// Subnetwork. All options of a single value are valid except
33432	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
33433	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
33434	// Default: [ALL_IP_RANGES]
33435	//
33436	// Possible values:
33437	//   "ALL_IP_RANGES"
33438	//   "LIST_OF_SECONDARY_IP_RANGES"
33439	//   "PRIMARY_IP_RANGE"
33440	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
33441
33442	// ForceSendFields is a list of field names (e.g. "Name") to
33443	// unconditionally include in API requests. By default, fields with
33444	// empty values are omitted from API requests. However, any non-pointer,
33445	// non-interface field appearing in ForceSendFields will be sent to the
33446	// server regardless of whether the field is empty or not. This may be
33447	// used to include empty fields in Patch requests.
33448	ForceSendFields []string `json:"-"`
33449
33450	// NullFields is a list of field names (e.g. "Name") to include in API
33451	// requests with the JSON null value. By default, fields with empty
33452	// values are omitted from API requests. However, any field with an
33453	// empty value appearing in NullFields will be sent to the server as
33454	// null. It is an error if a field in this list has a non-empty value.
33455	// This may be used to include null fields in Patch requests.
33456	NullFields []string `json:"-"`
33457}
33458
33459func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
33460	type NoMethod RouterNatSubnetworkToNat
33461	raw := NoMethod(*s)
33462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33463}
33464
33465type RouterStatus struct {
33466	// BestRoutes: Best routes for this router's network.
33467	BestRoutes []*Route `json:"bestRoutes,omitempty"`
33468
33469	// BestRoutesForRouter: Best routes learned by this router.
33470	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
33471
33472	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
33473
33474	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
33475
33476	// Network: URI of the network to which this router belongs.
33477	Network string `json:"network,omitempty"`
33478
33479	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
33480	// unconditionally include in API requests. By default, fields with
33481	// empty values are omitted from API requests. However, any non-pointer,
33482	// non-interface field appearing in ForceSendFields will be sent to the
33483	// server regardless of whether the field is empty or not. This may be
33484	// used to include empty fields in Patch requests.
33485	ForceSendFields []string `json:"-"`
33486
33487	// NullFields is a list of field names (e.g. "BestRoutes") to include in
33488	// API requests with the JSON null value. By default, fields with empty
33489	// values are omitted from API requests. However, any field with an
33490	// empty value appearing in NullFields will be sent to the server as
33491	// null. It is an error if a field in this list has a non-empty value.
33492	// This may be used to include null fields in Patch requests.
33493	NullFields []string `json:"-"`
33494}
33495
33496func (s *RouterStatus) MarshalJSON() ([]byte, error) {
33497	type NoMethod RouterStatus
33498	raw := NoMethod(*s)
33499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33500}
33501
33502type RouterStatusBgpPeerStatus struct {
33503	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
33504	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
33505
33506	BfdStatus *BfdStatus `json:"bfdStatus,omitempty"`
33507
33508	// IpAddress: IP address of the local BGP interface.
33509	IpAddress string `json:"ipAddress,omitempty"`
33510
33511	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
33512	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
33513
33514	// Name: Name of this BGP peer. Unique within the Routers resource.
33515	Name string `json:"name,omitempty"`
33516
33517	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
33518	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
33519
33520	// PeerIpAddress: IP address of the remote BGP interface.
33521	PeerIpAddress string `json:"peerIpAddress,omitempty"`
33522
33523	// State: BGP state as specified in RFC1771.
33524	State string `json:"state,omitempty"`
33525
33526	// Status: Status of the BGP peer: {UP, DOWN}
33527	//
33528	// Possible values:
33529	//   "DOWN"
33530	//   "UNKNOWN"
33531	//   "UP"
33532	Status string `json:"status,omitempty"`
33533
33534	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
33535	// days, 23 hours, 59 minutes, 59 seconds
33536	Uptime string `json:"uptime,omitempty"`
33537
33538	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
33539	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
33540
33541	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
33542	// unconditionally include in API requests. By default, fields with
33543	// empty values are omitted from API requests. However, any non-pointer,
33544	// non-interface field appearing in ForceSendFields will be sent to the
33545	// server regardless of whether the field is empty or not. This may be
33546	// used to include empty fields in Patch requests.
33547	ForceSendFields []string `json:"-"`
33548
33549	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
33550	// include in API requests with the JSON null value. By default, fields
33551	// with empty values are omitted from API requests. However, any field
33552	// with an empty value appearing in NullFields will be sent to the
33553	// server as null. It is an error if a field in this list has a
33554	// non-empty value. This may be used to include null fields in Patch
33555	// requests.
33556	NullFields []string `json:"-"`
33557}
33558
33559func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
33560	type NoMethod RouterStatusBgpPeerStatus
33561	raw := NoMethod(*s)
33562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33563}
33564
33565// RouterStatusNatStatus: Status of a NAT contained in this router.
33566type RouterStatusNatStatus struct {
33567	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
33568	// ["1.1.1.1", "129.2.16.89"]
33569	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
33570
33571	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
33572	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
33573	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
33574
33575	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
33576	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
33577	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
33578
33579	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
33580	// be greater than 0 only if user-specified IPs are NOT enough to allow
33581	// all configured VMs to use NAT. This value is meaningful only when
33582	// auto-allocation of NAT IPs is *not* used.
33583	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
33584
33585	// Name: Unique name of this NAT.
33586	Name string `json:"name,omitempty"`
33587
33588	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
33589	// that can use NAT.
33590	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
33591
33592	// UserAllocatedNatIpResources: A list of fully qualified URLs of
33593	// reserved IP address resources.
33594	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
33595
33596	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
33597	// be raw IP strings like "179.12.26.133".
33598	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
33599
33600	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
33601	// to unconditionally include in API requests. By default, fields with
33602	// empty values are omitted from API requests. However, any non-pointer,
33603	// non-interface field appearing in ForceSendFields will be sent to the
33604	// server regardless of whether the field is empty or not. This may be
33605	// used to include empty fields in Patch requests.
33606	ForceSendFields []string `json:"-"`
33607
33608	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
33609	// include in API requests with the JSON null value. By default, fields
33610	// with empty values are omitted from API requests. However, any field
33611	// with an empty value appearing in NullFields will be sent to the
33612	// server as null. It is an error if a field in this list has a
33613	// non-empty value. This may be used to include null fields in Patch
33614	// requests.
33615	NullFields []string `json:"-"`
33616}
33617
33618func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
33619	type NoMethod RouterStatusNatStatus
33620	raw := NoMethod(*s)
33621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33622}
33623
33624type RouterStatusResponse struct {
33625	// Kind: Type of resource.
33626	Kind string `json:"kind,omitempty"`
33627
33628	Result *RouterStatus `json:"result,omitempty"`
33629
33630	// ServerResponse contains the HTTP response code and headers from the
33631	// server.
33632	googleapi.ServerResponse `json:"-"`
33633
33634	// ForceSendFields is a list of field names (e.g. "Kind") to
33635	// unconditionally include in API requests. By default, fields with
33636	// empty values are omitted from API requests. However, any non-pointer,
33637	// non-interface field appearing in ForceSendFields will be sent to the
33638	// server regardless of whether the field is empty or not. This may be
33639	// used to include empty fields in Patch requests.
33640	ForceSendFields []string `json:"-"`
33641
33642	// NullFields is a list of field names (e.g. "Kind") to include in API
33643	// requests with the JSON null value. By default, fields with empty
33644	// values are omitted from API requests. However, any field with an
33645	// empty value appearing in NullFields will be sent to the server as
33646	// null. It is an error if a field in this list has a non-empty value.
33647	// This may be used to include null fields in Patch requests.
33648	NullFields []string `json:"-"`
33649}
33650
33651func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
33652	type NoMethod RouterStatusResponse
33653	raw := NoMethod(*s)
33654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33655}
33656
33657type RoutersPreviewResponse struct {
33658	// Resource: Preview of given router.
33659	Resource *Router `json:"resource,omitempty"`
33660
33661	// ServerResponse contains the HTTP response code and headers from the
33662	// server.
33663	googleapi.ServerResponse `json:"-"`
33664
33665	// ForceSendFields is a list of field names (e.g. "Resource") to
33666	// unconditionally include in API requests. By default, fields with
33667	// empty values are omitted from API requests. However, any non-pointer,
33668	// non-interface field appearing in ForceSendFields will be sent to the
33669	// server regardless of whether the field is empty or not. This may be
33670	// used to include empty fields in Patch requests.
33671	ForceSendFields []string `json:"-"`
33672
33673	// NullFields is a list of field names (e.g. "Resource") to include in
33674	// API requests with the JSON null value. By default, fields with empty
33675	// values are omitted from API requests. However, any field with an
33676	// empty value appearing in NullFields will be sent to the server as
33677	// null. It is an error if a field in this list has a non-empty value.
33678	// This may be used to include null fields in Patch requests.
33679	NullFields []string `json:"-"`
33680}
33681
33682func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
33683	type NoMethod RoutersPreviewResponse
33684	raw := NoMethod(*s)
33685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33686}
33687
33688type RoutersScopedList struct {
33689	// Routers: A list of routers contained in this scope.
33690	Routers []*Router `json:"routers,omitempty"`
33691
33692	// Warning: Informational warning which replaces the list of routers
33693	// when the list is empty.
33694	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
33695
33696	// ForceSendFields is a list of field names (e.g. "Routers") to
33697	// unconditionally include in API requests. By default, fields with
33698	// empty values are omitted from API requests. However, any non-pointer,
33699	// non-interface field appearing in ForceSendFields will be sent to the
33700	// server regardless of whether the field is empty or not. This may be
33701	// used to include empty fields in Patch requests.
33702	ForceSendFields []string `json:"-"`
33703
33704	// NullFields is a list of field names (e.g. "Routers") to include in
33705	// API requests with the JSON null value. By default, fields with empty
33706	// values are omitted from API requests. However, any field with an
33707	// empty value appearing in NullFields will be sent to the server as
33708	// null. It is an error if a field in this list has a non-empty value.
33709	// This may be used to include null fields in Patch requests.
33710	NullFields []string `json:"-"`
33711}
33712
33713func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
33714	type NoMethod RoutersScopedList
33715	raw := NoMethod(*s)
33716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33717}
33718
33719// RoutersScopedListWarning: Informational warning which replaces the
33720// list of routers when the list is empty.
33721type RoutersScopedListWarning struct {
33722	// Code: [Output Only] A warning code, if applicable. For example,
33723	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33724	// the response.
33725	//
33726	// Possible values:
33727	//   "CLEANUP_FAILED"
33728	//   "DEPRECATED_RESOURCE_USED"
33729	//   "DEPRECATED_TYPE_USED"
33730	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33731	//   "EXPERIMENTAL_TYPE_USED"
33732	//   "EXTERNAL_API_WARNING"
33733	//   "FIELD_VALUE_OVERRIDEN"
33734	//   "INJECTED_KERNELS_DEPRECATED"
33735	//   "MISSING_TYPE_DEPENDENCY"
33736	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33737	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33738	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33739	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33740	//   "NEXT_HOP_NOT_RUNNING"
33741	//   "NOT_CRITICAL_ERROR"
33742	//   "NO_RESULTS_ON_PAGE"
33743	//   "REQUIRED_TOS_AGREEMENT"
33744	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33745	//   "RESOURCE_NOT_DELETED"
33746	//   "SCHEMA_VALIDATION_IGNORED"
33747	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33748	//   "UNDECLARED_PROPERTIES"
33749	//   "UNREACHABLE"
33750	Code string `json:"code,omitempty"`
33751
33752	// Data: [Output Only] Metadata about this warning in key: value format.
33753	// For example:
33754	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33755	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
33756
33757	// Message: [Output Only] A human-readable description of the warning
33758	// code.
33759	Message string `json:"message,omitempty"`
33760
33761	// ForceSendFields is a list of field names (e.g. "Code") to
33762	// unconditionally include in API requests. By default, fields with
33763	// empty values are omitted from API requests. However, any non-pointer,
33764	// non-interface field appearing in ForceSendFields will be sent to the
33765	// server regardless of whether the field is empty or not. This may be
33766	// used to include empty fields in Patch requests.
33767	ForceSendFields []string `json:"-"`
33768
33769	// NullFields is a list of field names (e.g. "Code") to include in API
33770	// requests with the JSON null value. By default, fields with empty
33771	// values are omitted from API requests. However, any field with an
33772	// empty value appearing in NullFields will be sent to the server as
33773	// null. It is an error if a field in this list has a non-empty value.
33774	// This may be used to include null fields in Patch requests.
33775	NullFields []string `json:"-"`
33776}
33777
33778func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
33779	type NoMethod RoutersScopedListWarning
33780	raw := NoMethod(*s)
33781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33782}
33783
33784type RoutersScopedListWarningData struct {
33785	// Key: [Output Only] A key that provides more detail on the warning
33786	// being returned. For example, for warnings where there are no results
33787	// in a list request for a particular zone, this key might be scope and
33788	// the key value might be the zone name. Other examples might be a key
33789	// indicating a deprecated resource and a suggested replacement, or a
33790	// warning about invalid network settings (for example, if an instance
33791	// attempts to perform IP forwarding but is not enabled for IP
33792	// forwarding).
33793	Key string `json:"key,omitempty"`
33794
33795	// Value: [Output Only] A warning data value corresponding to the key.
33796	Value string `json:"value,omitempty"`
33797
33798	// ForceSendFields is a list of field names (e.g. "Key") to
33799	// unconditionally include in API requests. By default, fields with
33800	// empty values are omitted from API requests. However, any non-pointer,
33801	// non-interface field appearing in ForceSendFields will be sent to the
33802	// server regardless of whether the field is empty or not. This may be
33803	// used to include empty fields in Patch requests.
33804	ForceSendFields []string `json:"-"`
33805
33806	// NullFields is a list of field names (e.g. "Key") to include in API
33807	// requests with the JSON null value. By default, fields with empty
33808	// values are omitted from API requests. However, any field with an
33809	// empty value appearing in NullFields will be sent to the server as
33810	// null. It is an error if a field in this list has a non-empty value.
33811	// This may be used to include null fields in Patch requests.
33812	NullFields []string `json:"-"`
33813}
33814
33815func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
33816	type NoMethod RoutersScopedListWarningData
33817	raw := NoMethod(*s)
33818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33819}
33820
33821// Rule: A rule to be applied in a Policy.
33822type Rule struct {
33823	// Action: Required
33824	//
33825	// Possible values:
33826	//   "ALLOW"
33827	//   "ALLOW_WITH_LOG"
33828	//   "DENY"
33829	//   "DENY_WITH_LOG"
33830	//   "LOG"
33831	//   "NO_ACTION"
33832	Action string `json:"action,omitempty"`
33833
33834	// Conditions: Additional restrictions that must be met. All conditions
33835	// must pass for the rule to match.
33836	Conditions []*Condition `json:"conditions,omitempty"`
33837
33838	// Description: Human-readable description of the rule.
33839	Description string `json:"description,omitempty"`
33840
33841	// Ins: If one or more 'in' clauses are specified, the rule matches if
33842	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
33843	Ins []string `json:"ins,omitempty"`
33844
33845	// LogConfigs: The config returned to callers of
33846	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
33847	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
33848
33849	// NotIns: If one or more 'not_in' clauses are specified, the rule
33850	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
33851	// entries.
33852	NotIns []string `json:"notIns,omitempty"`
33853
33854	// Permissions: A permission is a string of form '..' (e.g.,
33855	// 'storage.buckets.list'). A value of '*' matches all permissions, and
33856	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
33857	Permissions []string `json:"permissions,omitempty"`
33858
33859	// ForceSendFields is a list of field names (e.g. "Action") to
33860	// unconditionally include in API requests. By default, fields with
33861	// empty values are omitted from API requests. However, any non-pointer,
33862	// non-interface field appearing in ForceSendFields will be sent to the
33863	// server regardless of whether the field is empty or not. This may be
33864	// used to include empty fields in Patch requests.
33865	ForceSendFields []string `json:"-"`
33866
33867	// NullFields is a list of field names (e.g. "Action") to include in API
33868	// requests with the JSON null value. By default, fields with empty
33869	// values are omitted from API requests. However, any field with an
33870	// empty value appearing in NullFields will be sent to the server as
33871	// null. It is an error if a field in this list has a non-empty value.
33872	// This may be used to include null fields in Patch requests.
33873	NullFields []string `json:"-"`
33874}
33875
33876func (s *Rule) MarshalJSON() ([]byte, error) {
33877	type NoMethod Rule
33878	raw := NoMethod(*s)
33879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33880}
33881
33882type SSLHealthCheck struct {
33883	// Port: The TCP port number for the health check request. The default
33884	// value is 443. Valid values are 1 through 65535.
33885	Port int64 `json:"port,omitempty"`
33886
33887	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
33888	// both port and port_name are defined, port takes precedence.
33889	PortName string `json:"portName,omitempty"`
33890
33891	// PortSpecification: Specifies how port is selected for health
33892	// checking, can be one of following values:
33893	// USE_FIXED_PORT: The port number in port is used for health
33894	// checking.
33895	// USE_NAMED_PORT: The portName is used for health
33896	// checking.
33897	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
33898	// each network endpoint is used for health checking. For other
33899	// backends, the port or named port specified in the Backend Service is
33900	// used for health checking.
33901	//
33902	//
33903	// If not specified, SSL health check follows behavior specified in port
33904	// and portName fields.
33905	//
33906	// Possible values:
33907	//   "USE_FIXED_PORT"
33908	//   "USE_NAMED_PORT"
33909	//   "USE_SERVING_PORT"
33910	PortSpecification string `json:"portSpecification,omitempty"`
33911
33912	// ProxyHeader: Specifies the type of proxy header to append before
33913	// sending data to the backend, either NONE or PROXY_V1. The default is
33914	// NONE.
33915	//
33916	// Possible values:
33917	//   "NONE"
33918	//   "PROXY_V1"
33919	ProxyHeader string `json:"proxyHeader,omitempty"`
33920
33921	// Request: The application data to send once the SSL connection has
33922	// been established (default value is empty). If both request and
33923	// response are empty, the connection establishment alone will indicate
33924	// health. The request data can only be ASCII.
33925	Request string `json:"request,omitempty"`
33926
33927	// Response: The bytes to match against the beginning of the response
33928	// data. If left empty (the default value), any response will indicate
33929	// health. The response data can only be ASCII.
33930	Response string `json:"response,omitempty"`
33931
33932	// ForceSendFields is a list of field names (e.g. "Port") to
33933	// unconditionally include in API requests. By default, fields with
33934	// empty values are omitted from API requests. However, any non-pointer,
33935	// non-interface field appearing in ForceSendFields will be sent to the
33936	// server regardless of whether the field is empty or not. This may be
33937	// used to include empty fields in Patch requests.
33938	ForceSendFields []string `json:"-"`
33939
33940	// NullFields is a list of field names (e.g. "Port") to include in API
33941	// requests with the JSON null value. By default, fields with empty
33942	// values are omitted from API requests. However, any field with an
33943	// empty value appearing in NullFields will be sent to the server as
33944	// null. It is an error if a field in this list has a non-empty value.
33945	// This may be used to include null fields in Patch requests.
33946	NullFields []string `json:"-"`
33947}
33948
33949func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
33950	type NoMethod SSLHealthCheck
33951	raw := NoMethod(*s)
33952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33953}
33954
33955// SavedAttachedDisk: An instance-attached disk resource.
33956type SavedAttachedDisk struct {
33957	// AutoDelete: Specifies whether the disk will be auto-deleted when the
33958	// instance is deleted (but not when the disk is detached from the
33959	// instance).
33960	AutoDelete bool `json:"autoDelete,omitempty"`
33961
33962	// Boot: Indicates that this is a boot disk. The virtual machine will
33963	// use the first partition of the disk for its root filesystem.
33964	Boot bool `json:"boot,omitempty"`
33965
33966	// DeviceName: Specifies the name of the disk attached to the source
33967	// instance.
33968	DeviceName string `json:"deviceName,omitempty"`
33969
33970	// DiskEncryptionKey: The encryption key for the disk.
33971	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
33972
33973	// DiskSizeGb: The size of the disk in base-2 GB.
33974	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
33975
33976	// DiskType: [Output Only] URL of the disk type resource. For example:
33977	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
33978	DiskType string `json:"diskType,omitempty"`
33979
33980	// GuestOsFeatures: A list of features to enable on the guest operating
33981	// system. Applicable only for bootable images. Read  Enabling guest
33982	// operating system features to see a list of available options.
33983	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
33984
33985	// Index: Specifies zero-based index of the disk that is attached to the
33986	// source instance.
33987	Index int64 `json:"index,omitempty"`
33988
33989	// Interface: Specifies the disk interface to use for attaching this
33990	// disk, which is either SCSI or NVME.
33991	//
33992	// Possible values:
33993	//   "NVME"
33994	//   "SCSI"
33995	Interface string `json:"interface,omitempty"`
33996
33997	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
33998	// for attached disks.
33999	Kind string `json:"kind,omitempty"`
34000
34001	// Licenses: [Output Only] Any valid publicly visible licenses.
34002	Licenses []string `json:"licenses,omitempty"`
34003
34004	// Mode: The mode in which this disk is attached to the source instance,
34005	// either READ_WRITE or READ_ONLY.
34006	//
34007	// Possible values:
34008	//   "READ_ONLY"
34009	//   "READ_WRITE"
34010	Mode string `json:"mode,omitempty"`
34011
34012	// Source: Specifies a URL of the disk attached to the source instance.
34013	Source string `json:"source,omitempty"`
34014
34015	// StorageBytes: [Output Only] A size of the storage used by the disk's
34016	// snapshot by this machine image.
34017	StorageBytes int64 `json:"storageBytes,omitempty,string"`
34018
34019	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
34020	// is in a stable state or it is being adjusted as a result of shared
34021	// storage reallocation. This status can either be UPDATING, meaning the
34022	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
34023	// size of the snapshot is up-to-date.
34024	//
34025	// Possible values:
34026	//   "UPDATING"
34027	//   "UP_TO_DATE"
34028	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
34029
34030	// Type: Specifies the type of the attached disk, either SCRATCH or
34031	// PERSISTENT.
34032	//
34033	// Possible values:
34034	//   "PERSISTENT"
34035	//   "SCRATCH"
34036	Type string `json:"type,omitempty"`
34037
34038	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
34039	// unconditionally include in API requests. By default, fields with
34040	// empty values are omitted from API requests. However, any non-pointer,
34041	// non-interface field appearing in ForceSendFields will be sent to the
34042	// server regardless of whether the field is empty or not. This may be
34043	// used to include empty fields in Patch requests.
34044	ForceSendFields []string `json:"-"`
34045
34046	// NullFields is a list of field names (e.g. "AutoDelete") to include in
34047	// API requests with the JSON null value. By default, fields with empty
34048	// values are omitted from API requests. However, any field with an
34049	// empty value appearing in NullFields will be sent to the server as
34050	// null. It is an error if a field in this list has a non-empty value.
34051	// This may be used to include null fields in Patch requests.
34052	NullFields []string `json:"-"`
34053}
34054
34055func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) {
34056	type NoMethod SavedAttachedDisk
34057	raw := NoMethod(*s)
34058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34059}
34060
34061// Scheduling: Sets the scheduling options for an Instance. NextID: 12
34062type Scheduling struct {
34063	// AutomaticRestart: Specifies whether the instance should be
34064	// automatically restarted if it is terminated by Compute Engine (not
34065	// terminated by a user). You can only set the automatic restart option
34066	// for standard instances. Preemptible instances cannot be automatically
34067	// restarted.
34068	//
34069	// By default, this is set to true so an instance is automatically
34070	// restarted if it is terminated by Compute Engine.
34071	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
34072
34073	// MinNodeCpus: The minimum number of virtual CPUs this instance will
34074	// consume when running on a sole-tenant node.
34075	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
34076
34077	// NodeAffinities: A set of node affinity and anti-affinity
34078	// configurations. Refer to Configuring node affinity for more
34079	// information. Overrides reservationAffinity.
34080	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
34081
34082	// OnHostMaintenance: Defines the maintenance behavior for this
34083	// instance. For standard instances, the default behavior is MIGRATE.
34084	// For preemptible instances, the default and only possible behavior is
34085	// TERMINATE. For more information, see Setting Instance Scheduling
34086	// Options.
34087	//
34088	// Possible values:
34089	//   "MIGRATE"
34090	//   "TERMINATE"
34091	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
34092
34093	// Preemptible: Defines whether the instance is preemptible. This can
34094	// only be set during instance creation or while the instance is stopped
34095	// and therefore, in a `TERMINATED` state. See Instance Life Cycle for
34096	// more information on the possible instance states.
34097	Preemptible bool `json:"preemptible,omitempty"`
34098
34099	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
34100	// unconditionally include in API requests. By default, fields with
34101	// empty values are omitted from API requests. However, any non-pointer,
34102	// non-interface field appearing in ForceSendFields will be sent to the
34103	// server regardless of whether the field is empty or not. This may be
34104	// used to include empty fields in Patch requests.
34105	ForceSendFields []string `json:"-"`
34106
34107	// NullFields is a list of field names (e.g. "AutomaticRestart") to
34108	// include in API requests with the JSON null value. By default, fields
34109	// with empty values are omitted from API requests. However, any field
34110	// with an empty value appearing in NullFields will be sent to the
34111	// server as null. It is an error if a field in this list has a
34112	// non-empty value. This may be used to include null fields in Patch
34113	// requests.
34114	NullFields []string `json:"-"`
34115}
34116
34117func (s *Scheduling) MarshalJSON() ([]byte, error) {
34118	type NoMethod Scheduling
34119	raw := NoMethod(*s)
34120	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34121}
34122
34123// SchedulingNodeAffinity: Node Affinity: the configuration of desired
34124// nodes onto which this Instance could be scheduled.
34125type SchedulingNodeAffinity struct {
34126	// Key: Corresponds to the label key of Node resource.
34127	Key string `json:"key,omitempty"`
34128
34129	// Operator: Defines the operation of node selection. Valid operators
34130	// are IN for affinity and NOT_IN for anti-affinity.
34131	//
34132	// Possible values:
34133	//   "IN"
34134	//   "NOT_IN"
34135	//   "OPERATOR_UNSPECIFIED"
34136	Operator string `json:"operator,omitempty"`
34137
34138	// Values: Corresponds to the label values of Node resource.
34139	Values []string `json:"values,omitempty"`
34140
34141	// ForceSendFields is a list of field names (e.g. "Key") to
34142	// unconditionally include in API requests. By default, fields with
34143	// empty values are omitted from API requests. However, any non-pointer,
34144	// non-interface field appearing in ForceSendFields will be sent to the
34145	// server regardless of whether the field is empty or not. This may be
34146	// used to include empty fields in Patch requests.
34147	ForceSendFields []string `json:"-"`
34148
34149	// NullFields is a list of field names (e.g. "Key") to include in API
34150	// requests with the JSON null value. By default, fields with empty
34151	// values are omitted from API requests. However, any field with an
34152	// empty value appearing in NullFields will be sent to the server as
34153	// null. It is an error if a field in this list has a non-empty value.
34154	// This may be used to include null fields in Patch requests.
34155	NullFields []string `json:"-"`
34156}
34157
34158func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
34159	type NoMethod SchedulingNodeAffinity
34160	raw := NoMethod(*s)
34161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34162}
34163
34164// Screenshot: An instance's screenshot.
34165type Screenshot struct {
34166	// Contents: [Output Only] The Base64-encoded screenshot data.
34167	Contents string `json:"contents,omitempty"`
34168
34169	// Kind: [Output Only] Type of the resource. Always compute#screenshot
34170	// for the screenshots.
34171	Kind string `json:"kind,omitempty"`
34172
34173	// ServerResponse contains the HTTP response code and headers from the
34174	// server.
34175	googleapi.ServerResponse `json:"-"`
34176
34177	// ForceSendFields is a list of field names (e.g. "Contents") to
34178	// unconditionally include in API requests. By default, fields with
34179	// empty values are omitted from API requests. However, any non-pointer,
34180	// non-interface field appearing in ForceSendFields will be sent to the
34181	// server regardless of whether the field is empty or not. This may be
34182	// used to include empty fields in Patch requests.
34183	ForceSendFields []string `json:"-"`
34184
34185	// NullFields is a list of field names (e.g. "Contents") to include in
34186	// API requests with the JSON null value. By default, fields with empty
34187	// values are omitted from API requests. However, any field with an
34188	// empty value appearing in NullFields will be sent to the server as
34189	// null. It is an error if a field in this list has a non-empty value.
34190	// This may be used to include null fields in Patch requests.
34191	NullFields []string `json:"-"`
34192}
34193
34194func (s *Screenshot) MarshalJSON() ([]byte, error) {
34195	type NoMethod Screenshot
34196	raw := NoMethod(*s)
34197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34198}
34199
34200type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
34201	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,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.
34208	// "PreconfiguredExpressionSets") to unconditionally include in API
34209	// requests. By default, fields with empty values are omitted from API
34210	// requests. However, any non-pointer, non-interface field appearing in
34211	// ForceSendFields will be sent to the server regardless of whether the
34212	// field is empty or not. This may be used to include empty fields in
34213	// Patch requests.
34214	ForceSendFields []string `json:"-"`
34215
34216	// NullFields is a list of field names (e.g.
34217	// "PreconfiguredExpressionSets") to include in API requests with the
34218	// JSON null value. By default, fields with empty values are omitted
34219	// from API requests. However, any field with an empty value appearing
34220	// in NullFields will be sent to the server as null. It is an error if a
34221	// field in this list has a non-empty value. This may be used to include
34222	// null fields in Patch requests.
34223	NullFields []string `json:"-"`
34224}
34225
34226func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
34227	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
34228	raw := NoMethod(*s)
34229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34230}
34231
34232type SecurityPoliciesWafConfig struct {
34233	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
34234
34235	// ForceSendFields is a list of field names (e.g. "WafRules") to
34236	// unconditionally include in API requests. By default, fields with
34237	// empty values are omitted from API requests. However, any non-pointer,
34238	// non-interface field appearing in ForceSendFields will be sent to the
34239	// server regardless of whether the field is empty or not. This may be
34240	// used to include empty fields in Patch requests.
34241	ForceSendFields []string `json:"-"`
34242
34243	// NullFields is a list of field names (e.g. "WafRules") to include in
34244	// API requests with the JSON null value. By default, fields with empty
34245	// values are omitted from API requests. However, any field with an
34246	// empty value appearing in NullFields will be sent to the server as
34247	// null. It is an error if a field in this list has a non-empty value.
34248	// This may be used to include null fields in Patch requests.
34249	NullFields []string `json:"-"`
34250}
34251
34252func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
34253	type NoMethod SecurityPoliciesWafConfig
34254	raw := NoMethod(*s)
34255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34256}
34257
34258// SecurityPolicy: Represents a Cloud Armor Security Policy
34259// resource.
34260//
34261// Only external backend services that use load balancers can reference
34262// a Security Policy. For more information, read  Cloud Armor Security
34263// Policy Concepts. (== resource_for {$api_version}.securityPolicies ==)
34264type SecurityPolicy struct {
34265	// Associations: A list of associations that belong to this policy.
34266	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
34267
34268	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34269	// format.
34270	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34271
34272	// Description: An optional description of this resource. Provide this
34273	// property when you create the resource.
34274	Description string `json:"description,omitempty"`
34275
34276	// DisplayName: User-provided name of the Organization security plicy.
34277	// The name should be unique in the organization in which the security
34278	// policy is created. This should only be used when SecurityPolicyType
34279	// is FIREWALL. The name must be 1-63 characters long, and comply with
34280	// RFC1035. Specifically, the name must be 1-63 characters long and
34281	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
34282	// the first character must be a lowercase letter, and all following
34283	// characters must be a dash, lowercase letter, or digit, except the
34284	// last character, which cannot be a dash.
34285	DisplayName string `json:"displayName,omitempty"`
34286
34287	// Fingerprint: Specifies a fingerprint for this resource, which is
34288	// essentially a hash of the metadata's contents and used for optimistic
34289	// locking. The fingerprint is initially generated by Compute Engine and
34290	// changes after every request to modify or update metadata. You must
34291	// always provide an up-to-date fingerprint hash in order to update or
34292	// change metadata, otherwise the request will fail with error 412
34293	// conditionNotMet.
34294	//
34295	// To see the latest fingerprint, make get() request to the security
34296	// policy.
34297	Fingerprint string `json:"fingerprint,omitempty"`
34298
34299	// Id: [Output Only] The unique identifier for the resource. This
34300	// identifier is defined by the server.
34301	Id uint64 `json:"id,omitempty,string"`
34302
34303	// Kind: [Output only] Type of the resource. Always
34304	// compute#securityPolicyfor security policies
34305	Kind string `json:"kind,omitempty"`
34306
34307	// LabelFingerprint: A fingerprint for the labels being applied to this
34308	// security policy, which is essentially a hash of the labels set used
34309	// for optimistic locking. The fingerprint is initially generated by
34310	// Compute Engine and changes after every request to modify or update
34311	// labels. You must always provide an up-to-date fingerprint hash in
34312	// order to update or change labels.
34313	//
34314	// To see the latest fingerprint, make get() request to the security
34315	// policy.
34316	LabelFingerprint string `json:"labelFingerprint,omitempty"`
34317
34318	// Labels: Labels for this resource. These can only be added or modified
34319	// by the setLabels method. Each label key/value pair must comply with
34320	// RFC1035. Label values may be empty.
34321	Labels map[string]string `json:"labels,omitempty"`
34322
34323	// Name: Name of the resource. Provided by the client when the resource
34324	// is created. The name must be 1-63 characters long, and comply with
34325	// RFC1035. Specifically, the name must be 1-63 characters long and
34326	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
34327	// the first character must be a lowercase letter, and all following
34328	// characters must be a dash, lowercase letter, or digit, except the
34329	// last character, which cannot be a dash.
34330	Name string `json:"name,omitempty"`
34331
34332	// Parent: [Output Only] The parent of the security policy.
34333	Parent string `json:"parent,omitempty"`
34334
34335	// RuleTupleCount: [Output Only] Total count of all security policy rule
34336	// tuples. A security policy can not exceed a set number of tuples.
34337	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
34338
34339	// Rules: A list of rules that belong to this policy. There must always
34340	// be a default rule (rule with priority 2147483647 and match "*"). If
34341	// no rules are provided when creating a security policy, a default rule
34342	// with action "allow" will be added.
34343	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
34344
34345	// SelfLink: [Output Only] Server-defined URL for the resource.
34346	SelfLink string `json:"selfLink,omitempty"`
34347
34348	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
34349	// with the resource id.
34350	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
34351
34352	// Type: The type indicates the intended use of the security policy.
34353	// CLOUD_ARMOR policies apply to backend services. FIREWALL policies
34354	// apply to organizations.
34355	//
34356	// Possible values:
34357	//   "CLOUD_ARMOR"
34358	//   "FIREWALL"
34359	Type string `json:"type,omitempty"`
34360
34361	// ServerResponse contains the HTTP response code and headers from the
34362	// server.
34363	googleapi.ServerResponse `json:"-"`
34364
34365	// ForceSendFields is a list of field names (e.g. "Associations") to
34366	// unconditionally include in API requests. By default, fields with
34367	// empty values are omitted from API requests. However, any non-pointer,
34368	// non-interface field appearing in ForceSendFields will be sent to the
34369	// server regardless of whether the field is empty or not. This may be
34370	// used to include empty fields in Patch requests.
34371	ForceSendFields []string `json:"-"`
34372
34373	// NullFields is a list of field names (e.g. "Associations") to include
34374	// in API requests with the JSON null value. By default, fields with
34375	// empty values are omitted from API requests. However, any field with
34376	// an empty value appearing in NullFields will be sent to the server as
34377	// null. It is an error if a field in this list has a non-empty value.
34378	// This may be used to include null fields in Patch requests.
34379	NullFields []string `json:"-"`
34380}
34381
34382func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
34383	type NoMethod SecurityPolicy
34384	raw := NoMethod(*s)
34385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34386}
34387
34388type SecurityPolicyAssociation struct {
34389	// AttachmentId: The resource that the security policy is attached to.
34390	AttachmentId string `json:"attachmentId,omitempty"`
34391
34392	// DisplayName: [Output Only] The display name of the security policy of
34393	// the association.
34394	DisplayName string `json:"displayName,omitempty"`
34395
34396	// Name: The name for an association.
34397	Name string `json:"name,omitempty"`
34398
34399	// SecurityPolicyId: [Output Only] The security policy ID of the
34400	// association.
34401	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
34402
34403	// ServerResponse contains the HTTP response code and headers from the
34404	// server.
34405	googleapi.ServerResponse `json:"-"`
34406
34407	// ForceSendFields is a list of field names (e.g. "AttachmentId") to
34408	// unconditionally include in API requests. By default, fields with
34409	// empty values are omitted from API requests. However, any non-pointer,
34410	// non-interface field appearing in ForceSendFields will be sent to the
34411	// server regardless of whether the field is empty or not. This may be
34412	// used to include empty fields in Patch requests.
34413	ForceSendFields []string `json:"-"`
34414
34415	// NullFields is a list of field names (e.g. "AttachmentId") to include
34416	// in API requests with the JSON null value. By default, fields with
34417	// empty values are omitted from API requests. However, any field with
34418	// an empty value appearing in NullFields will be sent to the server as
34419	// null. It is an error if a field in this list has a non-empty value.
34420	// This may be used to include null fields in Patch requests.
34421	NullFields []string `json:"-"`
34422}
34423
34424func (s *SecurityPolicyAssociation) MarshalJSON() ([]byte, error) {
34425	type NoMethod SecurityPolicyAssociation
34426	raw := NoMethod(*s)
34427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34428}
34429
34430type SecurityPolicyList struct {
34431	// Id: [Output Only] Unique identifier for the resource; defined by the
34432	// server.
34433	Id string `json:"id,omitempty"`
34434
34435	// Items: A list of SecurityPolicy resources.
34436	Items []*SecurityPolicy `json:"items,omitempty"`
34437
34438	// Kind: [Output Only] Type of resource. Always
34439	// compute#securityPolicyList for listsof securityPolicies
34440	Kind string `json:"kind,omitempty"`
34441
34442	// NextPageToken: [Output Only] This token allows you to get the next
34443	// page of results for list requests. If the number of results is larger
34444	// than maxResults, use the nextPageToken as a value for the query
34445	// parameter pageToken in the next list request. Subsequent list
34446	// requests will have their own nextPageToken to continue paging through
34447	// the results.
34448	NextPageToken string `json:"nextPageToken,omitempty"`
34449
34450	// Warning: [Output Only] Informational warning message.
34451	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
34452
34453	// ServerResponse contains the HTTP response code and headers from the
34454	// server.
34455	googleapi.ServerResponse `json:"-"`
34456
34457	// ForceSendFields is a list of field names (e.g. "Id") to
34458	// unconditionally include in API requests. By default, fields with
34459	// empty values are omitted from API requests. However, any non-pointer,
34460	// non-interface field appearing in ForceSendFields will be sent to the
34461	// server regardless of whether the field is empty or not. This may be
34462	// used to include empty fields in Patch requests.
34463	ForceSendFields []string `json:"-"`
34464
34465	// NullFields is a list of field names (e.g. "Id") to include in API
34466	// requests with the JSON null value. By default, fields with empty
34467	// values are omitted from API requests. However, any field with an
34468	// empty value appearing in NullFields will be sent to the server as
34469	// null. It is an error if a field in this list has a non-empty value.
34470	// This may be used to include null fields in Patch requests.
34471	NullFields []string `json:"-"`
34472}
34473
34474func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
34475	type NoMethod SecurityPolicyList
34476	raw := NoMethod(*s)
34477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34478}
34479
34480// SecurityPolicyListWarning: [Output Only] Informational warning
34481// message.
34482type SecurityPolicyListWarning struct {
34483	// Code: [Output Only] A warning code, if applicable. For example,
34484	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34485	// the response.
34486	//
34487	// Possible values:
34488	//   "CLEANUP_FAILED"
34489	//   "DEPRECATED_RESOURCE_USED"
34490	//   "DEPRECATED_TYPE_USED"
34491	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34492	//   "EXPERIMENTAL_TYPE_USED"
34493	//   "EXTERNAL_API_WARNING"
34494	//   "FIELD_VALUE_OVERRIDEN"
34495	//   "INJECTED_KERNELS_DEPRECATED"
34496	//   "MISSING_TYPE_DEPENDENCY"
34497	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34498	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34499	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34500	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34501	//   "NEXT_HOP_NOT_RUNNING"
34502	//   "NOT_CRITICAL_ERROR"
34503	//   "NO_RESULTS_ON_PAGE"
34504	//   "REQUIRED_TOS_AGREEMENT"
34505	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34506	//   "RESOURCE_NOT_DELETED"
34507	//   "SCHEMA_VALIDATION_IGNORED"
34508	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34509	//   "UNDECLARED_PROPERTIES"
34510	//   "UNREACHABLE"
34511	Code string `json:"code,omitempty"`
34512
34513	// Data: [Output Only] Metadata about this warning in key: value format.
34514	// For example:
34515	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34516	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
34517
34518	// Message: [Output Only] A human-readable description of the warning
34519	// code.
34520	Message string `json:"message,omitempty"`
34521
34522	// ForceSendFields is a list of field names (e.g. "Code") to
34523	// unconditionally include in API requests. By default, fields with
34524	// empty values are omitted from API requests. However, any non-pointer,
34525	// non-interface field appearing in ForceSendFields will be sent to the
34526	// server regardless of whether the field is empty or not. This may be
34527	// used to include empty fields in Patch requests.
34528	ForceSendFields []string `json:"-"`
34529
34530	// NullFields is a list of field names (e.g. "Code") to include in API
34531	// requests with the JSON null value. By default, fields with empty
34532	// values are omitted from API requests. However, any field with an
34533	// empty value appearing in NullFields will be sent to the server as
34534	// null. It is an error if a field in this list has a non-empty value.
34535	// This may be used to include null fields in Patch requests.
34536	NullFields []string `json:"-"`
34537}
34538
34539func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
34540	type NoMethod SecurityPolicyListWarning
34541	raw := NoMethod(*s)
34542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34543}
34544
34545type SecurityPolicyListWarningData struct {
34546	// Key: [Output Only] A key that provides more detail on the warning
34547	// being returned. For example, for warnings where there are no results
34548	// in a list request for a particular zone, this key might be scope and
34549	// the key value might be the zone name. Other examples might be a key
34550	// indicating a deprecated resource and a suggested replacement, or a
34551	// warning about invalid network settings (for example, if an instance
34552	// attempts to perform IP forwarding but is not enabled for IP
34553	// forwarding).
34554	Key string `json:"key,omitempty"`
34555
34556	// Value: [Output Only] A warning data value corresponding to the key.
34557	Value string `json:"value,omitempty"`
34558
34559	// ForceSendFields is a list of field names (e.g. "Key") to
34560	// unconditionally include in API requests. By default, fields with
34561	// empty values are omitted from API requests. However, any non-pointer,
34562	// non-interface field appearing in ForceSendFields will be sent to the
34563	// server regardless of whether the field is empty or not. This may be
34564	// used to include empty fields in Patch requests.
34565	ForceSendFields []string `json:"-"`
34566
34567	// NullFields is a list of field names (e.g. "Key") to include in API
34568	// requests with the JSON null value. By default, fields with empty
34569	// values are omitted from API requests. However, any field with an
34570	// empty value appearing in NullFields will be sent to the server as
34571	// null. It is an error if a field in this list has a non-empty value.
34572	// This may be used to include null fields in Patch requests.
34573	NullFields []string `json:"-"`
34574}
34575
34576func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
34577	type NoMethod SecurityPolicyListWarningData
34578	raw := NoMethod(*s)
34579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34580}
34581
34582type SecurityPolicyReference struct {
34583	SecurityPolicy string `json:"securityPolicy,omitempty"`
34584
34585	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
34586	// unconditionally include in API requests. By default, fields with
34587	// empty values are omitted from API requests. However, any non-pointer,
34588	// non-interface field appearing in ForceSendFields will be sent to the
34589	// server regardless of whether the field is empty or not. This may be
34590	// used to include empty fields in Patch requests.
34591	ForceSendFields []string `json:"-"`
34592
34593	// NullFields is a list of field names (e.g. "SecurityPolicy") to
34594	// include in API requests with the JSON null value. By default, fields
34595	// with empty values are omitted from API requests. However, any field
34596	// with an empty value appearing in NullFields will be sent to the
34597	// server as null. It is an error if a field in this list has a
34598	// non-empty value. This may be used to include null fields in Patch
34599	// requests.
34600	NullFields []string `json:"-"`
34601}
34602
34603func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
34604	type NoMethod SecurityPolicyReference
34605	raw := NoMethod(*s)
34606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34607}
34608
34609// SecurityPolicyRule: Represents a rule that describes one or more
34610// match conditions along with the action to be taken when traffic
34611// matches this condition (allow or deny).
34612type SecurityPolicyRule struct {
34613	// Action: The Action to preform when the client connection triggers the
34614	// rule. Can currently be either "allow" or "deny()" where valid values
34615	// for status are 403, 404, and 502.
34616	Action string `json:"action,omitempty"`
34617
34618	// Description: An optional description of this resource. Provide this
34619	// property when you create the resource.
34620	Description string `json:"description,omitempty"`
34621
34622	// Direction: The direction in which this rule applies. This field may
34623	// only be specified when versioned_expr is set to FIREWALL.
34624	//
34625	// Possible values:
34626	//   "EGRESS"
34627	//   "INGRESS"
34628	Direction string `json:"direction,omitempty"`
34629
34630	// EnableLogging: Denotes whether to enable logging for a particular
34631	// rule. If logging is enabled, logs will be exported to the configured
34632	// export destination in Stackdriver. Logs may be exported to BigQuery
34633	// or Pub/Sub. Note: you cannot enable logging on "goto_next"
34634	// rules.
34635	//
34636	// This field may only be specified when the versioned_expr is set to
34637	// FIREWALL.
34638	EnableLogging bool `json:"enableLogging,omitempty"`
34639
34640	// Kind: [Output only] Type of the resource. Always
34641	// compute#securityPolicyRule for security policy rules
34642	Kind string `json:"kind,omitempty"`
34643
34644	// Match: A match condition that incoming traffic is evaluated against.
34645	// If it evaluates to true, the corresponding 'action' is enforced.
34646	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
34647
34648	// Preview: If set to true, the specified action is not enforced.
34649	Preview bool `json:"preview,omitempty"`
34650
34651	// Priority: An integer indicating the priority of a rule in the list.
34652	// The priority must be a positive value between 0 and 2147483647. Rules
34653	// are evaluated from highest to lowest priority where 0 is the highest
34654	// priority and 2147483647 is the lowest prority.
34655	Priority int64 `json:"priority,omitempty"`
34656
34657	// RuleTupleCount: [Output Only] Calculation of the complexity of a
34658	// single firewall security policy rule.
34659	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
34660
34661	// TargetResources: A list of network resource URLs to which this rule
34662	// applies. This field allows you to control which network's VMs get
34663	// this rule. If this field is left blank, all VMs within the
34664	// organization will receive the rule.
34665	//
34666	// This field may only be specified when versioned_expr is set to
34667	// FIREWALL.
34668	TargetResources []string `json:"targetResources,omitempty"`
34669
34670	// TargetServiceAccounts: A list of service accounts indicating the sets
34671	// of instances that are applied with this rule.
34672	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
34673
34674	// ServerResponse contains the HTTP response code and headers from the
34675	// server.
34676	googleapi.ServerResponse `json:"-"`
34677
34678	// ForceSendFields is a list of field names (e.g. "Action") to
34679	// unconditionally include in API requests. By default, fields with
34680	// empty values are omitted from API requests. However, any non-pointer,
34681	// non-interface field appearing in ForceSendFields will be sent to the
34682	// server regardless of whether the field is empty or not. This may be
34683	// used to include empty fields in Patch requests.
34684	ForceSendFields []string `json:"-"`
34685
34686	// NullFields is a list of field names (e.g. "Action") to include in API
34687	// requests with the JSON null value. By default, fields with empty
34688	// values are omitted from API requests. However, any field with an
34689	// empty value appearing in NullFields will be sent to the server as
34690	// null. It is an error if a field in this list has a non-empty value.
34691	// This may be used to include null fields in Patch requests.
34692	NullFields []string `json:"-"`
34693}
34694
34695func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
34696	type NoMethod SecurityPolicyRule
34697	raw := NoMethod(*s)
34698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34699}
34700
34701// SecurityPolicyRuleMatcher: Represents a match condition that incoming
34702// traffic is evaluated against. Exactly one field must be specified.
34703type SecurityPolicyRuleMatcher struct {
34704	// Config: The configuration options available when specifying
34705	// versioned_expr. This field must be specified if versioned_expr is
34706	// specified and cannot be specified if versioned_expr is not specified.
34707	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
34708
34709	// Expr: User defined CEVAL expression. A CEVAL expression is used to
34710	// specify match criteria such as origin.ip, source.region_code and
34711	// contents in the request header.
34712	Expr *Expr `json:"expr,omitempty"`
34713
34714	// VersionedExpr: Preconfigured versioned expression. If this field is
34715	// specified, config must also be specified. Available preconfigured
34716	// expressions along with their requirements are: SRC_IPS_V1 - must
34717	// specify the corresponding src_ip_range field in config.
34718	//
34719	// Possible values:
34720	//   "FIREWALL"
34721	//   "SRC_IPS_V1"
34722	VersionedExpr string `json:"versionedExpr,omitempty"`
34723
34724	// ForceSendFields is a list of field names (e.g. "Config") to
34725	// unconditionally include in API requests. By default, fields with
34726	// empty values are omitted from API requests. However, any non-pointer,
34727	// non-interface field appearing in ForceSendFields will be sent to the
34728	// server regardless of whether the field is empty or not. This may be
34729	// used to include empty fields in Patch requests.
34730	ForceSendFields []string `json:"-"`
34731
34732	// NullFields is a list of field names (e.g. "Config") to include in API
34733	// requests with the JSON null value. By default, fields with empty
34734	// values are omitted from API requests. However, any field with an
34735	// empty value appearing in NullFields will be sent to the server as
34736	// null. It is an error if a field in this list has a non-empty value.
34737	// This may be used to include null fields in Patch requests.
34738	NullFields []string `json:"-"`
34739}
34740
34741func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
34742	type NoMethod SecurityPolicyRuleMatcher
34743	raw := NoMethod(*s)
34744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34745}
34746
34747type SecurityPolicyRuleMatcherConfig struct {
34748	// DestIpRanges: CIDR IP address range.
34749	//
34750	// This field may only be specified when versioned_expr is set to
34751	// FIREWALL.
34752	DestIpRanges []string `json:"destIpRanges,omitempty"`
34753
34754	// Layer4Configs: Pairs of IP protocols and ports that the rule should
34755	// match.
34756	//
34757	// This field may only be specified when versioned_expr is set to
34758	// FIREWALL.
34759	Layer4Configs []*SecurityPolicyRuleMatcherConfigLayer4Config `json:"layer4Configs,omitempty"`
34760
34761	// SrcIpRanges: CIDR IP address range.
34762	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
34763
34764	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
34765	// unconditionally include in API requests. By default, fields with
34766	// empty values are omitted from API requests. However, any non-pointer,
34767	// non-interface field appearing in ForceSendFields will be sent to the
34768	// server regardless of whether the field is empty or not. This may be
34769	// used to include empty fields in Patch requests.
34770	ForceSendFields []string `json:"-"`
34771
34772	// NullFields is a list of field names (e.g. "DestIpRanges") to include
34773	// in API requests with the JSON null value. By default, fields with
34774	// empty values are omitted from API requests. However, any field with
34775	// an empty value appearing in NullFields will be sent to the server as
34776	// null. It is an error if a field in this list has a non-empty value.
34777	// This may be used to include null fields in Patch requests.
34778	NullFields []string `json:"-"`
34779}
34780
34781func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
34782	type NoMethod SecurityPolicyRuleMatcherConfig
34783	raw := NoMethod(*s)
34784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34785}
34786
34787type SecurityPolicyRuleMatcherConfigLayer4Config struct {
34788	// IpProtocol: The IP protocol to which this rule applies. The protocol
34789	// type is required when creating a firewall rule. This value can either
34790	// be one of the following well known protocol strings (tcp, udp, icmp,
34791	// esp, ah, ipip, sctp), or the IP protocol number.
34792	IpProtocol string `json:"ipProtocol,omitempty"`
34793
34794	// Ports: An optional list of ports to which this rule applies. This
34795	// field is only applicable for UDP or TCP protocol. Each entry must be
34796	// either an integer or a range. If not specified, this rule applies to
34797	// connections through any port.
34798	//
34799	// Example inputs include: ["22"], ["80","443"], and
34800	// ["12345-12349"].
34801	//
34802	// This field may only be specified when versioned_expr is set to
34803	// FIREWALL.
34804	Ports []string `json:"ports,omitempty"`
34805
34806	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
34807	// unconditionally include in API requests. By default, fields with
34808	// empty values are omitted from API requests. However, any non-pointer,
34809	// non-interface field appearing in ForceSendFields will be sent to the
34810	// server regardless of whether the field is empty or not. This may be
34811	// used to include empty fields in Patch requests.
34812	ForceSendFields []string `json:"-"`
34813
34814	// NullFields is a list of field names (e.g. "IpProtocol") to include in
34815	// API requests with the JSON null value. By default, fields with empty
34816	// values are omitted from API requests. However, any field with an
34817	// empty value appearing in NullFields will be sent to the server as
34818	// null. It is an error if a field in this list has a non-empty value.
34819	// This may be used to include null fields in Patch requests.
34820	NullFields []string `json:"-"`
34821}
34822
34823func (s *SecurityPolicyRuleMatcherConfigLayer4Config) MarshalJSON() ([]byte, error) {
34824	type NoMethod SecurityPolicyRuleMatcherConfigLayer4Config
34825	raw := NoMethod(*s)
34826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34827}
34828
34829// SecuritySettings: The authentication and authorization settings for a
34830// BackendService.
34831type SecuritySettings struct {
34832	// Authentication: [Deprecated] Use clientTlsPolicy instead.
34833	Authentication string `json:"authentication,omitempty"`
34834
34835	// ClientTlsPolicy: Optional. A URL referring to a
34836	// networksecurity.ClientTlsPolicy resource that describes how clients
34837	// should authenticate with this service's backends.
34838	// clientTlsPolicy only applies to a global BackendService with the
34839	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
34840	// If left blank, communications are not encrypted.
34841	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
34842
34843	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs)
34844	// that the client verifies during a mutual TLS handshake with an
34845	// server/endpoint for this BackendService. When the server presents its
34846	// X.509 certificate to the client, the client inspects the
34847	// certificate's subjectAltName field. If the field contains one of the
34848	// specified values, the communication continues. Otherwise, it fails.
34849	// This additional check enables the client to verify that the server is
34850	// authorized to run the requested service.
34851	// Note that the contents of the server certificate's subjectAltName
34852	// field are configured by the Public Key Infrastructure which
34853	// provisions server identities.
34854	// Only applies to a global BackendService with loadBalancingScheme set
34855	// to INTERNAL_SELF_MANAGED. Only applies when BackendService has an
34856	// attached clientTlsPolicy with clientCertificate (mTLS mode).
34857	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
34858
34859	// ForceSendFields is a list of field names (e.g. "Authentication") to
34860	// unconditionally include in API requests. By default, fields with
34861	// empty values are omitted from API requests. However, any non-pointer,
34862	// non-interface field appearing in ForceSendFields will be sent to the
34863	// server regardless of whether the field is empty or not. This may be
34864	// used to include empty fields in Patch requests.
34865	ForceSendFields []string `json:"-"`
34866
34867	// NullFields is a list of field names (e.g. "Authentication") to
34868	// include in API requests with the JSON null value. By default, fields
34869	// with empty values are omitted from API requests. However, any field
34870	// with an empty value appearing in NullFields will be sent to the
34871	// server as null. It is an error if a field in this list has a
34872	// non-empty value. This may be used to include null fields in Patch
34873	// requests.
34874	NullFields []string `json:"-"`
34875}
34876
34877func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
34878	type NoMethod SecuritySettings
34879	raw := NoMethod(*s)
34880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34881}
34882
34883// SerialPortOutput: An instance's serial console output.
34884type SerialPortOutput struct {
34885	// Contents: [Output Only] The contents of the console output.
34886	Contents string `json:"contents,omitempty"`
34887
34888	// Kind: [Output Only] Type of the resource. Always
34889	// compute#serialPortOutput for serial port output.
34890	Kind string `json:"kind,omitempty"`
34891
34892	// Next: [Output Only] The position of the next byte of content from the
34893	// serial console output. Use this value in the next request as the
34894	// start parameter.
34895	Next int64 `json:"next,omitempty,string"`
34896
34897	// SelfLink: [Output Only] Server-defined URL for this resource.
34898	SelfLink string `json:"selfLink,omitempty"`
34899
34900	// Start: The starting byte position of the output that was returned.
34901	// This should match the start parameter sent with the request. If the
34902	// serial console output exceeds the size of the buffer, older output
34903	// will be overwritten by newer content and the start values will be
34904	// mismatched.
34905	Start int64 `json:"start,omitempty,string"`
34906
34907	// ServerResponse contains the HTTP response code and headers from the
34908	// server.
34909	googleapi.ServerResponse `json:"-"`
34910
34911	// ForceSendFields is a list of field names (e.g. "Contents") to
34912	// unconditionally include in API requests. By default, fields with
34913	// empty values are omitted from API requests. However, any non-pointer,
34914	// non-interface field appearing in ForceSendFields will be sent to the
34915	// server regardless of whether the field is empty or not. This may be
34916	// used to include empty fields in Patch requests.
34917	ForceSendFields []string `json:"-"`
34918
34919	// NullFields is a list of field names (e.g. "Contents") to include in
34920	// API requests with the JSON null value. By default, fields with empty
34921	// values are omitted from API requests. However, any field with an
34922	// empty value appearing in NullFields will be sent to the server as
34923	// null. It is an error if a field in this list has a non-empty value.
34924	// This may be used to include null fields in Patch requests.
34925	NullFields []string `json:"-"`
34926}
34927
34928func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
34929	type NoMethod SerialPortOutput
34930	raw := NoMethod(*s)
34931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34932}
34933
34934type ServerBinding struct {
34935	// Possible values:
34936	//   "RESTART_NODE_ON_ANY_SERVER"
34937	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
34938	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
34939	Type string `json:"type,omitempty"`
34940
34941	// ForceSendFields is a list of field names (e.g. "Type") to
34942	// unconditionally include in API requests. By default, fields with
34943	// empty values are omitted from API requests. However, any non-pointer,
34944	// non-interface field appearing in ForceSendFields will be sent to the
34945	// server regardless of whether the field is empty or not. This may be
34946	// used to include empty fields in Patch requests.
34947	ForceSendFields []string `json:"-"`
34948
34949	// NullFields is a list of field names (e.g. "Type") to include in API
34950	// requests with the JSON null value. By default, fields with empty
34951	// values are omitted from API requests. However, any field with an
34952	// empty value appearing in NullFields will be sent to the server as
34953	// null. It is an error if a field in this list has a non-empty value.
34954	// This may be used to include null fields in Patch requests.
34955	NullFields []string `json:"-"`
34956}
34957
34958func (s *ServerBinding) MarshalJSON() ([]byte, error) {
34959	type NoMethod ServerBinding
34960	raw := NoMethod(*s)
34961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34962}
34963
34964// ServiceAccount: A service account.
34965type ServiceAccount struct {
34966	// Email: Email address of the service account.
34967	Email string `json:"email,omitempty"`
34968
34969	// Scopes: The list of scopes to be made available for this service
34970	// account.
34971	Scopes []string `json:"scopes,omitempty"`
34972
34973	// ForceSendFields is a list of field names (e.g. "Email") to
34974	// unconditionally include in API requests. By default, fields with
34975	// empty values are omitted from API requests. However, any non-pointer,
34976	// non-interface field appearing in ForceSendFields will be sent to the
34977	// server regardless of whether the field is empty or not. This may be
34978	// used to include empty fields in Patch requests.
34979	ForceSendFields []string `json:"-"`
34980
34981	// NullFields is a list of field names (e.g. "Email") to include in API
34982	// requests with the JSON null value. By default, fields with empty
34983	// values are omitted from API requests. However, any field with an
34984	// empty value appearing in NullFields will be sent to the server as
34985	// null. It is an error if a field in this list has a non-empty value.
34986	// This may be used to include null fields in Patch requests.
34987	NullFields []string `json:"-"`
34988}
34989
34990func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
34991	type NoMethod ServiceAccount
34992	raw := NoMethod(*s)
34993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34994}
34995
34996// ShieldedInstanceConfig: A set of Shielded Instance options.
34997type ShieldedInstanceConfig struct {
34998	// EnableIntegrityMonitoring: Defines whether the instance has integrity
34999	// monitoring enabled. Enabled by default.
35000	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
35001
35002	// EnableSecureBoot: Defines whether the instance has Secure Boot
35003	// enabled. Disabled by default.
35004	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
35005
35006	// EnableVtpm: Defines whether the instance has the vTPM enabled.
35007	// Enabled by default.
35008	EnableVtpm bool `json:"enableVtpm,omitempty"`
35009
35010	// ForceSendFields is a list of field names (e.g.
35011	// "EnableIntegrityMonitoring") to unconditionally include in API
35012	// requests. By default, fields with empty values are omitted from API
35013	// requests. However, any non-pointer, non-interface field appearing in
35014	// ForceSendFields will be sent to the server regardless of whether the
35015	// field is empty or not. This may be used to include empty fields in
35016	// Patch requests.
35017	ForceSendFields []string `json:"-"`
35018
35019	// NullFields is a list of field names (e.g.
35020	// "EnableIntegrityMonitoring") to include in API requests with the JSON
35021	// null value. By default, fields with empty values are omitted from API
35022	// requests. However, any field with an empty value appearing in
35023	// NullFields will be sent to the server as null. It is an error if a
35024	// field in this list has a non-empty value. This may be used to include
35025	// null fields in Patch requests.
35026	NullFields []string `json:"-"`
35027}
35028
35029func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
35030	type NoMethod ShieldedInstanceConfig
35031	raw := NoMethod(*s)
35032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35033}
35034
35035// ShieldedInstanceIdentity: A shielded Instance identity entry.
35036type ShieldedInstanceIdentity struct {
35037	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
35038	// issued to the Shielded Instance's vTPM.
35039	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
35040
35041	// Kind: [Output Only] Type of the resource. Always
35042	// compute#shieldedInstanceIdentity for shielded Instance identity
35043	// entry.
35044	Kind string `json:"kind,omitempty"`
35045
35046	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
35047	// issued to the Shielded Instance's vTPM.
35048	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
35049
35050	// ServerResponse contains the HTTP response code and headers from the
35051	// server.
35052	googleapi.ServerResponse `json:"-"`
35053
35054	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
35055	// unconditionally include in API requests. By default, fields with
35056	// empty values are omitted from API requests. However, any non-pointer,
35057	// non-interface field appearing in ForceSendFields will be sent to the
35058	// server regardless of whether the field is empty or not. This may be
35059	// used to include empty fields in Patch requests.
35060	ForceSendFields []string `json:"-"`
35061
35062	// NullFields is a list of field names (e.g. "EncryptionKey") to include
35063	// in API requests with the JSON null value. By default, fields with
35064	// empty values are omitted from API requests. However, any field with
35065	// an empty value appearing in NullFields will be sent to the server as
35066	// null. It is an error if a field in this list has a non-empty value.
35067	// This may be used to include null fields in Patch requests.
35068	NullFields []string `json:"-"`
35069}
35070
35071func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
35072	type NoMethod ShieldedInstanceIdentity
35073	raw := NoMethod(*s)
35074	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35075}
35076
35077// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
35078type ShieldedInstanceIdentityEntry struct {
35079	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
35080	EkCert string `json:"ekCert,omitempty"`
35081
35082	// EkPub: A PEM-encoded public key.
35083	EkPub string `json:"ekPub,omitempty"`
35084
35085	// ForceSendFields is a list of field names (e.g. "EkCert") to
35086	// unconditionally include in API requests. By default, fields with
35087	// empty values are omitted from API requests. However, any non-pointer,
35088	// non-interface field appearing in ForceSendFields will be sent to the
35089	// server regardless of whether the field is empty or not. This may be
35090	// used to include empty fields in Patch requests.
35091	ForceSendFields []string `json:"-"`
35092
35093	// NullFields is a list of field names (e.g. "EkCert") to include in API
35094	// requests with the JSON null value. By default, fields with empty
35095	// values are omitted from API requests. However, any field with an
35096	// empty value appearing in NullFields will be sent to the server as
35097	// null. It is an error if a field in this list has a non-empty value.
35098	// This may be used to include null fields in Patch requests.
35099	NullFields []string `json:"-"`
35100}
35101
35102func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
35103	type NoMethod ShieldedInstanceIdentityEntry
35104	raw := NoMethod(*s)
35105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35106}
35107
35108// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
35109// against which Instance boot integrity is measured.
35110type ShieldedInstanceIntegrityPolicy struct {
35111	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
35112	// the measurements from the VM instance's most recent boot.
35113	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
35114
35115	// ForceSendFields is a list of field names (e.g.
35116	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
35117	// By default, fields with empty values are omitted from API requests.
35118	// However, any non-pointer, non-interface field appearing in
35119	// ForceSendFields will be sent to the server regardless of whether the
35120	// field is empty or not. This may be used to include empty fields in
35121	// Patch requests.
35122	ForceSendFields []string `json:"-"`
35123
35124	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
35125	// include in API requests with the JSON null value. By default, fields
35126	// with empty values are omitted from API requests. However, any field
35127	// with an empty value appearing in NullFields will be sent to the
35128	// server as null. It is an error if a field in this list has a
35129	// non-empty value. This may be used to include null fields in Patch
35130	// requests.
35131	NullFields []string `json:"-"`
35132}
35133
35134func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
35135	type NoMethod ShieldedInstanceIntegrityPolicy
35136	raw := NoMethod(*s)
35137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35138}
35139
35140// ShieldedVmConfig: A set of Shielded VM options.
35141type ShieldedVmConfig struct {
35142	// EnableIntegrityMonitoring: Defines whether the instance has integrity
35143	// monitoring enabled.
35144	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
35145
35146	// EnableSecureBoot: Defines whether the instance has Secure Boot
35147	// enabled.
35148	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
35149
35150	// EnableVtpm: Defines whether the instance has the vTPM enabled.
35151	EnableVtpm bool `json:"enableVtpm,omitempty"`
35152
35153	// ForceSendFields is a list of field names (e.g.
35154	// "EnableIntegrityMonitoring") to unconditionally include in API
35155	// requests. By default, fields with empty values are omitted from API
35156	// requests. However, any non-pointer, non-interface field appearing in
35157	// ForceSendFields will be sent to the server regardless of whether the
35158	// field is empty or not. This may be used to include empty fields in
35159	// Patch requests.
35160	ForceSendFields []string `json:"-"`
35161
35162	// NullFields is a list of field names (e.g.
35163	// "EnableIntegrityMonitoring") to include in API requests with the JSON
35164	// null value. By default, fields with empty values are omitted from API
35165	// requests. However, any field with an empty value appearing in
35166	// NullFields will be sent to the server as null. It is an error if a
35167	// field in this list has a non-empty value. This may be used to include
35168	// null fields in Patch requests.
35169	NullFields []string `json:"-"`
35170}
35171
35172func (s *ShieldedVmConfig) MarshalJSON() ([]byte, error) {
35173	type NoMethod ShieldedVmConfig
35174	raw := NoMethod(*s)
35175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35176}
35177
35178// ShieldedVmIdentity: A shielded VM identity entry.
35179type ShieldedVmIdentity struct {
35180	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's
35181	// vTPM.
35182	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
35183
35184	// Kind: [Output Only] Type of the resource. Always
35185	// compute#shieldedVmIdentity for shielded VM identity entry.
35186	Kind string `json:"kind,omitempty"`
35187
35188	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
35189	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`
35190
35191	// ServerResponse contains the HTTP response code and headers from the
35192	// server.
35193	googleapi.ServerResponse `json:"-"`
35194
35195	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
35196	// unconditionally include in API requests. By default, fields with
35197	// empty values are omitted from API requests. However, any non-pointer,
35198	// non-interface field appearing in ForceSendFields will be sent to the
35199	// server regardless of whether the field is empty or not. This may be
35200	// used to include empty fields in Patch requests.
35201	ForceSendFields []string `json:"-"`
35202
35203	// NullFields is a list of field names (e.g. "EncryptionKey") to include
35204	// in API requests with the JSON null value. By default, fields with
35205	// empty values are omitted from API requests. However, any field with
35206	// an empty value appearing in NullFields will be sent to the server as
35207	// null. It is an error if a field in this list has a non-empty value.
35208	// This may be used to include null fields in Patch requests.
35209	NullFields []string `json:"-"`
35210}
35211
35212func (s *ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
35213	type NoMethod ShieldedVmIdentity
35214	raw := NoMethod(*s)
35215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35216}
35217
35218// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
35219type ShieldedVmIdentityEntry struct {
35220	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
35221	EkCert string `json:"ekCert,omitempty"`
35222
35223	// EkPub: A PEM-encoded public key.
35224	EkPub string `json:"ekPub,omitempty"`
35225
35226	// ForceSendFields is a list of field names (e.g. "EkCert") to
35227	// unconditionally include in API requests. By default, fields with
35228	// empty values are omitted from API requests. However, any non-pointer,
35229	// non-interface field appearing in ForceSendFields will be sent to the
35230	// server regardless of whether the field is empty or not. This may be
35231	// used to include empty fields in Patch requests.
35232	ForceSendFields []string `json:"-"`
35233
35234	// NullFields is a list of field names (e.g. "EkCert") to include in API
35235	// requests with the JSON null value. By default, fields with empty
35236	// values are omitted from API requests. However, any field with an
35237	// empty value appearing in NullFields will be sent to the server as
35238	// null. It is an error if a field in this list has a non-empty value.
35239	// This may be used to include null fields in Patch requests.
35240	NullFields []string `json:"-"`
35241}
35242
35243func (s *ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
35244	type NoMethod ShieldedVmIdentityEntry
35245	raw := NoMethod(*s)
35246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35247}
35248
35249// ShieldedVmIntegrityPolicy: The policy describes the baseline against
35250// which VM instance boot integrity is measured.
35251type ShieldedVmIntegrityPolicy struct {
35252	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
35253	// the measurements from the VM instance's most recent boot.
35254	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
35255
35256	// ForceSendFields is a list of field names (e.g.
35257	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
35258	// By default, fields with empty values are omitted from API requests.
35259	// However, any non-pointer, non-interface field appearing in
35260	// ForceSendFields will be sent to the server regardless of whether the
35261	// field is empty or not. This may be used to include empty fields in
35262	// Patch requests.
35263	ForceSendFields []string `json:"-"`
35264
35265	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
35266	// include in API requests with the JSON null value. By default, fields
35267	// with empty values are omitted from API requests. However, any field
35268	// with an empty value appearing in NullFields will be sent to the
35269	// server as null. It is an error if a field in this list has a
35270	// non-empty value. This may be used to include null fields in Patch
35271	// requests.
35272	NullFields []string `json:"-"`
35273}
35274
35275func (s *ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
35276	type NoMethod ShieldedVmIntegrityPolicy
35277	raw := NoMethod(*s)
35278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35279}
35280
35281// SignedUrlKey: Represents a customer-supplied Signing Key used by
35282// Cloud CDN Signed URLs
35283type SignedUrlKey struct {
35284	// KeyName: Name of the key. The name must be 1-63 characters long, and
35285	// comply with RFC1035. Specifically, the name must be 1-63 characters
35286	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
35287	// which means the first character must be a lowercase letter, and all
35288	// following characters must be a dash, lowercase letter, or digit,
35289	// except the last character, which cannot be a dash.
35290	KeyName string `json:"keyName,omitempty"`
35291
35292	// KeyValue: 128-bit key value used for signing the URL. The key value
35293	// must be a valid RFC 4648 Section 5 base64url encoded string.
35294	KeyValue string `json:"keyValue,omitempty"`
35295
35296	// ForceSendFields is a list of field names (e.g. "KeyName") to
35297	// unconditionally include in API requests. By default, fields with
35298	// empty values are omitted from API requests. However, any non-pointer,
35299	// non-interface field appearing in ForceSendFields will be sent to the
35300	// server regardless of whether the field is empty or not. This may be
35301	// used to include empty fields in Patch requests.
35302	ForceSendFields []string `json:"-"`
35303
35304	// NullFields is a list of field names (e.g. "KeyName") to include in
35305	// API requests with the JSON null value. By default, fields with empty
35306	// values are omitted from API requests. However, any field with an
35307	// empty value appearing in NullFields will be sent to the server as
35308	// null. It is an error if a field in this list has a non-empty value.
35309	// This may be used to include null fields in Patch requests.
35310	NullFields []string `json:"-"`
35311}
35312
35313func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
35314	type NoMethod SignedUrlKey
35315	raw := NoMethod(*s)
35316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35317}
35318
35319// Snapshot: Represents a Persistent Disk Snapshot resource.
35320//
35321// You can use snapshots to back up data on a regular interval. For more
35322// information, read  Creating persistent disk snapshots. (==
35323// resource_for {$api_version}.snapshots ==)
35324type Snapshot struct {
35325	// AutoCreated: [Output Only] Set to true if snapshots are automatically
35326	// created by applying resource policy on the target disk.
35327	AutoCreated bool `json:"autoCreated,omitempty"`
35328
35329	// ChainName: Chain name should conform to RFC1035.
35330	ChainName string `json:"chainName,omitempty"`
35331
35332	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35333	// format.
35334	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35335
35336	// Description: An optional description of this resource. Provide this
35337	// property when you create the resource.
35338	Description string `json:"description,omitempty"`
35339
35340	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
35341	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
35342
35343	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
35344	// snapshot to a disk.
35345	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
35346
35347	// Id: [Output Only] The unique identifier for the resource. This
35348	// identifier is defined by the server.
35349	Id uint64 `json:"id,omitempty,string"`
35350
35351	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
35352	// Snapshot resources.
35353	Kind string `json:"kind,omitempty"`
35354
35355	// LabelFingerprint: A fingerprint for the labels being applied to this
35356	// snapshot, which is essentially a hash of the labels set used for
35357	// optimistic locking. The fingerprint is initially generated by Compute
35358	// Engine and changes after every request to modify or update labels.
35359	// You must always provide an up-to-date fingerprint hash in order to
35360	// update or change labels, otherwise the request will fail with error
35361	// 412 conditionNotMet.
35362	//
35363	// To see the latest fingerprint, make a get() request to retrieve a
35364	// snapshot.
35365	LabelFingerprint string `json:"labelFingerprint,omitempty"`
35366
35367	// Labels: Labels to apply to this snapshot. These can be later modified
35368	// by the setLabels method. Label values may be empty.
35369	Labels map[string]string `json:"labels,omitempty"`
35370
35371	// LicenseCodes: [Output Only] Integer license codes indicating which
35372	// licenses are attached to this snapshot.
35373	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
35374
35375	// Licenses: [Output Only] A list of public visible licenses that apply
35376	// to this snapshot. This can be because the original image had licenses
35377	// attached (such as a Windows image).
35378	Licenses []string `json:"licenses,omitempty"`
35379
35380	// Name: Name of the resource; provided by the client when the resource
35381	// is created. The name must be 1-63 characters long, and comply with
35382	// RFC1035. Specifically, the name must be 1-63 characters long and
35383	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
35384	// the first character must be a lowercase letter, and all following
35385	// characters must be a dash, lowercase letter, or digit, except the
35386	// last character, which cannot be a dash.
35387	Name string `json:"name,omitempty"`
35388
35389	// SelfLink: [Output Only] Server-defined URL for the resource.
35390	SelfLink string `json:"selfLink,omitempty"`
35391
35392	// SnapshotEncryptionKey: Encrypts the snapshot using a
35393	// customer-supplied encryption key.
35394	//
35395	// After you encrypt a snapshot using a customer-supplied key, you must
35396	// provide the same key if you use the snapshot later. For example, you
35397	// must provide the encryption key when you create a disk from the
35398	// encrypted snapshot in a future request.
35399	//
35400	// Customer-supplied encryption keys do not protect access to metadata
35401	// of the snapshot.
35402	//
35403	// If you do not provide an encryption key when creating the snapshot,
35404	// then the snapshot will be encrypted using an automatically generated
35405	// key and you do not need to provide a key to use the snapshot later.
35406	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
35407
35408	// SourceDisk: [Output Only] The source disk used to create this
35409	// snapshot.
35410	SourceDisk string `json:"sourceDisk,omitempty"`
35411
35412	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
35413	// source disk. Required if the source disk is protected by a
35414	// customer-supplied encryption key.
35415	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
35416
35417	// SourceDiskId: [Output Only] The ID value of the disk used to create
35418	// this snapshot. This value may be used to determine whether the
35419	// snapshot was taken from the current or a previous instance of a given
35420	// disk name.
35421	SourceDiskId string `json:"sourceDiskId,omitempty"`
35422
35423	// Status: [Output Only] The status of the snapshot. This can be
35424	// CREATING, DELETING, FAILED, READY, or UPLOADING.
35425	//
35426	// Possible values:
35427	//   "CREATING"
35428	//   "DELETING"
35429	//   "FAILED"
35430	//   "READY"
35431	//   "UPLOADING"
35432	Status string `json:"status,omitempty"`
35433
35434	// StorageBytes: [Output Only] A size of the storage used by the
35435	// snapshot. As snapshots share storage, this number is expected to
35436	// change with snapshot creation/deletion.
35437	StorageBytes int64 `json:"storageBytes,omitempty,string"`
35438
35439	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
35440	// is in a stable state or it is being adjusted as a result of shared
35441	// storage reallocation. This status can either be UPDATING, meaning the
35442	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
35443	// size of the snapshot is up-to-date.
35444	//
35445	// Possible values:
35446	//   "UPDATING"
35447	//   "UP_TO_DATE"
35448	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
35449
35450	// StorageLocations: Cloud Storage bucket storage location of the
35451	// snapshot (regional or multi-regional).
35452	StorageLocations []string `json:"storageLocations,omitempty"`
35453
35454	// ServerResponse contains the HTTP response code and headers from the
35455	// server.
35456	googleapi.ServerResponse `json:"-"`
35457
35458	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
35459	// unconditionally include in API requests. By default, fields with
35460	// empty values are omitted from API requests. However, any non-pointer,
35461	// non-interface field appearing in ForceSendFields will be sent to the
35462	// server regardless of whether the field is empty or not. This may be
35463	// used to include empty fields in Patch requests.
35464	ForceSendFields []string `json:"-"`
35465
35466	// NullFields is a list of field names (e.g. "AutoCreated") to include
35467	// in API requests with the JSON null value. By default, fields with
35468	// empty values are omitted from API requests. However, any field with
35469	// an empty value appearing in NullFields will be sent to the server as
35470	// null. It is an error if a field in this list has a non-empty value.
35471	// This may be used to include null fields in Patch requests.
35472	NullFields []string `json:"-"`
35473}
35474
35475func (s *Snapshot) MarshalJSON() ([]byte, error) {
35476	type NoMethod Snapshot
35477	raw := NoMethod(*s)
35478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35479}
35480
35481// SnapshotList: Contains a list of Snapshot resources.
35482type SnapshotList struct {
35483	// Id: [Output Only] Unique identifier for the resource; defined by the
35484	// server.
35485	Id string `json:"id,omitempty"`
35486
35487	// Items: A list of Snapshot resources.
35488	Items []*Snapshot `json:"items,omitempty"`
35489
35490	// Kind: Type of resource.
35491	Kind string `json:"kind,omitempty"`
35492
35493	// NextPageToken: [Output Only] This token allows you to get the next
35494	// page of results for list requests. If the number of results is larger
35495	// than maxResults, use the nextPageToken as a value for the query
35496	// parameter pageToken in the next list request. Subsequent list
35497	// requests will have their own nextPageToken to continue paging through
35498	// the results.
35499	NextPageToken string `json:"nextPageToken,omitempty"`
35500
35501	// SelfLink: [Output Only] Server-defined URL for this resource.
35502	SelfLink string `json:"selfLink,omitempty"`
35503
35504	// Warning: [Output Only] Informational warning message.
35505	Warning *SnapshotListWarning `json:"warning,omitempty"`
35506
35507	// ServerResponse contains the HTTP response code and headers from the
35508	// server.
35509	googleapi.ServerResponse `json:"-"`
35510
35511	// ForceSendFields is a list of field names (e.g. "Id") to
35512	// unconditionally include in API requests. By default, fields with
35513	// empty values are omitted from API requests. However, any non-pointer,
35514	// non-interface field appearing in ForceSendFields will be sent to the
35515	// server regardless of whether the field is empty or not. This may be
35516	// used to include empty fields in Patch requests.
35517	ForceSendFields []string `json:"-"`
35518
35519	// NullFields is a list of field names (e.g. "Id") to include in API
35520	// requests with the JSON null value. By default, fields with empty
35521	// values are omitted from API requests. However, any field with an
35522	// empty value appearing in NullFields will be sent to the server as
35523	// null. It is an error if a field in this list has a non-empty value.
35524	// This may be used to include null fields in Patch requests.
35525	NullFields []string `json:"-"`
35526}
35527
35528func (s *SnapshotList) MarshalJSON() ([]byte, error) {
35529	type NoMethod SnapshotList
35530	raw := NoMethod(*s)
35531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35532}
35533
35534// SnapshotListWarning: [Output Only] Informational warning message.
35535type SnapshotListWarning struct {
35536	// Code: [Output Only] A warning code, if applicable. For example,
35537	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35538	// the response.
35539	//
35540	// Possible values:
35541	//   "CLEANUP_FAILED"
35542	//   "DEPRECATED_RESOURCE_USED"
35543	//   "DEPRECATED_TYPE_USED"
35544	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35545	//   "EXPERIMENTAL_TYPE_USED"
35546	//   "EXTERNAL_API_WARNING"
35547	//   "FIELD_VALUE_OVERRIDEN"
35548	//   "INJECTED_KERNELS_DEPRECATED"
35549	//   "MISSING_TYPE_DEPENDENCY"
35550	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35551	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35552	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35553	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35554	//   "NEXT_HOP_NOT_RUNNING"
35555	//   "NOT_CRITICAL_ERROR"
35556	//   "NO_RESULTS_ON_PAGE"
35557	//   "REQUIRED_TOS_AGREEMENT"
35558	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35559	//   "RESOURCE_NOT_DELETED"
35560	//   "SCHEMA_VALIDATION_IGNORED"
35561	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35562	//   "UNDECLARED_PROPERTIES"
35563	//   "UNREACHABLE"
35564	Code string `json:"code,omitempty"`
35565
35566	// Data: [Output Only] Metadata about this warning in key: value format.
35567	// For example:
35568	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35569	Data []*SnapshotListWarningData `json:"data,omitempty"`
35570
35571	// Message: [Output Only] A human-readable description of the warning
35572	// code.
35573	Message string `json:"message,omitempty"`
35574
35575	// ForceSendFields is a list of field names (e.g. "Code") to
35576	// unconditionally include in API requests. By default, fields with
35577	// empty values are omitted from API requests. However, any non-pointer,
35578	// non-interface field appearing in ForceSendFields will be sent to the
35579	// server regardless of whether the field is empty or not. This may be
35580	// used to include empty fields in Patch requests.
35581	ForceSendFields []string `json:"-"`
35582
35583	// NullFields is a list of field names (e.g. "Code") to include in API
35584	// requests with the JSON null value. By default, fields with empty
35585	// values are omitted from API requests. However, any field with an
35586	// empty value appearing in NullFields will be sent to the server as
35587	// null. It is an error if a field in this list has a non-empty value.
35588	// This may be used to include null fields in Patch requests.
35589	NullFields []string `json:"-"`
35590}
35591
35592func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
35593	type NoMethod SnapshotListWarning
35594	raw := NoMethod(*s)
35595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35596}
35597
35598type SnapshotListWarningData struct {
35599	// Key: [Output Only] A key that provides more detail on the warning
35600	// being returned. For example, for warnings where there are no results
35601	// in a list request for a particular zone, this key might be scope and
35602	// the key value might be the zone name. Other examples might be a key
35603	// indicating a deprecated resource and a suggested replacement, or a
35604	// warning about invalid network settings (for example, if an instance
35605	// attempts to perform IP forwarding but is not enabled for IP
35606	// forwarding).
35607	Key string `json:"key,omitempty"`
35608
35609	// Value: [Output Only] A warning data value corresponding to the key.
35610	Value string `json:"value,omitempty"`
35611
35612	// ForceSendFields is a list of field names (e.g. "Key") to
35613	// unconditionally include in API requests. By default, fields with
35614	// empty values are omitted from API requests. However, any non-pointer,
35615	// non-interface field appearing in ForceSendFields will be sent to the
35616	// server regardless of whether the field is empty or not. This may be
35617	// used to include empty fields in Patch requests.
35618	ForceSendFields []string `json:"-"`
35619
35620	// NullFields is a list of field names (e.g. "Key") to include in API
35621	// requests with the JSON null value. By default, fields with empty
35622	// values are omitted from API requests. However, any field with an
35623	// empty value appearing in NullFields will be sent to the server as
35624	// null. It is an error if a field in this list has a non-empty value.
35625	// This may be used to include null fields in Patch requests.
35626	NullFields []string `json:"-"`
35627}
35628
35629func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
35630	type NoMethod SnapshotListWarningData
35631	raw := NoMethod(*s)
35632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35633}
35634
35635type SourceDiskEncryptionKey struct {
35636	// DiskEncryptionKey: The customer-supplied encryption key of the source
35637	// disk. Required if the source disk is protected by a customer-supplied
35638	// encryption key.
35639	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
35640
35641	// SourceDisk: URL of the disk attached to the source instance. This can
35642	// be a full or valid partial URL. For example, the following are valid
35643	// values:
35644	// -
35645	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
35646	// - projects/project/zones/zone/disks/disk
35647	// - zones/zone/disks/disk
35648	SourceDisk string `json:"sourceDisk,omitempty"`
35649
35650	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
35651	// to unconditionally include in API requests. By default, fields with
35652	// empty values are omitted from API requests. However, any non-pointer,
35653	// non-interface field appearing in ForceSendFields will be sent to the
35654	// server regardless of whether the field is empty or not. This may be
35655	// used to include empty fields in Patch requests.
35656	ForceSendFields []string `json:"-"`
35657
35658	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
35659	// include in API requests with the JSON null value. By default, fields
35660	// with empty values are omitted from API requests. However, any field
35661	// with an empty value appearing in NullFields will be sent to the
35662	// server as null. It is an error if a field in this list has a
35663	// non-empty value. This may be used to include null fields in Patch
35664	// requests.
35665	NullFields []string `json:"-"`
35666}
35667
35668func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
35669	type NoMethod SourceDiskEncryptionKey
35670	raw := NoMethod(*s)
35671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35672}
35673
35674// SourceInstanceParams: A specification of the parameters to use when
35675// creating the instance template from a source instance.
35676type SourceInstanceParams struct {
35677	// DiskConfigs: Attached disks configuration. If not provided, defaults
35678	// are applied: For boot disk and any other R/W disks, new custom images
35679	// will be created from each disk. For read-only disks, they will be
35680	// attached in read-only mode. Local SSD disks will be created as blank
35681	// volumes.
35682	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
35683
35684	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
35685	// unconditionally include in API requests. By default, fields with
35686	// empty values are omitted from API requests. However, any non-pointer,
35687	// non-interface field appearing in ForceSendFields will be sent to the
35688	// server regardless of whether the field is empty or not. This may be
35689	// used to include empty fields in Patch requests.
35690	ForceSendFields []string `json:"-"`
35691
35692	// NullFields is a list of field names (e.g. "DiskConfigs") to include
35693	// in API requests with the JSON null value. By default, fields with
35694	// empty values are omitted from API requests. However, any field with
35695	// an empty value appearing in NullFields will be sent to the server as
35696	// null. It is an error if a field in this list has a non-empty value.
35697	// This may be used to include null fields in Patch requests.
35698	NullFields []string `json:"-"`
35699}
35700
35701func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
35702	type NoMethod SourceInstanceParams
35703	raw := NoMethod(*s)
35704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35705}
35706
35707type SourceInstanceProperties struct {
35708	// CanIpForward: Enables instances created based on this machine image
35709	// to send packets with source IP addresses other than their own and
35710	// receive packets with destination IP addresses other than their own.
35711	// If these instances will be used as an IP gateway or it will be set as
35712	// the next-hop in a Route resource, specify true. If unsure, leave this
35713	// set to false. See the Enable IP forwarding documentation for more
35714	// information.
35715	CanIpForward bool `json:"canIpForward,omitempty"`
35716
35717	// DeletionProtection: Whether the instance created from this machine
35718	// image should be protected against deletion.
35719	DeletionProtection bool `json:"deletionProtection,omitempty"`
35720
35721	// Description: An optional text description for the instances that are
35722	// created from this machine image.
35723	Description string `json:"description,omitempty"`
35724
35725	// Disks: An array of disks that are associated with the instances that
35726	// are created from this machine image.
35727	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
35728
35729	// GuestAccelerators: A list of guest accelerator cards' type and count
35730	// to use for instances created from this machine image.
35731	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
35732
35733	// Labels: Labels to apply to instances that are created from this
35734	// machine image.
35735	Labels map[string]string `json:"labels,omitempty"`
35736
35737	// MachineType: The machine type to use for instances that are created
35738	// from this machine image.
35739	MachineType string `json:"machineType,omitempty"`
35740
35741	// Metadata: The metadata key/value pairs to assign to instances that
35742	// are created from this machine image. These pairs can consist of
35743	// custom metadata or predefined keys. See Project and instance metadata
35744	// for more information.
35745	Metadata *Metadata `json:"metadata,omitempty"`
35746
35747	// MinCpuPlatform: Minimum cpu/platform to be used by instances created
35748	// from this machine image. The instance may be scheduled on the
35749	// specified or newer cpu/platform. Applicable values are the friendly
35750	// names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or
35751	// minCpuPlatform: "Intel Sandy Bridge". For more information, read
35752	// Specifying a Minimum CPU Platform.
35753	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
35754
35755	// NetworkInterfaces: An array of network access configurations for this
35756	// interface.
35757	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
35758
35759	// Scheduling: Specifies the scheduling options for the instances that
35760	// are created from this machine image.
35761	Scheduling *Scheduling `json:"scheduling,omitempty"`
35762
35763	// ServiceAccounts: A list of service accounts with specified scopes.
35764	// Access tokens for these service accounts are available to the
35765	// instances that are created from this machine image. Use metadata
35766	// queries to obtain the access tokens for these instances.
35767	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
35768
35769	// Tags: A list of tags to apply to the instances that are created from
35770	// this machine image. The tags identify valid sources or targets for
35771	// network firewalls. The setTags method can modify this list of tags.
35772	// Each tag within the list must comply with RFC1035.
35773	Tags *Tags `json:"tags,omitempty"`
35774
35775	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
35776	// unconditionally include in API requests. By default, fields with
35777	// empty values are omitted from API requests. However, any non-pointer,
35778	// non-interface field appearing in ForceSendFields will be sent to the
35779	// server regardless of whether the field is empty or not. This may be
35780	// used to include empty fields in Patch requests.
35781	ForceSendFields []string `json:"-"`
35782
35783	// NullFields is a list of field names (e.g. "CanIpForward") to include
35784	// in API requests with the JSON null value. By default, fields with
35785	// empty values are omitted from API requests. However, any field with
35786	// an empty value appearing in NullFields will be sent to the server as
35787	// null. It is an error if a field in this list has a non-empty value.
35788	// This may be used to include null fields in Patch requests.
35789	NullFields []string `json:"-"`
35790}
35791
35792func (s *SourceInstanceProperties) MarshalJSON() ([]byte, error) {
35793	type NoMethod SourceInstanceProperties
35794	raw := NoMethod(*s)
35795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35796}
35797
35798// SslCertificate: Represents an SSL Certificate resource.
35799//
35800// Google Compute Engine has two SSL Certificate resources:
35801//
35802// *
35803// [Global](/compute/docs/reference/rest/{$api_version}/sslCertificates)
35804// *
35805// [Regional](/compute/docs/reference/rest/{$api_version}/regionSslCertif
35806// icates)
35807//
35808//
35809//
35810// The sslCertificates are used by:
35811// - external HTTPS load balancers
35812// - SSL proxy load balancers
35813//
35814// The regionSslCertificates are used by internal HTTPS load
35815// balancers.
35816//
35817// Optionally, certificate file contents that you upload can contain a
35818// set of up to five PEM-encoded certificates. The API call creates an
35819// object (sslCertificate) that holds this data. You can use SSL keys
35820// and certificates to secure connections to a load balancer. For more
35821// information, read  Creating and using SSL certificates, SSL
35822// certificates quotas and limits, and  Troubleshooting SSL
35823// certificates. (== resource_for {$api_version}.sslCertificates ==) (==
35824// resource_for {$api_version}.regionSslCertificates ==)
35825type SslCertificate struct {
35826	// Certificate: A local certificate file. The certificate must be in PEM
35827	// format. The certificate chain must be no greater than 5 certs long.
35828	// The chain must include at least one intermediate cert.
35829	Certificate string `json:"certificate,omitempty"`
35830
35831	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35832	// format.
35833	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35834
35835	// Description: An optional description of this resource. Provide this
35836	// property when you create the resource.
35837	Description string `json:"description,omitempty"`
35838
35839	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
35840	ExpireTime string `json:"expireTime,omitempty"`
35841
35842	// Id: [Output Only] The unique identifier for the resource. This
35843	// identifier is defined by the server.
35844	Id uint64 `json:"id,omitempty,string"`
35845
35846	// Kind: [Output Only] Type of the resource. Always
35847	// compute#sslCertificate for SSL certificates.
35848	Kind string `json:"kind,omitempty"`
35849
35850	// Managed: Configuration and status of a managed SSL certificate.
35851	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
35852
35853	// Name: Name of the resource. Provided by the client when the resource
35854	// is created. The name must be 1-63 characters long, and comply with
35855	// RFC1035. Specifically, the name must be 1-63 characters long and
35856	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
35857	// the first character must be a lowercase letter, and all following
35858	// characters must be a dash, lowercase letter, or digit, except the
35859	// last character, which cannot be a dash.
35860	Name string `json:"name,omitempty"`
35861
35862	// PrivateKey: A write-only private key in PEM format. Only insert
35863	// requests will include this field.
35864	PrivateKey string `json:"privateKey,omitempty"`
35865
35866	// Region: [Output Only] URL of the region where the regional SSL
35867	// Certificate resides. This field is not applicable to global SSL
35868	// Certificate.
35869	Region string `json:"region,omitempty"`
35870
35871	// SelfLink: [Output only] Server-defined URL for the resource.
35872	SelfLink string `json:"selfLink,omitempty"`
35873
35874	// SelfManaged: Configuration and status of a self-managed SSL
35875	// certificate.
35876	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
35877
35878	// SubjectAlternativeNames: [Output Only] Domains associated with the
35879	// certificate via Subject Alternative Name.
35880	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
35881
35882	// Type: (Optional) Specifies the type of SSL certificate, either
35883	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
35884	// self-managed and the fields certificate and private_key are used.
35885	//
35886	// Possible values:
35887	//   "MANAGED"
35888	//   "SELF_MANAGED"
35889	//   "TYPE_UNSPECIFIED"
35890	Type string `json:"type,omitempty"`
35891
35892	// ServerResponse contains the HTTP response code and headers from the
35893	// server.
35894	googleapi.ServerResponse `json:"-"`
35895
35896	// ForceSendFields is a list of field names (e.g. "Certificate") to
35897	// unconditionally include in API requests. By default, fields with
35898	// empty values are omitted from API requests. However, any non-pointer,
35899	// non-interface field appearing in ForceSendFields will be sent to the
35900	// server regardless of whether the field is empty or not. This may be
35901	// used to include empty fields in Patch requests.
35902	ForceSendFields []string `json:"-"`
35903
35904	// NullFields is a list of field names (e.g. "Certificate") to include
35905	// in API requests with the JSON null value. By default, fields with
35906	// empty values are omitted from API requests. However, any field with
35907	// an empty value appearing in NullFields will be sent to the server as
35908	// null. It is an error if a field in this list has a non-empty value.
35909	// This may be used to include null fields in Patch requests.
35910	NullFields []string `json:"-"`
35911}
35912
35913func (s *SslCertificate) MarshalJSON() ([]byte, error) {
35914	type NoMethod SslCertificate
35915	raw := NoMethod(*s)
35916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35917}
35918
35919type SslCertificateAggregatedList struct {
35920	// Id: [Output Only] Unique identifier for the resource; defined by the
35921	// server.
35922	Id string `json:"id,omitempty"`
35923
35924	// Items: A list of SslCertificatesScopedList resources.
35925	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
35926
35927	// Kind: [Output Only] Type of resource. Always
35928	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
35929	Kind string `json:"kind,omitempty"`
35930
35931	// NextPageToken: [Output Only] This token allows you to get the next
35932	// page of results for list requests. If the number of results is larger
35933	// than maxResults, use the nextPageToken as a value for the query
35934	// parameter pageToken in the next list request. Subsequent list
35935	// requests will have their own nextPageToken to continue paging through
35936	// the results.
35937	NextPageToken string `json:"nextPageToken,omitempty"`
35938
35939	// SelfLink: [Output Only] Server-defined URL for this resource.
35940	SelfLink string `json:"selfLink,omitempty"`
35941
35942	// Warning: [Output Only] Informational warning message.
35943	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
35944
35945	// ServerResponse contains the HTTP response code and headers from the
35946	// server.
35947	googleapi.ServerResponse `json:"-"`
35948
35949	// ForceSendFields is a list of field names (e.g. "Id") to
35950	// unconditionally include in API requests. By default, fields with
35951	// empty values are omitted from API requests. However, any non-pointer,
35952	// non-interface field appearing in ForceSendFields will be sent to the
35953	// server regardless of whether the field is empty or not. This may be
35954	// used to include empty fields in Patch requests.
35955	ForceSendFields []string `json:"-"`
35956
35957	// NullFields is a list of field names (e.g. "Id") to include in API
35958	// requests with the JSON null value. By default, fields with empty
35959	// values are omitted from API requests. However, any field with an
35960	// empty value appearing in NullFields will be sent to the server as
35961	// null. It is an error if a field in this list has a non-empty value.
35962	// This may be used to include null fields in Patch requests.
35963	NullFields []string `json:"-"`
35964}
35965
35966func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
35967	type NoMethod SslCertificateAggregatedList
35968	raw := NoMethod(*s)
35969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35970}
35971
35972// SslCertificateAggregatedListWarning: [Output Only] Informational
35973// warning message.
35974type SslCertificateAggregatedListWarning struct {
35975	// Code: [Output Only] A warning code, if applicable. For example,
35976	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35977	// the response.
35978	//
35979	// Possible values:
35980	//   "CLEANUP_FAILED"
35981	//   "DEPRECATED_RESOURCE_USED"
35982	//   "DEPRECATED_TYPE_USED"
35983	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35984	//   "EXPERIMENTAL_TYPE_USED"
35985	//   "EXTERNAL_API_WARNING"
35986	//   "FIELD_VALUE_OVERRIDEN"
35987	//   "INJECTED_KERNELS_DEPRECATED"
35988	//   "MISSING_TYPE_DEPENDENCY"
35989	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35990	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35991	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35992	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35993	//   "NEXT_HOP_NOT_RUNNING"
35994	//   "NOT_CRITICAL_ERROR"
35995	//   "NO_RESULTS_ON_PAGE"
35996	//   "REQUIRED_TOS_AGREEMENT"
35997	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35998	//   "RESOURCE_NOT_DELETED"
35999	//   "SCHEMA_VALIDATION_IGNORED"
36000	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36001	//   "UNDECLARED_PROPERTIES"
36002	//   "UNREACHABLE"
36003	Code string `json:"code,omitempty"`
36004
36005	// Data: [Output Only] Metadata about this warning in key: value format.
36006	// For example:
36007	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36008	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
36009
36010	// Message: [Output Only] A human-readable description of the warning
36011	// code.
36012	Message string `json:"message,omitempty"`
36013
36014	// ForceSendFields is a list of field names (e.g. "Code") to
36015	// unconditionally include in API requests. By default, fields with
36016	// empty values are omitted from API requests. However, any non-pointer,
36017	// non-interface field appearing in ForceSendFields will be sent to the
36018	// server regardless of whether the field is empty or not. This may be
36019	// used to include empty fields in Patch requests.
36020	ForceSendFields []string `json:"-"`
36021
36022	// NullFields is a list of field names (e.g. "Code") to include in API
36023	// requests with the JSON null value. By default, fields with empty
36024	// values are omitted from API requests. However, any field with an
36025	// empty value appearing in NullFields will be sent to the server as
36026	// null. It is an error if a field in this list has a non-empty value.
36027	// This may be used to include null fields in Patch requests.
36028	NullFields []string `json:"-"`
36029}
36030
36031func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
36032	type NoMethod SslCertificateAggregatedListWarning
36033	raw := NoMethod(*s)
36034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36035}
36036
36037type SslCertificateAggregatedListWarningData struct {
36038	// Key: [Output Only] A key that provides more detail on the warning
36039	// being returned. For example, for warnings where there are no results
36040	// in a list request for a particular zone, this key might be scope and
36041	// the key value might be the zone name. Other examples might be a key
36042	// indicating a deprecated resource and a suggested replacement, or a
36043	// warning about invalid network settings (for example, if an instance
36044	// attempts to perform IP forwarding but is not enabled for IP
36045	// forwarding).
36046	Key string `json:"key,omitempty"`
36047
36048	// Value: [Output Only] A warning data value corresponding to the key.
36049	Value string `json:"value,omitempty"`
36050
36051	// ForceSendFields is a list of field names (e.g. "Key") to
36052	// unconditionally include in API requests. By default, fields with
36053	// empty values are omitted from API requests. However, any non-pointer,
36054	// non-interface field appearing in ForceSendFields will be sent to the
36055	// server regardless of whether the field is empty or not. This may be
36056	// used to include empty fields in Patch requests.
36057	ForceSendFields []string `json:"-"`
36058
36059	// NullFields is a list of field names (e.g. "Key") to include in API
36060	// requests with the JSON null value. By default, fields with empty
36061	// values are omitted from API requests. However, any field with an
36062	// empty value appearing in NullFields will be sent to the server as
36063	// null. It is an error if a field in this list has a non-empty value.
36064	// This may be used to include null fields in Patch requests.
36065	NullFields []string `json:"-"`
36066}
36067
36068func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
36069	type NoMethod SslCertificateAggregatedListWarningData
36070	raw := NoMethod(*s)
36071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36072}
36073
36074// SslCertificateList: Contains a list of SslCertificate resources.
36075type SslCertificateList struct {
36076	// Id: [Output Only] Unique identifier for the resource; defined by the
36077	// server.
36078	Id string `json:"id,omitempty"`
36079
36080	// Items: A list of SslCertificate resources.
36081	Items []*SslCertificate `json:"items,omitempty"`
36082
36083	// Kind: Type of resource.
36084	Kind string `json:"kind,omitempty"`
36085
36086	// NextPageToken: [Output Only] This token allows you to get the next
36087	// page of results for list requests. If the number of results is larger
36088	// than maxResults, use the nextPageToken as a value for the query
36089	// parameter pageToken in the next list request. Subsequent list
36090	// requests will have their own nextPageToken to continue paging through
36091	// the results.
36092	NextPageToken string `json:"nextPageToken,omitempty"`
36093
36094	// SelfLink: [Output Only] Server-defined URL for this resource.
36095	SelfLink string `json:"selfLink,omitempty"`
36096
36097	// Warning: [Output Only] Informational warning message.
36098	Warning *SslCertificateListWarning `json:"warning,omitempty"`
36099
36100	// ServerResponse contains the HTTP response code and headers from the
36101	// server.
36102	googleapi.ServerResponse `json:"-"`
36103
36104	// ForceSendFields is a list of field names (e.g. "Id") to
36105	// unconditionally include in API requests. By default, fields with
36106	// empty values are omitted from API requests. However, any non-pointer,
36107	// non-interface field appearing in ForceSendFields will be sent to the
36108	// server regardless of whether the field is empty or not. This may be
36109	// used to include empty fields in Patch requests.
36110	ForceSendFields []string `json:"-"`
36111
36112	// NullFields is a list of field names (e.g. "Id") to include in API
36113	// requests with the JSON null value. By default, fields with empty
36114	// values are omitted from API requests. However, any field with an
36115	// empty value appearing in NullFields will be sent to the server as
36116	// null. It is an error if a field in this list has a non-empty value.
36117	// This may be used to include null fields in Patch requests.
36118	NullFields []string `json:"-"`
36119}
36120
36121func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
36122	type NoMethod SslCertificateList
36123	raw := NoMethod(*s)
36124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36125}
36126
36127// SslCertificateListWarning: [Output Only] Informational warning
36128// message.
36129type SslCertificateListWarning struct {
36130	// Code: [Output Only] A warning code, if applicable. For example,
36131	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36132	// the response.
36133	//
36134	// Possible values:
36135	//   "CLEANUP_FAILED"
36136	//   "DEPRECATED_RESOURCE_USED"
36137	//   "DEPRECATED_TYPE_USED"
36138	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36139	//   "EXPERIMENTAL_TYPE_USED"
36140	//   "EXTERNAL_API_WARNING"
36141	//   "FIELD_VALUE_OVERRIDEN"
36142	//   "INJECTED_KERNELS_DEPRECATED"
36143	//   "MISSING_TYPE_DEPENDENCY"
36144	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36145	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36146	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36147	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36148	//   "NEXT_HOP_NOT_RUNNING"
36149	//   "NOT_CRITICAL_ERROR"
36150	//   "NO_RESULTS_ON_PAGE"
36151	//   "REQUIRED_TOS_AGREEMENT"
36152	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36153	//   "RESOURCE_NOT_DELETED"
36154	//   "SCHEMA_VALIDATION_IGNORED"
36155	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36156	//   "UNDECLARED_PROPERTIES"
36157	//   "UNREACHABLE"
36158	Code string `json:"code,omitempty"`
36159
36160	// Data: [Output Only] Metadata about this warning in key: value format.
36161	// For example:
36162	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36163	Data []*SslCertificateListWarningData `json:"data,omitempty"`
36164
36165	// Message: [Output Only] A human-readable description of the warning
36166	// code.
36167	Message string `json:"message,omitempty"`
36168
36169	// ForceSendFields is a list of field names (e.g. "Code") to
36170	// unconditionally include in API requests. By default, fields with
36171	// empty values are omitted from API requests. However, any non-pointer,
36172	// non-interface field appearing in ForceSendFields will be sent to the
36173	// server regardless of whether the field is empty or not. This may be
36174	// used to include empty fields in Patch requests.
36175	ForceSendFields []string `json:"-"`
36176
36177	// NullFields is a list of field names (e.g. "Code") to include in API
36178	// requests with the JSON null value. By default, fields with empty
36179	// values are omitted from API requests. However, any field with an
36180	// empty value appearing in NullFields will be sent to the server as
36181	// null. It is an error if a field in this list has a non-empty value.
36182	// This may be used to include null fields in Patch requests.
36183	NullFields []string `json:"-"`
36184}
36185
36186func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
36187	type NoMethod SslCertificateListWarning
36188	raw := NoMethod(*s)
36189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36190}
36191
36192type SslCertificateListWarningData struct {
36193	// Key: [Output Only] A key that provides more detail on the warning
36194	// being returned. For example, for warnings where there are no results
36195	// in a list request for a particular zone, this key might be scope and
36196	// the key value might be the zone name. Other examples might be a key
36197	// indicating a deprecated resource and a suggested replacement, or a
36198	// warning about invalid network settings (for example, if an instance
36199	// attempts to perform IP forwarding but is not enabled for IP
36200	// forwarding).
36201	Key string `json:"key,omitempty"`
36202
36203	// Value: [Output Only] A warning data value corresponding to the key.
36204	Value string `json:"value,omitempty"`
36205
36206	// ForceSendFields is a list of field names (e.g. "Key") to
36207	// unconditionally include in API requests. By default, fields with
36208	// empty values are omitted from API requests. However, any non-pointer,
36209	// non-interface field appearing in ForceSendFields will be sent to the
36210	// server regardless of whether the field is empty or not. This may be
36211	// used to include empty fields in Patch requests.
36212	ForceSendFields []string `json:"-"`
36213
36214	// NullFields is a list of field names (e.g. "Key") to include in API
36215	// requests with the JSON null value. By default, fields with empty
36216	// values are omitted from API requests. However, any field with an
36217	// empty value appearing in NullFields will be sent to the server as
36218	// null. It is an error if a field in this list has a non-empty value.
36219	// This may be used to include null fields in Patch requests.
36220	NullFields []string `json:"-"`
36221}
36222
36223func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
36224	type NoMethod SslCertificateListWarningData
36225	raw := NoMethod(*s)
36226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36227}
36228
36229// SslCertificateManagedSslCertificate: Configuration and status of a
36230// managed SSL certificate.
36231type SslCertificateManagedSslCertificate struct {
36232	// DomainStatus: [Output only] Detailed statuses of the domains
36233	// specified for managed certificate resource.
36234	DomainStatus map[string]string `json:"domainStatus,omitempty"`
36235
36236	// Domains: The domains for which a managed SSL certificate will be
36237	// generated. Currently only single-domain certs are supported.
36238	Domains []string `json:"domains,omitempty"`
36239
36240	// Status: [Output only] Status of the managed certificate resource.
36241	//
36242	// Possible values:
36243	//   "ACTIVE"
36244	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
36245	//   "PROVISIONING"
36246	//   "PROVISIONING_FAILED"
36247	//   "PROVISIONING_FAILED_PERMANENTLY"
36248	//   "RENEWAL_FAILED"
36249	Status string `json:"status,omitempty"`
36250
36251	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
36252	// unconditionally include in API requests. By default, fields with
36253	// empty values are omitted from API requests. However, any non-pointer,
36254	// non-interface field appearing in ForceSendFields will be sent to the
36255	// server regardless of whether the field is empty or not. This may be
36256	// used to include empty fields in Patch requests.
36257	ForceSendFields []string `json:"-"`
36258
36259	// NullFields is a list of field names (e.g. "DomainStatus") to include
36260	// in API requests with the JSON null value. By default, fields with
36261	// empty values are omitted from API requests. However, any field with
36262	// an empty value appearing in NullFields will be sent to the server as
36263	// null. It is an error if a field in this list has a non-empty value.
36264	// This may be used to include null fields in Patch requests.
36265	NullFields []string `json:"-"`
36266}
36267
36268func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
36269	type NoMethod SslCertificateManagedSslCertificate
36270	raw := NoMethod(*s)
36271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36272}
36273
36274// SslCertificateSelfManagedSslCertificate: Configuration and status of
36275// a self-managed SSL certificate.
36276type SslCertificateSelfManagedSslCertificate struct {
36277	// Certificate: A local certificate file. The certificate must be in PEM
36278	// format. The certificate chain must be no greater than 5 certs long.
36279	// The chain must include at least one intermediate cert.
36280	Certificate string `json:"certificate,omitempty"`
36281
36282	// PrivateKey: A write-only private key in PEM format. Only insert
36283	// requests will include this field.
36284	PrivateKey string `json:"privateKey,omitempty"`
36285
36286	// ForceSendFields is a list of field names (e.g. "Certificate") to
36287	// unconditionally include in API requests. By default, fields with
36288	// empty values are omitted from API requests. However, any non-pointer,
36289	// non-interface field appearing in ForceSendFields will be sent to the
36290	// server regardless of whether the field is empty or not. This may be
36291	// used to include empty fields in Patch requests.
36292	ForceSendFields []string `json:"-"`
36293
36294	// NullFields is a list of field names (e.g. "Certificate") to include
36295	// in API requests with the JSON null value. By default, fields with
36296	// empty values are omitted from API requests. However, any field with
36297	// an empty value appearing in NullFields will be sent to the server as
36298	// null. It is an error if a field in this list has a non-empty value.
36299	// This may be used to include null fields in Patch requests.
36300	NullFields []string `json:"-"`
36301}
36302
36303func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
36304	type NoMethod SslCertificateSelfManagedSslCertificate
36305	raw := NoMethod(*s)
36306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36307}
36308
36309type SslCertificatesScopedList struct {
36310	// SslCertificates: List of SslCertificates contained in this scope.
36311	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
36312
36313	// Warning: Informational warning which replaces the list of backend
36314	// services when the list is empty.
36315	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
36316
36317	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
36318	// unconditionally include in API requests. By default, fields with
36319	// empty values are omitted from API requests. However, any non-pointer,
36320	// non-interface field appearing in ForceSendFields will be sent to the
36321	// server regardless of whether the field is empty or not. This may be
36322	// used to include empty fields in Patch requests.
36323	ForceSendFields []string `json:"-"`
36324
36325	// NullFields is a list of field names (e.g. "SslCertificates") to
36326	// include in API requests with the JSON null value. By default, fields
36327	// with empty values are omitted from API requests. However, any field
36328	// with an empty value appearing in NullFields will be sent to the
36329	// server as null. It is an error if a field in this list has a
36330	// non-empty value. This may be used to include null fields in Patch
36331	// requests.
36332	NullFields []string `json:"-"`
36333}
36334
36335func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
36336	type NoMethod SslCertificatesScopedList
36337	raw := NoMethod(*s)
36338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36339}
36340
36341// SslCertificatesScopedListWarning: Informational warning which
36342// replaces the list of backend services when the list is empty.
36343type SslCertificatesScopedListWarning struct {
36344	// Code: [Output Only] A warning code, if applicable. For example,
36345	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36346	// the response.
36347	//
36348	// Possible values:
36349	//   "CLEANUP_FAILED"
36350	//   "DEPRECATED_RESOURCE_USED"
36351	//   "DEPRECATED_TYPE_USED"
36352	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36353	//   "EXPERIMENTAL_TYPE_USED"
36354	//   "EXTERNAL_API_WARNING"
36355	//   "FIELD_VALUE_OVERRIDEN"
36356	//   "INJECTED_KERNELS_DEPRECATED"
36357	//   "MISSING_TYPE_DEPENDENCY"
36358	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36359	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36360	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36361	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36362	//   "NEXT_HOP_NOT_RUNNING"
36363	//   "NOT_CRITICAL_ERROR"
36364	//   "NO_RESULTS_ON_PAGE"
36365	//   "REQUIRED_TOS_AGREEMENT"
36366	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36367	//   "RESOURCE_NOT_DELETED"
36368	//   "SCHEMA_VALIDATION_IGNORED"
36369	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36370	//   "UNDECLARED_PROPERTIES"
36371	//   "UNREACHABLE"
36372	Code string `json:"code,omitempty"`
36373
36374	// Data: [Output Only] Metadata about this warning in key: value format.
36375	// For example:
36376	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36377	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
36378
36379	// Message: [Output Only] A human-readable description of the warning
36380	// code.
36381	Message string `json:"message,omitempty"`
36382
36383	// ForceSendFields is a list of field names (e.g. "Code") to
36384	// unconditionally include in API requests. By default, fields with
36385	// empty values are omitted from API requests. However, any non-pointer,
36386	// non-interface field appearing in ForceSendFields will be sent to the
36387	// server regardless of whether the field is empty or not. This may be
36388	// used to include empty fields in Patch requests.
36389	ForceSendFields []string `json:"-"`
36390
36391	// NullFields is a list of field names (e.g. "Code") to include in API
36392	// requests with the JSON null value. By default, fields with empty
36393	// values are omitted from API requests. However, any field with an
36394	// empty value appearing in NullFields will be sent to the server as
36395	// null. It is an error if a field in this list has a non-empty value.
36396	// This may be used to include null fields in Patch requests.
36397	NullFields []string `json:"-"`
36398}
36399
36400func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
36401	type NoMethod SslCertificatesScopedListWarning
36402	raw := NoMethod(*s)
36403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36404}
36405
36406type SslCertificatesScopedListWarningData struct {
36407	// Key: [Output Only] A key that provides more detail on the warning
36408	// being returned. For example, for warnings where there are no results
36409	// in a list request for a particular zone, this key might be scope and
36410	// the key value might be the zone name. Other examples might be a key
36411	// indicating a deprecated resource and a suggested replacement, or a
36412	// warning about invalid network settings (for example, if an instance
36413	// attempts to perform IP forwarding but is not enabled for IP
36414	// forwarding).
36415	Key string `json:"key,omitempty"`
36416
36417	// Value: [Output Only] A warning data value corresponding to the key.
36418	Value string `json:"value,omitempty"`
36419
36420	// ForceSendFields is a list of field names (e.g. "Key") to
36421	// unconditionally include in API requests. By default, fields with
36422	// empty values are omitted from API requests. However, any non-pointer,
36423	// non-interface field appearing in ForceSendFields will be sent to the
36424	// server regardless of whether the field is empty or not. This may be
36425	// used to include empty fields in Patch requests.
36426	ForceSendFields []string `json:"-"`
36427
36428	// NullFields is a list of field names (e.g. "Key") to include in API
36429	// requests with the JSON null value. By default, fields with empty
36430	// values are omitted from API requests. However, any field with an
36431	// empty value appearing in NullFields will be sent to the server as
36432	// null. It is an error if a field in this list has a non-empty value.
36433	// This may be used to include null fields in Patch requests.
36434	NullFields []string `json:"-"`
36435}
36436
36437func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
36438	type NoMethod SslCertificatesScopedListWarningData
36439	raw := NoMethod(*s)
36440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36441}
36442
36443type SslPoliciesList struct {
36444	// Id: [Output Only] Unique identifier for the resource; defined by the
36445	// server.
36446	Id string `json:"id,omitempty"`
36447
36448	// Items: A list of SslPolicy resources.
36449	Items []*SslPolicy `json:"items,omitempty"`
36450
36451	// Kind: [Output Only] Type of the resource. Always
36452	// compute#sslPoliciesList for lists of sslPolicies.
36453	Kind string `json:"kind,omitempty"`
36454
36455	// NextPageToken: [Output Only] This token allows you to get the next
36456	// page of results for list requests. If the number of results is larger
36457	// than maxResults, use the nextPageToken as a value for the query
36458	// parameter pageToken in the next list request. Subsequent list
36459	// requests will have their own nextPageToken to continue paging through
36460	// the results.
36461	NextPageToken string `json:"nextPageToken,omitempty"`
36462
36463	// SelfLink: [Output Only] Server-defined URL for this resource.
36464	SelfLink string `json:"selfLink,omitempty"`
36465
36466	// Warning: [Output Only] Informational warning message.
36467	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
36468
36469	// ServerResponse contains the HTTP response code and headers from the
36470	// server.
36471	googleapi.ServerResponse `json:"-"`
36472
36473	// ForceSendFields is a list of field names (e.g. "Id") to
36474	// unconditionally include in API requests. By default, fields with
36475	// empty values are omitted from API requests. However, any non-pointer,
36476	// non-interface field appearing in ForceSendFields will be sent to the
36477	// server regardless of whether the field is empty or not. This may be
36478	// used to include empty fields in Patch requests.
36479	ForceSendFields []string `json:"-"`
36480
36481	// NullFields is a list of field names (e.g. "Id") to include in API
36482	// requests with the JSON null value. By default, fields with empty
36483	// values are omitted from API requests. However, any field with an
36484	// empty value appearing in NullFields will be sent to the server as
36485	// null. It is an error if a field in this list has a non-empty value.
36486	// This may be used to include null fields in Patch requests.
36487	NullFields []string `json:"-"`
36488}
36489
36490func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
36491	type NoMethod SslPoliciesList
36492	raw := NoMethod(*s)
36493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36494}
36495
36496// SslPoliciesListWarning: [Output Only] Informational warning message.
36497type SslPoliciesListWarning struct {
36498	// Code: [Output Only] A warning code, if applicable. For example,
36499	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36500	// the response.
36501	//
36502	// Possible values:
36503	//   "CLEANUP_FAILED"
36504	//   "DEPRECATED_RESOURCE_USED"
36505	//   "DEPRECATED_TYPE_USED"
36506	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36507	//   "EXPERIMENTAL_TYPE_USED"
36508	//   "EXTERNAL_API_WARNING"
36509	//   "FIELD_VALUE_OVERRIDEN"
36510	//   "INJECTED_KERNELS_DEPRECATED"
36511	//   "MISSING_TYPE_DEPENDENCY"
36512	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36513	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36514	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36515	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36516	//   "NEXT_HOP_NOT_RUNNING"
36517	//   "NOT_CRITICAL_ERROR"
36518	//   "NO_RESULTS_ON_PAGE"
36519	//   "REQUIRED_TOS_AGREEMENT"
36520	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36521	//   "RESOURCE_NOT_DELETED"
36522	//   "SCHEMA_VALIDATION_IGNORED"
36523	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36524	//   "UNDECLARED_PROPERTIES"
36525	//   "UNREACHABLE"
36526	Code string `json:"code,omitempty"`
36527
36528	// Data: [Output Only] Metadata about this warning in key: value format.
36529	// For example:
36530	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36531	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
36532
36533	// Message: [Output Only] A human-readable description of the warning
36534	// code.
36535	Message string `json:"message,omitempty"`
36536
36537	// ForceSendFields is a list of field names (e.g. "Code") to
36538	// unconditionally include in API requests. By default, fields with
36539	// empty values are omitted from API requests. However, any non-pointer,
36540	// non-interface field appearing in ForceSendFields will be sent to the
36541	// server regardless of whether the field is empty or not. This may be
36542	// used to include empty fields in Patch requests.
36543	ForceSendFields []string `json:"-"`
36544
36545	// NullFields is a list of field names (e.g. "Code") to include in API
36546	// requests with the JSON null value. By default, fields with empty
36547	// values are omitted from API requests. However, any field with an
36548	// empty value appearing in NullFields will be sent to the server as
36549	// null. It is an error if a field in this list has a non-empty value.
36550	// This may be used to include null fields in Patch requests.
36551	NullFields []string `json:"-"`
36552}
36553
36554func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
36555	type NoMethod SslPoliciesListWarning
36556	raw := NoMethod(*s)
36557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36558}
36559
36560type SslPoliciesListWarningData struct {
36561	// Key: [Output Only] A key that provides more detail on the warning
36562	// being returned. For example, for warnings where there are no results
36563	// in a list request for a particular zone, this key might be scope and
36564	// the key value might be the zone name. Other examples might be a key
36565	// indicating a deprecated resource and a suggested replacement, or a
36566	// warning about invalid network settings (for example, if an instance
36567	// attempts to perform IP forwarding but is not enabled for IP
36568	// forwarding).
36569	Key string `json:"key,omitempty"`
36570
36571	// Value: [Output Only] A warning data value corresponding to the key.
36572	Value string `json:"value,omitempty"`
36573
36574	// ForceSendFields is a list of field names (e.g. "Key") to
36575	// unconditionally include in API requests. By default, fields with
36576	// empty values are omitted from API requests. However, any non-pointer,
36577	// non-interface field appearing in ForceSendFields will be sent to the
36578	// server regardless of whether the field is empty or not. This may be
36579	// used to include empty fields in Patch requests.
36580	ForceSendFields []string `json:"-"`
36581
36582	// NullFields is a list of field names (e.g. "Key") to include in API
36583	// requests with the JSON null value. By default, fields with empty
36584	// values are omitted from API requests. However, any field with an
36585	// empty value appearing in NullFields will be sent to the server as
36586	// null. It is an error if a field in this list has a non-empty value.
36587	// This may be used to include null fields in Patch requests.
36588	NullFields []string `json:"-"`
36589}
36590
36591func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
36592	type NoMethod SslPoliciesListWarningData
36593	raw := NoMethod(*s)
36594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36595}
36596
36597type SslPoliciesListAvailableFeaturesResponse struct {
36598	Features []string `json:"features,omitempty"`
36599
36600	// ServerResponse contains the HTTP response code and headers from the
36601	// server.
36602	googleapi.ServerResponse `json:"-"`
36603
36604	// ForceSendFields is a list of field names (e.g. "Features") to
36605	// unconditionally include in API requests. By default, fields with
36606	// empty values are omitted from API requests. However, any non-pointer,
36607	// non-interface field appearing in ForceSendFields will be sent to the
36608	// server regardless of whether the field is empty or not. This may be
36609	// used to include empty fields in Patch requests.
36610	ForceSendFields []string `json:"-"`
36611
36612	// NullFields is a list of field names (e.g. "Features") to include in
36613	// API requests with the JSON null value. By default, fields with empty
36614	// values are omitted from API requests. However, any field with an
36615	// empty value appearing in NullFields will be sent to the server as
36616	// null. It is an error if a field in this list has a non-empty value.
36617	// This may be used to include null fields in Patch requests.
36618	NullFields []string `json:"-"`
36619}
36620
36621func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
36622	type NoMethod SslPoliciesListAvailableFeaturesResponse
36623	raw := NoMethod(*s)
36624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36625}
36626
36627// SslPolicy: Represents a Cloud Armor Security Policy resource.
36628//
36629// Only external backend services used by HTTP or HTTPS load balancers
36630// can reference a Security Policy. For more information, read read
36631// Cloud Armor Security Policy Concepts. (== resource_for
36632// {$api_version}.sslPolicies ==)
36633type SslPolicy struct {
36634	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36635	// format.
36636	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36637
36638	// CustomFeatures: A list of features enabled when the selected profile
36639	// is CUSTOM. The
36640	// - method returns the set of features that can be specified in this
36641	// list. This field must be empty if the profile is not CUSTOM.
36642	CustomFeatures []string `json:"customFeatures,omitempty"`
36643
36644	// Description: An optional description of this resource. Provide this
36645	// property when you create the resource.
36646	Description string `json:"description,omitempty"`
36647
36648	// EnabledFeatures: [Output Only] The list of features enabled in the
36649	// SSL policy.
36650	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
36651
36652	// Fingerprint: Fingerprint of this resource. A hash of the contents
36653	// stored in this object. This field is used in optimistic locking. This
36654	// field will be ignored when inserting a SslPolicy. An up-to-date
36655	// fingerprint must be provided in order to update the SslPolicy,
36656	// otherwise the request will fail with error 412 conditionNotMet.
36657	//
36658	// To see the latest fingerprint, make a get() request to retrieve an
36659	// SslPolicy.
36660	Fingerprint string `json:"fingerprint,omitempty"`
36661
36662	// Id: [Output Only] The unique identifier for the resource. This
36663	// identifier is defined by the server.
36664	Id uint64 `json:"id,omitempty,string"`
36665
36666	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
36667	// SSL policies.
36668	Kind string `json:"kind,omitempty"`
36669
36670	// MinTlsVersion: The minimum version of SSL protocol that can be used
36671	// by the clients to establish a connection with the load balancer. This
36672	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
36673	//
36674	// Possible values:
36675	//   "TLS_1_0"
36676	//   "TLS_1_1"
36677	//   "TLS_1_2"
36678	MinTlsVersion string `json:"minTlsVersion,omitempty"`
36679
36680	// Name: Name of the resource. The name must be 1-63 characters long,
36681	// and comply with RFC1035. Specifically, the name must be 1-63
36682	// characters long and match the regular expression
36683	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
36684	// a lowercase letter, and all following characters must be a dash,
36685	// lowercase letter, or digit, except the last character, which cannot
36686	// be a dash.
36687	Name string `json:"name,omitempty"`
36688
36689	// Profile: Profile specifies the set of SSL features that can be used
36690	// by the load balancer when negotiating SSL with clients. This can be
36691	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
36692	// the set of SSL features to enable must be specified in the
36693	// customFeatures field.
36694	//
36695	// Possible values:
36696	//   "COMPATIBLE"
36697	//   "CUSTOM"
36698	//   "MODERN"
36699	//   "RESTRICTED"
36700	Profile string `json:"profile,omitempty"`
36701
36702	// SelfLink: [Output Only] Server-defined URL for the resource.
36703	SelfLink string `json:"selfLink,omitempty"`
36704
36705	// Warnings: [Output Only] If potential misconfigurations are detected
36706	// for this SSL policy, this field will be populated with warning
36707	// messages.
36708	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
36709
36710	// ServerResponse contains the HTTP response code and headers from the
36711	// server.
36712	googleapi.ServerResponse `json:"-"`
36713
36714	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
36715	// to unconditionally include in API requests. By default, fields with
36716	// empty values are omitted from API requests. However, any non-pointer,
36717	// non-interface field appearing in ForceSendFields will be sent to the
36718	// server regardless of whether the field is empty or not. This may be
36719	// used to include empty fields in Patch requests.
36720	ForceSendFields []string `json:"-"`
36721
36722	// NullFields is a list of field names (e.g. "CreationTimestamp") to
36723	// include in API requests with the JSON null value. By default, fields
36724	// with empty values are omitted from API requests. However, any field
36725	// with an empty value appearing in NullFields will be sent to the
36726	// server as null. It is an error if a field in this list has a
36727	// non-empty value. This may be used to include null fields in Patch
36728	// requests.
36729	NullFields []string `json:"-"`
36730}
36731
36732func (s *SslPolicy) MarshalJSON() ([]byte, error) {
36733	type NoMethod SslPolicy
36734	raw := NoMethod(*s)
36735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36736}
36737
36738type SslPolicyWarnings struct {
36739	// Code: [Output Only] A warning code, if applicable. For example,
36740	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36741	// the response.
36742	//
36743	// Possible values:
36744	//   "CLEANUP_FAILED"
36745	//   "DEPRECATED_RESOURCE_USED"
36746	//   "DEPRECATED_TYPE_USED"
36747	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36748	//   "EXPERIMENTAL_TYPE_USED"
36749	//   "EXTERNAL_API_WARNING"
36750	//   "FIELD_VALUE_OVERRIDEN"
36751	//   "INJECTED_KERNELS_DEPRECATED"
36752	//   "MISSING_TYPE_DEPENDENCY"
36753	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36754	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36755	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36756	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36757	//   "NEXT_HOP_NOT_RUNNING"
36758	//   "NOT_CRITICAL_ERROR"
36759	//   "NO_RESULTS_ON_PAGE"
36760	//   "REQUIRED_TOS_AGREEMENT"
36761	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36762	//   "RESOURCE_NOT_DELETED"
36763	//   "SCHEMA_VALIDATION_IGNORED"
36764	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36765	//   "UNDECLARED_PROPERTIES"
36766	//   "UNREACHABLE"
36767	Code string `json:"code,omitempty"`
36768
36769	// Data: [Output Only] Metadata about this warning in key: value format.
36770	// For example:
36771	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36772	Data []*SslPolicyWarningsData `json:"data,omitempty"`
36773
36774	// Message: [Output Only] A human-readable description of the warning
36775	// code.
36776	Message string `json:"message,omitempty"`
36777
36778	// ForceSendFields is a list of field names (e.g. "Code") to
36779	// unconditionally include in API requests. By default, fields with
36780	// empty values are omitted from API requests. However, any non-pointer,
36781	// non-interface field appearing in ForceSendFields will be sent to the
36782	// server regardless of whether the field is empty or not. This may be
36783	// used to include empty fields in Patch requests.
36784	ForceSendFields []string `json:"-"`
36785
36786	// NullFields is a list of field names (e.g. "Code") to include in API
36787	// requests with the JSON null value. By default, fields with empty
36788	// values are omitted from API requests. However, any field with an
36789	// empty value appearing in NullFields will be sent to the server as
36790	// null. It is an error if a field in this list has a non-empty value.
36791	// This may be used to include null fields in Patch requests.
36792	NullFields []string `json:"-"`
36793}
36794
36795func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
36796	type NoMethod SslPolicyWarnings
36797	raw := NoMethod(*s)
36798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36799}
36800
36801type SslPolicyWarningsData struct {
36802	// Key: [Output Only] A key that provides more detail on the warning
36803	// being returned. For example, for warnings where there are no results
36804	// in a list request for a particular zone, this key might be scope and
36805	// the key value might be the zone name. Other examples might be a key
36806	// indicating a deprecated resource and a suggested replacement, or a
36807	// warning about invalid network settings (for example, if an instance
36808	// attempts to perform IP forwarding but is not enabled for IP
36809	// forwarding).
36810	Key string `json:"key,omitempty"`
36811
36812	// Value: [Output Only] A warning data value corresponding to the key.
36813	Value string `json:"value,omitempty"`
36814
36815	// ForceSendFields is a list of field names (e.g. "Key") to
36816	// unconditionally include in API requests. By default, fields with
36817	// empty values are omitted from API requests. However, any non-pointer,
36818	// non-interface field appearing in ForceSendFields will be sent to the
36819	// server regardless of whether the field is empty or not. This may be
36820	// used to include empty fields in Patch requests.
36821	ForceSendFields []string `json:"-"`
36822
36823	// NullFields is a list of field names (e.g. "Key") to include in API
36824	// requests with the JSON null value. By default, fields with empty
36825	// values are omitted from API requests. However, any field with an
36826	// empty value appearing in NullFields will be sent to the server as
36827	// null. It is an error if a field in this list has a non-empty value.
36828	// This may be used to include null fields in Patch requests.
36829	NullFields []string `json:"-"`
36830}
36831
36832func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
36833	type NoMethod SslPolicyWarningsData
36834	raw := NoMethod(*s)
36835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36836}
36837
36838type SslPolicyReference struct {
36839	// SslPolicy: URL of the SSL policy resource. Set this to empty string
36840	// to clear any existing SSL policy associated with the target proxy
36841	// resource.
36842	SslPolicy string `json:"sslPolicy,omitempty"`
36843
36844	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
36845	// unconditionally include in API requests. By default, fields with
36846	// empty values are omitted from API requests. However, any non-pointer,
36847	// non-interface field appearing in ForceSendFields will be sent to the
36848	// server regardless of whether the field is empty or not. This may be
36849	// used to include empty fields in Patch requests.
36850	ForceSendFields []string `json:"-"`
36851
36852	// NullFields is a list of field names (e.g. "SslPolicy") to include in
36853	// API requests with the JSON null value. By default, fields with empty
36854	// values are omitted from API requests. However, any field with an
36855	// empty value appearing in NullFields will be sent to the server as
36856	// null. It is an error if a field in this list has a non-empty value.
36857	// This may be used to include null fields in Patch requests.
36858	NullFields []string `json:"-"`
36859}
36860
36861func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
36862	type NoMethod SslPolicyReference
36863	raw := NoMethod(*s)
36864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36865}
36866
36867type StatefulPolicy struct {
36868	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
36869
36870	// ForceSendFields is a list of field names (e.g. "PreservedState") to
36871	// unconditionally include in API requests. By default, fields with
36872	// empty values are omitted from API requests. However, any non-pointer,
36873	// non-interface field appearing in ForceSendFields will be sent to the
36874	// server regardless of whether the field is empty or not. This may be
36875	// used to include empty fields in Patch requests.
36876	ForceSendFields []string `json:"-"`
36877
36878	// NullFields is a list of field names (e.g. "PreservedState") to
36879	// include in API requests with the JSON null value. By default, fields
36880	// with empty values are omitted from API requests. However, any field
36881	// with an empty value appearing in NullFields will be sent to the
36882	// server as null. It is an error if a field in this list has a
36883	// non-empty value. This may be used to include null fields in Patch
36884	// requests.
36885	NullFields []string `json:"-"`
36886}
36887
36888func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
36889	type NoMethod StatefulPolicy
36890	raw := NoMethod(*s)
36891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36892}
36893
36894// StatefulPolicyPreservedState: Configuration of preserved resources.
36895type StatefulPolicyPreservedState struct {
36896	// Disks: Disks created on the instances that will be preserved on
36897	// instance delete, update, etc. This map is keyed with the device names
36898	// of the disks.
36899	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
36900
36901	// ForceSendFields is a list of field names (e.g. "Disks") to
36902	// unconditionally include in API requests. By default, fields with
36903	// empty values are omitted from API requests. However, any non-pointer,
36904	// non-interface field appearing in ForceSendFields will be sent to the
36905	// server regardless of whether the field is empty or not. This may be
36906	// used to include empty fields in Patch requests.
36907	ForceSendFields []string `json:"-"`
36908
36909	// NullFields is a list of field names (e.g. "Disks") to include in API
36910	// requests with the JSON null value. By default, fields with empty
36911	// values are omitted from API requests. However, any field with an
36912	// empty value appearing in NullFields will be sent to the server as
36913	// null. It is an error if a field in this list has a non-empty value.
36914	// This may be used to include null fields in Patch requests.
36915	NullFields []string `json:"-"`
36916}
36917
36918func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
36919	type NoMethod StatefulPolicyPreservedState
36920	raw := NoMethod(*s)
36921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36922}
36923
36924type StatefulPolicyPreservedStateDiskDevice struct {
36925	// AutoDelete: These stateful disks will never be deleted during
36926	// autohealing, update or VM instance recreate operations. This flag is
36927	// used to configure if the disk should be deleted after it is no longer
36928	// used by the group, e.g. when the given instance or the whole group is
36929	// deleted. Note: disks attached in READ_ONLY mode cannot be
36930	// auto-deleted.
36931	//
36932	// Possible values:
36933	//   "NEVER"
36934	//   "ON_PERMANENT_INSTANCE_DELETION"
36935	AutoDelete string `json:"autoDelete,omitempty"`
36936
36937	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
36938	// unconditionally include in API requests. By default, fields with
36939	// empty values are omitted from API requests. However, any non-pointer,
36940	// non-interface field appearing in ForceSendFields will be sent to the
36941	// server regardless of whether the field is empty or not. This may be
36942	// used to include empty fields in Patch requests.
36943	ForceSendFields []string `json:"-"`
36944
36945	// NullFields is a list of field names (e.g. "AutoDelete") to include in
36946	// API requests with the JSON null value. By default, fields with empty
36947	// values are omitted from API requests. However, any field with an
36948	// empty value appearing in NullFields will be sent to the server as
36949	// null. It is an error if a field in this list has a non-empty value.
36950	// This may be used to include null fields in Patch requests.
36951	NullFields []string `json:"-"`
36952}
36953
36954func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
36955	type NoMethod StatefulPolicyPreservedStateDiskDevice
36956	raw := NoMethod(*s)
36957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36958}
36959
36960// Subnetwork: Represents a Subnetwork resource.
36961//
36962// A subnetwork (also known as a subnet) is a logical partition of a
36963// Virtual Private Cloud network with one primary IP range and zero or
36964// more secondary IP ranges. For more information, read  Virtual Private
36965// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
36966type Subnetwork struct {
36967	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict
36968	// with static routes. Setting this to true allows this subnetwork's
36969	// primary and secondary ranges to conflict with routes that have
36970	// already been configured on the corresponding network. Static routes
36971	// will take precedence over the subnetwork route if the route prefix
36972	// length is at least as large as the subnetwork prefix length.
36973	//
36974	// Also, packets destined to IPs within subnetwork may contain
36975	// private/sensitive data and are prevented from leaving the virtual
36976	// network. Setting this field to true will disable this feature.
36977	//
36978	// The default value is false and applies to all existing subnetworks
36979	// and automatically created subnetworks.
36980	//
36981	// This field cannot be set to true at resource creation time.
36982	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
36983
36984	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36985	// format.
36986	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36987
36988	// Description: An optional description of this resource. Provide this
36989	// property when you create the resource. This field can be set only at
36990	// resource creation time.
36991	Description string `json:"description,omitempty"`
36992
36993	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
36994	// If this field is not explicitly set, it will not appear in get
36995	// listings. If not set the default behavior is to disable flow logging.
36996	// This field isn't supported with the purpose field set to
36997	// INTERNAL_HTTPS_LOAD_BALANCER.
36998	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
36999
37000	// Fingerprint: Fingerprint of this resource. A hash of the contents
37001	// stored in this object. This field is used in optimistic locking. This
37002	// field will be ignored when inserting a Subnetwork. An up-to-date
37003	// fingerprint must be provided in order to update the Subnetwork,
37004	// otherwise the request will fail with error 412 conditionNotMet.
37005	//
37006	// To see the latest fingerprint, make a get() request to retrieve a
37007	// Subnetwork.
37008	Fingerprint string `json:"fingerprint,omitempty"`
37009
37010	// GatewayAddress: [Output Only] The gateway address for default routes
37011	// to reach destination addresses outside this subnetwork.
37012	GatewayAddress string `json:"gatewayAddress,omitempty"`
37013
37014	// Id: [Output Only] The unique identifier for the resource. This
37015	// identifier is defined by the server.
37016	Id uint64 `json:"id,omitempty,string"`
37017
37018	// IpCidrRange: The range of internal addresses that are owned by this
37019	// subnetwork. Provide this property when you create the subnetwork. For
37020	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
37021	// non-overlapping within a network. Only IPv4 is supported. This field
37022	// is set at resource creation time. The range can be expanded after
37023	// creation using expandIpCidrRange.
37024	IpCidrRange string `json:"ipCidrRange,omitempty"`
37025
37026	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
37027	// that are owned by this subnetwork.
37028	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
37029
37030	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
37031	// for Subnetwork resources.
37032	Kind string `json:"kind,omitempty"`
37033
37034	// LogConfig: This field denotes the VPC flow logging options for this
37035	// subnetwork. If logging is enabled, logs are exported to Cloud
37036	// Logging.
37037	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
37038
37039	// Name: The name of the resource, provided by the client when initially
37040	// creating the resource. The name must be 1-63 characters long, and
37041	// comply with RFC1035. Specifically, the name must be 1-63 characters
37042	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
37043	// which means the first character must be a lowercase letter, and all
37044	// following characters must be a dash, lowercase letter, or digit,
37045	// except the last character, which cannot be a dash.
37046	Name string `json:"name,omitempty"`
37047
37048	// Network: The URL of the network to which this subnetwork belongs,
37049	// provided by the client when initially creating the subnetwork. Only
37050	// networks that are in the distributed mode can have subnetworks. This
37051	// field can be set only at resource creation time.
37052	Network string `json:"network,omitempty"`
37053
37054	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
37055	// Google services without assigned external IP addresses. This field
37056	// can be both set at resource creation time and updated using
37057	// setPrivateIpGoogleAccess.
37058	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
37059
37060	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
37061	// VMs in this subnet. This is an expanded field of
37062	// enablePrivateV6Access. If both fields are set,
37063	// privateIpv6GoogleAccess will take priority.
37064	//
37065	// This field can be both set at resource creation time and updated
37066	// using patch.
37067	//
37068	// Possible values:
37069	//   "DISABLE_GOOGLE_ACCESS"
37070	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
37071	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
37072	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS"
37073	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
37074
37075	// PrivateIpv6GoogleAccessServiceAccounts: Deprecated in favor of enable
37076	// PrivateIpv6GoogleAccess on instance directly. The service accounts
37077	// can be used to selectively turn on Private IPv6 Google Access only on
37078	// the VMs primary service account matching the value. This value only
37079	// takes effect when PrivateIpv6GoogleAccess is
37080	// ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or
37081	// ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS.
37082	PrivateIpv6GoogleAccessServiceAccounts []string `json:"privateIpv6GoogleAccessServiceAccounts,omitempty"`
37083
37084	// Purpose: The purpose of the resource. This field can be either
37085	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
37086	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
37087	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
37088	// unspecified, the purpose defaults to PRIVATE_RFC_1918. The
37089	// enableFlowLogs field isn't supported with the purpose field set to
37090	// INTERNAL_HTTPS_LOAD_BALANCER.
37091	//
37092	// Possible values:
37093	//   "INTERNAL_HTTPS_LOAD_BALANCER"
37094	//   "PRIVATE"
37095	//   "PRIVATE_RFC_1918"
37096	Purpose string `json:"purpose,omitempty"`
37097
37098	// Region: URL of the region where the Subnetwork resides. This field
37099	// can be set only at resource creation time.
37100	Region string `json:"region,omitempty"`
37101
37102	// Role: The role of subnetwork. Currently, this field is only used when
37103	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
37104	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
37105	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
37106	// that is ready to be promoted to ACTIVE or is currently draining. This
37107	// field can be updated with a patch request.
37108	//
37109	// Possible values:
37110	//   "ACTIVE"
37111	//   "BACKUP"
37112	Role string `json:"role,omitempty"`
37113
37114	// SecondaryIpRanges: An array of configurations for secondary IP ranges
37115	// for VM instances contained in this subnetwork. The primary IP of such
37116	// VM must belong to the primary ipCidrRange of the subnetwork. The
37117	// alias IPs may belong to either primary or secondary ranges. This
37118	// field can be updated with a patch request.
37119	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
37120
37121	// SelfLink: [Output Only] Server-defined URL for the resource.
37122	SelfLink string `json:"selfLink,omitempty"`
37123
37124	// State: [Output Only] The state of the subnetwork, which can be one of
37125	// READY or DRAINING. A subnetwork that is READY is ready to be used.
37126	// The state of DRAINING is only applicable to subnetworks that have the
37127	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that
37128	// connections to the load balancer are being drained. A subnetwork that
37129	// is draining cannot be used or modified until it reaches a status of
37130	// READY.
37131	//
37132	// Possible values:
37133	//   "DRAINING"
37134	//   "READY"
37135	State string `json:"state,omitempty"`
37136
37137	// ServerResponse contains the HTTP response code and headers from the
37138	// server.
37139	googleapi.ServerResponse `json:"-"`
37140
37141	// ForceSendFields is a list of field names (e.g.
37142	// "AllowSubnetCidrRoutesOverlap") to unconditionally include in API
37143	// requests. By default, fields with empty values are omitted from API
37144	// requests. However, any non-pointer, non-interface field appearing in
37145	// ForceSendFields will be sent to the server regardless of whether the
37146	// field is empty or not. This may be used to include empty fields in
37147	// Patch requests.
37148	ForceSendFields []string `json:"-"`
37149
37150	// NullFields is a list of field names (e.g.
37151	// "AllowSubnetCidrRoutesOverlap") to include in API requests with the
37152	// JSON null value. By default, fields with empty values are omitted
37153	// from API requests. However, any field with an empty value appearing
37154	// in NullFields will be sent to the server as null. It is an error if a
37155	// field in this list has a non-empty value. This may be used to include
37156	// null fields in Patch requests.
37157	NullFields []string `json:"-"`
37158}
37159
37160func (s *Subnetwork) MarshalJSON() ([]byte, error) {
37161	type NoMethod Subnetwork
37162	raw := NoMethod(*s)
37163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37164}
37165
37166type SubnetworkAggregatedList struct {
37167	// Id: [Output Only] Unique identifier for the resource; defined by the
37168	// server.
37169	Id string `json:"id,omitempty"`
37170
37171	// Items: A list of SubnetworksScopedList resources.
37172	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
37173
37174	// Kind: [Output Only] Type of resource. Always
37175	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
37176	Kind string `json:"kind,omitempty"`
37177
37178	// NextPageToken: [Output Only] This token allows you to get the next
37179	// page of results for list requests. If the number of results is larger
37180	// than maxResults, use the nextPageToken as a value for the query
37181	// parameter pageToken in the next list request. Subsequent list
37182	// requests will have their own nextPageToken to continue paging through
37183	// the results.
37184	NextPageToken string `json:"nextPageToken,omitempty"`
37185
37186	// SelfLink: [Output Only] Server-defined URL for this resource.
37187	SelfLink string `json:"selfLink,omitempty"`
37188
37189	// Warning: [Output Only] Informational warning message.
37190	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
37191
37192	// ServerResponse contains the HTTP response code and headers from the
37193	// server.
37194	googleapi.ServerResponse `json:"-"`
37195
37196	// ForceSendFields is a list of field names (e.g. "Id") to
37197	// unconditionally include in API requests. By default, fields with
37198	// empty values are omitted from API requests. However, any non-pointer,
37199	// non-interface field appearing in ForceSendFields will be sent to the
37200	// server regardless of whether the field is empty or not. This may be
37201	// used to include empty fields in Patch requests.
37202	ForceSendFields []string `json:"-"`
37203
37204	// NullFields is a list of field names (e.g. "Id") to include in API
37205	// requests with the JSON null value. By default, fields with empty
37206	// values are omitted from API requests. However, any field with an
37207	// empty value appearing in NullFields will be sent to the server as
37208	// null. It is an error if a field in this list has a non-empty value.
37209	// This may be used to include null fields in Patch requests.
37210	NullFields []string `json:"-"`
37211}
37212
37213func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
37214	type NoMethod SubnetworkAggregatedList
37215	raw := NoMethod(*s)
37216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37217}
37218
37219// SubnetworkAggregatedListWarning: [Output Only] Informational warning
37220// message.
37221type SubnetworkAggregatedListWarning struct {
37222	// Code: [Output Only] A warning code, if applicable. For example,
37223	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37224	// the response.
37225	//
37226	// Possible values:
37227	//   "CLEANUP_FAILED"
37228	//   "DEPRECATED_RESOURCE_USED"
37229	//   "DEPRECATED_TYPE_USED"
37230	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37231	//   "EXPERIMENTAL_TYPE_USED"
37232	//   "EXTERNAL_API_WARNING"
37233	//   "FIELD_VALUE_OVERRIDEN"
37234	//   "INJECTED_KERNELS_DEPRECATED"
37235	//   "MISSING_TYPE_DEPENDENCY"
37236	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37237	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37238	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37239	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37240	//   "NEXT_HOP_NOT_RUNNING"
37241	//   "NOT_CRITICAL_ERROR"
37242	//   "NO_RESULTS_ON_PAGE"
37243	//   "REQUIRED_TOS_AGREEMENT"
37244	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37245	//   "RESOURCE_NOT_DELETED"
37246	//   "SCHEMA_VALIDATION_IGNORED"
37247	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37248	//   "UNDECLARED_PROPERTIES"
37249	//   "UNREACHABLE"
37250	Code string `json:"code,omitempty"`
37251
37252	// Data: [Output Only] Metadata about this warning in key: value format.
37253	// For example:
37254	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37255	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
37256
37257	// Message: [Output Only] A human-readable description of the warning
37258	// code.
37259	Message string `json:"message,omitempty"`
37260
37261	// ForceSendFields is a list of field names (e.g. "Code") to
37262	// unconditionally include in API requests. By default, fields with
37263	// empty values are omitted from API requests. However, any non-pointer,
37264	// non-interface field appearing in ForceSendFields will be sent to the
37265	// server regardless of whether the field is empty or not. This may be
37266	// used to include empty fields in Patch requests.
37267	ForceSendFields []string `json:"-"`
37268
37269	// NullFields is a list of field names (e.g. "Code") to include in API
37270	// requests with the JSON null value. By default, fields with empty
37271	// values are omitted from API requests. However, any field with an
37272	// empty value appearing in NullFields will be sent to the server as
37273	// null. It is an error if a field in this list has a non-empty value.
37274	// This may be used to include null fields in Patch requests.
37275	NullFields []string `json:"-"`
37276}
37277
37278func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
37279	type NoMethod SubnetworkAggregatedListWarning
37280	raw := NoMethod(*s)
37281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37282}
37283
37284type SubnetworkAggregatedListWarningData struct {
37285	// Key: [Output Only] A key that provides more detail on the warning
37286	// being returned. For example, for warnings where there are no results
37287	// in a list request for a particular zone, this key might be scope and
37288	// the key value might be the zone name. Other examples might be a key
37289	// indicating a deprecated resource and a suggested replacement, or a
37290	// warning about invalid network settings (for example, if an instance
37291	// attempts to perform IP forwarding but is not enabled for IP
37292	// forwarding).
37293	Key string `json:"key,omitempty"`
37294
37295	// Value: [Output Only] A warning data value corresponding to the key.
37296	Value string `json:"value,omitempty"`
37297
37298	// ForceSendFields is a list of field names (e.g. "Key") to
37299	// unconditionally include in API requests. By default, fields with
37300	// empty values are omitted from API requests. However, any non-pointer,
37301	// non-interface field appearing in ForceSendFields will be sent to the
37302	// server regardless of whether the field is empty or not. This may be
37303	// used to include empty fields in Patch requests.
37304	ForceSendFields []string `json:"-"`
37305
37306	// NullFields is a list of field names (e.g. "Key") to include in API
37307	// requests with the JSON null value. By default, fields with empty
37308	// values are omitted from API requests. However, any field with an
37309	// empty value appearing in NullFields will be sent to the server as
37310	// null. It is an error if a field in this list has a non-empty value.
37311	// This may be used to include null fields in Patch requests.
37312	NullFields []string `json:"-"`
37313}
37314
37315func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
37316	type NoMethod SubnetworkAggregatedListWarningData
37317	raw := NoMethod(*s)
37318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37319}
37320
37321// SubnetworkList: Contains a list of Subnetwork resources.
37322type SubnetworkList struct {
37323	// Id: [Output Only] Unique identifier for the resource; defined by the
37324	// server.
37325	Id string `json:"id,omitempty"`
37326
37327	// Items: A list of Subnetwork resources.
37328	Items []*Subnetwork `json:"items,omitempty"`
37329
37330	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
37331	// for lists of subnetworks.
37332	Kind string `json:"kind,omitempty"`
37333
37334	// NextPageToken: [Output Only] This token allows you to get the next
37335	// page of results for list requests. If the number of results is larger
37336	// than maxResults, use the nextPageToken as a value for the query
37337	// parameter pageToken in the next list request. Subsequent list
37338	// requests will have their own nextPageToken to continue paging through
37339	// the results.
37340	NextPageToken string `json:"nextPageToken,omitempty"`
37341
37342	// SelfLink: [Output Only] Server-defined URL for this resource.
37343	SelfLink string `json:"selfLink,omitempty"`
37344
37345	// Warning: [Output Only] Informational warning message.
37346	Warning *SubnetworkListWarning `json:"warning,omitempty"`
37347
37348	// ServerResponse contains the HTTP response code and headers from the
37349	// server.
37350	googleapi.ServerResponse `json:"-"`
37351
37352	// ForceSendFields is a list of field names (e.g. "Id") to
37353	// unconditionally include in API requests. By default, fields with
37354	// empty values are omitted from API requests. However, any non-pointer,
37355	// non-interface field appearing in ForceSendFields will be sent to the
37356	// server regardless of whether the field is empty or not. This may be
37357	// used to include empty fields in Patch requests.
37358	ForceSendFields []string `json:"-"`
37359
37360	// NullFields is a list of field names (e.g. "Id") to include in API
37361	// requests with the JSON null value. By default, fields with empty
37362	// values are omitted from API requests. However, any field with an
37363	// empty value appearing in NullFields will be sent to the server as
37364	// null. It is an error if a field in this list has a non-empty value.
37365	// This may be used to include null fields in Patch requests.
37366	NullFields []string `json:"-"`
37367}
37368
37369func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
37370	type NoMethod SubnetworkList
37371	raw := NoMethod(*s)
37372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37373}
37374
37375// SubnetworkListWarning: [Output Only] Informational warning message.
37376type SubnetworkListWarning struct {
37377	// Code: [Output Only] A warning code, if applicable. For example,
37378	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37379	// the response.
37380	//
37381	// Possible values:
37382	//   "CLEANUP_FAILED"
37383	//   "DEPRECATED_RESOURCE_USED"
37384	//   "DEPRECATED_TYPE_USED"
37385	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37386	//   "EXPERIMENTAL_TYPE_USED"
37387	//   "EXTERNAL_API_WARNING"
37388	//   "FIELD_VALUE_OVERRIDEN"
37389	//   "INJECTED_KERNELS_DEPRECATED"
37390	//   "MISSING_TYPE_DEPENDENCY"
37391	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37392	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37393	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37394	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37395	//   "NEXT_HOP_NOT_RUNNING"
37396	//   "NOT_CRITICAL_ERROR"
37397	//   "NO_RESULTS_ON_PAGE"
37398	//   "REQUIRED_TOS_AGREEMENT"
37399	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37400	//   "RESOURCE_NOT_DELETED"
37401	//   "SCHEMA_VALIDATION_IGNORED"
37402	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37403	//   "UNDECLARED_PROPERTIES"
37404	//   "UNREACHABLE"
37405	Code string `json:"code,omitempty"`
37406
37407	// Data: [Output Only] Metadata about this warning in key: value format.
37408	// For example:
37409	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37410	Data []*SubnetworkListWarningData `json:"data,omitempty"`
37411
37412	// Message: [Output Only] A human-readable description of the warning
37413	// code.
37414	Message string `json:"message,omitempty"`
37415
37416	// ForceSendFields is a list of field names (e.g. "Code") to
37417	// unconditionally include in API requests. By default, fields with
37418	// empty values are omitted from API requests. However, any non-pointer,
37419	// non-interface field appearing in ForceSendFields will be sent to the
37420	// server regardless of whether the field is empty or not. This may be
37421	// used to include empty fields in Patch requests.
37422	ForceSendFields []string `json:"-"`
37423
37424	// NullFields is a list of field names (e.g. "Code") to include in API
37425	// requests with the JSON null value. By default, fields with empty
37426	// values are omitted from API requests. However, any field with an
37427	// empty value appearing in NullFields will be sent to the server as
37428	// null. It is an error if a field in this list has a non-empty value.
37429	// This may be used to include null fields in Patch requests.
37430	NullFields []string `json:"-"`
37431}
37432
37433func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
37434	type NoMethod SubnetworkListWarning
37435	raw := NoMethod(*s)
37436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37437}
37438
37439type SubnetworkListWarningData struct {
37440	// Key: [Output Only] A key that provides more detail on the warning
37441	// being returned. For example, for warnings where there are no results
37442	// in a list request for a particular zone, this key might be scope and
37443	// the key value might be the zone name. Other examples might be a key
37444	// indicating a deprecated resource and a suggested replacement, or a
37445	// warning about invalid network settings (for example, if an instance
37446	// attempts to perform IP forwarding but is not enabled for IP
37447	// forwarding).
37448	Key string `json:"key,omitempty"`
37449
37450	// Value: [Output Only] A warning data value corresponding to the key.
37451	Value string `json:"value,omitempty"`
37452
37453	// ForceSendFields is a list of field names (e.g. "Key") to
37454	// unconditionally include in API requests. By default, fields with
37455	// empty values are omitted from API requests. However, any non-pointer,
37456	// non-interface field appearing in ForceSendFields will be sent to the
37457	// server regardless of whether the field is empty or not. This may be
37458	// used to include empty fields in Patch requests.
37459	ForceSendFields []string `json:"-"`
37460
37461	// NullFields is a list of field names (e.g. "Key") to include in API
37462	// requests with the JSON null value. By default, fields with empty
37463	// values are omitted from API requests. However, any field with an
37464	// empty value appearing in NullFields will be sent to the server as
37465	// null. It is an error if a field in this list has a non-empty value.
37466	// This may be used to include null fields in Patch requests.
37467	NullFields []string `json:"-"`
37468}
37469
37470func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
37471	type NoMethod SubnetworkListWarningData
37472	raw := NoMethod(*s)
37473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37474}
37475
37476// SubnetworkLogConfig: The available logging options for this
37477// subnetwork.
37478type SubnetworkLogConfig struct {
37479	// AggregationInterval: Can only be specified if VPC flow logging for
37480	// this subnetwork is enabled. Toggles the aggregation interval for
37481	// collecting flow logs. Increasing the interval time will reduce the
37482	// amount of generated flow logs for long lasting connections. Default
37483	// is an interval of 5 seconds per connection.
37484	//
37485	// Possible values:
37486	//   "INTERVAL_10_MIN"
37487	//   "INTERVAL_15_MIN"
37488	//   "INTERVAL_1_MIN"
37489	//   "INTERVAL_30_SEC"
37490	//   "INTERVAL_5_MIN"
37491	//   "INTERVAL_5_SEC"
37492	AggregationInterval string `json:"aggregationInterval,omitempty"`
37493
37494	// Enable: Whether to enable flow logging for this subnetwork. If this
37495	// field is not explicitly set, it will not appear in get listings. If
37496	// not set the default behavior is to disable flow logging.
37497	Enable bool `json:"enable,omitempty"`
37498
37499	// FilterExpr: Can only be specified if VPC flow logs for this
37500	// subnetwork is enabled. Export filter used to define which VPC flow
37501	// logs should be logged.
37502	FilterExpr string `json:"filterExpr,omitempty"`
37503
37504	// FlowSampling: Can only be specified if VPC flow logging for this
37505	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
37506	// the sampling rate of VPC flow logs within the subnetwork where 1.0
37507	// means all collected logs are reported and 0.0 means no logs are
37508	// reported. Default is 0.5, which means half of all collected logs are
37509	// reported.
37510	FlowSampling float64 `json:"flowSampling,omitempty"`
37511
37512	// Metadata: Can only be specified if VPC flow logs for this subnetwork
37513	// is enabled. Configures whether all, none or a subset of metadata
37514	// fields should be added to the reported VPC flow logs. Default is
37515	// INCLUDE_ALL_METADATA.
37516	//
37517	// Possible values:
37518	//   "CUSTOM_METADATA"
37519	//   "EXCLUDE_ALL_METADATA"
37520	//   "INCLUDE_ALL_METADATA"
37521	Metadata string `json:"metadata,omitempty"`
37522
37523	// MetadataFields: Can only be specified if VPC flow logs for this
37524	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
37525	MetadataFields []string `json:"metadataFields,omitempty"`
37526
37527	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
37528	// to unconditionally include in API requests. By default, fields with
37529	// empty values are omitted from API requests. However, any non-pointer,
37530	// non-interface field appearing in ForceSendFields will be sent to the
37531	// server regardless of whether the field is empty or not. This may be
37532	// used to include empty fields in Patch requests.
37533	ForceSendFields []string `json:"-"`
37534
37535	// NullFields is a list of field names (e.g. "AggregationInterval") to
37536	// include in API requests with the JSON null value. By default, fields
37537	// with empty values are omitted from API requests. However, any field
37538	// with an empty value appearing in NullFields will be sent to the
37539	// server as null. It is an error if a field in this list has a
37540	// non-empty value. This may be used to include null fields in Patch
37541	// requests.
37542	NullFields []string `json:"-"`
37543}
37544
37545func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
37546	type NoMethod SubnetworkLogConfig
37547	raw := NoMethod(*s)
37548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37549}
37550
37551func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
37552	type NoMethod SubnetworkLogConfig
37553	var s1 struct {
37554		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
37555		*NoMethod
37556	}
37557	s1.NoMethod = (*NoMethod)(s)
37558	if err := json.Unmarshal(data, &s1); err != nil {
37559		return err
37560	}
37561	s.FlowSampling = float64(s1.FlowSampling)
37562	return nil
37563}
37564
37565// SubnetworkSecondaryRange: Represents a secondary IP range of a
37566// subnetwork.
37567type SubnetworkSecondaryRange struct {
37568	// IpCidrRange: The range of IP addresses belonging to this subnetwork
37569	// secondary range. Provide this property when you create the
37570	// subnetwork. Ranges must be unique and non-overlapping with all
37571	// primary and secondary IP ranges within a network. Only IPv4 is
37572	// supported.
37573	IpCidrRange string `json:"ipCidrRange,omitempty"`
37574
37575	// RangeName: The name associated with this subnetwork secondary range,
37576	// used when adding an alias IP range to a VM instance. The name must be
37577	// 1-63 characters long, and comply with RFC1035. The name must be
37578	// unique within the subnetwork.
37579	RangeName string `json:"rangeName,omitempty"`
37580
37581	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
37582	// unconditionally include in API requests. By default, fields with
37583	// empty values are omitted from API requests. However, any non-pointer,
37584	// non-interface field appearing in ForceSendFields will be sent to the
37585	// server regardless of whether the field is empty or not. This may be
37586	// used to include empty fields in Patch requests.
37587	ForceSendFields []string `json:"-"`
37588
37589	// NullFields is a list of field names (e.g. "IpCidrRange") to include
37590	// in API requests with the JSON null value. By default, fields with
37591	// empty values are omitted from API requests. However, any field with
37592	// an empty value appearing in NullFields will be sent to the server as
37593	// null. It is an error if a field in this list has a non-empty value.
37594	// This may be used to include null fields in Patch requests.
37595	NullFields []string `json:"-"`
37596}
37597
37598func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
37599	type NoMethod SubnetworkSecondaryRange
37600	raw := NoMethod(*s)
37601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37602}
37603
37604type SubnetworksExpandIpCidrRangeRequest struct {
37605	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
37606	// that are legal on this Subnetwork. This range should be disjoint from
37607	// other subnetworks within this network. This range can only be larger
37608	// than (i.e. a superset of) the range previously defined before the
37609	// update.
37610	IpCidrRange string `json:"ipCidrRange,omitempty"`
37611
37612	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
37613	// unconditionally include in API requests. By default, fields with
37614	// empty values are omitted from API requests. However, any non-pointer,
37615	// non-interface field appearing in ForceSendFields will be sent to the
37616	// server regardless of whether the field is empty or not. This may be
37617	// used to include empty fields in Patch requests.
37618	ForceSendFields []string `json:"-"`
37619
37620	// NullFields is a list of field names (e.g. "IpCidrRange") to include
37621	// in API requests with the JSON null value. By default, fields with
37622	// empty values are omitted from API requests. However, any field with
37623	// an empty value appearing in NullFields will be sent to the server as
37624	// null. It is an error if a field in this list has a non-empty value.
37625	// This may be used to include null fields in Patch requests.
37626	NullFields []string `json:"-"`
37627}
37628
37629func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
37630	type NoMethod SubnetworksExpandIpCidrRangeRequest
37631	raw := NoMethod(*s)
37632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37633}
37634
37635type SubnetworksScopedList struct {
37636	// Subnetworks: A list of subnetworks contained in this scope.
37637	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
37638
37639	// Warning: An informational warning that appears when the list of
37640	// addresses is empty.
37641	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
37642
37643	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
37644	// unconditionally include in API requests. By default, fields with
37645	// empty values are omitted from API requests. However, any non-pointer,
37646	// non-interface field appearing in ForceSendFields will be sent to the
37647	// server regardless of whether the field is empty or not. This may be
37648	// used to include empty fields in Patch requests.
37649	ForceSendFields []string `json:"-"`
37650
37651	// NullFields is a list of field names (e.g. "Subnetworks") to include
37652	// in API requests with the JSON null value. By default, fields with
37653	// empty values are omitted from API requests. However, any field with
37654	// an empty value appearing in NullFields will be sent to the server as
37655	// null. It is an error if a field in this list has a non-empty value.
37656	// This may be used to include null fields in Patch requests.
37657	NullFields []string `json:"-"`
37658}
37659
37660func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
37661	type NoMethod SubnetworksScopedList
37662	raw := NoMethod(*s)
37663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37664}
37665
37666// SubnetworksScopedListWarning: An informational warning that appears
37667// when the list of addresses is empty.
37668type SubnetworksScopedListWarning struct {
37669	// Code: [Output Only] A warning code, if applicable. For example,
37670	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37671	// the response.
37672	//
37673	// Possible values:
37674	//   "CLEANUP_FAILED"
37675	//   "DEPRECATED_RESOURCE_USED"
37676	//   "DEPRECATED_TYPE_USED"
37677	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37678	//   "EXPERIMENTAL_TYPE_USED"
37679	//   "EXTERNAL_API_WARNING"
37680	//   "FIELD_VALUE_OVERRIDEN"
37681	//   "INJECTED_KERNELS_DEPRECATED"
37682	//   "MISSING_TYPE_DEPENDENCY"
37683	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37684	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37685	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37686	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37687	//   "NEXT_HOP_NOT_RUNNING"
37688	//   "NOT_CRITICAL_ERROR"
37689	//   "NO_RESULTS_ON_PAGE"
37690	//   "REQUIRED_TOS_AGREEMENT"
37691	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37692	//   "RESOURCE_NOT_DELETED"
37693	//   "SCHEMA_VALIDATION_IGNORED"
37694	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37695	//   "UNDECLARED_PROPERTIES"
37696	//   "UNREACHABLE"
37697	Code string `json:"code,omitempty"`
37698
37699	// Data: [Output Only] Metadata about this warning in key: value format.
37700	// For example:
37701	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37702	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
37703
37704	// Message: [Output Only] A human-readable description of the warning
37705	// code.
37706	Message string `json:"message,omitempty"`
37707
37708	// ForceSendFields is a list of field names (e.g. "Code") to
37709	// unconditionally include in API requests. By default, fields with
37710	// empty values are omitted from API requests. However, any non-pointer,
37711	// non-interface field appearing in ForceSendFields will be sent to the
37712	// server regardless of whether the field is empty or not. This may be
37713	// used to include empty fields in Patch requests.
37714	ForceSendFields []string `json:"-"`
37715
37716	// NullFields is a list of field names (e.g. "Code") to include in API
37717	// requests with the JSON null value. By default, fields with empty
37718	// values are omitted from API requests. However, any field with an
37719	// empty value appearing in NullFields will be sent to the server as
37720	// null. It is an error if a field in this list has a non-empty value.
37721	// This may be used to include null fields in Patch requests.
37722	NullFields []string `json:"-"`
37723}
37724
37725func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
37726	type NoMethod SubnetworksScopedListWarning
37727	raw := NoMethod(*s)
37728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37729}
37730
37731type SubnetworksScopedListWarningData struct {
37732	// Key: [Output Only] A key that provides more detail on the warning
37733	// being returned. For example, for warnings where there are no results
37734	// in a list request for a particular zone, this key might be scope and
37735	// the key value might be the zone name. Other examples might be a key
37736	// indicating a deprecated resource and a suggested replacement, or a
37737	// warning about invalid network settings (for example, if an instance
37738	// attempts to perform IP forwarding but is not enabled for IP
37739	// forwarding).
37740	Key string `json:"key,omitempty"`
37741
37742	// Value: [Output Only] A warning data value corresponding to the key.
37743	Value string `json:"value,omitempty"`
37744
37745	// ForceSendFields is a list of field names (e.g. "Key") to
37746	// unconditionally include in API requests. By default, fields with
37747	// empty values are omitted from API requests. However, any non-pointer,
37748	// non-interface field appearing in ForceSendFields will be sent to the
37749	// server regardless of whether the field is empty or not. This may be
37750	// used to include empty fields in Patch requests.
37751	ForceSendFields []string `json:"-"`
37752
37753	// NullFields is a list of field names (e.g. "Key") to include in API
37754	// requests with the JSON null value. By default, fields with empty
37755	// values are omitted from API requests. However, any field with an
37756	// empty value appearing in NullFields will be sent to the server as
37757	// null. It is an error if a field in this list has a non-empty value.
37758	// This may be used to include null fields in Patch requests.
37759	NullFields []string `json:"-"`
37760}
37761
37762func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
37763	type NoMethod SubnetworksScopedListWarningData
37764	raw := NoMethod(*s)
37765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37766}
37767
37768type SubnetworksSetPrivateIpGoogleAccessRequest struct {
37769	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
37770
37771	// ForceSendFields is a list of field names (e.g.
37772	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
37773	// By default, fields with empty values are omitted from API requests.
37774	// However, any non-pointer, non-interface field appearing in
37775	// ForceSendFields will be sent to the server regardless of whether the
37776	// field is empty or not. This may be used to include empty fields in
37777	// Patch requests.
37778	ForceSendFields []string `json:"-"`
37779
37780	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
37781	// include in API requests with the JSON null value. By default, fields
37782	// with empty values are omitted from API requests. However, any field
37783	// with an empty value appearing in NullFields will be sent to the
37784	// server as null. It is an error if a field in this list has a
37785	// non-empty value. This may be used to include null fields in Patch
37786	// requests.
37787	NullFields []string `json:"-"`
37788}
37789
37790func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
37791	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
37792	raw := NoMethod(*s)
37793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37794}
37795
37796type TCPHealthCheck struct {
37797	// Port: The TCP port number for the health check request. The default
37798	// value is 80. Valid values are 1 through 65535.
37799	Port int64 `json:"port,omitempty"`
37800
37801	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
37802	// both port and port_name are defined, port takes precedence.
37803	PortName string `json:"portName,omitempty"`
37804
37805	// PortSpecification: Specifies how port is selected for health
37806	// checking, can be one of following values:
37807	// USE_FIXED_PORT: The port number in port is used for health
37808	// checking.
37809	// USE_NAMED_PORT: The portName is used for health
37810	// checking.
37811	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
37812	// each network endpoint is used for health checking. For other
37813	// backends, the port or named port specified in the Backend Service is
37814	// used for health checking.
37815	//
37816	//
37817	// If not specified, TCP health check follows behavior specified in port
37818	// and portName fields.
37819	//
37820	// Possible values:
37821	//   "USE_FIXED_PORT"
37822	//   "USE_NAMED_PORT"
37823	//   "USE_SERVING_PORT"
37824	PortSpecification string `json:"portSpecification,omitempty"`
37825
37826	// ProxyHeader: Specifies the type of proxy header to append before
37827	// sending data to the backend, either NONE or PROXY_V1. The default is
37828	// NONE.
37829	//
37830	// Possible values:
37831	//   "NONE"
37832	//   "PROXY_V1"
37833	ProxyHeader string `json:"proxyHeader,omitempty"`
37834
37835	// Request: The application data to send once the TCP connection has
37836	// been established (default value is empty). If both request and
37837	// response are empty, the connection establishment alone will indicate
37838	// health. The request data can only be ASCII.
37839	Request string `json:"request,omitempty"`
37840
37841	// Response: The bytes to match against the beginning of the response
37842	// data. If left empty (the default value), any response will indicate
37843	// health. The response data can only be ASCII.
37844	Response string `json:"response,omitempty"`
37845
37846	// ForceSendFields is a list of field names (e.g. "Port") to
37847	// unconditionally include in API requests. By default, fields with
37848	// empty values are omitted from API requests. However, any non-pointer,
37849	// non-interface field appearing in ForceSendFields will be sent to the
37850	// server regardless of whether the field is empty or not. This may be
37851	// used to include empty fields in Patch requests.
37852	ForceSendFields []string `json:"-"`
37853
37854	// NullFields is a list of field names (e.g. "Port") to include in API
37855	// requests with the JSON null value. By default, fields with empty
37856	// values are omitted from API requests. However, any field with an
37857	// empty value appearing in NullFields will be sent to the server as
37858	// null. It is an error if a field in this list has a non-empty value.
37859	// This may be used to include null fields in Patch requests.
37860	NullFields []string `json:"-"`
37861}
37862
37863func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
37864	type NoMethod TCPHealthCheck
37865	raw := NoMethod(*s)
37866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37867}
37868
37869// Tags: A set of instance tags.
37870type Tags struct {
37871	// Fingerprint: Specifies a fingerprint for this request, which is
37872	// essentially a hash of the tags' contents and used for optimistic
37873	// locking. The fingerprint is initially generated by Compute Engine and
37874	// changes after every request to modify or update tags. You must always
37875	// provide an up-to-date fingerprint hash in order to update or change
37876	// tags.
37877	//
37878	// To see the latest fingerprint, make get() request to the instance.
37879	Fingerprint string `json:"fingerprint,omitempty"`
37880
37881	// Items: An array of tags. Each tag must be 1-63 characters long, and
37882	// comply with RFC1035.
37883	Items []string `json:"items,omitempty"`
37884
37885	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
37886	// unconditionally include in API requests. By default, fields with
37887	// empty values are omitted from API requests. However, any non-pointer,
37888	// non-interface field appearing in ForceSendFields will be sent to the
37889	// server regardless of whether the field is empty or not. This may be
37890	// used to include empty fields in Patch requests.
37891	ForceSendFields []string `json:"-"`
37892
37893	// NullFields is a list of field names (e.g. "Fingerprint") to include
37894	// in API requests with the JSON null value. By default, fields with
37895	// empty values are omitted from API requests. However, any field with
37896	// an empty value appearing in NullFields will be sent to the server as
37897	// null. It is an error if a field in this list has a non-empty value.
37898	// This may be used to include null fields in Patch requests.
37899	NullFields []string `json:"-"`
37900}
37901
37902func (s *Tags) MarshalJSON() ([]byte, error) {
37903	type NoMethod Tags
37904	raw := NoMethod(*s)
37905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37906}
37907
37908type TargetHttpProxiesScopedList struct {
37909	// TargetHttpProxies: A list of TargetHttpProxies contained in this
37910	// scope.
37911	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
37912
37913	// Warning: Informational warning which replaces the list of backend
37914	// services when the list is empty.
37915	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
37916
37917	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
37918	// to unconditionally include in API requests. By default, fields with
37919	// empty values are omitted from API requests. However, any non-pointer,
37920	// non-interface field appearing in ForceSendFields will be sent to the
37921	// server regardless of whether the field is empty or not. This may be
37922	// used to include empty fields in Patch requests.
37923	ForceSendFields []string `json:"-"`
37924
37925	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
37926	// include in API requests with the JSON null value. By default, fields
37927	// with empty values are omitted from API requests. However, any field
37928	// with an empty value appearing in NullFields will be sent to the
37929	// server as null. It is an error if a field in this list has a
37930	// non-empty value. This may be used to include null fields in Patch
37931	// requests.
37932	NullFields []string `json:"-"`
37933}
37934
37935func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
37936	type NoMethod TargetHttpProxiesScopedList
37937	raw := NoMethod(*s)
37938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37939}
37940
37941// TargetHttpProxiesScopedListWarning: Informational warning which
37942// replaces the list of backend services when the list is empty.
37943type TargetHttpProxiesScopedListWarning struct {
37944	// Code: [Output Only] A warning code, if applicable. For example,
37945	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37946	// the response.
37947	//
37948	// Possible values:
37949	//   "CLEANUP_FAILED"
37950	//   "DEPRECATED_RESOURCE_USED"
37951	//   "DEPRECATED_TYPE_USED"
37952	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37953	//   "EXPERIMENTAL_TYPE_USED"
37954	//   "EXTERNAL_API_WARNING"
37955	//   "FIELD_VALUE_OVERRIDEN"
37956	//   "INJECTED_KERNELS_DEPRECATED"
37957	//   "MISSING_TYPE_DEPENDENCY"
37958	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37959	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37960	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37961	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37962	//   "NEXT_HOP_NOT_RUNNING"
37963	//   "NOT_CRITICAL_ERROR"
37964	//   "NO_RESULTS_ON_PAGE"
37965	//   "REQUIRED_TOS_AGREEMENT"
37966	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37967	//   "RESOURCE_NOT_DELETED"
37968	//   "SCHEMA_VALIDATION_IGNORED"
37969	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37970	//   "UNDECLARED_PROPERTIES"
37971	//   "UNREACHABLE"
37972	Code string `json:"code,omitempty"`
37973
37974	// Data: [Output Only] Metadata about this warning in key: value format.
37975	// For example:
37976	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37977	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
37978
37979	// Message: [Output Only] A human-readable description of the warning
37980	// code.
37981	Message string `json:"message,omitempty"`
37982
37983	// ForceSendFields is a list of field names (e.g. "Code") to
37984	// unconditionally include in API requests. By default, fields with
37985	// empty values are omitted from API requests. However, any non-pointer,
37986	// non-interface field appearing in ForceSendFields will be sent to the
37987	// server regardless of whether the field is empty or not. This may be
37988	// used to include empty fields in Patch requests.
37989	ForceSendFields []string `json:"-"`
37990
37991	// NullFields is a list of field names (e.g. "Code") to include in API
37992	// requests with the JSON null value. By default, fields with empty
37993	// values are omitted from API requests. However, any field with an
37994	// empty value appearing in NullFields will be sent to the server as
37995	// null. It is an error if a field in this list has a non-empty value.
37996	// This may be used to include null fields in Patch requests.
37997	NullFields []string `json:"-"`
37998}
37999
38000func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
38001	type NoMethod TargetHttpProxiesScopedListWarning
38002	raw := NoMethod(*s)
38003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38004}
38005
38006type TargetHttpProxiesScopedListWarningData struct {
38007	// Key: [Output Only] A key that provides more detail on the warning
38008	// being returned. For example, for warnings where there are no results
38009	// in a list request for a particular zone, this key might be scope and
38010	// the key value might be the zone name. Other examples might be a key
38011	// indicating a deprecated resource and a suggested replacement, or a
38012	// warning about invalid network settings (for example, if an instance
38013	// attempts to perform IP forwarding but is not enabled for IP
38014	// forwarding).
38015	Key string `json:"key,omitempty"`
38016
38017	// Value: [Output Only] A warning data value corresponding to the key.
38018	Value string `json:"value,omitempty"`
38019
38020	// ForceSendFields is a list of field names (e.g. "Key") to
38021	// unconditionally include in API requests. By default, fields with
38022	// empty values are omitted from API requests. However, any non-pointer,
38023	// non-interface field appearing in ForceSendFields will be sent to the
38024	// server regardless of whether the field is empty or not. This may be
38025	// used to include empty fields in Patch requests.
38026	ForceSendFields []string `json:"-"`
38027
38028	// NullFields is a list of field names (e.g. "Key") to include in API
38029	// requests with the JSON null value. By default, fields with empty
38030	// values are omitted from API requests. However, any field with an
38031	// empty value appearing in NullFields will be sent to the server as
38032	// null. It is an error if a field in this list has a non-empty value.
38033	// This may be used to include null fields in Patch requests.
38034	NullFields []string `json:"-"`
38035}
38036
38037func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
38038	type NoMethod TargetHttpProxiesScopedListWarningData
38039	raw := NoMethod(*s)
38040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38041}
38042
38043// TargetHttpProxy: Represents a Target HTTP Proxy resource.
38044//
38045// Google Compute Engine has two Target HTTP Proxy resources:
38046//
38047// *
38048// [Global](/compute/docs/reference/rest/{$api_version}/targetHttpProxies
38049// ) *
38050// [Regional](/compute/docs/reference/rest/{$api_version}/regionTargetHtt
38051// pProxies)
38052//
38053// A target HTTP proxy is a component of GCP HTTP load balancers.
38054//
38055// * targetHttpProxies are used by external HTTP load balancers and
38056// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
38057// load balancers.
38058//
38059// Forwarding rules reference a target HTTP proxy, and the target proxy
38060// then references a URL map. For more information, read Using Target
38061// Proxies and  Forwarding rule concepts. (== resource_for
38062// {$api_version}.targetHttpProxies ==) (== resource_for
38063// {$api_version}.regionTargetHttpProxies ==)
38064type TargetHttpProxy struct {
38065	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38066	// format.
38067	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38068
38069	// Description: An optional description of this resource. Provide this
38070	// property when you create the resource.
38071	Description string `json:"description,omitempty"`
38072
38073	// Id: [Output Only] The unique identifier for the resource. This
38074	// identifier is defined by the server.
38075	Id uint64 `json:"id,omitempty,string"`
38076
38077	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
38078	// for target HTTP proxies.
38079	Kind string `json:"kind,omitempty"`
38080
38081	// Name: Name of the resource. Provided by the client when the resource
38082	// is created. The name must be 1-63 characters long, and comply with
38083	// RFC1035. Specifically, the name must be 1-63 characters long and
38084	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38085	// the first character must be a lowercase letter, and all following
38086	// characters must be a dash, lowercase letter, or digit, except the
38087	// last character, which cannot be a dash.
38088	Name string `json:"name,omitempty"`
38089
38090	// ProxyBind: This field only applies when the loadBalancingScheme is
38091	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
38092	// address specified by the forwarding rule. Default is false.
38093	ProxyBind bool `json:"proxyBind,omitempty"`
38094
38095	// Region: [Output Only] URL of the region where the regional Target
38096	// HTTP Proxy resides. This field is not applicable to global Target
38097	// HTTP Proxies.
38098	Region string `json:"region,omitempty"`
38099
38100	// SelfLink: [Output Only] Server-defined URL for the resource.
38101	SelfLink string `json:"selfLink,omitempty"`
38102
38103	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
38104	// to the BackendService.
38105	UrlMap string `json:"urlMap,omitempty"`
38106
38107	// ServerResponse contains the HTTP response code and headers from the
38108	// server.
38109	googleapi.ServerResponse `json:"-"`
38110
38111	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
38112	// to unconditionally include in API requests. By default, fields with
38113	// empty values are omitted from API requests. However, any non-pointer,
38114	// non-interface field appearing in ForceSendFields will be sent to the
38115	// server regardless of whether the field is empty or not. This may be
38116	// used to include empty fields in Patch requests.
38117	ForceSendFields []string `json:"-"`
38118
38119	// NullFields is a list of field names (e.g. "CreationTimestamp") to
38120	// include in API requests with the JSON null value. By default, fields
38121	// with empty values are omitted from API requests. However, any field
38122	// with an empty value appearing in NullFields will be sent to the
38123	// server as null. It is an error if a field in this list has a
38124	// non-empty value. This may be used to include null fields in Patch
38125	// requests.
38126	NullFields []string `json:"-"`
38127}
38128
38129func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
38130	type NoMethod TargetHttpProxy
38131	raw := NoMethod(*s)
38132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38133}
38134
38135type TargetHttpProxyAggregatedList struct {
38136	// Id: [Output Only] Unique identifier for the resource; defined by the
38137	// server.
38138	Id string `json:"id,omitempty"`
38139
38140	// Items: A list of TargetHttpProxiesScopedList resources.
38141	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
38142
38143	// Kind: [Output Only] Type of resource. Always
38144	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
38145	// Proxies.
38146	Kind string `json:"kind,omitempty"`
38147
38148	// NextPageToken: [Output Only] This token allows you to get the next
38149	// page of results for list requests. If the number of results is larger
38150	// than maxResults, use the nextPageToken as a value for the query
38151	// parameter pageToken in the next list request. Subsequent list
38152	// requests will have their own nextPageToken to continue paging through
38153	// the results.
38154	NextPageToken string `json:"nextPageToken,omitempty"`
38155
38156	// SelfLink: [Output Only] Server-defined URL for this resource.
38157	SelfLink string `json:"selfLink,omitempty"`
38158
38159	// Warning: [Output Only] Informational warning message.
38160	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`
38161
38162	// ServerResponse contains the HTTP response code and headers from the
38163	// server.
38164	googleapi.ServerResponse `json:"-"`
38165
38166	// ForceSendFields is a list of field names (e.g. "Id") to
38167	// unconditionally include in API requests. By default, fields with
38168	// empty values are omitted from API requests. However, any non-pointer,
38169	// non-interface field appearing in ForceSendFields will be sent to the
38170	// server regardless of whether the field is empty or not. This may be
38171	// used to include empty fields in Patch requests.
38172	ForceSendFields []string `json:"-"`
38173
38174	// NullFields is a list of field names (e.g. "Id") to include in API
38175	// requests with the JSON null value. By default, fields with empty
38176	// values are omitted from API requests. However, any field with an
38177	// empty value appearing in NullFields will be sent to the server as
38178	// null. It is an error if a field in this list has a non-empty value.
38179	// This may be used to include null fields in Patch requests.
38180	NullFields []string `json:"-"`
38181}
38182
38183func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
38184	type NoMethod TargetHttpProxyAggregatedList
38185	raw := NoMethod(*s)
38186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38187}
38188
38189// TargetHttpProxyAggregatedListWarning: [Output Only] Informational
38190// warning message.
38191type TargetHttpProxyAggregatedListWarning struct {
38192	// Code: [Output Only] A warning code, if applicable. For example,
38193	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38194	// the response.
38195	//
38196	// Possible values:
38197	//   "CLEANUP_FAILED"
38198	//   "DEPRECATED_RESOURCE_USED"
38199	//   "DEPRECATED_TYPE_USED"
38200	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38201	//   "EXPERIMENTAL_TYPE_USED"
38202	//   "EXTERNAL_API_WARNING"
38203	//   "FIELD_VALUE_OVERRIDEN"
38204	//   "INJECTED_KERNELS_DEPRECATED"
38205	//   "MISSING_TYPE_DEPENDENCY"
38206	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38207	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38208	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38209	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38210	//   "NEXT_HOP_NOT_RUNNING"
38211	//   "NOT_CRITICAL_ERROR"
38212	//   "NO_RESULTS_ON_PAGE"
38213	//   "REQUIRED_TOS_AGREEMENT"
38214	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38215	//   "RESOURCE_NOT_DELETED"
38216	//   "SCHEMA_VALIDATION_IGNORED"
38217	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38218	//   "UNDECLARED_PROPERTIES"
38219	//   "UNREACHABLE"
38220	Code string `json:"code,omitempty"`
38221
38222	// Data: [Output Only] Metadata about this warning in key: value format.
38223	// For example:
38224	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38225	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
38226
38227	// Message: [Output Only] A human-readable description of the warning
38228	// code.
38229	Message string `json:"message,omitempty"`
38230
38231	// ForceSendFields is a list of field names (e.g. "Code") to
38232	// unconditionally include in API requests. By default, fields with
38233	// empty values are omitted from API requests. However, any non-pointer,
38234	// non-interface field appearing in ForceSendFields will be sent to the
38235	// server regardless of whether the field is empty or not. This may be
38236	// used to include empty fields in Patch requests.
38237	ForceSendFields []string `json:"-"`
38238
38239	// NullFields is a list of field names (e.g. "Code") to include in API
38240	// requests with the JSON null value. By default, fields with empty
38241	// values are omitted from API requests. However, any field with an
38242	// empty value appearing in NullFields will be sent to the server as
38243	// null. It is an error if a field in this list has a non-empty value.
38244	// This may be used to include null fields in Patch requests.
38245	NullFields []string `json:"-"`
38246}
38247
38248func (s *TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
38249	type NoMethod TargetHttpProxyAggregatedListWarning
38250	raw := NoMethod(*s)
38251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38252}
38253
38254type TargetHttpProxyAggregatedListWarningData struct {
38255	// Key: [Output Only] A key that provides more detail on the warning
38256	// being returned. For example, for warnings where there are no results
38257	// in a list request for a particular zone, this key might be scope and
38258	// the key value might be the zone name. Other examples might be a key
38259	// indicating a deprecated resource and a suggested replacement, or a
38260	// warning about invalid network settings (for example, if an instance
38261	// attempts to perform IP forwarding but is not enabled for IP
38262	// forwarding).
38263	Key string `json:"key,omitempty"`
38264
38265	// Value: [Output Only] A warning data value corresponding to the key.
38266	Value string `json:"value,omitempty"`
38267
38268	// ForceSendFields is a list of field names (e.g. "Key") to
38269	// unconditionally include in API requests. By default, fields with
38270	// empty values are omitted from API requests. However, any non-pointer,
38271	// non-interface field appearing in ForceSendFields will be sent to the
38272	// server regardless of whether the field is empty or not. This may be
38273	// used to include empty fields in Patch requests.
38274	ForceSendFields []string `json:"-"`
38275
38276	// NullFields is a list of field names (e.g. "Key") to include in API
38277	// requests with the JSON null value. By default, fields with empty
38278	// values are omitted from API requests. However, any field with an
38279	// empty value appearing in NullFields will be sent to the server as
38280	// null. It is an error if a field in this list has a non-empty value.
38281	// This may be used to include null fields in Patch requests.
38282	NullFields []string `json:"-"`
38283}
38284
38285func (s *TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38286	type NoMethod TargetHttpProxyAggregatedListWarningData
38287	raw := NoMethod(*s)
38288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38289}
38290
38291// TargetHttpProxyList: A list of TargetHttpProxy resources.
38292type TargetHttpProxyList struct {
38293	// Id: [Output Only] Unique identifier for the resource; defined by the
38294	// server.
38295	Id string `json:"id,omitempty"`
38296
38297	// Items: A list of TargetHttpProxy resources.
38298	Items []*TargetHttpProxy `json:"items,omitempty"`
38299
38300	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
38301	// of target HTTP proxies.
38302	Kind string `json:"kind,omitempty"`
38303
38304	// NextPageToken: [Output Only] This token allows you to get the next
38305	// page of results for list requests. If the number of results is larger
38306	// than maxResults, use the nextPageToken as a value for the query
38307	// parameter pageToken in the next list request. Subsequent list
38308	// requests will have their own nextPageToken to continue paging through
38309	// the results.
38310	NextPageToken string `json:"nextPageToken,omitempty"`
38311
38312	// SelfLink: [Output Only] Server-defined URL for this resource.
38313	SelfLink string `json:"selfLink,omitempty"`
38314
38315	// Warning: [Output Only] Informational warning message.
38316	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
38317
38318	// ServerResponse contains the HTTP response code and headers from the
38319	// server.
38320	googleapi.ServerResponse `json:"-"`
38321
38322	// ForceSendFields is a list of field names (e.g. "Id") to
38323	// unconditionally include in API requests. By default, fields with
38324	// empty values are omitted from API requests. However, any non-pointer,
38325	// non-interface field appearing in ForceSendFields will be sent to the
38326	// server regardless of whether the field is empty or not. This may be
38327	// used to include empty fields in Patch requests.
38328	ForceSendFields []string `json:"-"`
38329
38330	// NullFields is a list of field names (e.g. "Id") to include in API
38331	// requests with the JSON null value. By default, fields with empty
38332	// values are omitted from API requests. However, any field with an
38333	// empty value appearing in NullFields will be sent to the server as
38334	// null. It is an error if a field in this list has a non-empty value.
38335	// This may be used to include null fields in Patch requests.
38336	NullFields []string `json:"-"`
38337}
38338
38339func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
38340	type NoMethod TargetHttpProxyList
38341	raw := NoMethod(*s)
38342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38343}
38344
38345// TargetHttpProxyListWarning: [Output Only] Informational warning
38346// message.
38347type TargetHttpProxyListWarning struct {
38348	// Code: [Output Only] A warning code, if applicable. For example,
38349	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38350	// the response.
38351	//
38352	// Possible values:
38353	//   "CLEANUP_FAILED"
38354	//   "DEPRECATED_RESOURCE_USED"
38355	//   "DEPRECATED_TYPE_USED"
38356	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38357	//   "EXPERIMENTAL_TYPE_USED"
38358	//   "EXTERNAL_API_WARNING"
38359	//   "FIELD_VALUE_OVERRIDEN"
38360	//   "INJECTED_KERNELS_DEPRECATED"
38361	//   "MISSING_TYPE_DEPENDENCY"
38362	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38363	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38364	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38365	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38366	//   "NEXT_HOP_NOT_RUNNING"
38367	//   "NOT_CRITICAL_ERROR"
38368	//   "NO_RESULTS_ON_PAGE"
38369	//   "REQUIRED_TOS_AGREEMENT"
38370	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38371	//   "RESOURCE_NOT_DELETED"
38372	//   "SCHEMA_VALIDATION_IGNORED"
38373	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38374	//   "UNDECLARED_PROPERTIES"
38375	//   "UNREACHABLE"
38376	Code string `json:"code,omitempty"`
38377
38378	// Data: [Output Only] Metadata about this warning in key: value format.
38379	// For example:
38380	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38381	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
38382
38383	// Message: [Output Only] A human-readable description of the warning
38384	// code.
38385	Message string `json:"message,omitempty"`
38386
38387	// ForceSendFields is a list of field names (e.g. "Code") to
38388	// unconditionally include in API requests. By default, fields with
38389	// empty values are omitted from API requests. However, any non-pointer,
38390	// non-interface field appearing in ForceSendFields will be sent to the
38391	// server regardless of whether the field is empty or not. This may be
38392	// used to include empty fields in Patch requests.
38393	ForceSendFields []string `json:"-"`
38394
38395	// NullFields is a list of field names (e.g. "Code") to include in API
38396	// requests with the JSON null value. By default, fields with empty
38397	// values are omitted from API requests. However, any field with an
38398	// empty value appearing in NullFields will be sent to the server as
38399	// null. It is an error if a field in this list has a non-empty value.
38400	// This may be used to include null fields in Patch requests.
38401	NullFields []string `json:"-"`
38402}
38403
38404func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
38405	type NoMethod TargetHttpProxyListWarning
38406	raw := NoMethod(*s)
38407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38408}
38409
38410type TargetHttpProxyListWarningData struct {
38411	// Key: [Output Only] A key that provides more detail on the warning
38412	// being returned. For example, for warnings where there are no results
38413	// in a list request for a particular zone, this key might be scope and
38414	// the key value might be the zone name. Other examples might be a key
38415	// indicating a deprecated resource and a suggested replacement, or a
38416	// warning about invalid network settings (for example, if an instance
38417	// attempts to perform IP forwarding but is not enabled for IP
38418	// forwarding).
38419	Key string `json:"key,omitempty"`
38420
38421	// Value: [Output Only] A warning data value corresponding to the key.
38422	Value string `json:"value,omitempty"`
38423
38424	// ForceSendFields is a list of field names (e.g. "Key") to
38425	// unconditionally include in API requests. By default, fields with
38426	// empty values are omitted from API requests. However, any non-pointer,
38427	// non-interface field appearing in ForceSendFields will be sent to the
38428	// server regardless of whether the field is empty or not. This may be
38429	// used to include empty fields in Patch requests.
38430	ForceSendFields []string `json:"-"`
38431
38432	// NullFields is a list of field names (e.g. "Key") to include in API
38433	// requests with the JSON null value. By default, fields with empty
38434	// values are omitted from API requests. However, any field with an
38435	// empty value appearing in NullFields will be sent to the server as
38436	// null. It is an error if a field in this list has a non-empty value.
38437	// This may be used to include null fields in Patch requests.
38438	NullFields []string `json:"-"`
38439}
38440
38441func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
38442	type NoMethod TargetHttpProxyListWarningData
38443	raw := NoMethod(*s)
38444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38445}
38446
38447type TargetHttpsProxiesScopedList struct {
38448	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
38449	// scope.
38450	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
38451
38452	// Warning: Informational warning which replaces the list of backend
38453	// services when the list is empty.
38454	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
38455
38456	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
38457	// to unconditionally include in API requests. By default, fields with
38458	// empty values are omitted from API requests. However, any non-pointer,
38459	// non-interface field appearing in ForceSendFields will be sent to the
38460	// server regardless of whether the field is empty or not. This may be
38461	// used to include empty fields in Patch requests.
38462	ForceSendFields []string `json:"-"`
38463
38464	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
38465	// include in API requests with the JSON null value. By default, fields
38466	// with empty values are omitted from API requests. However, any field
38467	// with an empty value appearing in NullFields will be sent to the
38468	// server as null. It is an error if a field in this list has a
38469	// non-empty value. This may be used to include null fields in Patch
38470	// requests.
38471	NullFields []string `json:"-"`
38472}
38473
38474func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
38475	type NoMethod TargetHttpsProxiesScopedList
38476	raw := NoMethod(*s)
38477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38478}
38479
38480// TargetHttpsProxiesScopedListWarning: Informational warning which
38481// replaces the list of backend services when the list is empty.
38482type TargetHttpsProxiesScopedListWarning struct {
38483	// Code: [Output Only] A warning code, if applicable. For example,
38484	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38485	// the response.
38486	//
38487	// Possible values:
38488	//   "CLEANUP_FAILED"
38489	//   "DEPRECATED_RESOURCE_USED"
38490	//   "DEPRECATED_TYPE_USED"
38491	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38492	//   "EXPERIMENTAL_TYPE_USED"
38493	//   "EXTERNAL_API_WARNING"
38494	//   "FIELD_VALUE_OVERRIDEN"
38495	//   "INJECTED_KERNELS_DEPRECATED"
38496	//   "MISSING_TYPE_DEPENDENCY"
38497	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38498	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38499	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38500	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38501	//   "NEXT_HOP_NOT_RUNNING"
38502	//   "NOT_CRITICAL_ERROR"
38503	//   "NO_RESULTS_ON_PAGE"
38504	//   "REQUIRED_TOS_AGREEMENT"
38505	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38506	//   "RESOURCE_NOT_DELETED"
38507	//   "SCHEMA_VALIDATION_IGNORED"
38508	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38509	//   "UNDECLARED_PROPERTIES"
38510	//   "UNREACHABLE"
38511	Code string `json:"code,omitempty"`
38512
38513	// Data: [Output Only] Metadata about this warning in key: value format.
38514	// For example:
38515	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38516	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
38517
38518	// Message: [Output Only] A human-readable description of the warning
38519	// code.
38520	Message string `json:"message,omitempty"`
38521
38522	// ForceSendFields is a list of field names (e.g. "Code") to
38523	// unconditionally include in API requests. By default, fields with
38524	// empty values are omitted from API requests. However, any non-pointer,
38525	// non-interface field appearing in ForceSendFields will be sent to the
38526	// server regardless of whether the field is empty or not. This may be
38527	// used to include empty fields in Patch requests.
38528	ForceSendFields []string `json:"-"`
38529
38530	// NullFields is a list of field names (e.g. "Code") to include in API
38531	// requests with the JSON null value. By default, fields with empty
38532	// values are omitted from API requests. However, any field with an
38533	// empty value appearing in NullFields will be sent to the server as
38534	// null. It is an error if a field in this list has a non-empty value.
38535	// This may be used to include null fields in Patch requests.
38536	NullFields []string `json:"-"`
38537}
38538
38539func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
38540	type NoMethod TargetHttpsProxiesScopedListWarning
38541	raw := NoMethod(*s)
38542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38543}
38544
38545type TargetHttpsProxiesScopedListWarningData struct {
38546	// Key: [Output Only] A key that provides more detail on the warning
38547	// being returned. For example, for warnings where there are no results
38548	// in a list request for a particular zone, this key might be scope and
38549	// the key value might be the zone name. Other examples might be a key
38550	// indicating a deprecated resource and a suggested replacement, or a
38551	// warning about invalid network settings (for example, if an instance
38552	// attempts to perform IP forwarding but is not enabled for IP
38553	// forwarding).
38554	Key string `json:"key,omitempty"`
38555
38556	// Value: [Output Only] A warning data value corresponding to the key.
38557	Value string `json:"value,omitempty"`
38558
38559	// ForceSendFields is a list of field names (e.g. "Key") to
38560	// unconditionally include in API requests. By default, fields with
38561	// empty values are omitted from API requests. However, any non-pointer,
38562	// non-interface field appearing in ForceSendFields will be sent to the
38563	// server regardless of whether the field is empty or not. This may be
38564	// used to include empty fields in Patch requests.
38565	ForceSendFields []string `json:"-"`
38566
38567	// NullFields is a list of field names (e.g. "Key") to include in API
38568	// requests with the JSON null value. By default, fields with empty
38569	// values are omitted from API requests. However, any field with an
38570	// empty value appearing in NullFields will be sent to the server as
38571	// null. It is an error if a field in this list has a non-empty value.
38572	// This may be used to include null fields in Patch requests.
38573	NullFields []string `json:"-"`
38574}
38575
38576func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
38577	type NoMethod TargetHttpsProxiesScopedListWarningData
38578	raw := NoMethod(*s)
38579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38580}
38581
38582type TargetHttpsProxiesSetQuicOverrideRequest struct {
38583	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
38584	//
38585	// Possible values:
38586	//   "DISABLE"
38587	//   "ENABLE"
38588	//   "NONE"
38589	QuicOverride string `json:"quicOverride,omitempty"`
38590
38591	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
38592	// unconditionally include in API requests. By default, fields with
38593	// empty values are omitted from API requests. However, any non-pointer,
38594	// non-interface field appearing in ForceSendFields will be sent to the
38595	// server regardless of whether the field is empty or not. This may be
38596	// used to include empty fields in Patch requests.
38597	ForceSendFields []string `json:"-"`
38598
38599	// NullFields is a list of field names (e.g. "QuicOverride") to include
38600	// in API requests with the JSON null value. By default, fields with
38601	// empty values are omitted from API requests. However, any field with
38602	// an empty value appearing in NullFields will be sent to the server as
38603	// null. It is an error if a field in this list has a non-empty value.
38604	// This may be used to include null fields in Patch requests.
38605	NullFields []string `json:"-"`
38606}
38607
38608func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
38609	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
38610	raw := NoMethod(*s)
38611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38612}
38613
38614type TargetHttpsProxiesSetSslCertificatesRequest struct {
38615	// SslCertificates: New set of SslCertificate resources to associate
38616	// with this TargetHttpsProxy resource. Currently exactly one
38617	// SslCertificate resource must be specified.
38618	SslCertificates []string `json:"sslCertificates,omitempty"`
38619
38620	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
38621	// unconditionally include in API requests. By default, fields with
38622	// empty values are omitted from API requests. However, any non-pointer,
38623	// non-interface field appearing in ForceSendFields will be sent to the
38624	// server regardless of whether the field is empty or not. This may be
38625	// used to include empty fields in Patch requests.
38626	ForceSendFields []string `json:"-"`
38627
38628	// NullFields is a list of field names (e.g. "SslCertificates") to
38629	// include in API requests with the JSON null value. By default, fields
38630	// with empty values are omitted from API requests. However, any field
38631	// with an empty value appearing in NullFields will be sent to the
38632	// server as null. It is an error if a field in this list has a
38633	// non-empty value. This may be used to include null fields in Patch
38634	// requests.
38635	NullFields []string `json:"-"`
38636}
38637
38638func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
38639	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
38640	raw := NoMethod(*s)
38641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38642}
38643
38644// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
38645//
38646// Google Compute Engine has two Target HTTPS Proxy resources:
38647//
38648// *
38649// [Global](/compute/docs/reference/rest/{$api_version}/targetHttpsProxie
38650// s) *
38651// [Regional](/compute/docs/reference/rest/{$api_version}/regionTargetHtt
38652// psProxies)
38653//
38654// A target HTTPS proxy is a component of GCP HTTPS load balancers.
38655//
38656// * targetHttpsProxies are used by external HTTPS load balancers. *
38657// regionTargetHttpsProxies are used by internal HTTPS load
38658// balancers.
38659//
38660// Forwarding rules reference a target HTTPS proxy, and the target proxy
38661// then references a URL map. For more information, read Using Target
38662// Proxies and  Forwarding rule concepts. (== resource_for
38663// {$api_version}.targetHttpsProxies ==) (== resource_for
38664// {$api_version}.regionTargetHttpsProxies ==)
38665type TargetHttpsProxy struct {
38666	// Authentication: [Deprecated] Use serverTlsPolicy instead.
38667	Authentication string `json:"authentication,omitempty"`
38668
38669	// Authorization: [Deprecated] Use authorizationPolicy instead.
38670	Authorization string `json:"authorization,omitempty"`
38671
38672	// AuthorizationPolicy: Optional. A URL referring to a
38673	// networksecurity.AuthorizationPolicy resource that describes how the
38674	// proxy should authorize inbound traffic. If left blank, access will
38675	// not be restricted by an authorization policy.
38676	// Refer to the AuthorizationPolicy resource for additional
38677	// details.
38678	// authorizationPolicy only applies to a global TargetHttpsProxy
38679	// attached to globalForwardingRules with the loadBalancingScheme set to
38680	// INTERNAL_SELF_MANAGED.
38681	AuthorizationPolicy string `json:"authorizationPolicy,omitempty"`
38682
38683	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38684	// format.
38685	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38686
38687	// Description: An optional description of this resource. Provide this
38688	// property when you create the resource.
38689	Description string `json:"description,omitempty"`
38690
38691	// Id: [Output Only] The unique identifier for the resource. This
38692	// identifier is defined by the server.
38693	Id uint64 `json:"id,omitempty,string"`
38694
38695	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
38696	// for target HTTPS proxies.
38697	Kind string `json:"kind,omitempty"`
38698
38699	// Name: Name of the resource. Provided by the client when the resource
38700	// is created. The name must be 1-63 characters long, and comply with
38701	// RFC1035. Specifically, the name must be 1-63 characters long and
38702	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38703	// the first character must be a lowercase letter, and all following
38704	// characters must be a dash, lowercase letter, or digit, except the
38705	// last character, which cannot be a dash.
38706	Name string `json:"name,omitempty"`
38707
38708	// ProxyBind: This field only applies when the loadBalancingScheme is
38709	// INTERNAL_SELF_MANAGED. When set to true the Envoy binds on the IP
38710	// address specified by the forwarding rule. Default is false.
38711	ProxyBind bool `json:"proxyBind,omitempty"`
38712
38713	// QuicOverride: Specifies the QUIC override policy for this
38714	// TargetHttpsProxy resource. This setting determines whether the load
38715	// balancer attempts to negotiate QUIC with clients. You can specify
38716	// NONE, ENABLE, or DISABLE.
38717	// - When quic-override is set to NONE, Google manages whether QUIC is
38718	// used.
38719	// - When quic-override is set to ENABLE, the load balancer uses QUIC
38720	// when possible.
38721	// - When quic-override is set to DISABLE, the load balancer doesn't use
38722	// QUIC.
38723	// - If the quic-override flag is not specified, NONE is implied.
38724	// -
38725	//
38726	// Possible values:
38727	//   "DISABLE"
38728	//   "ENABLE"
38729	//   "NONE"
38730	QuicOverride string `json:"quicOverride,omitempty"`
38731
38732	// Region: [Output Only] URL of the region where the regional
38733	// TargetHttpsProxy resides. This field is not applicable to global
38734	// TargetHttpsProxies.
38735	Region string `json:"region,omitempty"`
38736
38737	// SelfLink: [Output Only] Server-defined URL for the resource.
38738	SelfLink string `json:"selfLink,omitempty"`
38739
38740	// ServerTlsPolicy: Optional. A URL referring to a
38741	// networksecurity.ServerTlsPolicy resource that describes how the proxy
38742	// should authenticate inbound traffic.
38743	// serverTlsPolicy only applies to a global TargetHttpsProxy attached to
38744	// globalForwardingRules with the loadBalancingScheme set to
38745	// INTERNAL_SELF_MANAGED.
38746	// If left blank, communications are not encrypted.
38747	ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"`
38748
38749	// SslCertificates: URLs to SslCertificate resources that are used to
38750	// authenticate connections between users and the load balancer. At
38751	// least one SSL certificate must be specified. Currently, you may
38752	// specify up to 15 SSL certificates.
38753	SslCertificates []string `json:"sslCertificates,omitempty"`
38754
38755	// SslPolicy: URL of SslPolicy resource that will be associated with the
38756	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
38757	// has no SSL policy configured.
38758	SslPolicy string `json:"sslPolicy,omitempty"`
38759
38760	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
38761	// that defines the mapping from URL to the BackendService. For example,
38762	// the following are all valid URLs for specifying a URL map:
38763	// -
38764	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
38765	// - projects/project/global/urlMaps/url-map
38766	// - global/urlMaps/url-map
38767	UrlMap string `json:"urlMap,omitempty"`
38768
38769	// ServerResponse contains the HTTP response code and headers from the
38770	// server.
38771	googleapi.ServerResponse `json:"-"`
38772
38773	// ForceSendFields is a list of field names (e.g. "Authentication") 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. "Authentication") 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 *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
38792	type NoMethod TargetHttpsProxy
38793	raw := NoMethod(*s)
38794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38795}
38796
38797type TargetHttpsProxyAggregatedList struct {
38798	// Id: [Output Only] Unique identifier for the resource; defined by the
38799	// server.
38800	Id string `json:"id,omitempty"`
38801
38802	// Items: A list of TargetHttpsProxiesScopedList resources.
38803	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
38804
38805	// Kind: [Output Only] Type of resource. Always
38806	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
38807	// Proxies.
38808	Kind string `json:"kind,omitempty"`
38809
38810	// NextPageToken: [Output Only] This token allows you to get the next
38811	// page of results for list requests. If the number of results is larger
38812	// than maxResults, use the nextPageToken as a value for the query
38813	// parameter pageToken in the next list request. Subsequent list
38814	// requests will have their own nextPageToken to continue paging through
38815	// the results.
38816	NextPageToken string `json:"nextPageToken,omitempty"`
38817
38818	// SelfLink: [Output Only] Server-defined URL for this resource.
38819	SelfLink string `json:"selfLink,omitempty"`
38820
38821	// Warning: [Output Only] Informational warning message.
38822	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
38823
38824	// ServerResponse contains the HTTP response code and headers from the
38825	// server.
38826	googleapi.ServerResponse `json:"-"`
38827
38828	// ForceSendFields is a list of field names (e.g. "Id") to
38829	// unconditionally include in API requests. By default, fields with
38830	// empty values are omitted from API requests. However, any non-pointer,
38831	// non-interface field appearing in ForceSendFields will be sent to the
38832	// server regardless of whether the field is empty or not. This may be
38833	// used to include empty fields in Patch requests.
38834	ForceSendFields []string `json:"-"`
38835
38836	// NullFields is a list of field names (e.g. "Id") to include in API
38837	// requests with the JSON null value. By default, fields with empty
38838	// values are omitted from API requests. However, any field with an
38839	// empty value appearing in NullFields will be sent to the server as
38840	// null. It is an error if a field in this list has a non-empty value.
38841	// This may be used to include null fields in Patch requests.
38842	NullFields []string `json:"-"`
38843}
38844
38845func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
38846	type NoMethod TargetHttpsProxyAggregatedList
38847	raw := NoMethod(*s)
38848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38849}
38850
38851// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
38852// warning message.
38853type TargetHttpsProxyAggregatedListWarning struct {
38854	// Code: [Output Only] A warning code, if applicable. For example,
38855	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38856	// the response.
38857	//
38858	// Possible values:
38859	//   "CLEANUP_FAILED"
38860	//   "DEPRECATED_RESOURCE_USED"
38861	//   "DEPRECATED_TYPE_USED"
38862	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38863	//   "EXPERIMENTAL_TYPE_USED"
38864	//   "EXTERNAL_API_WARNING"
38865	//   "FIELD_VALUE_OVERRIDEN"
38866	//   "INJECTED_KERNELS_DEPRECATED"
38867	//   "MISSING_TYPE_DEPENDENCY"
38868	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38869	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38870	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38871	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38872	//   "NEXT_HOP_NOT_RUNNING"
38873	//   "NOT_CRITICAL_ERROR"
38874	//   "NO_RESULTS_ON_PAGE"
38875	//   "REQUIRED_TOS_AGREEMENT"
38876	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38877	//   "RESOURCE_NOT_DELETED"
38878	//   "SCHEMA_VALIDATION_IGNORED"
38879	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38880	//   "UNDECLARED_PROPERTIES"
38881	//   "UNREACHABLE"
38882	Code string `json:"code,omitempty"`
38883
38884	// Data: [Output Only] Metadata about this warning in key: value format.
38885	// For example:
38886	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38887	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
38888
38889	// Message: [Output Only] A human-readable description of the warning
38890	// code.
38891	Message string `json:"message,omitempty"`
38892
38893	// ForceSendFields is a list of field names (e.g. "Code") to
38894	// unconditionally include in API requests. By default, fields with
38895	// empty values are omitted from API requests. However, any non-pointer,
38896	// non-interface field appearing in ForceSendFields will be sent to the
38897	// server regardless of whether the field is empty or not. This may be
38898	// used to include empty fields in Patch requests.
38899	ForceSendFields []string `json:"-"`
38900
38901	// NullFields is a list of field names (e.g. "Code") to include in API
38902	// requests with the JSON null value. By default, fields with empty
38903	// values are omitted from API requests. However, any field with an
38904	// empty value appearing in NullFields will be sent to the server as
38905	// null. It is an error if a field in this list has a non-empty value.
38906	// This may be used to include null fields in Patch requests.
38907	NullFields []string `json:"-"`
38908}
38909
38910func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
38911	type NoMethod TargetHttpsProxyAggregatedListWarning
38912	raw := NoMethod(*s)
38913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38914}
38915
38916type TargetHttpsProxyAggregatedListWarningData struct {
38917	// Key: [Output Only] A key that provides more detail on the warning
38918	// being returned. For example, for warnings where there are no results
38919	// in a list request for a particular zone, this key might be scope and
38920	// the key value might be the zone name. Other examples might be a key
38921	// indicating a deprecated resource and a suggested replacement, or a
38922	// warning about invalid network settings (for example, if an instance
38923	// attempts to perform IP forwarding but is not enabled for IP
38924	// forwarding).
38925	Key string `json:"key,omitempty"`
38926
38927	// Value: [Output Only] A warning data value corresponding to the key.
38928	Value string `json:"value,omitempty"`
38929
38930	// ForceSendFields is a list of field names (e.g. "Key") to
38931	// unconditionally include in API requests. By default, fields with
38932	// empty values are omitted from API requests. However, any non-pointer,
38933	// non-interface field appearing in ForceSendFields will be sent to the
38934	// server regardless of whether the field is empty or not. This may be
38935	// used to include empty fields in Patch requests.
38936	ForceSendFields []string `json:"-"`
38937
38938	// NullFields is a list of field names (e.g. "Key") to include in API
38939	// requests with the JSON null value. By default, fields with empty
38940	// values are omitted from API requests. However, any field with an
38941	// empty value appearing in NullFields will be sent to the server as
38942	// null. It is an error if a field in this list has a non-empty value.
38943	// This may be used to include null fields in Patch requests.
38944	NullFields []string `json:"-"`
38945}
38946
38947func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38948	type NoMethod TargetHttpsProxyAggregatedListWarningData
38949	raw := NoMethod(*s)
38950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38951}
38952
38953// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
38954type TargetHttpsProxyList struct {
38955	// Id: [Output Only] Unique identifier for the resource; defined by the
38956	// server.
38957	Id string `json:"id,omitempty"`
38958
38959	// Items: A list of TargetHttpsProxy resources.
38960	Items []*TargetHttpsProxy `json:"items,omitempty"`
38961
38962	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
38963	// of target HTTPS proxies.
38964	Kind string `json:"kind,omitempty"`
38965
38966	// NextPageToken: [Output Only] This token allows you to get the next
38967	// page of results for list requests. If the number of results is larger
38968	// than maxResults, use the nextPageToken as a value for the query
38969	// parameter pageToken in the next list request. Subsequent list
38970	// requests will have their own nextPageToken to continue paging through
38971	// the results.
38972	NextPageToken string `json:"nextPageToken,omitempty"`
38973
38974	// SelfLink: [Output Only] Server-defined URL for this resource.
38975	SelfLink string `json:"selfLink,omitempty"`
38976
38977	// Warning: [Output Only] Informational warning message.
38978	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
38979
38980	// ServerResponse contains the HTTP response code and headers from the
38981	// server.
38982	googleapi.ServerResponse `json:"-"`
38983
38984	// ForceSendFields is a list of field names (e.g. "Id") to
38985	// unconditionally include in API requests. By default, fields with
38986	// empty values are omitted from API requests. However, any non-pointer,
38987	// non-interface field appearing in ForceSendFields will be sent to the
38988	// server regardless of whether the field is empty or not. This may be
38989	// used to include empty fields in Patch requests.
38990	ForceSendFields []string `json:"-"`
38991
38992	// NullFields is a list of field names (e.g. "Id") to include in API
38993	// requests with the JSON null value. By default, fields with empty
38994	// values are omitted from API requests. However, any field with an
38995	// empty value appearing in NullFields will be sent to the server as
38996	// null. It is an error if a field in this list has a non-empty value.
38997	// This may be used to include null fields in Patch requests.
38998	NullFields []string `json:"-"`
38999}
39000
39001func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
39002	type NoMethod TargetHttpsProxyList
39003	raw := NoMethod(*s)
39004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39005}
39006
39007// TargetHttpsProxyListWarning: [Output Only] Informational warning
39008// message.
39009type TargetHttpsProxyListWarning struct {
39010	// Code: [Output Only] A warning code, if applicable. For example,
39011	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39012	// the response.
39013	//
39014	// Possible values:
39015	//   "CLEANUP_FAILED"
39016	//   "DEPRECATED_RESOURCE_USED"
39017	//   "DEPRECATED_TYPE_USED"
39018	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39019	//   "EXPERIMENTAL_TYPE_USED"
39020	//   "EXTERNAL_API_WARNING"
39021	//   "FIELD_VALUE_OVERRIDEN"
39022	//   "INJECTED_KERNELS_DEPRECATED"
39023	//   "MISSING_TYPE_DEPENDENCY"
39024	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39025	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39026	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39027	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39028	//   "NEXT_HOP_NOT_RUNNING"
39029	//   "NOT_CRITICAL_ERROR"
39030	//   "NO_RESULTS_ON_PAGE"
39031	//   "REQUIRED_TOS_AGREEMENT"
39032	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39033	//   "RESOURCE_NOT_DELETED"
39034	//   "SCHEMA_VALIDATION_IGNORED"
39035	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39036	//   "UNDECLARED_PROPERTIES"
39037	//   "UNREACHABLE"
39038	Code string `json:"code,omitempty"`
39039
39040	// Data: [Output Only] Metadata about this warning in key: value format.
39041	// For example:
39042	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39043	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
39044
39045	// Message: [Output Only] A human-readable description of the warning
39046	// code.
39047	Message string `json:"message,omitempty"`
39048
39049	// ForceSendFields is a list of field names (e.g. "Code") to
39050	// unconditionally include in API requests. By default, fields with
39051	// empty values are omitted from API requests. However, any non-pointer,
39052	// non-interface field appearing in ForceSendFields will be sent to the
39053	// server regardless of whether the field is empty or not. This may be
39054	// used to include empty fields in Patch requests.
39055	ForceSendFields []string `json:"-"`
39056
39057	// NullFields is a list of field names (e.g. "Code") to include in API
39058	// requests with the JSON null value. By default, fields with empty
39059	// values are omitted from API requests. However, any field with an
39060	// empty value appearing in NullFields will be sent to the server as
39061	// null. It is an error if a field in this list has a non-empty value.
39062	// This may be used to include null fields in Patch requests.
39063	NullFields []string `json:"-"`
39064}
39065
39066func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
39067	type NoMethod TargetHttpsProxyListWarning
39068	raw := NoMethod(*s)
39069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39070}
39071
39072type TargetHttpsProxyListWarningData struct {
39073	// Key: [Output Only] A key that provides more detail on the warning
39074	// being returned. For example, for warnings where there are no results
39075	// in a list request for a particular zone, this key might be scope and
39076	// the key value might be the zone name. Other examples might be a key
39077	// indicating a deprecated resource and a suggested replacement, or a
39078	// warning about invalid network settings (for example, if an instance
39079	// attempts to perform IP forwarding but is not enabled for IP
39080	// forwarding).
39081	Key string `json:"key,omitempty"`
39082
39083	// Value: [Output Only] A warning data value corresponding to the key.
39084	Value string `json:"value,omitempty"`
39085
39086	// ForceSendFields is a list of field names (e.g. "Key") to
39087	// unconditionally include in API requests. By default, fields with
39088	// empty values are omitted from API requests. However, any non-pointer,
39089	// non-interface field appearing in ForceSendFields will be sent to the
39090	// server regardless of whether the field is empty or not. This may be
39091	// used to include empty fields in Patch requests.
39092	ForceSendFields []string `json:"-"`
39093
39094	// NullFields is a list of field names (e.g. "Key") to include in API
39095	// requests with the JSON null value. By default, fields with empty
39096	// values are omitted from API requests. However, any field with an
39097	// empty value appearing in NullFields will be sent to the server as
39098	// null. It is an error if a field in this list has a non-empty value.
39099	// This may be used to include null fields in Patch requests.
39100	NullFields []string `json:"-"`
39101}
39102
39103func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
39104	type NoMethod TargetHttpsProxyListWarningData
39105	raw := NoMethod(*s)
39106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39107}
39108
39109// TargetInstance: Represents a Target Instance resource.
39110//
39111// You can use a target instance to handle traffic for one or more
39112// forwarding rules, which is ideal for forwarding protocol traffic that
39113// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
39114// more information, read Target instances. (== resource_for
39115// {$api_version}.targetInstances ==)
39116type TargetInstance struct {
39117	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39118	// format.
39119	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39120
39121	// Description: An optional description of this resource. Provide this
39122	// property when you create the resource.
39123	Description string `json:"description,omitempty"`
39124
39125	// Id: [Output Only] The unique identifier for the resource. This
39126	// identifier is defined by the server.
39127	Id uint64 `json:"id,omitempty,string"`
39128
39129	// Instance: A URL to the virtual machine instance that handles traffic
39130	// for this target instance. When creating a target instance, you can
39131	// provide the fully-qualified URL or a valid partial URL to the desired
39132	// virtual machine. For example, the following are all valid URLs:
39133	// -
39134	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
39135	// - projects/project/zones/zone/instances/instance
39136	// - zones/zone/instances/instance
39137	Instance string `json:"instance,omitempty"`
39138
39139	// Kind: [Output Only] The type of the resource. Always
39140	// compute#targetInstance for target instances.
39141	Kind string `json:"kind,omitempty"`
39142
39143	// Name: Name of the resource. Provided by the client when the resource
39144	// is created. The name must be 1-63 characters long, and comply with
39145	// RFC1035. Specifically, the name must be 1-63 characters long and
39146	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39147	// the first character must be a lowercase letter, and all following
39148	// characters must be a dash, lowercase letter, or digit, except the
39149	// last character, which cannot be a dash.
39150	Name string `json:"name,omitempty"`
39151
39152	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
39153	// Currently only NO_NAT (default value) is supported.
39154	//
39155	// Possible values:
39156	//   "NO_NAT"
39157	NatPolicy string `json:"natPolicy,omitempty"`
39158
39159	// SelfLink: [Output Only] Server-defined URL for the resource.
39160	SelfLink string `json:"selfLink,omitempty"`
39161
39162	// Zone: [Output Only] URL of the zone where the target instance
39163	// resides. You must specify this field as part of the HTTP request URL.
39164	// It is not settable as a field in the request body.
39165	Zone string `json:"zone,omitempty"`
39166
39167	// ServerResponse contains the HTTP response code and headers from the
39168	// server.
39169	googleapi.ServerResponse `json:"-"`
39170
39171	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
39172	// to unconditionally include in API requests. By default, fields with
39173	// empty values are omitted from API requests. However, any non-pointer,
39174	// non-interface field appearing in ForceSendFields will be sent to the
39175	// server regardless of whether the field is empty or not. This may be
39176	// used to include empty fields in Patch requests.
39177	ForceSendFields []string `json:"-"`
39178
39179	// NullFields is a list of field names (e.g. "CreationTimestamp") to
39180	// include in API requests with the JSON null value. By default, fields
39181	// with empty values are omitted from API requests. However, any field
39182	// with an empty value appearing in NullFields will be sent to the
39183	// server as null. It is an error if a field in this list has a
39184	// non-empty value. This may be used to include null fields in Patch
39185	// requests.
39186	NullFields []string `json:"-"`
39187}
39188
39189func (s *TargetInstance) MarshalJSON() ([]byte, error) {
39190	type NoMethod TargetInstance
39191	raw := NoMethod(*s)
39192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39193}
39194
39195type TargetInstanceAggregatedList struct {
39196	// Id: [Output Only] Unique identifier for the resource; defined by the
39197	// server.
39198	Id string `json:"id,omitempty"`
39199
39200	// Items: A list of TargetInstance resources.
39201	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
39202
39203	// Kind: Type of resource.
39204	Kind string `json:"kind,omitempty"`
39205
39206	// NextPageToken: [Output Only] This token allows you to get the next
39207	// page of results for list requests. If the number of results is larger
39208	// than maxResults, use the nextPageToken as a value for the query
39209	// parameter pageToken in the next list request. Subsequent list
39210	// requests will have their own nextPageToken to continue paging through
39211	// the results.
39212	NextPageToken string `json:"nextPageToken,omitempty"`
39213
39214	// SelfLink: [Output Only] Server-defined URL for this resource.
39215	SelfLink string `json:"selfLink,omitempty"`
39216
39217	// Warning: [Output Only] Informational warning message.
39218	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
39219
39220	// ServerResponse contains the HTTP response code and headers from the
39221	// server.
39222	googleapi.ServerResponse `json:"-"`
39223
39224	// ForceSendFields is a list of field names (e.g. "Id") to
39225	// unconditionally include in API requests. By default, fields with
39226	// empty values are omitted from API requests. However, any non-pointer,
39227	// non-interface field appearing in ForceSendFields will be sent to the
39228	// server regardless of whether the field is empty or not. This may be
39229	// used to include empty fields in Patch requests.
39230	ForceSendFields []string `json:"-"`
39231
39232	// NullFields is a list of field names (e.g. "Id") to include in API
39233	// requests with the JSON null value. By default, fields with empty
39234	// values are omitted from API requests. However, any field with an
39235	// empty value appearing in NullFields will be sent to the server as
39236	// null. It is an error if a field in this list has a non-empty value.
39237	// This may be used to include null fields in Patch requests.
39238	NullFields []string `json:"-"`
39239}
39240
39241func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
39242	type NoMethod TargetInstanceAggregatedList
39243	raw := NoMethod(*s)
39244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39245}
39246
39247// TargetInstanceAggregatedListWarning: [Output Only] Informational
39248// warning message.
39249type TargetInstanceAggregatedListWarning struct {
39250	// Code: [Output Only] A warning code, if applicable. For example,
39251	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39252	// the response.
39253	//
39254	// Possible values:
39255	//   "CLEANUP_FAILED"
39256	//   "DEPRECATED_RESOURCE_USED"
39257	//   "DEPRECATED_TYPE_USED"
39258	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39259	//   "EXPERIMENTAL_TYPE_USED"
39260	//   "EXTERNAL_API_WARNING"
39261	//   "FIELD_VALUE_OVERRIDEN"
39262	//   "INJECTED_KERNELS_DEPRECATED"
39263	//   "MISSING_TYPE_DEPENDENCY"
39264	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39265	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39266	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39267	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39268	//   "NEXT_HOP_NOT_RUNNING"
39269	//   "NOT_CRITICAL_ERROR"
39270	//   "NO_RESULTS_ON_PAGE"
39271	//   "REQUIRED_TOS_AGREEMENT"
39272	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39273	//   "RESOURCE_NOT_DELETED"
39274	//   "SCHEMA_VALIDATION_IGNORED"
39275	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39276	//   "UNDECLARED_PROPERTIES"
39277	//   "UNREACHABLE"
39278	Code string `json:"code,omitempty"`
39279
39280	// Data: [Output Only] Metadata about this warning in key: value format.
39281	// For example:
39282	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39283	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
39284
39285	// Message: [Output Only] A human-readable description of the warning
39286	// code.
39287	Message string `json:"message,omitempty"`
39288
39289	// ForceSendFields is a list of field names (e.g. "Code") to
39290	// unconditionally include in API requests. By default, fields with
39291	// empty values are omitted from API requests. However, any non-pointer,
39292	// non-interface field appearing in ForceSendFields will be sent to the
39293	// server regardless of whether the field is empty or not. This may be
39294	// used to include empty fields in Patch requests.
39295	ForceSendFields []string `json:"-"`
39296
39297	// NullFields is a list of field names (e.g. "Code") to include in API
39298	// requests with the JSON null value. By default, fields with empty
39299	// values are omitted from API requests. However, any field with an
39300	// empty value appearing in NullFields will be sent to the server as
39301	// null. It is an error if a field in this list has a non-empty value.
39302	// This may be used to include null fields in Patch requests.
39303	NullFields []string `json:"-"`
39304}
39305
39306func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
39307	type NoMethod TargetInstanceAggregatedListWarning
39308	raw := NoMethod(*s)
39309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39310}
39311
39312type TargetInstanceAggregatedListWarningData struct {
39313	// Key: [Output Only] A key that provides more detail on the warning
39314	// being returned. For example, for warnings where there are no results
39315	// in a list request for a particular zone, this key might be scope and
39316	// the key value might be the zone name. Other examples might be a key
39317	// indicating a deprecated resource and a suggested replacement, or a
39318	// warning about invalid network settings (for example, if an instance
39319	// attempts to perform IP forwarding but is not enabled for IP
39320	// forwarding).
39321	Key string `json:"key,omitempty"`
39322
39323	// Value: [Output Only] A warning data value corresponding to the key.
39324	Value string `json:"value,omitempty"`
39325
39326	// ForceSendFields is a list of field names (e.g. "Key") to
39327	// unconditionally include in API requests. By default, fields with
39328	// empty values are omitted from API requests. However, any non-pointer,
39329	// non-interface field appearing in ForceSendFields will be sent to the
39330	// server regardless of whether the field is empty or not. This may be
39331	// used to include empty fields in Patch requests.
39332	ForceSendFields []string `json:"-"`
39333
39334	// NullFields is a list of field names (e.g. "Key") to include in API
39335	// requests with the JSON null value. By default, fields with empty
39336	// values are omitted from API requests. However, any field with an
39337	// empty value appearing in NullFields will be sent to the server as
39338	// null. It is an error if a field in this list has a non-empty value.
39339	// This may be used to include null fields in Patch requests.
39340	NullFields []string `json:"-"`
39341}
39342
39343func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
39344	type NoMethod TargetInstanceAggregatedListWarningData
39345	raw := NoMethod(*s)
39346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39347}
39348
39349// TargetInstanceList: Contains a list of TargetInstance resources.
39350type TargetInstanceList struct {
39351	// Id: [Output Only] Unique identifier for the resource; defined by the
39352	// server.
39353	Id string `json:"id,omitempty"`
39354
39355	// Items: A list of TargetInstance resources.
39356	Items []*TargetInstance `json:"items,omitempty"`
39357
39358	// Kind: Type of resource.
39359	Kind string `json:"kind,omitempty"`
39360
39361	// NextPageToken: [Output Only] This token allows you to get the next
39362	// page of results for list requests. If the number of results is larger
39363	// than maxResults, use the nextPageToken as a value for the query
39364	// parameter pageToken in the next list request. Subsequent list
39365	// requests will have their own nextPageToken to continue paging through
39366	// the results.
39367	NextPageToken string `json:"nextPageToken,omitempty"`
39368
39369	// SelfLink: [Output Only] Server-defined URL for this resource.
39370	SelfLink string `json:"selfLink,omitempty"`
39371
39372	// Warning: [Output Only] Informational warning message.
39373	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
39374
39375	// ServerResponse contains the HTTP response code and headers from the
39376	// server.
39377	googleapi.ServerResponse `json:"-"`
39378
39379	// ForceSendFields is a list of field names (e.g. "Id") to
39380	// unconditionally include in API requests. By default, fields with
39381	// empty values are omitted from API requests. However, any non-pointer,
39382	// non-interface field appearing in ForceSendFields will be sent to the
39383	// server regardless of whether the field is empty or not. This may be
39384	// used to include empty fields in Patch requests.
39385	ForceSendFields []string `json:"-"`
39386
39387	// NullFields is a list of field names (e.g. "Id") to include in API
39388	// requests with the JSON null value. By default, fields with empty
39389	// values are omitted from API requests. However, any field with an
39390	// empty value appearing in NullFields will be sent to the server as
39391	// null. It is an error if a field in this list has a non-empty value.
39392	// This may be used to include null fields in Patch requests.
39393	NullFields []string `json:"-"`
39394}
39395
39396func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
39397	type NoMethod TargetInstanceList
39398	raw := NoMethod(*s)
39399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39400}
39401
39402// TargetInstanceListWarning: [Output Only] Informational warning
39403// message.
39404type TargetInstanceListWarning struct {
39405	// Code: [Output Only] A warning code, if applicable. For example,
39406	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39407	// the response.
39408	//
39409	// Possible values:
39410	//   "CLEANUP_FAILED"
39411	//   "DEPRECATED_RESOURCE_USED"
39412	//   "DEPRECATED_TYPE_USED"
39413	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39414	//   "EXPERIMENTAL_TYPE_USED"
39415	//   "EXTERNAL_API_WARNING"
39416	//   "FIELD_VALUE_OVERRIDEN"
39417	//   "INJECTED_KERNELS_DEPRECATED"
39418	//   "MISSING_TYPE_DEPENDENCY"
39419	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39420	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39421	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39422	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39423	//   "NEXT_HOP_NOT_RUNNING"
39424	//   "NOT_CRITICAL_ERROR"
39425	//   "NO_RESULTS_ON_PAGE"
39426	//   "REQUIRED_TOS_AGREEMENT"
39427	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39428	//   "RESOURCE_NOT_DELETED"
39429	//   "SCHEMA_VALIDATION_IGNORED"
39430	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39431	//   "UNDECLARED_PROPERTIES"
39432	//   "UNREACHABLE"
39433	Code string `json:"code,omitempty"`
39434
39435	// Data: [Output Only] Metadata about this warning in key: value format.
39436	// For example:
39437	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39438	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
39439
39440	// Message: [Output Only] A human-readable description of the warning
39441	// code.
39442	Message string `json:"message,omitempty"`
39443
39444	// ForceSendFields is a list of field names (e.g. "Code") to
39445	// unconditionally include in API requests. By default, fields with
39446	// empty values are omitted from API requests. However, any non-pointer,
39447	// non-interface field appearing in ForceSendFields will be sent to the
39448	// server regardless of whether the field is empty or not. This may be
39449	// used to include empty fields in Patch requests.
39450	ForceSendFields []string `json:"-"`
39451
39452	// NullFields is a list of field names (e.g. "Code") to include in API
39453	// requests with the JSON null value. By default, fields with empty
39454	// values are omitted from API requests. However, any field with an
39455	// empty value appearing in NullFields will be sent to the server as
39456	// null. It is an error if a field in this list has a non-empty value.
39457	// This may be used to include null fields in Patch requests.
39458	NullFields []string `json:"-"`
39459}
39460
39461func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
39462	type NoMethod TargetInstanceListWarning
39463	raw := NoMethod(*s)
39464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39465}
39466
39467type TargetInstanceListWarningData struct {
39468	// Key: [Output Only] A key that provides more detail on the warning
39469	// being returned. For example, for warnings where there are no results
39470	// in a list request for a particular zone, this key might be scope and
39471	// the key value might be the zone name. Other examples might be a key
39472	// indicating a deprecated resource and a suggested replacement, or a
39473	// warning about invalid network settings (for example, if an instance
39474	// attempts to perform IP forwarding but is not enabled for IP
39475	// forwarding).
39476	Key string `json:"key,omitempty"`
39477
39478	// Value: [Output Only] A warning data value corresponding to the key.
39479	Value string `json:"value,omitempty"`
39480
39481	// ForceSendFields is a list of field names (e.g. "Key") to
39482	// unconditionally include in API requests. By default, fields with
39483	// empty values are omitted from API requests. However, any non-pointer,
39484	// non-interface field appearing in ForceSendFields will be sent to the
39485	// server regardless of whether the field is empty or not. This may be
39486	// used to include empty fields in Patch requests.
39487	ForceSendFields []string `json:"-"`
39488
39489	// NullFields is a list of field names (e.g. "Key") to include in API
39490	// requests with the JSON null value. By default, fields with empty
39491	// values are omitted from API requests. However, any field with an
39492	// empty value appearing in NullFields will be sent to the server as
39493	// null. It is an error if a field in this list has a non-empty value.
39494	// This may be used to include null fields in Patch requests.
39495	NullFields []string `json:"-"`
39496}
39497
39498func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
39499	type NoMethod TargetInstanceListWarningData
39500	raw := NoMethod(*s)
39501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39502}
39503
39504type TargetInstancesScopedList struct {
39505	// TargetInstances: A list of target instances contained in this scope.
39506	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
39507
39508	// Warning: Informational warning which replaces the list of addresses
39509	// when the list is empty.
39510	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
39511
39512	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
39513	// unconditionally include in API requests. By default, fields with
39514	// empty values are omitted from API requests. However, any non-pointer,
39515	// non-interface field appearing in ForceSendFields will be sent to the
39516	// server regardless of whether the field is empty or not. This may be
39517	// used to include empty fields in Patch requests.
39518	ForceSendFields []string `json:"-"`
39519
39520	// NullFields is a list of field names (e.g. "TargetInstances") to
39521	// include in API requests with the JSON null value. By default, fields
39522	// with empty values are omitted from API requests. However, any field
39523	// with an empty value appearing in NullFields will be sent to the
39524	// server as null. It is an error if a field in this list has a
39525	// non-empty value. This may be used to include null fields in Patch
39526	// requests.
39527	NullFields []string `json:"-"`
39528}
39529
39530func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
39531	type NoMethod TargetInstancesScopedList
39532	raw := NoMethod(*s)
39533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39534}
39535
39536// TargetInstancesScopedListWarning: Informational warning which
39537// replaces the list of addresses when the list is empty.
39538type TargetInstancesScopedListWarning struct {
39539	// Code: [Output Only] A warning code, if applicable. For example,
39540	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39541	// the response.
39542	//
39543	// Possible values:
39544	//   "CLEANUP_FAILED"
39545	//   "DEPRECATED_RESOURCE_USED"
39546	//   "DEPRECATED_TYPE_USED"
39547	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39548	//   "EXPERIMENTAL_TYPE_USED"
39549	//   "EXTERNAL_API_WARNING"
39550	//   "FIELD_VALUE_OVERRIDEN"
39551	//   "INJECTED_KERNELS_DEPRECATED"
39552	//   "MISSING_TYPE_DEPENDENCY"
39553	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39554	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39555	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39556	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39557	//   "NEXT_HOP_NOT_RUNNING"
39558	//   "NOT_CRITICAL_ERROR"
39559	//   "NO_RESULTS_ON_PAGE"
39560	//   "REQUIRED_TOS_AGREEMENT"
39561	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39562	//   "RESOURCE_NOT_DELETED"
39563	//   "SCHEMA_VALIDATION_IGNORED"
39564	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39565	//   "UNDECLARED_PROPERTIES"
39566	//   "UNREACHABLE"
39567	Code string `json:"code,omitempty"`
39568
39569	// Data: [Output Only] Metadata about this warning in key: value format.
39570	// For example:
39571	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39572	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
39573
39574	// Message: [Output Only] A human-readable description of the warning
39575	// code.
39576	Message string `json:"message,omitempty"`
39577
39578	// ForceSendFields is a list of field names (e.g. "Code") to
39579	// unconditionally include in API requests. By default, fields with
39580	// empty values are omitted from API requests. However, any non-pointer,
39581	// non-interface field appearing in ForceSendFields will be sent to the
39582	// server regardless of whether the field is empty or not. This may be
39583	// used to include empty fields in Patch requests.
39584	ForceSendFields []string `json:"-"`
39585
39586	// NullFields is a list of field names (e.g. "Code") to include in API
39587	// requests with the JSON null value. By default, fields with empty
39588	// values are omitted from API requests. However, any field with an
39589	// empty value appearing in NullFields will be sent to the server as
39590	// null. It is an error if a field in this list has a non-empty value.
39591	// This may be used to include null fields in Patch requests.
39592	NullFields []string `json:"-"`
39593}
39594
39595func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
39596	type NoMethod TargetInstancesScopedListWarning
39597	raw := NoMethod(*s)
39598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39599}
39600
39601type TargetInstancesScopedListWarningData struct {
39602	// Key: [Output Only] A key that provides more detail on the warning
39603	// being returned. For example, for warnings where there are no results
39604	// in a list request for a particular zone, this key might be scope and
39605	// the key value might be the zone name. Other examples might be a key
39606	// indicating a deprecated resource and a suggested replacement, or a
39607	// warning about invalid network settings (for example, if an instance
39608	// attempts to perform IP forwarding but is not enabled for IP
39609	// forwarding).
39610	Key string `json:"key,omitempty"`
39611
39612	// Value: [Output Only] A warning data value corresponding to the key.
39613	Value string `json:"value,omitempty"`
39614
39615	// ForceSendFields is a list of field names (e.g. "Key") to
39616	// unconditionally include in API requests. By default, fields with
39617	// empty values are omitted from API requests. However, any non-pointer,
39618	// non-interface field appearing in ForceSendFields will be sent to the
39619	// server regardless of whether the field is empty or not. This may be
39620	// used to include empty fields in Patch requests.
39621	ForceSendFields []string `json:"-"`
39622
39623	// NullFields is a list of field names (e.g. "Key") to include in API
39624	// requests with the JSON null value. By default, fields with empty
39625	// values are omitted from API requests. However, any field with an
39626	// empty value appearing in NullFields will be sent to the server as
39627	// null. It is an error if a field in this list has a non-empty value.
39628	// This may be used to include null fields in Patch requests.
39629	NullFields []string `json:"-"`
39630}
39631
39632func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
39633	type NoMethod TargetInstancesScopedListWarningData
39634	raw := NoMethod(*s)
39635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39636}
39637
39638// TargetPool: Represents a Target Pool resource.
39639//
39640// Target pools are used for network TCP/UDP load balancing. A target
39641// pool references member instances, an associated legacy
39642// HttpHealthCheck resource, and, optionally, a backup target pool. For
39643// more information, read Using target pools. (== resource_for
39644// {$api_version}.targetPools ==)
39645type TargetPool struct {
39646	// BackupPool: This field is applicable only when the containing target
39647	// pool is serving a forwarding rule as the primary pool, and its
39648	// failoverRatio field is properly set to a value between [0,
39649	// 1].
39650	//
39651	// backupPool and failoverRatio together define the fallback behavior of
39652	// the primary target pool: if the ratio of the healthy instances in the
39653	// primary pool is at or below failoverRatio, traffic arriving at the
39654	// load-balanced IP will be directed to the backup pool.
39655	//
39656	// In case where failoverRatio and backupPool are not set, or all the
39657	// instances in the backup pool are unhealthy, the traffic will be
39658	// directed back to the primary pool in the "force" mode, where traffic
39659	// will be spread to the healthy instances with the best effort, or to
39660	// all instances when no instance is healthy.
39661	BackupPool string `json:"backupPool,omitempty"`
39662
39663	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39664	// format.
39665	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39666
39667	// Description: An optional description of this resource. Provide this
39668	// property when you create the resource.
39669	Description string `json:"description,omitempty"`
39670
39671	// FailoverRatio: This field is applicable only when the containing
39672	// target pool is serving a forwarding rule as the primary pool (i.e.,
39673	// not as a backup pool to some other target pool). The value of the
39674	// field must be in [0, 1].
39675	//
39676	// If set, backupPool must also be set. They together define the
39677	// fallback behavior of the primary target pool: if the ratio of the
39678	// healthy instances in the primary pool is at or below this number,
39679	// traffic arriving at the load-balanced IP will be directed to the
39680	// backup pool.
39681	//
39682	// In case where failoverRatio is not set or all the instances in the
39683	// backup pool are unhealthy, the traffic will be directed back to the
39684	// primary pool in the "force" mode, where traffic will be spread to the
39685	// healthy instances with the best effort, or to all instances when no
39686	// instance is healthy.
39687	FailoverRatio float64 `json:"failoverRatio,omitempty"`
39688
39689	// HealthChecks: The URL of the HttpHealthCheck resource. A member
39690	// instance in this pool is considered healthy if and only if the health
39691	// checks pass. An empty list means all member instances will be
39692	// considered healthy at all times. Only HttpHealthChecks are supported.
39693	// Only one health check may be specified.
39694	HealthChecks []string `json:"healthChecks,omitempty"`
39695
39696	// Id: [Output Only] The unique identifier for the resource. This
39697	// identifier is defined by the server.
39698	Id uint64 `json:"id,omitempty,string"`
39699
39700	// Instances: A list of resource URLs to the virtual machine instances
39701	// serving this pool. They must live in zones contained in the same
39702	// region as this pool.
39703	Instances []string `json:"instances,omitempty"`
39704
39705	// Kind: [Output Only] Type of the resource. Always compute#targetPool
39706	// for target pools.
39707	Kind string `json:"kind,omitempty"`
39708
39709	// Name: Name of the resource. Provided by the client when the resource
39710	// is created. The name must be 1-63 characters long, and comply with
39711	// RFC1035. Specifically, the name must be 1-63 characters long and
39712	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39713	// the first character must be a lowercase letter, and all following
39714	// characters must be a dash, lowercase letter, or digit, except the
39715	// last character, which cannot be a dash.
39716	Name string `json:"name,omitempty"`
39717
39718	// Region: [Output Only] URL of the region where the target pool
39719	// resides.
39720	Region string `json:"region,omitempty"`
39721
39722	// SelfLink: [Output Only] Server-defined URL for the resource.
39723	SelfLink string `json:"selfLink,omitempty"`
39724
39725	// SessionAffinity: Session affinity option, must be one of the
39726	// following values:
39727	// NONE: Connections from the same client IP may go to any instance in
39728	// the pool.
39729	// CLIENT_IP: Connections from the same client IP will go to the same
39730	// instance in the pool while that instance remains
39731	// healthy.
39732	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
39733	// protocol will go to the same instance in the pool while that instance
39734	// remains healthy.
39735	//
39736	// Possible values:
39737	//   "CLIENT_IP"
39738	//   "CLIENT_IP_PORT_PROTO"
39739	//   "CLIENT_IP_PROTO"
39740	//   "GENERATED_COOKIE"
39741	//   "HEADER_FIELD"
39742	//   "HTTP_COOKIE"
39743	//   "NONE"
39744	SessionAffinity string `json:"sessionAffinity,omitempty"`
39745
39746	// ServerResponse contains the HTTP response code and headers from the
39747	// server.
39748	googleapi.ServerResponse `json:"-"`
39749
39750	// ForceSendFields is a list of field names (e.g. "BackupPool") to
39751	// unconditionally include in API requests. By default, fields with
39752	// empty values are omitted from API requests. However, any non-pointer,
39753	// non-interface field appearing in ForceSendFields will be sent to the
39754	// server regardless of whether the field is empty or not. This may be
39755	// used to include empty fields in Patch requests.
39756	ForceSendFields []string `json:"-"`
39757
39758	// NullFields is a list of field names (e.g. "BackupPool") to include in
39759	// API requests with the JSON null value. By default, fields with empty
39760	// values are omitted from API requests. However, any field with an
39761	// empty value appearing in NullFields will be sent to the server as
39762	// null. It is an error if a field in this list has a non-empty value.
39763	// This may be used to include null fields in Patch requests.
39764	NullFields []string `json:"-"`
39765}
39766
39767func (s *TargetPool) MarshalJSON() ([]byte, error) {
39768	type NoMethod TargetPool
39769	raw := NoMethod(*s)
39770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39771}
39772
39773func (s *TargetPool) UnmarshalJSON(data []byte) error {
39774	type NoMethod TargetPool
39775	var s1 struct {
39776		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
39777		*NoMethod
39778	}
39779	s1.NoMethod = (*NoMethod)(s)
39780	if err := json.Unmarshal(data, &s1); err != nil {
39781		return err
39782	}
39783	s.FailoverRatio = float64(s1.FailoverRatio)
39784	return nil
39785}
39786
39787type TargetPoolAggregatedList struct {
39788	// Id: [Output Only] Unique identifier for the resource; defined by the
39789	// server.
39790	Id string `json:"id,omitempty"`
39791
39792	// Items: A list of TargetPool resources.
39793	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
39794
39795	// Kind: [Output Only] Type of resource. Always
39796	// compute#targetPoolAggregatedList for aggregated lists of target
39797	// pools.
39798	Kind string `json:"kind,omitempty"`
39799
39800	// NextPageToken: [Output Only] This token allows you to get the next
39801	// page of results for list requests. If the number of results is larger
39802	// than maxResults, use the nextPageToken as a value for the query
39803	// parameter pageToken in the next list request. Subsequent list
39804	// requests will have their own nextPageToken to continue paging through
39805	// the results.
39806	NextPageToken string `json:"nextPageToken,omitempty"`
39807
39808	// SelfLink: [Output Only] Server-defined URL for this resource.
39809	SelfLink string `json:"selfLink,omitempty"`
39810
39811	// Warning: [Output Only] Informational warning message.
39812	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
39813
39814	// ServerResponse contains the HTTP response code and headers from the
39815	// server.
39816	googleapi.ServerResponse `json:"-"`
39817
39818	// ForceSendFields is a list of field names (e.g. "Id") to
39819	// unconditionally include in API requests. By default, fields with
39820	// empty values are omitted from API requests. However, any non-pointer,
39821	// non-interface field appearing in ForceSendFields will be sent to the
39822	// server regardless of whether the field is empty or not. This may be
39823	// used to include empty fields in Patch requests.
39824	ForceSendFields []string `json:"-"`
39825
39826	// NullFields is a list of field names (e.g. "Id") to include in API
39827	// requests with the JSON null value. By default, fields with empty
39828	// values are omitted from API requests. However, any field with an
39829	// empty value appearing in NullFields will be sent to the server as
39830	// null. It is an error if a field in this list has a non-empty value.
39831	// This may be used to include null fields in Patch requests.
39832	NullFields []string `json:"-"`
39833}
39834
39835func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
39836	type NoMethod TargetPoolAggregatedList
39837	raw := NoMethod(*s)
39838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39839}
39840
39841// TargetPoolAggregatedListWarning: [Output Only] Informational warning
39842// message.
39843type TargetPoolAggregatedListWarning struct {
39844	// Code: [Output Only] A warning code, if applicable. For example,
39845	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39846	// the response.
39847	//
39848	// Possible values:
39849	//   "CLEANUP_FAILED"
39850	//   "DEPRECATED_RESOURCE_USED"
39851	//   "DEPRECATED_TYPE_USED"
39852	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39853	//   "EXPERIMENTAL_TYPE_USED"
39854	//   "EXTERNAL_API_WARNING"
39855	//   "FIELD_VALUE_OVERRIDEN"
39856	//   "INJECTED_KERNELS_DEPRECATED"
39857	//   "MISSING_TYPE_DEPENDENCY"
39858	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39859	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39860	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39861	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39862	//   "NEXT_HOP_NOT_RUNNING"
39863	//   "NOT_CRITICAL_ERROR"
39864	//   "NO_RESULTS_ON_PAGE"
39865	//   "REQUIRED_TOS_AGREEMENT"
39866	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39867	//   "RESOURCE_NOT_DELETED"
39868	//   "SCHEMA_VALIDATION_IGNORED"
39869	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39870	//   "UNDECLARED_PROPERTIES"
39871	//   "UNREACHABLE"
39872	Code string `json:"code,omitempty"`
39873
39874	// Data: [Output Only] Metadata about this warning in key: value format.
39875	// For example:
39876	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39877	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
39878
39879	// Message: [Output Only] A human-readable description of the warning
39880	// code.
39881	Message string `json:"message,omitempty"`
39882
39883	// ForceSendFields is a list of field names (e.g. "Code") to
39884	// unconditionally include in API requests. By default, fields with
39885	// empty values are omitted from API requests. However, any non-pointer,
39886	// non-interface field appearing in ForceSendFields will be sent to the
39887	// server regardless of whether the field is empty or not. This may be
39888	// used to include empty fields in Patch requests.
39889	ForceSendFields []string `json:"-"`
39890
39891	// NullFields is a list of field names (e.g. "Code") to include in API
39892	// requests with the JSON null value. By default, fields with empty
39893	// values are omitted from API requests. However, any field with an
39894	// empty value appearing in NullFields will be sent to the server as
39895	// null. It is an error if a field in this list has a non-empty value.
39896	// This may be used to include null fields in Patch requests.
39897	NullFields []string `json:"-"`
39898}
39899
39900func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
39901	type NoMethod TargetPoolAggregatedListWarning
39902	raw := NoMethod(*s)
39903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39904}
39905
39906type TargetPoolAggregatedListWarningData struct {
39907	// Key: [Output Only] A key that provides more detail on the warning
39908	// being returned. For example, for warnings where there are no results
39909	// in a list request for a particular zone, this key might be scope and
39910	// the key value might be the zone name. Other examples might be a key
39911	// indicating a deprecated resource and a suggested replacement, or a
39912	// warning about invalid network settings (for example, if an instance
39913	// attempts to perform IP forwarding but is not enabled for IP
39914	// forwarding).
39915	Key string `json:"key,omitempty"`
39916
39917	// Value: [Output Only] A warning data value corresponding to the key.
39918	Value string `json:"value,omitempty"`
39919
39920	// ForceSendFields is a list of field names (e.g. "Key") to
39921	// unconditionally include in API requests. By default, fields with
39922	// empty values are omitted from API requests. However, any non-pointer,
39923	// non-interface field appearing in ForceSendFields will be sent to the
39924	// server regardless of whether the field is empty or not. This may be
39925	// used to include empty fields in Patch requests.
39926	ForceSendFields []string `json:"-"`
39927
39928	// NullFields is a list of field names (e.g. "Key") to include in API
39929	// requests with the JSON null value. By default, fields with empty
39930	// values are omitted from API requests. However, any field with an
39931	// empty value appearing in NullFields will be sent to the server as
39932	// null. It is an error if a field in this list has a non-empty value.
39933	// This may be used to include null fields in Patch requests.
39934	NullFields []string `json:"-"`
39935}
39936
39937func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
39938	type NoMethod TargetPoolAggregatedListWarningData
39939	raw := NoMethod(*s)
39940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39941}
39942
39943type TargetPoolInstanceHealth struct {
39944	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
39945
39946	// Kind: [Output Only] Type of resource. Always
39947	// compute#targetPoolInstanceHealth when checking the health of an
39948	// instance.
39949	Kind string `json:"kind,omitempty"`
39950
39951	// ServerResponse contains the HTTP response code and headers from the
39952	// server.
39953	googleapi.ServerResponse `json:"-"`
39954
39955	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
39956	// unconditionally include in API requests. By default, fields with
39957	// empty values are omitted from API requests. However, any non-pointer,
39958	// non-interface field appearing in ForceSendFields will be sent to the
39959	// server regardless of whether the field is empty or not. This may be
39960	// used to include empty fields in Patch requests.
39961	ForceSendFields []string `json:"-"`
39962
39963	// NullFields is a list of field names (e.g. "HealthStatus") to include
39964	// in API requests with the JSON null value. By default, fields with
39965	// empty values are omitted from API requests. However, any field with
39966	// an empty value appearing in NullFields will be sent to the server as
39967	// null. It is an error if a field in this list has a non-empty value.
39968	// This may be used to include null fields in Patch requests.
39969	NullFields []string `json:"-"`
39970}
39971
39972func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
39973	type NoMethod TargetPoolInstanceHealth
39974	raw := NoMethod(*s)
39975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39976}
39977
39978// TargetPoolList: Contains a list of TargetPool resources.
39979type TargetPoolList struct {
39980	// Id: [Output Only] Unique identifier for the resource; defined by the
39981	// server.
39982	Id string `json:"id,omitempty"`
39983
39984	// Items: A list of TargetPool resources.
39985	Items []*TargetPool `json:"items,omitempty"`
39986
39987	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
39988	// for lists of target pools.
39989	Kind string `json:"kind,omitempty"`
39990
39991	// NextPageToken: [Output Only] This token allows you to get the next
39992	// page of results for list requests. If the number of results is larger
39993	// than maxResults, use the nextPageToken as a value for the query
39994	// parameter pageToken in the next list request. Subsequent list
39995	// requests will have their own nextPageToken to continue paging through
39996	// the results.
39997	NextPageToken string `json:"nextPageToken,omitempty"`
39998
39999	// SelfLink: [Output Only] Server-defined URL for this resource.
40000	SelfLink string `json:"selfLink,omitempty"`
40001
40002	// Warning: [Output Only] Informational warning message.
40003	Warning *TargetPoolListWarning `json:"warning,omitempty"`
40004
40005	// ServerResponse contains the HTTP response code and headers from the
40006	// server.
40007	googleapi.ServerResponse `json:"-"`
40008
40009	// ForceSendFields is a list of field names (e.g. "Id") to
40010	// unconditionally include in API requests. By default, fields with
40011	// empty values are omitted from API requests. However, any non-pointer,
40012	// non-interface field appearing in ForceSendFields will be sent to the
40013	// server regardless of whether the field is empty or not. This may be
40014	// used to include empty fields in Patch requests.
40015	ForceSendFields []string `json:"-"`
40016
40017	// NullFields is a list of field names (e.g. "Id") to include in API
40018	// requests with the JSON null value. By default, fields with empty
40019	// values are omitted from API requests. However, any field with an
40020	// empty value appearing in NullFields will be sent to the server as
40021	// null. It is an error if a field in this list has a non-empty value.
40022	// This may be used to include null fields in Patch requests.
40023	NullFields []string `json:"-"`
40024}
40025
40026func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
40027	type NoMethod TargetPoolList
40028	raw := NoMethod(*s)
40029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40030}
40031
40032// TargetPoolListWarning: [Output Only] Informational warning message.
40033type TargetPoolListWarning struct {
40034	// Code: [Output Only] A warning code, if applicable. For example,
40035	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40036	// the response.
40037	//
40038	// Possible values:
40039	//   "CLEANUP_FAILED"
40040	//   "DEPRECATED_RESOURCE_USED"
40041	//   "DEPRECATED_TYPE_USED"
40042	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40043	//   "EXPERIMENTAL_TYPE_USED"
40044	//   "EXTERNAL_API_WARNING"
40045	//   "FIELD_VALUE_OVERRIDEN"
40046	//   "INJECTED_KERNELS_DEPRECATED"
40047	//   "MISSING_TYPE_DEPENDENCY"
40048	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40049	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40050	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40051	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40052	//   "NEXT_HOP_NOT_RUNNING"
40053	//   "NOT_CRITICAL_ERROR"
40054	//   "NO_RESULTS_ON_PAGE"
40055	//   "REQUIRED_TOS_AGREEMENT"
40056	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40057	//   "RESOURCE_NOT_DELETED"
40058	//   "SCHEMA_VALIDATION_IGNORED"
40059	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40060	//   "UNDECLARED_PROPERTIES"
40061	//   "UNREACHABLE"
40062	Code string `json:"code,omitempty"`
40063
40064	// Data: [Output Only] Metadata about this warning in key: value format.
40065	// For example:
40066	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40067	Data []*TargetPoolListWarningData `json:"data,omitempty"`
40068
40069	// Message: [Output Only] A human-readable description of the warning
40070	// code.
40071	Message string `json:"message,omitempty"`
40072
40073	// ForceSendFields is a list of field names (e.g. "Code") to
40074	// unconditionally include in API requests. By default, fields with
40075	// empty values are omitted from API requests. However, any non-pointer,
40076	// non-interface field appearing in ForceSendFields will be sent to the
40077	// server regardless of whether the field is empty or not. This may be
40078	// used to include empty fields in Patch requests.
40079	ForceSendFields []string `json:"-"`
40080
40081	// NullFields is a list of field names (e.g. "Code") to include in API
40082	// requests with the JSON null value. By default, fields with empty
40083	// values are omitted from API requests. However, any field with an
40084	// empty value appearing in NullFields will be sent to the server as
40085	// null. It is an error if a field in this list has a non-empty value.
40086	// This may be used to include null fields in Patch requests.
40087	NullFields []string `json:"-"`
40088}
40089
40090func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
40091	type NoMethod TargetPoolListWarning
40092	raw := NoMethod(*s)
40093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40094}
40095
40096type TargetPoolListWarningData struct {
40097	// Key: [Output Only] A key that provides more detail on the warning
40098	// being returned. For example, for warnings where there are no results
40099	// in a list request for a particular zone, this key might be scope and
40100	// the key value might be the zone name. Other examples might be a key
40101	// indicating a deprecated resource and a suggested replacement, or a
40102	// warning about invalid network settings (for example, if an instance
40103	// attempts to perform IP forwarding but is not enabled for IP
40104	// forwarding).
40105	Key string `json:"key,omitempty"`
40106
40107	// Value: [Output Only] A warning data value corresponding to the key.
40108	Value string `json:"value,omitempty"`
40109
40110	// ForceSendFields is a list of field names (e.g. "Key") to
40111	// unconditionally include in API requests. By default, fields with
40112	// empty values are omitted from API requests. However, any non-pointer,
40113	// non-interface field appearing in ForceSendFields will be sent to the
40114	// server regardless of whether the field is empty or not. This may be
40115	// used to include empty fields in Patch requests.
40116	ForceSendFields []string `json:"-"`
40117
40118	// NullFields is a list of field names (e.g. "Key") to include in API
40119	// requests with the JSON null value. By default, fields with empty
40120	// values are omitted from API requests. However, any field with an
40121	// empty value appearing in NullFields will be sent to the server as
40122	// null. It is an error if a field in this list has a non-empty value.
40123	// This may be used to include null fields in Patch requests.
40124	NullFields []string `json:"-"`
40125}
40126
40127func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
40128	type NoMethod TargetPoolListWarningData
40129	raw := NoMethod(*s)
40130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40131}
40132
40133type TargetPoolsAddHealthCheckRequest struct {
40134	// HealthChecks: The HttpHealthCheck to add to the target pool.
40135	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
40136
40137	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
40138	// unconditionally include in API requests. By default, fields with
40139	// empty values are omitted from API requests. However, any non-pointer,
40140	// non-interface field appearing in ForceSendFields will be sent to the
40141	// server regardless of whether the field is empty or not. This may be
40142	// used to include empty fields in Patch requests.
40143	ForceSendFields []string `json:"-"`
40144
40145	// NullFields is a list of field names (e.g. "HealthChecks") to include
40146	// in API requests with the JSON null value. By default, fields with
40147	// empty values are omitted from API requests. However, any field with
40148	// an empty value appearing in NullFields will be sent to the server as
40149	// null. It is an error if a field in this list has a non-empty value.
40150	// This may be used to include null fields in Patch requests.
40151	NullFields []string `json:"-"`
40152}
40153
40154func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
40155	type NoMethod TargetPoolsAddHealthCheckRequest
40156	raw := NoMethod(*s)
40157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40158}
40159
40160type TargetPoolsAddInstanceRequest struct {
40161	// Instances: A full or partial URL to an instance to add to this target
40162	// pool. This can be a full or partial URL. For example, the following
40163	// are valid URLs:
40164	// -
40165	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
40166	// - projects/project-id/zones/zone/instances/instance-name
40167	// - zones/zone/instances/instance-name
40168	Instances []*InstanceReference `json:"instances,omitempty"`
40169
40170	// ForceSendFields is a list of field names (e.g. "Instances") to
40171	// unconditionally include in API requests. By default, fields with
40172	// empty values are omitted from API requests. However, any non-pointer,
40173	// non-interface field appearing in ForceSendFields will be sent to the
40174	// server regardless of whether the field is empty or not. This may be
40175	// used to include empty fields in Patch requests.
40176	ForceSendFields []string `json:"-"`
40177
40178	// NullFields is a list of field names (e.g. "Instances") to include in
40179	// API requests with the JSON null value. By default, fields with empty
40180	// values are omitted from API requests. However, any field with an
40181	// empty value appearing in NullFields will be sent to the server as
40182	// null. It is an error if a field in this list has a non-empty value.
40183	// This may be used to include null fields in Patch requests.
40184	NullFields []string `json:"-"`
40185}
40186
40187func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
40188	type NoMethod TargetPoolsAddInstanceRequest
40189	raw := NoMethod(*s)
40190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40191}
40192
40193type TargetPoolsRemoveHealthCheckRequest struct {
40194	// HealthChecks: Health check URL to be removed. This can be a full or
40195	// valid partial URL. For example, the following are valid URLs:
40196	// -
40197	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
40198	// - projects/project/global/httpHealthChecks/health-check
40199	// - global/httpHealthChecks/health-check
40200	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
40201
40202	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
40203	// unconditionally include in API requests. By default, fields with
40204	// empty values are omitted from API requests. However, any non-pointer,
40205	// non-interface field appearing in ForceSendFields will be sent to the
40206	// server regardless of whether the field is empty or not. This may be
40207	// used to include empty fields in Patch requests.
40208	ForceSendFields []string `json:"-"`
40209
40210	// NullFields is a list of field names (e.g. "HealthChecks") to include
40211	// in API requests with the JSON null value. By default, fields with
40212	// empty values are omitted from API requests. However, any field with
40213	// an empty value appearing in NullFields will be sent to the server as
40214	// null. It is an error if a field in this list has a non-empty value.
40215	// This may be used to include null fields in Patch requests.
40216	NullFields []string `json:"-"`
40217}
40218
40219func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
40220	type NoMethod TargetPoolsRemoveHealthCheckRequest
40221	raw := NoMethod(*s)
40222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40223}
40224
40225type TargetPoolsRemoveInstanceRequest struct {
40226	// Instances: URLs of the instances to be removed from target pool.
40227	Instances []*InstanceReference `json:"instances,omitempty"`
40228
40229	// ForceSendFields is a list of field names (e.g. "Instances") to
40230	// unconditionally include in API requests. By default, fields with
40231	// empty values are omitted from API requests. However, any non-pointer,
40232	// non-interface field appearing in ForceSendFields will be sent to the
40233	// server regardless of whether the field is empty or not. This may be
40234	// used to include empty fields in Patch requests.
40235	ForceSendFields []string `json:"-"`
40236
40237	// NullFields is a list of field names (e.g. "Instances") to include in
40238	// API requests with the JSON null value. By default, fields with empty
40239	// values are omitted from API requests. However, any field with an
40240	// empty value appearing in NullFields will be sent to the server as
40241	// null. It is an error if a field in this list has a non-empty value.
40242	// This may be used to include null fields in Patch requests.
40243	NullFields []string `json:"-"`
40244}
40245
40246func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
40247	type NoMethod TargetPoolsRemoveInstanceRequest
40248	raw := NoMethod(*s)
40249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40250}
40251
40252type TargetPoolsScopedList struct {
40253	// TargetPools: A list of target pools contained in this scope.
40254	TargetPools []*TargetPool `json:"targetPools,omitempty"`
40255
40256	// Warning: Informational warning which replaces the list of addresses
40257	// when the list is empty.
40258	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
40259
40260	// ForceSendFields is a list of field names (e.g. "TargetPools") to
40261	// unconditionally include in API requests. By default, fields with
40262	// empty values are omitted from API requests. However, any non-pointer,
40263	// non-interface field appearing in ForceSendFields will be sent to the
40264	// server regardless of whether the field is empty or not. This may be
40265	// used to include empty fields in Patch requests.
40266	ForceSendFields []string `json:"-"`
40267
40268	// NullFields is a list of field names (e.g. "TargetPools") to include
40269	// in API requests with the JSON null value. By default, fields with
40270	// empty values are omitted from API requests. However, any field with
40271	// an empty value appearing in NullFields will be sent to the server as
40272	// null. It is an error if a field in this list has a non-empty value.
40273	// This may be used to include null fields in Patch requests.
40274	NullFields []string `json:"-"`
40275}
40276
40277func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
40278	type NoMethod TargetPoolsScopedList
40279	raw := NoMethod(*s)
40280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40281}
40282
40283// TargetPoolsScopedListWarning: Informational warning which replaces
40284// the list of addresses when the list is empty.
40285type TargetPoolsScopedListWarning struct {
40286	// Code: [Output Only] A warning code, if applicable. For example,
40287	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40288	// the response.
40289	//
40290	// Possible values:
40291	//   "CLEANUP_FAILED"
40292	//   "DEPRECATED_RESOURCE_USED"
40293	//   "DEPRECATED_TYPE_USED"
40294	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40295	//   "EXPERIMENTAL_TYPE_USED"
40296	//   "EXTERNAL_API_WARNING"
40297	//   "FIELD_VALUE_OVERRIDEN"
40298	//   "INJECTED_KERNELS_DEPRECATED"
40299	//   "MISSING_TYPE_DEPENDENCY"
40300	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40301	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40302	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40303	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40304	//   "NEXT_HOP_NOT_RUNNING"
40305	//   "NOT_CRITICAL_ERROR"
40306	//   "NO_RESULTS_ON_PAGE"
40307	//   "REQUIRED_TOS_AGREEMENT"
40308	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40309	//   "RESOURCE_NOT_DELETED"
40310	//   "SCHEMA_VALIDATION_IGNORED"
40311	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40312	//   "UNDECLARED_PROPERTIES"
40313	//   "UNREACHABLE"
40314	Code string `json:"code,omitempty"`
40315
40316	// Data: [Output Only] Metadata about this warning in key: value format.
40317	// For example:
40318	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40319	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
40320
40321	// Message: [Output Only] A human-readable description of the warning
40322	// code.
40323	Message string `json:"message,omitempty"`
40324
40325	// ForceSendFields is a list of field names (e.g. "Code") to
40326	// unconditionally include in API requests. By default, fields with
40327	// empty values are omitted from API requests. However, any non-pointer,
40328	// non-interface field appearing in ForceSendFields will be sent to the
40329	// server regardless of whether the field is empty or not. This may be
40330	// used to include empty fields in Patch requests.
40331	ForceSendFields []string `json:"-"`
40332
40333	// NullFields is a list of field names (e.g. "Code") to include in API
40334	// requests with the JSON null value. By default, fields with empty
40335	// values are omitted from API requests. However, any field with an
40336	// empty value appearing in NullFields will be sent to the server as
40337	// null. It is an error if a field in this list has a non-empty value.
40338	// This may be used to include null fields in Patch requests.
40339	NullFields []string `json:"-"`
40340}
40341
40342func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
40343	type NoMethod TargetPoolsScopedListWarning
40344	raw := NoMethod(*s)
40345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40346}
40347
40348type TargetPoolsScopedListWarningData struct {
40349	// Key: [Output Only] A key that provides more detail on the warning
40350	// being returned. For example, for warnings where there are no results
40351	// in a list request for a particular zone, this key might be scope and
40352	// the key value might be the zone name. Other examples might be a key
40353	// indicating a deprecated resource and a suggested replacement, or a
40354	// warning about invalid network settings (for example, if an instance
40355	// attempts to perform IP forwarding but is not enabled for IP
40356	// forwarding).
40357	Key string `json:"key,omitempty"`
40358
40359	// Value: [Output Only] A warning data value corresponding to the key.
40360	Value string `json:"value,omitempty"`
40361
40362	// ForceSendFields is a list of field names (e.g. "Key") to
40363	// unconditionally include in API requests. By default, fields with
40364	// empty values are omitted from API requests. However, any non-pointer,
40365	// non-interface field appearing in ForceSendFields will be sent to the
40366	// server regardless of whether the field is empty or not. This may be
40367	// used to include empty fields in Patch requests.
40368	ForceSendFields []string `json:"-"`
40369
40370	// NullFields is a list of field names (e.g. "Key") to include in API
40371	// requests with the JSON null value. By default, fields with empty
40372	// values are omitted from API requests. However, any field with an
40373	// empty value appearing in NullFields will be sent to the server as
40374	// null. It is an error if a field in this list has a non-empty value.
40375	// This may be used to include null fields in Patch requests.
40376	NullFields []string `json:"-"`
40377}
40378
40379func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
40380	type NoMethod TargetPoolsScopedListWarningData
40381	raw := NoMethod(*s)
40382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40383}
40384
40385type TargetReference struct {
40386	Target string `json:"target,omitempty"`
40387
40388	// ForceSendFields is a list of field names (e.g. "Target") to
40389	// unconditionally include in API requests. By default, fields with
40390	// empty values are omitted from API requests. However, any non-pointer,
40391	// non-interface field appearing in ForceSendFields will be sent to the
40392	// server regardless of whether the field is empty or not. This may be
40393	// used to include empty fields in Patch requests.
40394	ForceSendFields []string `json:"-"`
40395
40396	// NullFields is a list of field names (e.g. "Target") to include in API
40397	// requests with the JSON null value. By default, fields with empty
40398	// values are omitted from API requests. However, any field with an
40399	// empty value appearing in NullFields will be sent to the server as
40400	// null. It is an error if a field in this list has a non-empty value.
40401	// This may be used to include null fields in Patch requests.
40402	NullFields []string `json:"-"`
40403}
40404
40405func (s *TargetReference) MarshalJSON() ([]byte, error) {
40406	type NoMethod TargetReference
40407	raw := NoMethod(*s)
40408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40409}
40410
40411type TargetSslProxiesSetBackendServiceRequest struct {
40412	// Service: The URL of the new BackendService resource for the
40413	// targetSslProxy.
40414	Service string `json:"service,omitempty"`
40415
40416	// ForceSendFields is a list of field names (e.g. "Service") to
40417	// unconditionally include in API requests. By default, fields with
40418	// empty values are omitted from API requests. However, any non-pointer,
40419	// non-interface field appearing in ForceSendFields will be sent to the
40420	// server regardless of whether the field is empty or not. This may be
40421	// used to include empty fields in Patch requests.
40422	ForceSendFields []string `json:"-"`
40423
40424	// NullFields is a list of field names (e.g. "Service") to include in
40425	// API requests with the JSON null value. By default, fields with empty
40426	// values are omitted from API requests. However, any field with an
40427	// empty value appearing in NullFields will be sent to the server as
40428	// null. It is an error if a field in this list has a non-empty value.
40429	// This may be used to include null fields in Patch requests.
40430	NullFields []string `json:"-"`
40431}
40432
40433func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
40434	type NoMethod TargetSslProxiesSetBackendServiceRequest
40435	raw := NoMethod(*s)
40436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40437}
40438
40439type TargetSslProxiesSetProxyHeaderRequest struct {
40440	// ProxyHeader: The new type of proxy header to append before sending
40441	// data to the backend. NONE or PROXY_V1 are allowed.
40442	//
40443	// Possible values:
40444	//   "NONE"
40445	//   "PROXY_V1"
40446	ProxyHeader string `json:"proxyHeader,omitempty"`
40447
40448	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
40449	// unconditionally include in API requests. By default, fields with
40450	// empty values are omitted from API requests. However, any non-pointer,
40451	// non-interface field appearing in ForceSendFields will be sent to the
40452	// server regardless of whether the field is empty or not. This may be
40453	// used to include empty fields in Patch requests.
40454	ForceSendFields []string `json:"-"`
40455
40456	// NullFields is a list of field names (e.g. "ProxyHeader") to include
40457	// in API requests with the JSON null value. By default, fields with
40458	// empty values are omitted from API requests. However, any field with
40459	// an empty value appearing in NullFields will be sent to the server as
40460	// null. It is an error if a field in this list has a non-empty value.
40461	// This may be used to include null fields in Patch requests.
40462	NullFields []string `json:"-"`
40463}
40464
40465func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
40466	type NoMethod TargetSslProxiesSetProxyHeaderRequest
40467	raw := NoMethod(*s)
40468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40469}
40470
40471type TargetSslProxiesSetSslCertificatesRequest struct {
40472	// SslCertificates: New set of URLs to SslCertificate resources to
40473	// associate with this TargetSslProxy. Currently exactly one ssl
40474	// certificate must be specified.
40475	SslCertificates []string `json:"sslCertificates,omitempty"`
40476
40477	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
40478	// unconditionally include in API requests. By default, fields with
40479	// empty values are omitted from API requests. However, any non-pointer,
40480	// non-interface field appearing in ForceSendFields will be sent to the
40481	// server regardless of whether the field is empty or not. This may be
40482	// used to include empty fields in Patch requests.
40483	ForceSendFields []string `json:"-"`
40484
40485	// NullFields is a list of field names (e.g. "SslCertificates") to
40486	// include in API requests with the JSON null value. By default, fields
40487	// with empty values are omitted from API requests. However, any field
40488	// with an empty value appearing in NullFields will be sent to the
40489	// server as null. It is an error if a field in this list has a
40490	// non-empty value. This may be used to include null fields in Patch
40491	// requests.
40492	NullFields []string `json:"-"`
40493}
40494
40495func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
40496	type NoMethod TargetSslProxiesSetSslCertificatesRequest
40497	raw := NoMethod(*s)
40498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40499}
40500
40501// TargetSslProxy: Represents a Target SSL Proxy resource.
40502//
40503// A target SSL proxy is a component of a SSL Proxy load balancer.
40504// Global forwarding rules reference a target SSL proxy, and the target
40505// proxy then references an external backend service. For more
40506// information, read Using Target Proxies. (== resource_for
40507// {$api_version}.targetSslProxies ==)
40508type TargetSslProxy struct {
40509	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40510	// format.
40511	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40512
40513	// Description: An optional description of this resource. Provide this
40514	// property when you create the resource.
40515	Description string `json:"description,omitempty"`
40516
40517	// Id: [Output Only] The unique identifier for the resource. This
40518	// identifier is defined by the server.
40519	Id uint64 `json:"id,omitempty,string"`
40520
40521	// Kind: [Output Only] Type of the resource. Always
40522	// compute#targetSslProxy for target SSL proxies.
40523	Kind string `json:"kind,omitempty"`
40524
40525	// Name: Name of the resource. Provided by the client when the resource
40526	// is created. The name must be 1-63 characters long, and comply with
40527	// RFC1035. Specifically, the name must be 1-63 characters long and
40528	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40529	// the first character must be a lowercase letter, and all following
40530	// characters must be a dash, lowercase letter, or digit, except the
40531	// last character, which cannot be a dash.
40532	Name string `json:"name,omitempty"`
40533
40534	// ProxyHeader: Specifies the type of proxy header to append before
40535	// sending data to the backend, either NONE or PROXY_V1. The default is
40536	// NONE.
40537	//
40538	// Possible values:
40539	//   "NONE"
40540	//   "PROXY_V1"
40541	ProxyHeader string `json:"proxyHeader,omitempty"`
40542
40543	// SelfLink: [Output Only] Server-defined URL for the resource.
40544	SelfLink string `json:"selfLink,omitempty"`
40545
40546	// Service: URL to the BackendService resource.
40547	Service string `json:"service,omitempty"`
40548
40549	// SslCertificates: URLs to SslCertificate resources that are used to
40550	// authenticate connections to Backends. At least one SSL certificate
40551	// must be specified. Currently, you may specify up to 15 SSL
40552	// certificates.
40553	SslCertificates []string `json:"sslCertificates,omitempty"`
40554
40555	// SslPolicy: URL of SslPolicy resource that will be associated with the
40556	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
40557	// not have any SSL policy configured.
40558	SslPolicy string `json:"sslPolicy,omitempty"`
40559
40560	// ServerResponse contains the HTTP response code and headers from the
40561	// server.
40562	googleapi.ServerResponse `json:"-"`
40563
40564	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40565	// to unconditionally include in API requests. By default, fields with
40566	// empty values are omitted from API requests. However, any non-pointer,
40567	// non-interface field appearing in ForceSendFields will be sent to the
40568	// server regardless of whether the field is empty or not. This may be
40569	// used to include empty fields in Patch requests.
40570	ForceSendFields []string `json:"-"`
40571
40572	// NullFields is a list of field names (e.g. "CreationTimestamp") to
40573	// include in API requests with the JSON null value. By default, fields
40574	// with empty values are omitted from API requests. However, any field
40575	// with an empty value appearing in NullFields will be sent to the
40576	// server as null. It is an error if a field in this list has a
40577	// non-empty value. This may be used to include null fields in Patch
40578	// requests.
40579	NullFields []string `json:"-"`
40580}
40581
40582func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
40583	type NoMethod TargetSslProxy
40584	raw := NoMethod(*s)
40585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40586}
40587
40588// TargetSslProxyList: Contains a list of TargetSslProxy resources.
40589type TargetSslProxyList struct {
40590	// Id: [Output Only] Unique identifier for the resource; defined by the
40591	// server.
40592	Id string `json:"id,omitempty"`
40593
40594	// Items: A list of TargetSslProxy resources.
40595	Items []*TargetSslProxy `json:"items,omitempty"`
40596
40597	// Kind: Type of resource.
40598	Kind string `json:"kind,omitempty"`
40599
40600	// NextPageToken: [Output Only] This token allows you to get the next
40601	// page of results for list requests. If the number of results is larger
40602	// than maxResults, use the nextPageToken as a value for the query
40603	// parameter pageToken in the next list request. Subsequent list
40604	// requests will have their own nextPageToken to continue paging through
40605	// the results.
40606	NextPageToken string `json:"nextPageToken,omitempty"`
40607
40608	// SelfLink: [Output Only] Server-defined URL for this resource.
40609	SelfLink string `json:"selfLink,omitempty"`
40610
40611	// Warning: [Output Only] Informational warning message.
40612	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
40613
40614	// ServerResponse contains the HTTP response code and headers from the
40615	// server.
40616	googleapi.ServerResponse `json:"-"`
40617
40618	// ForceSendFields is a list of field names (e.g. "Id") to
40619	// unconditionally include in API requests. By default, fields with
40620	// empty values are omitted from API requests. However, any non-pointer,
40621	// non-interface field appearing in ForceSendFields will be sent to the
40622	// server regardless of whether the field is empty or not. This may be
40623	// used to include empty fields in Patch requests.
40624	ForceSendFields []string `json:"-"`
40625
40626	// NullFields is a list of field names (e.g. "Id") to include in API
40627	// requests with the JSON null value. By default, fields with empty
40628	// values are omitted from API requests. However, any field with an
40629	// empty value appearing in NullFields will be sent to the server as
40630	// null. It is an error if a field in this list has a non-empty value.
40631	// This may be used to include null fields in Patch requests.
40632	NullFields []string `json:"-"`
40633}
40634
40635func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
40636	type NoMethod TargetSslProxyList
40637	raw := NoMethod(*s)
40638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40639}
40640
40641// TargetSslProxyListWarning: [Output Only] Informational warning
40642// message.
40643type TargetSslProxyListWarning struct {
40644	// Code: [Output Only] A warning code, if applicable. For example,
40645	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40646	// the response.
40647	//
40648	// Possible values:
40649	//   "CLEANUP_FAILED"
40650	//   "DEPRECATED_RESOURCE_USED"
40651	//   "DEPRECATED_TYPE_USED"
40652	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40653	//   "EXPERIMENTAL_TYPE_USED"
40654	//   "EXTERNAL_API_WARNING"
40655	//   "FIELD_VALUE_OVERRIDEN"
40656	//   "INJECTED_KERNELS_DEPRECATED"
40657	//   "MISSING_TYPE_DEPENDENCY"
40658	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40659	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40660	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40661	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40662	//   "NEXT_HOP_NOT_RUNNING"
40663	//   "NOT_CRITICAL_ERROR"
40664	//   "NO_RESULTS_ON_PAGE"
40665	//   "REQUIRED_TOS_AGREEMENT"
40666	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40667	//   "RESOURCE_NOT_DELETED"
40668	//   "SCHEMA_VALIDATION_IGNORED"
40669	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40670	//   "UNDECLARED_PROPERTIES"
40671	//   "UNREACHABLE"
40672	Code string `json:"code,omitempty"`
40673
40674	// Data: [Output Only] Metadata about this warning in key: value format.
40675	// For example:
40676	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40677	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
40678
40679	// Message: [Output Only] A human-readable description of the warning
40680	// code.
40681	Message string `json:"message,omitempty"`
40682
40683	// ForceSendFields is a list of field names (e.g. "Code") to
40684	// unconditionally include in API requests. By default, fields with
40685	// empty values are omitted from API requests. However, any non-pointer,
40686	// non-interface field appearing in ForceSendFields will be sent to the
40687	// server regardless of whether the field is empty or not. This may be
40688	// used to include empty fields in Patch requests.
40689	ForceSendFields []string `json:"-"`
40690
40691	// NullFields is a list of field names (e.g. "Code") to include in API
40692	// requests with the JSON null value. By default, fields with empty
40693	// values are omitted from API requests. However, any field with an
40694	// empty value appearing in NullFields will be sent to the server as
40695	// null. It is an error if a field in this list has a non-empty value.
40696	// This may be used to include null fields in Patch requests.
40697	NullFields []string `json:"-"`
40698}
40699
40700func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
40701	type NoMethod TargetSslProxyListWarning
40702	raw := NoMethod(*s)
40703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40704}
40705
40706type TargetSslProxyListWarningData struct {
40707	// Key: [Output Only] A key that provides more detail on the warning
40708	// being returned. For example, for warnings where there are no results
40709	// in a list request for a particular zone, this key might be scope and
40710	// the key value might be the zone name. Other examples might be a key
40711	// indicating a deprecated resource and a suggested replacement, or a
40712	// warning about invalid network settings (for example, if an instance
40713	// attempts to perform IP forwarding but is not enabled for IP
40714	// forwarding).
40715	Key string `json:"key,omitempty"`
40716
40717	// Value: [Output Only] A warning data value corresponding to the key.
40718	Value string `json:"value,omitempty"`
40719
40720	// ForceSendFields is a list of field names (e.g. "Key") to
40721	// unconditionally include in API requests. By default, fields with
40722	// empty values are omitted from API requests. However, any non-pointer,
40723	// non-interface field appearing in ForceSendFields will be sent to the
40724	// server regardless of whether the field is empty or not. This may be
40725	// used to include empty fields in Patch requests.
40726	ForceSendFields []string `json:"-"`
40727
40728	// NullFields is a list of field names (e.g. "Key") to include in API
40729	// requests with the JSON null value. By default, fields with empty
40730	// values are omitted from API requests. However, any field with an
40731	// empty value appearing in NullFields will be sent to the server as
40732	// null. It is an error if a field in this list has a non-empty value.
40733	// This may be used to include null fields in Patch requests.
40734	NullFields []string `json:"-"`
40735}
40736
40737func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
40738	type NoMethod TargetSslProxyListWarningData
40739	raw := NoMethod(*s)
40740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40741}
40742
40743type TargetTcpProxiesSetBackendServiceRequest struct {
40744	// Service: The URL of the new BackendService resource for the
40745	// targetTcpProxy.
40746	Service string `json:"service,omitempty"`
40747
40748	// ForceSendFields is a list of field names (e.g. "Service") to
40749	// unconditionally include in API requests. By default, fields with
40750	// empty values are omitted from API requests. However, any non-pointer,
40751	// non-interface field appearing in ForceSendFields will be sent to the
40752	// server regardless of whether the field is empty or not. This may be
40753	// used to include empty fields in Patch requests.
40754	ForceSendFields []string `json:"-"`
40755
40756	// NullFields is a list of field names (e.g. "Service") to include in
40757	// API requests with the JSON null value. By default, fields with empty
40758	// values are omitted from API requests. However, any field with an
40759	// empty value appearing in NullFields will be sent to the server as
40760	// null. It is an error if a field in this list has a non-empty value.
40761	// This may be used to include null fields in Patch requests.
40762	NullFields []string `json:"-"`
40763}
40764
40765func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
40766	type NoMethod TargetTcpProxiesSetBackendServiceRequest
40767	raw := NoMethod(*s)
40768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40769}
40770
40771type TargetTcpProxiesSetProxyHeaderRequest struct {
40772	// ProxyHeader: The new type of proxy header to append before sending
40773	// data to the backend. NONE or PROXY_V1 are allowed.
40774	//
40775	// Possible values:
40776	//   "NONE"
40777	//   "PROXY_V1"
40778	ProxyHeader string `json:"proxyHeader,omitempty"`
40779
40780	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
40781	// unconditionally include in API requests. By default, fields with
40782	// empty values are omitted from API requests. However, any non-pointer,
40783	// non-interface field appearing in ForceSendFields will be sent to the
40784	// server regardless of whether the field is empty or not. This may be
40785	// used to include empty fields in Patch requests.
40786	ForceSendFields []string `json:"-"`
40787
40788	// NullFields is a list of field names (e.g. "ProxyHeader") to include
40789	// in API requests with the JSON null value. By default, fields with
40790	// empty values are omitted from API requests. However, any field with
40791	// an empty value appearing in NullFields will be sent to the server as
40792	// null. It is an error if a field in this list has a non-empty value.
40793	// This may be used to include null fields in Patch requests.
40794	NullFields []string `json:"-"`
40795}
40796
40797func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
40798	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
40799	raw := NoMethod(*s)
40800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40801}
40802
40803// TargetTcpProxy: Represents a Target TCP Proxy resource.
40804//
40805// A target TCP proxy is a component of a TCP Proxy load balancer.
40806// Global forwarding rules reference target TCP proxy, and the target
40807// proxy then references an external backend service. For more
40808// information, read TCP Proxy Load Balancing overview. (== resource_for
40809// {$api_version}.targetTcpProxies ==)
40810type TargetTcpProxy struct {
40811	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40812	// format.
40813	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40814
40815	// Description: An optional description of this resource. Provide this
40816	// property when you create the resource.
40817	Description string `json:"description,omitempty"`
40818
40819	// Id: [Output Only] The unique identifier for the resource. This
40820	// identifier is defined by the server.
40821	Id uint64 `json:"id,omitempty,string"`
40822
40823	// Kind: [Output Only] Type of the resource. Always
40824	// compute#targetTcpProxy for target TCP proxies.
40825	Kind string `json:"kind,omitempty"`
40826
40827	// Name: Name of the resource. Provided by the client when the resource
40828	// is created. The name must be 1-63 characters long, and comply with
40829	// RFC1035. Specifically, the name must be 1-63 characters long and
40830	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40831	// the first character must be a lowercase letter, and all following
40832	// characters must be a dash, lowercase letter, or digit, except the
40833	// last character, which cannot be a dash.
40834	Name string `json:"name,omitempty"`
40835
40836	// ProxyHeader: Specifies the type of proxy header to append before
40837	// sending data to the backend, either NONE or PROXY_V1. The default is
40838	// NONE.
40839	//
40840	// Possible values:
40841	//   "NONE"
40842	//   "PROXY_V1"
40843	ProxyHeader string `json:"proxyHeader,omitempty"`
40844
40845	// SelfLink: [Output Only] Server-defined URL for the resource.
40846	SelfLink string `json:"selfLink,omitempty"`
40847
40848	// Service: URL to the BackendService resource.
40849	Service string `json:"service,omitempty"`
40850
40851	// ServerResponse contains the HTTP response code and headers from the
40852	// server.
40853	googleapi.ServerResponse `json:"-"`
40854
40855	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40856	// to unconditionally include in API requests. By default, fields with
40857	// empty values are omitted from API requests. However, any non-pointer,
40858	// non-interface field appearing in ForceSendFields will be sent to the
40859	// server regardless of whether the field is empty or not. This may be
40860	// used to include empty fields in Patch requests.
40861	ForceSendFields []string `json:"-"`
40862
40863	// NullFields is a list of field names (e.g. "CreationTimestamp") to
40864	// include in API requests with the JSON null value. By default, fields
40865	// with empty values are omitted from API requests. However, any field
40866	// with an empty value appearing in NullFields will be sent to the
40867	// server as null. It is an error if a field in this list has a
40868	// non-empty value. This may be used to include null fields in Patch
40869	// requests.
40870	NullFields []string `json:"-"`
40871}
40872
40873func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
40874	type NoMethod TargetTcpProxy
40875	raw := NoMethod(*s)
40876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40877}
40878
40879// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
40880type TargetTcpProxyList struct {
40881	// Id: [Output Only] Unique identifier for the resource; defined by the
40882	// server.
40883	Id string `json:"id,omitempty"`
40884
40885	// Items: A list of TargetTcpProxy resources.
40886	Items []*TargetTcpProxy `json:"items,omitempty"`
40887
40888	// Kind: Type of resource.
40889	Kind string `json:"kind,omitempty"`
40890
40891	// NextPageToken: [Output Only] This token allows you to get the next
40892	// page of results for list requests. If the number of results is larger
40893	// than maxResults, use the nextPageToken as a value for the query
40894	// parameter pageToken in the next list request. Subsequent list
40895	// requests will have their own nextPageToken to continue paging through
40896	// the results.
40897	NextPageToken string `json:"nextPageToken,omitempty"`
40898
40899	// SelfLink: [Output Only] Server-defined URL for this resource.
40900	SelfLink string `json:"selfLink,omitempty"`
40901
40902	// Warning: [Output Only] Informational warning message.
40903	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
40904
40905	// ServerResponse contains the HTTP response code and headers from the
40906	// server.
40907	googleapi.ServerResponse `json:"-"`
40908
40909	// ForceSendFields is a list of field names (e.g. "Id") to
40910	// unconditionally include in API requests. By default, fields with
40911	// empty values are omitted from API requests. However, any non-pointer,
40912	// non-interface field appearing in ForceSendFields will be sent to the
40913	// server regardless of whether the field is empty or not. This may be
40914	// used to include empty fields in Patch requests.
40915	ForceSendFields []string `json:"-"`
40916
40917	// NullFields is a list of field names (e.g. "Id") to include in API
40918	// requests with the JSON null value. By default, fields with empty
40919	// values are omitted from API requests. However, any field with an
40920	// empty value appearing in NullFields will be sent to the server as
40921	// null. It is an error if a field in this list has a non-empty value.
40922	// This may be used to include null fields in Patch requests.
40923	NullFields []string `json:"-"`
40924}
40925
40926func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
40927	type NoMethod TargetTcpProxyList
40928	raw := NoMethod(*s)
40929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40930}
40931
40932// TargetTcpProxyListWarning: [Output Only] Informational warning
40933// message.
40934type TargetTcpProxyListWarning struct {
40935	// Code: [Output Only] A warning code, if applicable. For example,
40936	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40937	// the response.
40938	//
40939	// Possible values:
40940	//   "CLEANUP_FAILED"
40941	//   "DEPRECATED_RESOURCE_USED"
40942	//   "DEPRECATED_TYPE_USED"
40943	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40944	//   "EXPERIMENTAL_TYPE_USED"
40945	//   "EXTERNAL_API_WARNING"
40946	//   "FIELD_VALUE_OVERRIDEN"
40947	//   "INJECTED_KERNELS_DEPRECATED"
40948	//   "MISSING_TYPE_DEPENDENCY"
40949	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40950	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40951	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40952	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40953	//   "NEXT_HOP_NOT_RUNNING"
40954	//   "NOT_CRITICAL_ERROR"
40955	//   "NO_RESULTS_ON_PAGE"
40956	//   "REQUIRED_TOS_AGREEMENT"
40957	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40958	//   "RESOURCE_NOT_DELETED"
40959	//   "SCHEMA_VALIDATION_IGNORED"
40960	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40961	//   "UNDECLARED_PROPERTIES"
40962	//   "UNREACHABLE"
40963	Code string `json:"code,omitempty"`
40964
40965	// Data: [Output Only] Metadata about this warning in key: value format.
40966	// For example:
40967	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40968	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
40969
40970	// Message: [Output Only] A human-readable description of the warning
40971	// code.
40972	Message string `json:"message,omitempty"`
40973
40974	// ForceSendFields is a list of field names (e.g. "Code") to
40975	// unconditionally include in API requests. By default, fields with
40976	// empty values are omitted from API requests. However, any non-pointer,
40977	// non-interface field appearing in ForceSendFields will be sent to the
40978	// server regardless of whether the field is empty or not. This may be
40979	// used to include empty fields in Patch requests.
40980	ForceSendFields []string `json:"-"`
40981
40982	// NullFields is a list of field names (e.g. "Code") to include in API
40983	// requests with the JSON null value. By default, fields with empty
40984	// values are omitted from API requests. However, any field with an
40985	// empty value appearing in NullFields will be sent to the server as
40986	// null. It is an error if a field in this list has a non-empty value.
40987	// This may be used to include null fields in Patch requests.
40988	NullFields []string `json:"-"`
40989}
40990
40991func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
40992	type NoMethod TargetTcpProxyListWarning
40993	raw := NoMethod(*s)
40994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40995}
40996
40997type TargetTcpProxyListWarningData struct {
40998	// Key: [Output Only] A key that provides more detail on the warning
40999	// being returned. For example, for warnings where there are no results
41000	// in a list request for a particular zone, this key might be scope and
41001	// the key value might be the zone name. Other examples might be a key
41002	// indicating a deprecated resource and a suggested replacement, or a
41003	// warning about invalid network settings (for example, if an instance
41004	// attempts to perform IP forwarding but is not enabled for IP
41005	// forwarding).
41006	Key string `json:"key,omitempty"`
41007
41008	// Value: [Output Only] A warning data value corresponding to the key.
41009	Value string `json:"value,omitempty"`
41010
41011	// ForceSendFields is a list of field names (e.g. "Key") to
41012	// unconditionally include in API requests. By default, fields with
41013	// empty values are omitted from API requests. However, any non-pointer,
41014	// non-interface field appearing in ForceSendFields will be sent to the
41015	// server regardless of whether the field is empty or not. This may be
41016	// used to include empty fields in Patch requests.
41017	ForceSendFields []string `json:"-"`
41018
41019	// NullFields is a list of field names (e.g. "Key") to include in API
41020	// requests with the JSON null value. By default, fields with empty
41021	// values are omitted from API requests. However, any field with an
41022	// empty value appearing in NullFields will be sent to the server as
41023	// null. It is an error if a field in this list has a non-empty value.
41024	// This may be used to include null fields in Patch requests.
41025	NullFields []string `json:"-"`
41026}
41027
41028func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
41029	type NoMethod TargetTcpProxyListWarningData
41030	raw := NoMethod(*s)
41031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41032}
41033
41034// TargetVpnGateway: Represents a Target VPN Gateway resource.
41035//
41036// The target VPN gateway resource represents a Classic Cloud VPN
41037// gateway. For more information, read the the Cloud VPN Overview. (==
41038// resource_for {$api_version}.targetVpnGateways ==)
41039type TargetVpnGateway struct {
41040	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41041	// format.
41042	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41043
41044	// Description: An optional description of this resource. Provide this
41045	// property when you create the resource.
41046	Description string `json:"description,omitempty"`
41047
41048	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
41049	// resources. ForwardingRules are created using
41050	// compute.forwardingRules.insert and associated with a VPN gateway.
41051	ForwardingRules []string `json:"forwardingRules,omitempty"`
41052
41053	// Id: [Output Only] The unique identifier for the resource. This
41054	// identifier is defined by the server.
41055	Id uint64 `json:"id,omitempty,string"`
41056
41057	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
41058	// for target VPN gateways.
41059	Kind string `json:"kind,omitempty"`
41060
41061	// LabelFingerprint: A fingerprint for the labels being applied to this
41062	// TargetVpnGateway, which is essentially a hash of the labels set used
41063	// for optimistic locking. The fingerprint is initially generated by
41064	// Compute Engine and changes after every request to modify or update
41065	// labels. You must always provide an up-to-date fingerprint hash in
41066	// order to update or change labels, otherwise the request will fail
41067	// with error 412 conditionNotMet.
41068	//
41069	// To see the latest fingerprint, make a get() request to retrieve a
41070	// TargetVpnGateway.
41071	LabelFingerprint string `json:"labelFingerprint,omitempty"`
41072
41073	// Labels: Labels for this resource. These can only be added or modified
41074	// by the setLabels method. Each label key/value pair must comply with
41075	// RFC1035. Label values may be empty.
41076	Labels map[string]string `json:"labels,omitempty"`
41077
41078	// Name: Name of the resource. Provided by the client when the resource
41079	// is created. The name must be 1-63 characters long, and comply with
41080	// RFC1035. Specifically, the name must be 1-63 characters long and
41081	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41082	// the first character must be a lowercase letter, and all following
41083	// characters must be a dash, lowercase letter, or digit, except the
41084	// last character, which cannot be a dash.
41085	Name string `json:"name,omitempty"`
41086
41087	// Network: URL of the network to which this VPN gateway is attached.
41088	// Provided by the client when the VPN gateway is created.
41089	Network string `json:"network,omitempty"`
41090
41091	// Region: [Output Only] URL of the region where the target VPN gateway
41092	// resides. You must specify this field as part of the HTTP request URL.
41093	// It is not settable as a field in the request body.
41094	Region string `json:"region,omitempty"`
41095
41096	// SelfLink: [Output Only] Server-defined URL for the resource.
41097	SelfLink string `json:"selfLink,omitempty"`
41098
41099	// Status: [Output Only] The status of the VPN gateway, which can be one
41100	// of the following: CREATING, READY, FAILED, or DELETING.
41101	//
41102	// Possible values:
41103	//   "CREATING"
41104	//   "DELETING"
41105	//   "FAILED"
41106	//   "READY"
41107	Status string `json:"status,omitempty"`
41108
41109	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
41110	// VpnTunnels are created using the compute.vpntunnels.insert method and
41111	// associated with a VPN gateway.
41112	Tunnels []string `json:"tunnels,omitempty"`
41113
41114	// ServerResponse contains the HTTP response code and headers from the
41115	// server.
41116	googleapi.ServerResponse `json:"-"`
41117
41118	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41119	// to unconditionally include in API requests. By default, fields with
41120	// empty values are omitted from API requests. However, any non-pointer,
41121	// non-interface field appearing in ForceSendFields will be sent to the
41122	// server regardless of whether the field is empty or not. This may be
41123	// used to include empty fields in Patch requests.
41124	ForceSendFields []string `json:"-"`
41125
41126	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41127	// include in API requests with the JSON null value. By default, fields
41128	// with empty values are omitted from API requests. However, any field
41129	// with an empty value appearing in NullFields will be sent to the
41130	// server as null. It is an error if a field in this list has a
41131	// non-empty value. This may be used to include null fields in Patch
41132	// requests.
41133	NullFields []string `json:"-"`
41134}
41135
41136func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
41137	type NoMethod TargetVpnGateway
41138	raw := NoMethod(*s)
41139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41140}
41141
41142type TargetVpnGatewayAggregatedList struct {
41143	// Id: [Output Only] Unique identifier for the resource; defined by the
41144	// server.
41145	Id string `json:"id,omitempty"`
41146
41147	// Items: A list of TargetVpnGateway resources.
41148	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
41149
41150	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
41151	// for target VPN gateways.
41152	Kind string `json:"kind,omitempty"`
41153
41154	// NextPageToken: [Output Only] This token allows you to get the next
41155	// page of results for list requests. If the number of results is larger
41156	// than maxResults, use the nextPageToken as a value for the query
41157	// parameter pageToken in the next list request. Subsequent list
41158	// requests will have their own nextPageToken to continue paging through
41159	// the results.
41160	NextPageToken string `json:"nextPageToken,omitempty"`
41161
41162	// SelfLink: [Output Only] Server-defined URL for this resource.
41163	SelfLink string `json:"selfLink,omitempty"`
41164
41165	// Warning: [Output Only] Informational warning message.
41166	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
41167
41168	// ServerResponse contains the HTTP response code and headers from the
41169	// server.
41170	googleapi.ServerResponse `json:"-"`
41171
41172	// ForceSendFields is a list of field names (e.g. "Id") to
41173	// unconditionally include in API requests. By default, fields with
41174	// empty values are omitted from API requests. However, any non-pointer,
41175	// non-interface field appearing in ForceSendFields will be sent to the
41176	// server regardless of whether the field is empty or not. This may be
41177	// used to include empty fields in Patch requests.
41178	ForceSendFields []string `json:"-"`
41179
41180	// NullFields is a list of field names (e.g. "Id") to include in API
41181	// requests with the JSON null value. By default, fields with empty
41182	// values are omitted from API requests. However, any field with an
41183	// empty value appearing in NullFields will be sent to the server as
41184	// null. It is an error if a field in this list has a non-empty value.
41185	// This may be used to include null fields in Patch requests.
41186	NullFields []string `json:"-"`
41187}
41188
41189func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
41190	type NoMethod TargetVpnGatewayAggregatedList
41191	raw := NoMethod(*s)
41192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41193}
41194
41195// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
41196// warning message.
41197type TargetVpnGatewayAggregatedListWarning struct {
41198	// Code: [Output Only] A warning code, if applicable. For example,
41199	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41200	// the response.
41201	//
41202	// Possible values:
41203	//   "CLEANUP_FAILED"
41204	//   "DEPRECATED_RESOURCE_USED"
41205	//   "DEPRECATED_TYPE_USED"
41206	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41207	//   "EXPERIMENTAL_TYPE_USED"
41208	//   "EXTERNAL_API_WARNING"
41209	//   "FIELD_VALUE_OVERRIDEN"
41210	//   "INJECTED_KERNELS_DEPRECATED"
41211	//   "MISSING_TYPE_DEPENDENCY"
41212	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41213	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41214	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41215	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41216	//   "NEXT_HOP_NOT_RUNNING"
41217	//   "NOT_CRITICAL_ERROR"
41218	//   "NO_RESULTS_ON_PAGE"
41219	//   "REQUIRED_TOS_AGREEMENT"
41220	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41221	//   "RESOURCE_NOT_DELETED"
41222	//   "SCHEMA_VALIDATION_IGNORED"
41223	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41224	//   "UNDECLARED_PROPERTIES"
41225	//   "UNREACHABLE"
41226	Code string `json:"code,omitempty"`
41227
41228	// Data: [Output Only] Metadata about this warning in key: value format.
41229	// For example:
41230	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41231	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
41232
41233	// Message: [Output Only] A human-readable description of the warning
41234	// code.
41235	Message string `json:"message,omitempty"`
41236
41237	// ForceSendFields is a list of field names (e.g. "Code") to
41238	// unconditionally include in API requests. By default, fields with
41239	// empty values are omitted from API requests. However, any non-pointer,
41240	// non-interface field appearing in ForceSendFields will be sent to the
41241	// server regardless of whether the field is empty or not. This may be
41242	// used to include empty fields in Patch requests.
41243	ForceSendFields []string `json:"-"`
41244
41245	// NullFields is a list of field names (e.g. "Code") to include in API
41246	// requests with the JSON null value. By default, fields with empty
41247	// values are omitted from API requests. However, any field with an
41248	// empty value appearing in NullFields will be sent to the server as
41249	// null. It is an error if a field in this list has a non-empty value.
41250	// This may be used to include null fields in Patch requests.
41251	NullFields []string `json:"-"`
41252}
41253
41254func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
41255	type NoMethod TargetVpnGatewayAggregatedListWarning
41256	raw := NoMethod(*s)
41257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41258}
41259
41260type TargetVpnGatewayAggregatedListWarningData struct {
41261	// Key: [Output Only] A key that provides more detail on the warning
41262	// being returned. For example, for warnings where there are no results
41263	// in a list request for a particular zone, this key might be scope and
41264	// the key value might be the zone name. Other examples might be a key
41265	// indicating a deprecated resource and a suggested replacement, or a
41266	// warning about invalid network settings (for example, if an instance
41267	// attempts to perform IP forwarding but is not enabled for IP
41268	// forwarding).
41269	Key string `json:"key,omitempty"`
41270
41271	// Value: [Output Only] A warning data value corresponding to the key.
41272	Value string `json:"value,omitempty"`
41273
41274	// ForceSendFields is a list of field names (e.g. "Key") to
41275	// unconditionally include in API requests. By default, fields with
41276	// empty values are omitted from API requests. However, any non-pointer,
41277	// non-interface field appearing in ForceSendFields will be sent to the
41278	// server regardless of whether the field is empty or not. This may be
41279	// used to include empty fields in Patch requests.
41280	ForceSendFields []string `json:"-"`
41281
41282	// NullFields is a list of field names (e.g. "Key") to include in API
41283	// requests with the JSON null value. By default, fields with empty
41284	// values are omitted from API requests. However, any field with an
41285	// empty value appearing in NullFields will be sent to the server as
41286	// null. It is an error if a field in this list has a non-empty value.
41287	// This may be used to include null fields in Patch requests.
41288	NullFields []string `json:"-"`
41289}
41290
41291func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41292	type NoMethod TargetVpnGatewayAggregatedListWarningData
41293	raw := NoMethod(*s)
41294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41295}
41296
41297// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
41298type TargetVpnGatewayList struct {
41299	// Id: [Output Only] Unique identifier for the resource; defined by the
41300	// server.
41301	Id string `json:"id,omitempty"`
41302
41303	// Items: A list of TargetVpnGateway resources.
41304	Items []*TargetVpnGateway `json:"items,omitempty"`
41305
41306	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
41307	// for target VPN gateways.
41308	Kind string `json:"kind,omitempty"`
41309
41310	// NextPageToken: [Output Only] This token allows you to get the next
41311	// page of results for list requests. If the number of results is larger
41312	// than maxResults, use the nextPageToken as a value for the query
41313	// parameter pageToken in the next list request. Subsequent list
41314	// requests will have their own nextPageToken to continue paging through
41315	// the results.
41316	NextPageToken string `json:"nextPageToken,omitempty"`
41317
41318	// SelfLink: [Output Only] Server-defined URL for this resource.
41319	SelfLink string `json:"selfLink,omitempty"`
41320
41321	// Warning: [Output Only] Informational warning message.
41322	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
41323
41324	// ServerResponse contains the HTTP response code and headers from the
41325	// server.
41326	googleapi.ServerResponse `json:"-"`
41327
41328	// ForceSendFields is a list of field names (e.g. "Id") to
41329	// unconditionally include in API requests. By default, fields with
41330	// empty values are omitted from API requests. However, any non-pointer,
41331	// non-interface field appearing in ForceSendFields will be sent to the
41332	// server regardless of whether the field is empty or not. This may be
41333	// used to include empty fields in Patch requests.
41334	ForceSendFields []string `json:"-"`
41335
41336	// NullFields is a list of field names (e.g. "Id") to include in API
41337	// requests with the JSON null value. By default, fields with empty
41338	// values are omitted from API requests. However, any field with an
41339	// empty value appearing in NullFields will be sent to the server as
41340	// null. It is an error if a field in this list has a non-empty value.
41341	// This may be used to include null fields in Patch requests.
41342	NullFields []string `json:"-"`
41343}
41344
41345func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
41346	type NoMethod TargetVpnGatewayList
41347	raw := NoMethod(*s)
41348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41349}
41350
41351// TargetVpnGatewayListWarning: [Output Only] Informational warning
41352// message.
41353type TargetVpnGatewayListWarning struct {
41354	// Code: [Output Only] A warning code, if applicable. For example,
41355	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41356	// the response.
41357	//
41358	// Possible values:
41359	//   "CLEANUP_FAILED"
41360	//   "DEPRECATED_RESOURCE_USED"
41361	//   "DEPRECATED_TYPE_USED"
41362	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41363	//   "EXPERIMENTAL_TYPE_USED"
41364	//   "EXTERNAL_API_WARNING"
41365	//   "FIELD_VALUE_OVERRIDEN"
41366	//   "INJECTED_KERNELS_DEPRECATED"
41367	//   "MISSING_TYPE_DEPENDENCY"
41368	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41369	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41370	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41371	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41372	//   "NEXT_HOP_NOT_RUNNING"
41373	//   "NOT_CRITICAL_ERROR"
41374	//   "NO_RESULTS_ON_PAGE"
41375	//   "REQUIRED_TOS_AGREEMENT"
41376	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41377	//   "RESOURCE_NOT_DELETED"
41378	//   "SCHEMA_VALIDATION_IGNORED"
41379	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41380	//   "UNDECLARED_PROPERTIES"
41381	//   "UNREACHABLE"
41382	Code string `json:"code,omitempty"`
41383
41384	// Data: [Output Only] Metadata about this warning in key: value format.
41385	// For example:
41386	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41387	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
41388
41389	// Message: [Output Only] A human-readable description of the warning
41390	// code.
41391	Message string `json:"message,omitempty"`
41392
41393	// ForceSendFields is a list of field names (e.g. "Code") to
41394	// unconditionally include in API requests. By default, fields with
41395	// empty values are omitted from API requests. However, any non-pointer,
41396	// non-interface field appearing in ForceSendFields will be sent to the
41397	// server regardless of whether the field is empty or not. This may be
41398	// used to include empty fields in Patch requests.
41399	ForceSendFields []string `json:"-"`
41400
41401	// NullFields is a list of field names (e.g. "Code") to include in API
41402	// requests with the JSON null value. By default, fields with empty
41403	// values are omitted from API requests. However, any field with an
41404	// empty value appearing in NullFields will be sent to the server as
41405	// null. It is an error if a field in this list has a non-empty value.
41406	// This may be used to include null fields in Patch requests.
41407	NullFields []string `json:"-"`
41408}
41409
41410func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
41411	type NoMethod TargetVpnGatewayListWarning
41412	raw := NoMethod(*s)
41413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41414}
41415
41416type TargetVpnGatewayListWarningData struct {
41417	// Key: [Output Only] A key that provides more detail on the warning
41418	// being returned. For example, for warnings where there are no results
41419	// in a list request for a particular zone, this key might be scope and
41420	// the key value might be the zone name. Other examples might be a key
41421	// indicating a deprecated resource and a suggested replacement, or a
41422	// warning about invalid network settings (for example, if an instance
41423	// attempts to perform IP forwarding but is not enabled for IP
41424	// forwarding).
41425	Key string `json:"key,omitempty"`
41426
41427	// Value: [Output Only] A warning data value corresponding to the key.
41428	Value string `json:"value,omitempty"`
41429
41430	// ForceSendFields is a list of field names (e.g. "Key") to
41431	// unconditionally include in API requests. By default, fields with
41432	// empty values are omitted from API requests. However, any non-pointer,
41433	// non-interface field appearing in ForceSendFields will be sent to the
41434	// server regardless of whether the field is empty or not. This may be
41435	// used to include empty fields in Patch requests.
41436	ForceSendFields []string `json:"-"`
41437
41438	// NullFields is a list of field names (e.g. "Key") to include in API
41439	// requests with the JSON null value. By default, fields with empty
41440	// values are omitted from API requests. However, any field with an
41441	// empty value appearing in NullFields will be sent to the server as
41442	// null. It is an error if a field in this list has a non-empty value.
41443	// This may be used to include null fields in Patch requests.
41444	NullFields []string `json:"-"`
41445}
41446
41447func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
41448	type NoMethod TargetVpnGatewayListWarningData
41449	raw := NoMethod(*s)
41450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41451}
41452
41453type TargetVpnGatewaysScopedList struct {
41454	// TargetVpnGateways: [Output Only] A list of target VPN gateways
41455	// contained in this scope.
41456	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
41457
41458	// Warning: [Output Only] Informational warning which replaces the list
41459	// of addresses when the list is empty.
41460	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
41461
41462	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
41463	// to 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. "TargetVpnGateways") to
41471	// include in API requests with the JSON null value. By default, fields
41472	// with empty values are omitted from API requests. However, any field
41473	// with an empty value appearing in NullFields will be sent to the
41474	// server as null. It is an error if a field in this list has a
41475	// non-empty value. This may be used to include null fields in Patch
41476	// requests.
41477	NullFields []string `json:"-"`
41478}
41479
41480func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
41481	type NoMethod TargetVpnGatewaysScopedList
41482	raw := NoMethod(*s)
41483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41484}
41485
41486// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
41487// warning which replaces the list of addresses when the list is empty.
41488type TargetVpnGatewaysScopedListWarning struct {
41489	// Code: [Output Only] A warning code, if applicable. For example,
41490	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41491	// the response.
41492	//
41493	// Possible values:
41494	//   "CLEANUP_FAILED"
41495	//   "DEPRECATED_RESOURCE_USED"
41496	//   "DEPRECATED_TYPE_USED"
41497	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41498	//   "EXPERIMENTAL_TYPE_USED"
41499	//   "EXTERNAL_API_WARNING"
41500	//   "FIELD_VALUE_OVERRIDEN"
41501	//   "INJECTED_KERNELS_DEPRECATED"
41502	//   "MISSING_TYPE_DEPENDENCY"
41503	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41504	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41505	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41506	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41507	//   "NEXT_HOP_NOT_RUNNING"
41508	//   "NOT_CRITICAL_ERROR"
41509	//   "NO_RESULTS_ON_PAGE"
41510	//   "REQUIRED_TOS_AGREEMENT"
41511	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41512	//   "RESOURCE_NOT_DELETED"
41513	//   "SCHEMA_VALIDATION_IGNORED"
41514	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41515	//   "UNDECLARED_PROPERTIES"
41516	//   "UNREACHABLE"
41517	Code string `json:"code,omitempty"`
41518
41519	// Data: [Output Only] Metadata about this warning in key: value format.
41520	// For example:
41521	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41522	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
41523
41524	// Message: [Output Only] A human-readable description of the warning
41525	// code.
41526	Message string `json:"message,omitempty"`
41527
41528	// ForceSendFields is a list of field names (e.g. "Code") to
41529	// unconditionally include in API requests. By default, fields with
41530	// empty values are omitted from API requests. However, any non-pointer,
41531	// non-interface field appearing in ForceSendFields will be sent to the
41532	// server regardless of whether the field is empty or not. This may be
41533	// used to include empty fields in Patch requests.
41534	ForceSendFields []string `json:"-"`
41535
41536	// NullFields is a list of field names (e.g. "Code") to include in API
41537	// requests with the JSON null value. By default, fields with empty
41538	// values are omitted from API requests. However, any field with an
41539	// empty value appearing in NullFields will be sent to the server as
41540	// null. It is an error if a field in this list has a non-empty value.
41541	// This may be used to include null fields in Patch requests.
41542	NullFields []string `json:"-"`
41543}
41544
41545func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
41546	type NoMethod TargetVpnGatewaysScopedListWarning
41547	raw := NoMethod(*s)
41548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41549}
41550
41551type TargetVpnGatewaysScopedListWarningData struct {
41552	// Key: [Output Only] A key that provides more detail on the warning
41553	// being returned. For example, for warnings where there are no results
41554	// in a list request for a particular zone, this key might be scope and
41555	// the key value might be the zone name. Other examples might be a key
41556	// indicating a deprecated resource and a suggested replacement, or a
41557	// warning about invalid network settings (for example, if an instance
41558	// attempts to perform IP forwarding but is not enabled for IP
41559	// forwarding).
41560	Key string `json:"key,omitempty"`
41561
41562	// Value: [Output Only] A warning data value corresponding to the key.
41563	Value string `json:"value,omitempty"`
41564
41565	// ForceSendFields is a list of field names (e.g. "Key") to
41566	// unconditionally include in API requests. By default, fields with
41567	// empty values are omitted from API requests. However, any non-pointer,
41568	// non-interface field appearing in ForceSendFields will be sent to the
41569	// server regardless of whether the field is empty or not. This may be
41570	// used to include empty fields in Patch requests.
41571	ForceSendFields []string `json:"-"`
41572
41573	// NullFields is a list of field names (e.g. "Key") to include in API
41574	// requests with the JSON null value. By default, fields with empty
41575	// values are omitted from API requests. However, any field with an
41576	// empty value appearing in NullFields will be sent to the server as
41577	// null. It is an error if a field in this list has a non-empty value.
41578	// This may be used to include null fields in Patch requests.
41579	NullFields []string `json:"-"`
41580}
41581
41582func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
41583	type NoMethod TargetVpnGatewaysScopedListWarningData
41584	raw := NoMethod(*s)
41585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41586}
41587
41588type TestFailure struct {
41589	ActualService string `json:"actualService,omitempty"`
41590
41591	ExpectedService string `json:"expectedService,omitempty"`
41592
41593	Host string `json:"host,omitempty"`
41594
41595	Path string `json:"path,omitempty"`
41596
41597	// ForceSendFields is a list of field names (e.g. "ActualService") to
41598	// unconditionally include in API requests. By default, fields with
41599	// empty values are omitted from API requests. However, any non-pointer,
41600	// non-interface field appearing in ForceSendFields will be sent to the
41601	// server regardless of whether the field is empty or not. This may be
41602	// used to include empty fields in Patch requests.
41603	ForceSendFields []string `json:"-"`
41604
41605	// NullFields is a list of field names (e.g. "ActualService") to include
41606	// in API requests with the JSON null value. By default, fields with
41607	// empty values are omitted from API requests. However, any field with
41608	// an empty value appearing in NullFields will be sent to the server as
41609	// null. It is an error if a field in this list has a non-empty value.
41610	// This may be used to include null fields in Patch requests.
41611	NullFields []string `json:"-"`
41612}
41613
41614func (s *TestFailure) MarshalJSON() ([]byte, error) {
41615	type NoMethod TestFailure
41616	raw := NoMethod(*s)
41617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41618}
41619
41620type TestPermissionsRequest struct {
41621	// Permissions: The set of permissions to check for the 'resource'.
41622	// Permissions with wildcards (such as '*' or 'storage.*') are not
41623	// allowed.
41624	Permissions []string `json:"permissions,omitempty"`
41625
41626	// ForceSendFields is a list of field names (e.g. "Permissions") to
41627	// unconditionally include in API requests. By default, fields with
41628	// empty values are omitted from API requests. However, any non-pointer,
41629	// non-interface field appearing in ForceSendFields will be sent to the
41630	// server regardless of whether the field is empty or not. This may be
41631	// used to include empty fields in Patch requests.
41632	ForceSendFields []string `json:"-"`
41633
41634	// NullFields is a list of field names (e.g. "Permissions") to include
41635	// in API requests with the JSON null value. By default, fields with
41636	// empty values are omitted from API requests. However, any field with
41637	// an empty value appearing in NullFields will be sent to the server as
41638	// null. It is an error if a field in this list has a non-empty value.
41639	// This may be used to include null fields in Patch requests.
41640	NullFields []string `json:"-"`
41641}
41642
41643func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
41644	type NoMethod TestPermissionsRequest
41645	raw := NoMethod(*s)
41646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41647}
41648
41649type TestPermissionsResponse struct {
41650	// Permissions: A subset of `TestPermissionsRequest.permissions` that
41651	// the caller is allowed.
41652	Permissions []string `json:"permissions,omitempty"`
41653
41654	// ServerResponse contains the HTTP response code and headers from the
41655	// server.
41656	googleapi.ServerResponse `json:"-"`
41657
41658	// ForceSendFields is a list of field names (e.g. "Permissions") to
41659	// unconditionally include in API requests. By default, fields with
41660	// empty values are omitted from API requests. However, any non-pointer,
41661	// non-interface field appearing in ForceSendFields will be sent to the
41662	// server regardless of whether the field is empty or not. This may be
41663	// used to include empty fields in Patch requests.
41664	ForceSendFields []string `json:"-"`
41665
41666	// NullFields is a list of field names (e.g. "Permissions") to include
41667	// in API requests with the JSON null value. By default, fields with
41668	// empty values are omitted from API requests. However, any field with
41669	// an empty value appearing in NullFields will be sent to the server as
41670	// null. It is an error if a field in this list has a non-empty value.
41671	// This may be used to include null fields in Patch requests.
41672	NullFields []string `json:"-"`
41673}
41674
41675func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
41676	type NoMethod TestPermissionsResponse
41677	raw := NoMethod(*s)
41678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41679}
41680
41681// UrlMap: Represents a URL Map resource.
41682//
41683// Google Compute Engine has two URL Map resources:
41684//
41685// * [Global](/compute/docs/reference/rest/{$api_version}/urlMaps) *
41686// [Regional](/compute/docs/reference/rest/{$api_version}/regionUrlMaps)
41687//
41688//
41689// A URL map resource is a component of certain types of GCP load
41690// balancers and Traffic Director.
41691//
41692// * urlMaps are used by external HTTP(S) load balancers and Traffic
41693// Director. * regionUrlMaps are used by internal HTTP(S) load
41694// balancers.
41695//
41696// This resource defines mappings from host names and URL paths to
41697// either a backend service or a backend bucket.
41698//
41699// To use the global urlMaps resource, the backend service must have a
41700// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
41701// use the regionUrlMaps resource, the backend service must have a
41702// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
41703// URL Map Concepts.
41704type UrlMap struct {
41705	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41706	// format.
41707	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41708
41709	// DefaultRouteAction: defaultRouteAction takes effect when none of the
41710	// hostRules match. The load balancer performs advanced routing actions
41711	// like URL rewrites, header transformations, etc. prior to forwarding
41712	// the request to the selected backend. If defaultRouteAction specifies
41713	// any weightedBackendServices, defaultService must not be set.
41714	// Conversely if defaultService is set, defaultRouteAction cannot
41715	// contain any  weightedBackendServices.
41716	// Only one of defaultRouteAction or defaultUrlRedirect must be
41717	// set.
41718	// UrlMaps for external HTTP(S) load balancers support only the
41719	// urlRewrite action within defaultRouteAction.
41720	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
41721
41722	// DefaultService: The full or partial URL of the defaultService
41723	// resource to which traffic is directed if none of the hostRules match.
41724	// If defaultRouteAction is additionally specified, advanced routing
41725	// actions like URL Rewrites, etc. take effect prior to sending the
41726	// request to the backend. However, if defaultService is specified,
41727	// defaultRouteAction cannot contain any weightedBackendServices.
41728	// Conversely, if routeAction specifies any weightedBackendServices,
41729	// service must not be specified.
41730	// Only one of defaultService, defaultUrlRedirect  or
41731	// defaultRouteAction.weightedBackendService must be set.
41732	DefaultService string `json:"defaultService,omitempty"`
41733
41734	// DefaultUrlRedirect: When none of the specified hostRules match, the
41735	// request is redirected to a URL specified by defaultUrlRedirect.
41736	// If defaultUrlRedirect is specified, defaultService or
41737	// defaultRouteAction must not be set.
41738	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
41739
41740	// Description: An optional description of this resource. Provide this
41741	// property when you create the resource.
41742	Description string `json:"description,omitempty"`
41743
41744	// Fingerprint: Fingerprint of this resource. A hash of the contents
41745	// stored in this object. This field is used in optimistic locking. This
41746	// field will be ignored when inserting a UrlMap. An up-to-date
41747	// fingerprint must be provided in order to update the UrlMap, otherwise
41748	// the request will fail with error 412 conditionNotMet.
41749	//
41750	// To see the latest fingerprint, make a get() request to retrieve a
41751	// UrlMap.
41752	Fingerprint string `json:"fingerprint,omitempty"`
41753
41754	// HeaderAction: Specifies changes to request and response headers that
41755	// need to take effect for the selected backendService.
41756	// The headerAction specified here take effect after headerAction
41757	// specified under pathMatcher.
41758	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
41759
41760	// HostRules: The list of HostRules to use against the URL.
41761	HostRules []*HostRule `json:"hostRules,omitempty"`
41762
41763	// Id: [Output Only] The unique identifier for the resource. This
41764	// identifier is defined by the server.
41765	Id uint64 `json:"id,omitempty,string"`
41766
41767	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
41768	// url maps.
41769	Kind string `json:"kind,omitempty"`
41770
41771	// Name: Name of the resource. Provided by the client when the resource
41772	// is created. The name must be 1-63 characters long, and comply with
41773	// RFC1035. Specifically, the name must be 1-63 characters long and
41774	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41775	// the first character must be a lowercase letter, and all following
41776	// characters must be a dash, lowercase letter, or digit, except the
41777	// last character, which cannot be a dash.
41778	Name string `json:"name,omitempty"`
41779
41780	// PathMatchers: The list of named PathMatchers to use against the URL.
41781	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
41782
41783	// Region: [Output Only] URL of the region where the regional URL map
41784	// resides. This field is not applicable to global URL maps. You must
41785	// specify this field as part of the HTTP request URL. It is not
41786	// settable as a field in the request body.
41787	Region string `json:"region,omitempty"`
41788
41789	// SelfLink: [Output Only] Server-defined URL for the resource.
41790	SelfLink string `json:"selfLink,omitempty"`
41791
41792	// Tests: The list of expected URL mapping tests. Request to update this
41793	// UrlMap will succeed only if all of the test cases pass. You can
41794	// specify a maximum of 100 tests per UrlMap.
41795	Tests []*UrlMapTest `json:"tests,omitempty"`
41796
41797	// ServerResponse contains the HTTP response code and headers from the
41798	// server.
41799	googleapi.ServerResponse `json:"-"`
41800
41801	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41802	// to unconditionally include in API requests. By default, fields with
41803	// empty values are omitted from API requests. However, any non-pointer,
41804	// non-interface field appearing in ForceSendFields will be sent to the
41805	// server regardless of whether the field is empty or not. This may be
41806	// used to include empty fields in Patch requests.
41807	ForceSendFields []string `json:"-"`
41808
41809	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41810	// include in API requests with the JSON null value. By default, fields
41811	// with empty values are omitted from API requests. However, any field
41812	// with an empty value appearing in NullFields will be sent to the
41813	// server as null. It is an error if a field in this list has a
41814	// non-empty value. This may be used to include null fields in Patch
41815	// requests.
41816	NullFields []string `json:"-"`
41817}
41818
41819func (s *UrlMap) MarshalJSON() ([]byte, error) {
41820	type NoMethod UrlMap
41821	raw := NoMethod(*s)
41822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41823}
41824
41825// UrlMapList: Contains a list of UrlMap resources.
41826type UrlMapList struct {
41827	// Id: [Output Only] Unique identifier for the resource; defined by the
41828	// server.
41829	Id string `json:"id,omitempty"`
41830
41831	// Items: A list of UrlMap resources.
41832	Items []*UrlMap `json:"items,omitempty"`
41833
41834	// Kind: Type of resource.
41835	Kind string `json:"kind,omitempty"`
41836
41837	// NextPageToken: [Output Only] This token allows you to get the next
41838	// page of results for list requests. If the number of results is larger
41839	// than maxResults, use the nextPageToken as a value for the query
41840	// parameter pageToken in the next list request. Subsequent list
41841	// requests will have their own nextPageToken to continue paging through
41842	// the results.
41843	NextPageToken string `json:"nextPageToken,omitempty"`
41844
41845	// SelfLink: [Output Only] Server-defined URL for this resource.
41846	SelfLink string `json:"selfLink,omitempty"`
41847
41848	// Warning: [Output Only] Informational warning message.
41849	Warning *UrlMapListWarning `json:"warning,omitempty"`
41850
41851	// ServerResponse contains the HTTP response code and headers from the
41852	// server.
41853	googleapi.ServerResponse `json:"-"`
41854
41855	// ForceSendFields is a list of field names (e.g. "Id") to
41856	// unconditionally include in API requests. By default, fields with
41857	// empty values are omitted from API requests. However, any non-pointer,
41858	// non-interface field appearing in ForceSendFields will be sent to the
41859	// server regardless of whether the field is empty or not. This may be
41860	// used to include empty fields in Patch requests.
41861	ForceSendFields []string `json:"-"`
41862
41863	// NullFields is a list of field names (e.g. "Id") to include in API
41864	// requests with the JSON null value. By default, fields with empty
41865	// values are omitted from API requests. However, any field with an
41866	// empty value appearing in NullFields will be sent to the server as
41867	// null. It is an error if a field in this list has a non-empty value.
41868	// This may be used to include null fields in Patch requests.
41869	NullFields []string `json:"-"`
41870}
41871
41872func (s *UrlMapList) MarshalJSON() ([]byte, error) {
41873	type NoMethod UrlMapList
41874	raw := NoMethod(*s)
41875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41876}
41877
41878// UrlMapListWarning: [Output Only] Informational warning message.
41879type UrlMapListWarning struct {
41880	// Code: [Output Only] A warning code, if applicable. For example,
41881	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41882	// the response.
41883	//
41884	// Possible values:
41885	//   "CLEANUP_FAILED"
41886	//   "DEPRECATED_RESOURCE_USED"
41887	//   "DEPRECATED_TYPE_USED"
41888	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41889	//   "EXPERIMENTAL_TYPE_USED"
41890	//   "EXTERNAL_API_WARNING"
41891	//   "FIELD_VALUE_OVERRIDEN"
41892	//   "INJECTED_KERNELS_DEPRECATED"
41893	//   "MISSING_TYPE_DEPENDENCY"
41894	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41895	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41896	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41897	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41898	//   "NEXT_HOP_NOT_RUNNING"
41899	//   "NOT_CRITICAL_ERROR"
41900	//   "NO_RESULTS_ON_PAGE"
41901	//   "REQUIRED_TOS_AGREEMENT"
41902	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41903	//   "RESOURCE_NOT_DELETED"
41904	//   "SCHEMA_VALIDATION_IGNORED"
41905	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41906	//   "UNDECLARED_PROPERTIES"
41907	//   "UNREACHABLE"
41908	Code string `json:"code,omitempty"`
41909
41910	// Data: [Output Only] Metadata about this warning in key: value format.
41911	// For example:
41912	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41913	Data []*UrlMapListWarningData `json:"data,omitempty"`
41914
41915	// Message: [Output Only] A human-readable description of the warning
41916	// code.
41917	Message string `json:"message,omitempty"`
41918
41919	// ForceSendFields is a list of field names (e.g. "Code") to
41920	// unconditionally include in API requests. By default, fields with
41921	// empty values are omitted from API requests. However, any non-pointer,
41922	// non-interface field appearing in ForceSendFields will be sent to the
41923	// server regardless of whether the field is empty or not. This may be
41924	// used to include empty fields in Patch requests.
41925	ForceSendFields []string `json:"-"`
41926
41927	// NullFields is a list of field names (e.g. "Code") to include in API
41928	// requests with the JSON null value. By default, fields with empty
41929	// values are omitted from API requests. However, any field with an
41930	// empty value appearing in NullFields will be sent to the server as
41931	// null. It is an error if a field in this list has a non-empty value.
41932	// This may be used to include null fields in Patch requests.
41933	NullFields []string `json:"-"`
41934}
41935
41936func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
41937	type NoMethod UrlMapListWarning
41938	raw := NoMethod(*s)
41939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41940}
41941
41942type UrlMapListWarningData struct {
41943	// Key: [Output Only] A key that provides more detail on the warning
41944	// being returned. For example, for warnings where there are no results
41945	// in a list request for a particular zone, this key might be scope and
41946	// the key value might be the zone name. Other examples might be a key
41947	// indicating a deprecated resource and a suggested replacement, or a
41948	// warning about invalid network settings (for example, if an instance
41949	// attempts to perform IP forwarding but is not enabled for IP
41950	// forwarding).
41951	Key string `json:"key,omitempty"`
41952
41953	// Value: [Output Only] A warning data value corresponding to the key.
41954	Value string `json:"value,omitempty"`
41955
41956	// ForceSendFields is a list of field names (e.g. "Key") to
41957	// unconditionally include in API requests. By default, fields with
41958	// empty values are omitted from API requests. However, any non-pointer,
41959	// non-interface field appearing in ForceSendFields will be sent to the
41960	// server regardless of whether the field is empty or not. This may be
41961	// used to include empty fields in Patch requests.
41962	ForceSendFields []string `json:"-"`
41963
41964	// NullFields is a list of field names (e.g. "Key") to include in API
41965	// requests with the JSON null value. By default, fields with empty
41966	// values are omitted from API requests. However, any field with an
41967	// empty value appearing in NullFields will be sent to the server as
41968	// null. It is an error if a field in this list has a non-empty value.
41969	// This may be used to include null fields in Patch requests.
41970	NullFields []string `json:"-"`
41971}
41972
41973func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
41974	type NoMethod UrlMapListWarningData
41975	raw := NoMethod(*s)
41976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41977}
41978
41979type UrlMapReference struct {
41980	UrlMap string `json:"urlMap,omitempty"`
41981
41982	// ForceSendFields is a list of field names (e.g. "UrlMap") to
41983	// unconditionally include in API requests. By default, fields with
41984	// empty values are omitted from API requests. However, any non-pointer,
41985	// non-interface field appearing in ForceSendFields will be sent to the
41986	// server regardless of whether the field is empty or not. This may be
41987	// used to include empty fields in Patch requests.
41988	ForceSendFields []string `json:"-"`
41989
41990	// NullFields is a list of field names (e.g. "UrlMap") to include in API
41991	// requests with the JSON null value. By default, fields with empty
41992	// values are omitted from API requests. However, any field with an
41993	// empty value appearing in NullFields will be sent to the server as
41994	// null. It is an error if a field in this list has a non-empty value.
41995	// This may be used to include null fields in Patch requests.
41996	NullFields []string `json:"-"`
41997}
41998
41999func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
42000	type NoMethod UrlMapReference
42001	raw := NoMethod(*s)
42002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42003}
42004
42005// UrlMapTest: Message for the expected URL mappings.
42006type UrlMapTest struct {
42007	// Description: Description of this test case.
42008	Description string `json:"description,omitempty"`
42009
42010	// Host: Host portion of the URL.
42011	Host string `json:"host,omitempty"`
42012
42013	// Path: Path portion of the URL.
42014	Path string `json:"path,omitempty"`
42015
42016	// Service: Expected BackendService resource the given URL should be
42017	// mapped to.
42018	Service string `json:"service,omitempty"`
42019
42020	// ForceSendFields is a list of field names (e.g. "Description") to
42021	// unconditionally include in API requests. By default, fields with
42022	// empty values are omitted from API requests. However, any non-pointer,
42023	// non-interface field appearing in ForceSendFields will be sent to the
42024	// server regardless of whether the field is empty or not. This may be
42025	// used to include empty fields in Patch requests.
42026	ForceSendFields []string `json:"-"`
42027
42028	// NullFields is a list of field names (e.g. "Description") to include
42029	// in API requests with the JSON null value. By default, fields with
42030	// empty values are omitted from API requests. However, any field with
42031	// an empty value appearing in NullFields will be sent to the server as
42032	// null. It is an error if a field in this list has a non-empty value.
42033	// This may be used to include null fields in Patch requests.
42034	NullFields []string `json:"-"`
42035}
42036
42037func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
42038	type NoMethod UrlMapTest
42039	raw := NoMethod(*s)
42040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42041}
42042
42043// UrlMapValidationResult: Message representing the validation result
42044// for a UrlMap.
42045type UrlMapValidationResult struct {
42046	LoadErrors []string `json:"loadErrors,omitempty"`
42047
42048	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
42049	// If false, 'loadErrors' indicates the reasons.
42050	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
42051
42052	TestFailures []*TestFailure `json:"testFailures,omitempty"`
42053
42054	// TestPassed: If successfully loaded, this field indicates whether the
42055	// test passed. If false, 'testFailures's indicate the reason of
42056	// failure.
42057	TestPassed bool `json:"testPassed,omitempty"`
42058
42059	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
42060	// unconditionally include in API requests. By default, fields with
42061	// empty values are omitted from API requests. However, any non-pointer,
42062	// non-interface field appearing in ForceSendFields will be sent to the
42063	// server regardless of whether the field is empty or not. This may be
42064	// used to include empty fields in Patch requests.
42065	ForceSendFields []string `json:"-"`
42066
42067	// NullFields is a list of field names (e.g. "LoadErrors") to include in
42068	// API requests with the JSON null value. By default, fields with empty
42069	// values are omitted from API requests. However, any field with an
42070	// empty value appearing in NullFields will be sent to the server as
42071	// null. It is an error if a field in this list has a non-empty value.
42072	// This may be used to include null fields in Patch requests.
42073	NullFields []string `json:"-"`
42074}
42075
42076func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
42077	type NoMethod UrlMapValidationResult
42078	raw := NoMethod(*s)
42079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42080}
42081
42082type UrlMapsAggregatedList struct {
42083	// Id: [Output Only] Unique identifier for the resource; defined by the
42084	// server.
42085	Id string `json:"id,omitempty"`
42086
42087	// Items: A list of UrlMapsScopedList resources.
42088	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
42089
42090	// Kind: Type of resource.
42091	Kind string `json:"kind,omitempty"`
42092
42093	// NextPageToken: [Output Only] This token allows you to get the next
42094	// page of results for list requests. If the number of results is larger
42095	// than maxResults, use the nextPageToken as a value for the query
42096	// parameter pageToken in the next list request. Subsequent list
42097	// requests will have their own nextPageToken to continue paging through
42098	// the results.
42099	NextPageToken string `json:"nextPageToken,omitempty"`
42100
42101	// SelfLink: [Output Only] Server-defined URL for this resource.
42102	SelfLink string `json:"selfLink,omitempty"`
42103
42104	// Warning: [Output Only] Informational warning message.
42105	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
42106
42107	// ServerResponse contains the HTTP response code and headers from the
42108	// server.
42109	googleapi.ServerResponse `json:"-"`
42110
42111	// ForceSendFields is a list of field names (e.g. "Id") to
42112	// unconditionally include in API requests. By default, fields with
42113	// empty values are omitted from API requests. However, any non-pointer,
42114	// non-interface field appearing in ForceSendFields will be sent to the
42115	// server regardless of whether the field is empty or not. This may be
42116	// used to include empty fields in Patch requests.
42117	ForceSendFields []string `json:"-"`
42118
42119	// NullFields is a list of field names (e.g. "Id") to include in API
42120	// requests with the JSON null value. By default, fields with empty
42121	// values are omitted from API requests. However, any field with an
42122	// empty value appearing in NullFields will be sent to the server as
42123	// null. It is an error if a field in this list has a non-empty value.
42124	// This may be used to include null fields in Patch requests.
42125	NullFields []string `json:"-"`
42126}
42127
42128func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
42129	type NoMethod UrlMapsAggregatedList
42130	raw := NoMethod(*s)
42131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42132}
42133
42134// UrlMapsAggregatedListWarning: [Output Only] Informational warning
42135// message.
42136type UrlMapsAggregatedListWarning struct {
42137	// Code: [Output Only] A warning code, if applicable. For example,
42138	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42139	// the response.
42140	//
42141	// Possible values:
42142	//   "CLEANUP_FAILED"
42143	//   "DEPRECATED_RESOURCE_USED"
42144	//   "DEPRECATED_TYPE_USED"
42145	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42146	//   "EXPERIMENTAL_TYPE_USED"
42147	//   "EXTERNAL_API_WARNING"
42148	//   "FIELD_VALUE_OVERRIDEN"
42149	//   "INJECTED_KERNELS_DEPRECATED"
42150	//   "MISSING_TYPE_DEPENDENCY"
42151	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42152	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42153	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42154	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42155	//   "NEXT_HOP_NOT_RUNNING"
42156	//   "NOT_CRITICAL_ERROR"
42157	//   "NO_RESULTS_ON_PAGE"
42158	//   "REQUIRED_TOS_AGREEMENT"
42159	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42160	//   "RESOURCE_NOT_DELETED"
42161	//   "SCHEMA_VALIDATION_IGNORED"
42162	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42163	//   "UNDECLARED_PROPERTIES"
42164	//   "UNREACHABLE"
42165	Code string `json:"code,omitempty"`
42166
42167	// Data: [Output Only] Metadata about this warning in key: value format.
42168	// For example:
42169	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42170	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
42171
42172	// Message: [Output Only] A human-readable description of the warning
42173	// code.
42174	Message string `json:"message,omitempty"`
42175
42176	// ForceSendFields is a list of field names (e.g. "Code") to
42177	// unconditionally include in API requests. By default, fields with
42178	// empty values are omitted from API requests. However, any non-pointer,
42179	// non-interface field appearing in ForceSendFields will be sent to the
42180	// server regardless of whether the field is empty or not. This may be
42181	// used to include empty fields in Patch requests.
42182	ForceSendFields []string `json:"-"`
42183
42184	// NullFields is a list of field names (e.g. "Code") to include in API
42185	// requests with the JSON null value. By default, fields with empty
42186	// values are omitted from API requests. However, any field with an
42187	// empty value appearing in NullFields will be sent to the server as
42188	// null. It is an error if a field in this list has a non-empty value.
42189	// This may be used to include null fields in Patch requests.
42190	NullFields []string `json:"-"`
42191}
42192
42193func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
42194	type NoMethod UrlMapsAggregatedListWarning
42195	raw := NoMethod(*s)
42196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42197}
42198
42199type UrlMapsAggregatedListWarningData struct {
42200	// Key: [Output Only] A key that provides more detail on the warning
42201	// being returned. For example, for warnings where there are no results
42202	// in a list request for a particular zone, this key might be scope and
42203	// the key value might be the zone name. Other examples might be a key
42204	// indicating a deprecated resource and a suggested replacement, or a
42205	// warning about invalid network settings (for example, if an instance
42206	// attempts to perform IP forwarding but is not enabled for IP
42207	// forwarding).
42208	Key string `json:"key,omitempty"`
42209
42210	// Value: [Output Only] A warning data value corresponding to the key.
42211	Value string `json:"value,omitempty"`
42212
42213	// ForceSendFields is a list of field names (e.g. "Key") to
42214	// unconditionally include in API requests. By default, fields with
42215	// empty values are omitted from API requests. However, any non-pointer,
42216	// non-interface field appearing in ForceSendFields will be sent to the
42217	// server regardless of whether the field is empty or not. This may be
42218	// used to include empty fields in Patch requests.
42219	ForceSendFields []string `json:"-"`
42220
42221	// NullFields is a list of field names (e.g. "Key") to include in API
42222	// requests with the JSON null value. By default, fields with empty
42223	// values are omitted from API requests. However, any field with an
42224	// empty value appearing in NullFields will be sent to the server as
42225	// null. It is an error if a field in this list has a non-empty value.
42226	// This may be used to include null fields in Patch requests.
42227	NullFields []string `json:"-"`
42228}
42229
42230func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42231	type NoMethod UrlMapsAggregatedListWarningData
42232	raw := NoMethod(*s)
42233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42234}
42235
42236type UrlMapsScopedList struct {
42237	// UrlMaps: A list of UrlMaps contained in this scope.
42238	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
42239
42240	// Warning: Informational warning which replaces the list of backend
42241	// services when the list is empty.
42242	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
42243
42244	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
42245	// unconditionally include in API requests. By default, fields with
42246	// empty values are omitted from API requests. However, any non-pointer,
42247	// non-interface field appearing in ForceSendFields will be sent to the
42248	// server regardless of whether the field is empty or not. This may be
42249	// used to include empty fields in Patch requests.
42250	ForceSendFields []string `json:"-"`
42251
42252	// NullFields is a list of field names (e.g. "UrlMaps") to include in
42253	// API requests with the JSON null value. By default, fields with empty
42254	// values are omitted from API requests. However, any field with an
42255	// empty value appearing in NullFields will be sent to the server as
42256	// null. It is an error if a field in this list has a non-empty value.
42257	// This may be used to include null fields in Patch requests.
42258	NullFields []string `json:"-"`
42259}
42260
42261func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
42262	type NoMethod UrlMapsScopedList
42263	raw := NoMethod(*s)
42264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42265}
42266
42267// UrlMapsScopedListWarning: Informational warning which replaces the
42268// list of backend services when the list is empty.
42269type UrlMapsScopedListWarning struct {
42270	// Code: [Output Only] A warning code, if applicable. For example,
42271	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42272	// the response.
42273	//
42274	// Possible values:
42275	//   "CLEANUP_FAILED"
42276	//   "DEPRECATED_RESOURCE_USED"
42277	//   "DEPRECATED_TYPE_USED"
42278	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42279	//   "EXPERIMENTAL_TYPE_USED"
42280	//   "EXTERNAL_API_WARNING"
42281	//   "FIELD_VALUE_OVERRIDEN"
42282	//   "INJECTED_KERNELS_DEPRECATED"
42283	//   "MISSING_TYPE_DEPENDENCY"
42284	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42285	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42286	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42287	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42288	//   "NEXT_HOP_NOT_RUNNING"
42289	//   "NOT_CRITICAL_ERROR"
42290	//   "NO_RESULTS_ON_PAGE"
42291	//   "REQUIRED_TOS_AGREEMENT"
42292	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42293	//   "RESOURCE_NOT_DELETED"
42294	//   "SCHEMA_VALIDATION_IGNORED"
42295	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42296	//   "UNDECLARED_PROPERTIES"
42297	//   "UNREACHABLE"
42298	Code string `json:"code,omitempty"`
42299
42300	// Data: [Output Only] Metadata about this warning in key: value format.
42301	// For example:
42302	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42303	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
42304
42305	// Message: [Output Only] A human-readable description of the warning
42306	// code.
42307	Message string `json:"message,omitempty"`
42308
42309	// ForceSendFields is a list of field names (e.g. "Code") to
42310	// unconditionally include in API requests. By default, fields with
42311	// empty values are omitted from API requests. However, any non-pointer,
42312	// non-interface field appearing in ForceSendFields will be sent to the
42313	// server regardless of whether the field is empty or not. This may be
42314	// used to include empty fields in Patch requests.
42315	ForceSendFields []string `json:"-"`
42316
42317	// NullFields is a list of field names (e.g. "Code") to include in API
42318	// requests with the JSON null value. By default, fields with empty
42319	// values are omitted from API requests. However, any field with an
42320	// empty value appearing in NullFields will be sent to the server as
42321	// null. It is an error if a field in this list has a non-empty value.
42322	// This may be used to include null fields in Patch requests.
42323	NullFields []string `json:"-"`
42324}
42325
42326func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
42327	type NoMethod UrlMapsScopedListWarning
42328	raw := NoMethod(*s)
42329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42330}
42331
42332type UrlMapsScopedListWarningData struct {
42333	// Key: [Output Only] A key that provides more detail on the warning
42334	// being returned. For example, for warnings where there are no results
42335	// in a list request for a particular zone, this key might be scope and
42336	// the key value might be the zone name. Other examples might be a key
42337	// indicating a deprecated resource and a suggested replacement, or a
42338	// warning about invalid network settings (for example, if an instance
42339	// attempts to perform IP forwarding but is not enabled for IP
42340	// forwarding).
42341	Key string `json:"key,omitempty"`
42342
42343	// Value: [Output Only] A warning data value corresponding to the key.
42344	Value string `json:"value,omitempty"`
42345
42346	// ForceSendFields is a list of field names (e.g. "Key") to
42347	// unconditionally include in API requests. By default, fields with
42348	// empty values are omitted from API requests. However, any non-pointer,
42349	// non-interface field appearing in ForceSendFields will be sent to the
42350	// server regardless of whether the field is empty or not. This may be
42351	// used to include empty fields in Patch requests.
42352	ForceSendFields []string `json:"-"`
42353
42354	// NullFields is a list of field names (e.g. "Key") to include in API
42355	// requests with the JSON null value. By default, fields with empty
42356	// values are omitted from API requests. However, any field with an
42357	// empty value appearing in NullFields will be sent to the server as
42358	// null. It is an error if a field in this list has a non-empty value.
42359	// This may be used to include null fields in Patch requests.
42360	NullFields []string `json:"-"`
42361}
42362
42363func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
42364	type NoMethod UrlMapsScopedListWarningData
42365	raw := NoMethod(*s)
42366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42367}
42368
42369type UrlMapsValidateRequest struct {
42370	// Resource: Content of the UrlMap to be validated.
42371	Resource *UrlMap `json:"resource,omitempty"`
42372
42373	// ForceSendFields is a list of field names (e.g. "Resource") to
42374	// unconditionally include in API requests. By default, fields with
42375	// empty values are omitted from API requests. However, any non-pointer,
42376	// non-interface field appearing in ForceSendFields will be sent to the
42377	// server regardless of whether the field is empty or not. This may be
42378	// used to include empty fields in Patch requests.
42379	ForceSendFields []string `json:"-"`
42380
42381	// NullFields is a list of field names (e.g. "Resource") to include in
42382	// API requests with the JSON null value. By default, fields with empty
42383	// values are omitted from API requests. However, any field with an
42384	// empty value appearing in NullFields will be sent to the server as
42385	// null. It is an error if a field in this list has a non-empty value.
42386	// This may be used to include null fields in Patch requests.
42387	NullFields []string `json:"-"`
42388}
42389
42390func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
42391	type NoMethod UrlMapsValidateRequest
42392	raw := NoMethod(*s)
42393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42394}
42395
42396type UrlMapsValidateResponse struct {
42397	Result *UrlMapValidationResult `json:"result,omitempty"`
42398
42399	// ServerResponse contains the HTTP response code and headers from the
42400	// server.
42401	googleapi.ServerResponse `json:"-"`
42402
42403	// ForceSendFields is a list of field names (e.g. "Result") to
42404	// unconditionally include in API requests. By default, fields with
42405	// empty values are omitted from API requests. However, any non-pointer,
42406	// non-interface field appearing in ForceSendFields will be sent to the
42407	// server regardless of whether the field is empty or not. This may be
42408	// used to include empty fields in Patch requests.
42409	ForceSendFields []string `json:"-"`
42410
42411	// NullFields is a list of field names (e.g. "Result") to include in API
42412	// requests with the JSON null value. By default, fields with empty
42413	// values are omitted from API requests. However, any field with an
42414	// empty value appearing in NullFields will be sent to the server as
42415	// null. It is an error if a field in this list has a non-empty value.
42416	// This may be used to include null fields in Patch requests.
42417	NullFields []string `json:"-"`
42418}
42419
42420func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
42421	type NoMethod UrlMapsValidateResponse
42422	raw := NoMethod(*s)
42423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42424}
42425
42426// UrlRewrite: The spec for modifying the path before sending the
42427// request to the matched backend service.
42428type UrlRewrite struct {
42429	// HostRewrite: Prior to forwarding the request to the selected service,
42430	// the request's host header is replaced with contents of
42431	// hostRewrite.
42432	// The value must be between 1 and 255 characters.
42433	HostRewrite string `json:"hostRewrite,omitempty"`
42434
42435	// PathPrefixRewrite: Prior to forwarding the request to the selected
42436	// backend service, the matching portion of the request's path is
42437	// replaced by pathPrefixRewrite.
42438	// The value must be between 1 and 1024 characters.
42439	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
42440
42441	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
42442	// unconditionally include in API requests. By default, fields with
42443	// empty values are omitted from API requests. However, any non-pointer,
42444	// non-interface field appearing in ForceSendFields will be sent to the
42445	// server regardless of whether the field is empty or not. This may be
42446	// used to include empty fields in Patch requests.
42447	ForceSendFields []string `json:"-"`
42448
42449	// NullFields is a list of field names (e.g. "HostRewrite") to include
42450	// in API requests with the JSON null value. By default, fields with
42451	// empty values are omitted from API requests. However, any field with
42452	// an empty value appearing in NullFields will be sent to the server as
42453	// null. It is an error if a field in this list has a non-empty value.
42454	// This may be used to include null fields in Patch requests.
42455	NullFields []string `json:"-"`
42456}
42457
42458func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
42459	type NoMethod UrlRewrite
42460	raw := NoMethod(*s)
42461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42462}
42463
42464// UsableSubnetwork: Subnetwork which the current user has
42465// compute.subnetworks.use permission on.
42466type UsableSubnetwork struct {
42467	// IpCidrRange: The range of internal addresses that are owned by this
42468	// subnetwork.
42469	IpCidrRange string `json:"ipCidrRange,omitempty"`
42470
42471	// Network: Network URL.
42472	Network string `json:"network,omitempty"`
42473
42474	// SecondaryIpRanges: Secondary IP ranges.
42475	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
42476
42477	// Subnetwork: Subnetwork URL.
42478	Subnetwork string `json:"subnetwork,omitempty"`
42479
42480	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
42481	// unconditionally include in API requests. By default, fields with
42482	// empty values are omitted from API requests. However, any non-pointer,
42483	// non-interface field appearing in ForceSendFields will be sent to the
42484	// server regardless of whether the field is empty or not. This may be
42485	// used to include empty fields in Patch requests.
42486	ForceSendFields []string `json:"-"`
42487
42488	// NullFields is a list of field names (e.g. "IpCidrRange") to include
42489	// in API requests with the JSON null value. By default, fields with
42490	// empty values are omitted from API requests. However, any field with
42491	// an empty value appearing in NullFields will be sent to the server as
42492	// null. It is an error if a field in this list has a non-empty value.
42493	// This may be used to include null fields in Patch requests.
42494	NullFields []string `json:"-"`
42495}
42496
42497func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
42498	type NoMethod UsableSubnetwork
42499	raw := NoMethod(*s)
42500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42501}
42502
42503// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
42504// subnetwork.
42505type UsableSubnetworkSecondaryRange struct {
42506	// IpCidrRange: The range of IP addresses belonging to this subnetwork
42507	// secondary range.
42508	IpCidrRange string `json:"ipCidrRange,omitempty"`
42509
42510	// RangeName: The name associated with this subnetwork secondary range,
42511	// used when adding an alias IP range to a VM instance. The name must be
42512	// 1-63 characters long, and comply with RFC1035. The name must be
42513	// unique within the subnetwork.
42514	RangeName string `json:"rangeName,omitempty"`
42515
42516	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
42517	// unconditionally include in API requests. By default, fields with
42518	// empty values are omitted from API requests. However, any non-pointer,
42519	// non-interface field appearing in ForceSendFields will be sent to the
42520	// server regardless of whether the field is empty or not. This may be
42521	// used to include empty fields in Patch requests.
42522	ForceSendFields []string `json:"-"`
42523
42524	// NullFields is a list of field names (e.g. "IpCidrRange") to include
42525	// in API requests with the JSON null value. By default, fields with
42526	// empty values are omitted from API requests. However, any field with
42527	// an empty value appearing in NullFields will be sent to the server as
42528	// null. It is an error if a field in this list has a non-empty value.
42529	// This may be used to include null fields in Patch requests.
42530	NullFields []string `json:"-"`
42531}
42532
42533func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
42534	type NoMethod UsableSubnetworkSecondaryRange
42535	raw := NoMethod(*s)
42536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42537}
42538
42539type UsableSubnetworksAggregatedList struct {
42540	// Id: [Output Only] The unique identifier for the resource. This
42541	// identifier is defined by the server.
42542	Id string `json:"id,omitempty"`
42543
42544	// Items: [Output] A list of usable subnetwork URLs.
42545	Items []*UsableSubnetwork `json:"items,omitempty"`
42546
42547	// Kind: [Output Only] Type of resource. Always
42548	// compute#usableSubnetworksAggregatedList for aggregated lists of
42549	// usable subnetworks.
42550	Kind string `json:"kind,omitempty"`
42551
42552	// NextPageToken: [Output Only] This token allows you to get the next
42553	// page of results for list requests. If the number of results is larger
42554	// than maxResults, use the nextPageToken as a value for the query
42555	// parameter pageToken in the next list request. Subsequent list
42556	// requests will have their own nextPageToken to continue paging through
42557	// the results.
42558	NextPageToken string `json:"nextPageToken,omitempty"`
42559
42560	// SelfLink: [Output Only] Server-defined URL for this resource.
42561	SelfLink string `json:"selfLink,omitempty"`
42562
42563	// Warning: [Output Only] Informational warning message.
42564	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
42565
42566	// ServerResponse contains the HTTP response code and headers from the
42567	// server.
42568	googleapi.ServerResponse `json:"-"`
42569
42570	// ForceSendFields is a list of field names (e.g. "Id") to
42571	// unconditionally include in API requests. By default, fields with
42572	// empty values are omitted from API requests. However, any non-pointer,
42573	// non-interface field appearing in ForceSendFields will be sent to the
42574	// server regardless of whether the field is empty or not. This may be
42575	// used to include empty fields in Patch requests.
42576	ForceSendFields []string `json:"-"`
42577
42578	// NullFields is a list of field names (e.g. "Id") to include in API
42579	// requests with the JSON null value. By default, fields with empty
42580	// values are omitted from API requests. However, any field with an
42581	// empty value appearing in NullFields will be sent to the server as
42582	// null. It is an error if a field in this list has a non-empty value.
42583	// This may be used to include null fields in Patch requests.
42584	NullFields []string `json:"-"`
42585}
42586
42587func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
42588	type NoMethod UsableSubnetworksAggregatedList
42589	raw := NoMethod(*s)
42590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42591}
42592
42593// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
42594// warning message.
42595type UsableSubnetworksAggregatedListWarning struct {
42596	// Code: [Output Only] A warning code, if applicable. For example,
42597	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42598	// the response.
42599	//
42600	// Possible values:
42601	//   "CLEANUP_FAILED"
42602	//   "DEPRECATED_RESOURCE_USED"
42603	//   "DEPRECATED_TYPE_USED"
42604	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42605	//   "EXPERIMENTAL_TYPE_USED"
42606	//   "EXTERNAL_API_WARNING"
42607	//   "FIELD_VALUE_OVERRIDEN"
42608	//   "INJECTED_KERNELS_DEPRECATED"
42609	//   "MISSING_TYPE_DEPENDENCY"
42610	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42611	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42612	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42613	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42614	//   "NEXT_HOP_NOT_RUNNING"
42615	//   "NOT_CRITICAL_ERROR"
42616	//   "NO_RESULTS_ON_PAGE"
42617	//   "REQUIRED_TOS_AGREEMENT"
42618	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42619	//   "RESOURCE_NOT_DELETED"
42620	//   "SCHEMA_VALIDATION_IGNORED"
42621	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42622	//   "UNDECLARED_PROPERTIES"
42623	//   "UNREACHABLE"
42624	Code string `json:"code,omitempty"`
42625
42626	// Data: [Output Only] Metadata about this warning in key: value format.
42627	// For example:
42628	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42629	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
42630
42631	// Message: [Output Only] A human-readable description of the warning
42632	// code.
42633	Message string `json:"message,omitempty"`
42634
42635	// ForceSendFields is a list of field names (e.g. "Code") to
42636	// unconditionally include in API requests. By default, fields with
42637	// empty values are omitted from API requests. However, any non-pointer,
42638	// non-interface field appearing in ForceSendFields will be sent to the
42639	// server regardless of whether the field is empty or not. This may be
42640	// used to include empty fields in Patch requests.
42641	ForceSendFields []string `json:"-"`
42642
42643	// NullFields is a list of field names (e.g. "Code") to include in API
42644	// requests with the JSON null value. By default, fields with empty
42645	// values are omitted from API requests. However, any field with an
42646	// empty value appearing in NullFields will be sent to the server as
42647	// null. It is an error if a field in this list has a non-empty value.
42648	// This may be used to include null fields in Patch requests.
42649	NullFields []string `json:"-"`
42650}
42651
42652func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
42653	type NoMethod UsableSubnetworksAggregatedListWarning
42654	raw := NoMethod(*s)
42655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42656}
42657
42658type UsableSubnetworksAggregatedListWarningData struct {
42659	// Key: [Output Only] A key that provides more detail on the warning
42660	// being returned. For example, for warnings where there are no results
42661	// in a list request for a particular zone, this key might be scope and
42662	// the key value might be the zone name. Other examples might be a key
42663	// indicating a deprecated resource and a suggested replacement, or a
42664	// warning about invalid network settings (for example, if an instance
42665	// attempts to perform IP forwarding but is not enabled for IP
42666	// forwarding).
42667	Key string `json:"key,omitempty"`
42668
42669	// Value: [Output Only] A warning data value corresponding to the key.
42670	Value string `json:"value,omitempty"`
42671
42672	// ForceSendFields is a list of field names (e.g. "Key") to
42673	// unconditionally include in API requests. By default, fields with
42674	// empty values are omitted from API requests. However, any non-pointer,
42675	// non-interface field appearing in ForceSendFields will be sent to the
42676	// server regardless of whether the field is empty or not. This may be
42677	// used to include empty fields in Patch requests.
42678	ForceSendFields []string `json:"-"`
42679
42680	// NullFields is a list of field names (e.g. "Key") to include in API
42681	// requests with the JSON null value. By default, fields with empty
42682	// values are omitted from API requests. However, any field with an
42683	// empty value appearing in NullFields will be sent to the server as
42684	// null. It is an error if a field in this list has a non-empty value.
42685	// This may be used to include null fields in Patch requests.
42686	NullFields []string `json:"-"`
42687}
42688
42689func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42690	type NoMethod UsableSubnetworksAggregatedListWarningData
42691	raw := NoMethod(*s)
42692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42693}
42694
42695// UsageExportLocation: The location in Cloud Storage and naming method
42696// of the daily usage report. Contains bucket_name and report_name
42697// prefix.
42698type UsageExportLocation struct {
42699	// BucketName: The name of an existing bucket in Cloud Storage where the
42700	// usage report object is stored. The Google Service Account is granted
42701	// write access to this bucket. This can either be the bucket name by
42702	// itself, such as example-bucket, or the bucket name with gs:// or
42703	// https://storage.googleapis.com/ in front of it, such as
42704	// gs://example-bucket.
42705	BucketName string `json:"bucketName,omitempty"`
42706
42707	// ReportNamePrefix: An optional prefix for the name of the usage report
42708	// object stored in bucketName. If not supplied, defaults to usage. The
42709	// report is stored as a CSV file named
42710	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
42711	// usage according to Pacific Time. If you supply a prefix, it should
42712	// conform to Cloud Storage object naming conventions.
42713	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
42714
42715	// ForceSendFields is a list of field names (e.g. "BucketName") to
42716	// unconditionally include in API requests. By default, fields with
42717	// empty values are omitted from API requests. However, any non-pointer,
42718	// non-interface field appearing in ForceSendFields will be sent to the
42719	// server regardless of whether the field is empty or not. This may be
42720	// used to include empty fields in Patch requests.
42721	ForceSendFields []string `json:"-"`
42722
42723	// NullFields is a list of field names (e.g. "BucketName") to include in
42724	// API requests with the JSON null value. By default, fields with empty
42725	// values are omitted from API requests. However, any field with an
42726	// empty value appearing in NullFields will be sent to the server as
42727	// null. It is an error if a field in this list has a non-empty value.
42728	// This may be used to include null fields in Patch requests.
42729	NullFields []string `json:"-"`
42730}
42731
42732func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
42733	type NoMethod UsageExportLocation
42734	raw := NoMethod(*s)
42735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42736}
42737
42738// VmEndpointNatMappings: Contain information of Nat mapping for a VM
42739// endpoint (i.e., NIC).
42740type VmEndpointNatMappings struct {
42741	// InstanceName: Name of the VM instance which the endpoint belongs to
42742	InstanceName string `json:"instanceName,omitempty"`
42743
42744	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
42745
42746	// ForceSendFields is a list of field names (e.g. "InstanceName") to
42747	// unconditionally include in API requests. By default, fields with
42748	// empty values are omitted from API requests. However, any non-pointer,
42749	// non-interface field appearing in ForceSendFields will be sent to the
42750	// server regardless of whether the field is empty or not. This may be
42751	// used to include empty fields in Patch requests.
42752	ForceSendFields []string `json:"-"`
42753
42754	// NullFields is a list of field names (e.g. "InstanceName") to include
42755	// in API requests with the JSON null value. By default, fields with
42756	// empty values are omitted from API requests. However, any field with
42757	// an empty value appearing in NullFields will be sent to the server as
42758	// null. It is an error if a field in this list has a non-empty value.
42759	// This may be used to include null fields in Patch requests.
42760	NullFields []string `json:"-"`
42761}
42762
42763func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
42764	type NoMethod VmEndpointNatMappings
42765	raw := NoMethod(*s)
42766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42767}
42768
42769// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
42770// mapping for an interface of this endpoint.
42771type VmEndpointNatMappingsInterfaceNatMappings struct {
42772	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
42773	// assigned to this interface. These ranges are inclusive, that is, both
42774	// the first and the last ports can be used for NAT. Example:
42775	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
42776	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
42777
42778	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
42779	// this interface. These ranges are inclusive, that is, both the first
42780	// and the last ports can be used for NAT. Example:
42781	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
42782	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
42783
42784	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
42785	// allocated to this interface. It equals to the aggregated port number
42786	// in the field drain_nat_ip_port_ranges.
42787	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
42788
42789	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
42790	// to this interface. It equals to the aggregated port number in the
42791	// field nat_ip_port_ranges.
42792	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
42793
42794	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
42795	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
42796	// "192.168.5.0/24".
42797	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
42798
42799	// SourceVirtualIp: Primary IP of the VM for this NIC.
42800	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
42801
42802	// ForceSendFields is a list of field names (e.g.
42803	// "DrainNatIpPortRanges") to unconditionally include in API requests.
42804	// By default, fields with empty values are omitted from API requests.
42805	// However, any non-pointer, non-interface field appearing in
42806	// ForceSendFields will be sent to the server regardless of whether the
42807	// field is empty or not. This may be used to include empty fields in
42808	// Patch requests.
42809	ForceSendFields []string `json:"-"`
42810
42811	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
42812	// include in API requests with the JSON null value. By default, fields
42813	// with empty values are omitted from API requests. However, any field
42814	// with an empty value appearing in NullFields will be sent to the
42815	// server as null. It is an error if a field in this list has a
42816	// non-empty value. This may be used to include null fields in Patch
42817	// requests.
42818	NullFields []string `json:"-"`
42819}
42820
42821func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
42822	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
42823	raw := NoMethod(*s)
42824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42825}
42826
42827// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
42828type VmEndpointNatMappingsList struct {
42829	// Id: [Output Only] The unique identifier for the resource. This
42830	// identifier is defined by the server.
42831	Id string `json:"id,omitempty"`
42832
42833	// Kind: [Output Only] Type of resource. Always
42834	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
42835	// endpoints.
42836	Kind string `json:"kind,omitempty"`
42837
42838	// NextPageToken: [Output Only] This token allows you to get the next
42839	// page of results for list requests. If the number of results is larger
42840	// than maxResults, use the nextPageToken as a value for the query
42841	// parameter pageToken in the next list request. Subsequent list
42842	// requests will have their own nextPageToken to continue paging through
42843	// the results.
42844	NextPageToken string `json:"nextPageToken,omitempty"`
42845
42846	// Result: [Output Only] A list of Nat mapping information of VM
42847	// endpoints.
42848	Result []*VmEndpointNatMappings `json:"result,omitempty"`
42849
42850	// SelfLink: [Output Only] Server-defined URL for this resource.
42851	SelfLink string `json:"selfLink,omitempty"`
42852
42853	// Warning: [Output Only] Informational warning message.
42854	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
42855
42856	// ServerResponse contains the HTTP response code and headers from the
42857	// server.
42858	googleapi.ServerResponse `json:"-"`
42859
42860	// ForceSendFields is a list of field names (e.g. "Id") to
42861	// unconditionally include in API requests. By default, fields with
42862	// empty values are omitted from API requests. However, any non-pointer,
42863	// non-interface field appearing in ForceSendFields will be sent to the
42864	// server regardless of whether the field is empty or not. This may be
42865	// used to include empty fields in Patch requests.
42866	ForceSendFields []string `json:"-"`
42867
42868	// NullFields is a list of field names (e.g. "Id") to include in API
42869	// requests with the JSON null value. By default, fields with empty
42870	// values are omitted from API requests. However, any field with an
42871	// empty value appearing in NullFields will be sent to the server as
42872	// null. It is an error if a field in this list has a non-empty value.
42873	// This may be used to include null fields in Patch requests.
42874	NullFields []string `json:"-"`
42875}
42876
42877func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
42878	type NoMethod VmEndpointNatMappingsList
42879	raw := NoMethod(*s)
42880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42881}
42882
42883// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
42884// message.
42885type VmEndpointNatMappingsListWarning struct {
42886	// Code: [Output Only] A warning code, if applicable. For example,
42887	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42888	// the response.
42889	//
42890	// Possible values:
42891	//   "CLEANUP_FAILED"
42892	//   "DEPRECATED_RESOURCE_USED"
42893	//   "DEPRECATED_TYPE_USED"
42894	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42895	//   "EXPERIMENTAL_TYPE_USED"
42896	//   "EXTERNAL_API_WARNING"
42897	//   "FIELD_VALUE_OVERRIDEN"
42898	//   "INJECTED_KERNELS_DEPRECATED"
42899	//   "MISSING_TYPE_DEPENDENCY"
42900	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42901	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42902	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42903	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42904	//   "NEXT_HOP_NOT_RUNNING"
42905	//   "NOT_CRITICAL_ERROR"
42906	//   "NO_RESULTS_ON_PAGE"
42907	//   "REQUIRED_TOS_AGREEMENT"
42908	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42909	//   "RESOURCE_NOT_DELETED"
42910	//   "SCHEMA_VALIDATION_IGNORED"
42911	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42912	//   "UNDECLARED_PROPERTIES"
42913	//   "UNREACHABLE"
42914	Code string `json:"code,omitempty"`
42915
42916	// Data: [Output Only] Metadata about this warning in key: value format.
42917	// For example:
42918	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42919	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
42920
42921	// Message: [Output Only] A human-readable description of the warning
42922	// code.
42923	Message string `json:"message,omitempty"`
42924
42925	// ForceSendFields is a list of field names (e.g. "Code") to
42926	// unconditionally include in API requests. By default, fields with
42927	// empty values are omitted from API requests. However, any non-pointer,
42928	// non-interface field appearing in ForceSendFields will be sent to the
42929	// server regardless of whether the field is empty or not. This may be
42930	// used to include empty fields in Patch requests.
42931	ForceSendFields []string `json:"-"`
42932
42933	// NullFields is a list of field names (e.g. "Code") to include in API
42934	// requests with the JSON null value. By default, fields with empty
42935	// values are omitted from API requests. However, any field with an
42936	// empty value appearing in NullFields will be sent to the server as
42937	// null. It is an error if a field in this list has a non-empty value.
42938	// This may be used to include null fields in Patch requests.
42939	NullFields []string `json:"-"`
42940}
42941
42942func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
42943	type NoMethod VmEndpointNatMappingsListWarning
42944	raw := NoMethod(*s)
42945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42946}
42947
42948type VmEndpointNatMappingsListWarningData struct {
42949	// Key: [Output Only] A key that provides more detail on the warning
42950	// being returned. For example, for warnings where there are no results
42951	// in a list request for a particular zone, this key might be scope and
42952	// the key value might be the zone name. Other examples might be a key
42953	// indicating a deprecated resource and a suggested replacement, or a
42954	// warning about invalid network settings (for example, if an instance
42955	// attempts to perform IP forwarding but is not enabled for IP
42956	// forwarding).
42957	Key string `json:"key,omitempty"`
42958
42959	// Value: [Output Only] A warning data value corresponding to the key.
42960	Value string `json:"value,omitempty"`
42961
42962	// ForceSendFields is a list of field names (e.g. "Key") to
42963	// unconditionally include in API requests. By default, fields with
42964	// empty values are omitted from API requests. However, any non-pointer,
42965	// non-interface field appearing in ForceSendFields will be sent to the
42966	// server regardless of whether the field is empty or not. This may be
42967	// used to include empty fields in Patch requests.
42968	ForceSendFields []string `json:"-"`
42969
42970	// NullFields is a list of field names (e.g. "Key") to include in API
42971	// requests with the JSON null value. By default, fields with empty
42972	// values are omitted from API requests. However, any field with an
42973	// empty value appearing in NullFields will be sent to the server as
42974	// null. It is an error if a field in this list has a non-empty value.
42975	// This may be used to include null fields in Patch requests.
42976	NullFields []string `json:"-"`
42977}
42978
42979func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
42980	type NoMethod VmEndpointNatMappingsListWarningData
42981	raw := NoMethod(*s)
42982	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42983}
42984
42985// VpnGateway: Represents a HA VPN gateway.
42986//
42987// HA VPN is a high-availability (HA) Cloud VPN solution that lets you
42988// securely connect your on-premises network to your Google Cloud
42989// Virtual Private Cloud network through an IPsec VPN connection in a
42990// single region. For more information about Cloud HA VPN solutions, see
42991//  Cloud VPN topologies . (== resource_for {$api_version}.vpnGateways
42992// ==)
42993type VpnGateway struct {
42994	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42995	// format.
42996	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42997
42998	// Description: An optional description of this resource. Provide this
42999	// property when you create the resource.
43000	Description string `json:"description,omitempty"`
43001
43002	// Id: [Output Only] The unique identifier for the resource. This
43003	// identifier is defined by the server.
43004	Id uint64 `json:"id,omitempty,string"`
43005
43006	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
43007	// VPN gateways.
43008	Kind string `json:"kind,omitempty"`
43009
43010	// LabelFingerprint: A fingerprint for the labels being applied to this
43011	// VpnGateway, which is essentially a hash of the labels set used for
43012	// optimistic locking. The fingerprint is initially generated by Compute
43013	// Engine and changes after every request to modify or update labels.
43014	// You must always provide an up-to-date fingerprint hash in order to
43015	// update or change labels, otherwise the request will fail with error
43016	// 412 conditionNotMet.
43017	//
43018	// To see the latest fingerprint, make a get() request to retrieve an
43019	// VpnGateway.
43020	LabelFingerprint string `json:"labelFingerprint,omitempty"`
43021
43022	// Labels: Labels for this resource. These can only be added or modified
43023	// by the setLabels method. Each label key/value pair must comply with
43024	// RFC1035. Label values may be empty.
43025	Labels map[string]string `json:"labels,omitempty"`
43026
43027	// Name: Name of the resource. Provided by the client when the resource
43028	// is created. The name must be 1-63 characters long, and comply with
43029	// RFC1035. Specifically, the name must be 1-63 characters long and
43030	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43031	// the first character must be a lowercase letter, and all following
43032	// characters must be a dash, lowercase letter, or digit, except the
43033	// last character, which cannot be a dash.
43034	Name string `json:"name,omitempty"`
43035
43036	// Network: URL of the network to which this VPN gateway is attached.
43037	// Provided by the client when the VPN gateway is created.
43038	Network string `json:"network,omitempty"`
43039
43040	// Region: [Output Only] URL of the region where the VPN gateway
43041	// resides.
43042	Region string `json:"region,omitempty"`
43043
43044	// SelfLink: [Output Only] Server-defined URL for the resource.
43045	SelfLink string `json:"selfLink,omitempty"`
43046
43047	// VpnInterfaces: A list of interfaces on this VPN gateway.
43048	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
43049
43050	// ServerResponse contains the HTTP response code and headers from the
43051	// server.
43052	googleapi.ServerResponse `json:"-"`
43053
43054	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43055	// to unconditionally include in API requests. By default, fields with
43056	// empty values are omitted from API requests. However, any non-pointer,
43057	// non-interface field appearing in ForceSendFields will be sent to the
43058	// server regardless of whether the field is empty or not. This may be
43059	// used to include empty fields in Patch requests.
43060	ForceSendFields []string `json:"-"`
43061
43062	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43063	// include in API requests with the JSON null value. By default, fields
43064	// with empty values are omitted from API requests. However, any field
43065	// with an empty value appearing in NullFields will be sent to the
43066	// server as null. It is an error if a field in this list has a
43067	// non-empty value. This may be used to include null fields in Patch
43068	// requests.
43069	NullFields []string `json:"-"`
43070}
43071
43072func (s *VpnGateway) MarshalJSON() ([]byte, error) {
43073	type NoMethod VpnGateway
43074	raw := NoMethod(*s)
43075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43076}
43077
43078type VpnGatewayAggregatedList struct {
43079	// Id: [Output Only] Unique identifier for the resource; defined by the
43080	// server.
43081	Id string `json:"id,omitempty"`
43082
43083	// Items: A list of VpnGateway resources.
43084	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
43085
43086	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
43087	// VPN gateways.
43088	Kind string `json:"kind,omitempty"`
43089
43090	// NextPageToken: [Output Only] This token allows you to get the next
43091	// page of results for list requests. If the number of results is larger
43092	// than maxResults, use the nextPageToken as a value for the query
43093	// parameter pageToken in the next list request. Subsequent list
43094	// requests will have their own nextPageToken to continue paging through
43095	// the results.
43096	NextPageToken string `json:"nextPageToken,omitempty"`
43097
43098	// SelfLink: [Output Only] Server-defined URL for this resource.
43099	SelfLink string `json:"selfLink,omitempty"`
43100
43101	// Warning: [Output Only] Informational warning message.
43102	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
43103
43104	// ServerResponse contains the HTTP response code and headers from the
43105	// server.
43106	googleapi.ServerResponse `json:"-"`
43107
43108	// ForceSendFields is a list of field names (e.g. "Id") to
43109	// unconditionally include in API requests. By default, fields with
43110	// empty values are omitted from API requests. However, any non-pointer,
43111	// non-interface field appearing in ForceSendFields will be sent to the
43112	// server regardless of whether the field is empty or not. This may be
43113	// used to include empty fields in Patch requests.
43114	ForceSendFields []string `json:"-"`
43115
43116	// NullFields is a list of field names (e.g. "Id") to include in API
43117	// requests with the JSON null value. By default, fields with empty
43118	// values are omitted from API requests. However, any field with an
43119	// empty value appearing in NullFields will be sent to the server as
43120	// null. It is an error if a field in this list has a non-empty value.
43121	// This may be used to include null fields in Patch requests.
43122	NullFields []string `json:"-"`
43123}
43124
43125func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
43126	type NoMethod VpnGatewayAggregatedList
43127	raw := NoMethod(*s)
43128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43129}
43130
43131// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
43132// message.
43133type VpnGatewayAggregatedListWarning struct {
43134	// Code: [Output Only] A warning code, if applicable. For example,
43135	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43136	// the response.
43137	//
43138	// Possible values:
43139	//   "CLEANUP_FAILED"
43140	//   "DEPRECATED_RESOURCE_USED"
43141	//   "DEPRECATED_TYPE_USED"
43142	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43143	//   "EXPERIMENTAL_TYPE_USED"
43144	//   "EXTERNAL_API_WARNING"
43145	//   "FIELD_VALUE_OVERRIDEN"
43146	//   "INJECTED_KERNELS_DEPRECATED"
43147	//   "MISSING_TYPE_DEPENDENCY"
43148	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43149	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43150	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43151	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43152	//   "NEXT_HOP_NOT_RUNNING"
43153	//   "NOT_CRITICAL_ERROR"
43154	//   "NO_RESULTS_ON_PAGE"
43155	//   "REQUIRED_TOS_AGREEMENT"
43156	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43157	//   "RESOURCE_NOT_DELETED"
43158	//   "SCHEMA_VALIDATION_IGNORED"
43159	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43160	//   "UNDECLARED_PROPERTIES"
43161	//   "UNREACHABLE"
43162	Code string `json:"code,omitempty"`
43163
43164	// Data: [Output Only] Metadata about this warning in key: value format.
43165	// For example:
43166	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43167	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
43168
43169	// Message: [Output Only] A human-readable description of the warning
43170	// code.
43171	Message string `json:"message,omitempty"`
43172
43173	// ForceSendFields is a list of field names (e.g. "Code") to
43174	// unconditionally include in API requests. By default, fields with
43175	// empty values are omitted from API requests. However, any non-pointer,
43176	// non-interface field appearing in ForceSendFields will be sent to the
43177	// server regardless of whether the field is empty or not. This may be
43178	// used to include empty fields in Patch requests.
43179	ForceSendFields []string `json:"-"`
43180
43181	// NullFields is a list of field names (e.g. "Code") to include in API
43182	// requests with the JSON null value. By default, fields with empty
43183	// values are omitted from API requests. However, any field with an
43184	// empty value appearing in NullFields will be sent to the server as
43185	// null. It is an error if a field in this list has a non-empty value.
43186	// This may be used to include null fields in Patch requests.
43187	NullFields []string `json:"-"`
43188}
43189
43190func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
43191	type NoMethod VpnGatewayAggregatedListWarning
43192	raw := NoMethod(*s)
43193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43194}
43195
43196type VpnGatewayAggregatedListWarningData struct {
43197	// Key: [Output Only] A key that provides more detail on the warning
43198	// being returned. For example, for warnings where there are no results
43199	// in a list request for a particular zone, this key might be scope and
43200	// the key value might be the zone name. Other examples might be a key
43201	// indicating a deprecated resource and a suggested replacement, or a
43202	// warning about invalid network settings (for example, if an instance
43203	// attempts to perform IP forwarding but is not enabled for IP
43204	// forwarding).
43205	Key string `json:"key,omitempty"`
43206
43207	// Value: [Output Only] A warning data value corresponding to the key.
43208	Value string `json:"value,omitempty"`
43209
43210	// ForceSendFields is a list of field names (e.g. "Key") to
43211	// unconditionally include in API requests. By default, fields with
43212	// empty values are omitted from API requests. However, any non-pointer,
43213	// non-interface field appearing in ForceSendFields will be sent to the
43214	// server regardless of whether the field is empty or not. This may be
43215	// used to include empty fields in Patch requests.
43216	ForceSendFields []string `json:"-"`
43217
43218	// NullFields is a list of field names (e.g. "Key") to include in API
43219	// requests with the JSON null value. By default, fields with empty
43220	// values are omitted from API requests. However, any field with an
43221	// empty value appearing in NullFields will be sent to the server as
43222	// null. It is an error if a field in this list has a non-empty value.
43223	// This may be used to include null fields in Patch requests.
43224	NullFields []string `json:"-"`
43225}
43226
43227func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
43228	type NoMethod VpnGatewayAggregatedListWarningData
43229	raw := NoMethod(*s)
43230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43231}
43232
43233// VpnGatewayList: Contains a list of VpnGateway resources.
43234type VpnGatewayList struct {
43235	// Id: [Output Only] Unique identifier for the resource; defined by the
43236	// server.
43237	Id string `json:"id,omitempty"`
43238
43239	// Items: A list of VpnGateway resources.
43240	Items []*VpnGateway `json:"items,omitempty"`
43241
43242	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
43243	// VPN gateways.
43244	Kind string `json:"kind,omitempty"`
43245
43246	// NextPageToken: [Output Only] This token allows you to get the next
43247	// page of results for list requests. If the number of results is larger
43248	// than maxResults, use the nextPageToken as a value for the query
43249	// parameter pageToken in the next list request. Subsequent list
43250	// requests will have their own nextPageToken to continue paging through
43251	// the results.
43252	NextPageToken string `json:"nextPageToken,omitempty"`
43253
43254	// SelfLink: [Output Only] Server-defined URL for this resource.
43255	SelfLink string `json:"selfLink,omitempty"`
43256
43257	// Warning: [Output Only] Informational warning message.
43258	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
43259
43260	// ServerResponse contains the HTTP response code and headers from the
43261	// server.
43262	googleapi.ServerResponse `json:"-"`
43263
43264	// ForceSendFields is a list of field names (e.g. "Id") to
43265	// unconditionally include in API requests. By default, fields with
43266	// empty values are omitted from API requests. However, any non-pointer,
43267	// non-interface field appearing in ForceSendFields will be sent to the
43268	// server regardless of whether the field is empty or not. This may be
43269	// used to include empty fields in Patch requests.
43270	ForceSendFields []string `json:"-"`
43271
43272	// NullFields is a list of field names (e.g. "Id") to include in API
43273	// requests with the JSON null value. By default, fields with empty
43274	// values are omitted from API requests. However, any field with an
43275	// empty value appearing in NullFields will be sent to the server as
43276	// null. It is an error if a field in this list has a non-empty value.
43277	// This may be used to include null fields in Patch requests.
43278	NullFields []string `json:"-"`
43279}
43280
43281func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
43282	type NoMethod VpnGatewayList
43283	raw := NoMethod(*s)
43284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43285}
43286
43287// VpnGatewayListWarning: [Output Only] Informational warning message.
43288type VpnGatewayListWarning struct {
43289	// Code: [Output Only] A warning code, if applicable. For example,
43290	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43291	// the response.
43292	//
43293	// Possible values:
43294	//   "CLEANUP_FAILED"
43295	//   "DEPRECATED_RESOURCE_USED"
43296	//   "DEPRECATED_TYPE_USED"
43297	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43298	//   "EXPERIMENTAL_TYPE_USED"
43299	//   "EXTERNAL_API_WARNING"
43300	//   "FIELD_VALUE_OVERRIDEN"
43301	//   "INJECTED_KERNELS_DEPRECATED"
43302	//   "MISSING_TYPE_DEPENDENCY"
43303	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43304	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43305	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43306	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43307	//   "NEXT_HOP_NOT_RUNNING"
43308	//   "NOT_CRITICAL_ERROR"
43309	//   "NO_RESULTS_ON_PAGE"
43310	//   "REQUIRED_TOS_AGREEMENT"
43311	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43312	//   "RESOURCE_NOT_DELETED"
43313	//   "SCHEMA_VALIDATION_IGNORED"
43314	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43315	//   "UNDECLARED_PROPERTIES"
43316	//   "UNREACHABLE"
43317	Code string `json:"code,omitempty"`
43318
43319	// Data: [Output Only] Metadata about this warning in key: value format.
43320	// For example:
43321	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43322	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
43323
43324	// Message: [Output Only] A human-readable description of the warning
43325	// code.
43326	Message string `json:"message,omitempty"`
43327
43328	// ForceSendFields is a list of field names (e.g. "Code") to
43329	// unconditionally include in API requests. By default, fields with
43330	// empty values are omitted from API requests. However, any non-pointer,
43331	// non-interface field appearing in ForceSendFields will be sent to the
43332	// server regardless of whether the field is empty or not. This may be
43333	// used to include empty fields in Patch requests.
43334	ForceSendFields []string `json:"-"`
43335
43336	// NullFields is a list of field names (e.g. "Code") to include in API
43337	// requests with the JSON null value. By default, fields with empty
43338	// values are omitted from API requests. However, any field with an
43339	// empty value appearing in NullFields will be sent to the server as
43340	// null. It is an error if a field in this list has a non-empty value.
43341	// This may be used to include null fields in Patch requests.
43342	NullFields []string `json:"-"`
43343}
43344
43345func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
43346	type NoMethod VpnGatewayListWarning
43347	raw := NoMethod(*s)
43348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43349}
43350
43351type VpnGatewayListWarningData struct {
43352	// Key: [Output Only] A key that provides more detail on the warning
43353	// being returned. For example, for warnings where there are no results
43354	// in a list request for a particular zone, this key might be scope and
43355	// the key value might be the zone name. Other examples might be a key
43356	// indicating a deprecated resource and a suggested replacement, or a
43357	// warning about invalid network settings (for example, if an instance
43358	// attempts to perform IP forwarding but is not enabled for IP
43359	// forwarding).
43360	Key string `json:"key,omitempty"`
43361
43362	// Value: [Output Only] A warning data value corresponding to the key.
43363	Value string `json:"value,omitempty"`
43364
43365	// ForceSendFields is a list of field names (e.g. "Key") to
43366	// unconditionally include in API requests. By default, fields with
43367	// empty values are omitted from API requests. However, any non-pointer,
43368	// non-interface field appearing in ForceSendFields will be sent to the
43369	// server regardless of whether the field is empty or not. This may be
43370	// used to include empty fields in Patch requests.
43371	ForceSendFields []string `json:"-"`
43372
43373	// NullFields is a list of field names (e.g. "Key") to include in API
43374	// requests with the JSON null value. By default, fields with empty
43375	// values are omitted from API requests. However, any field with an
43376	// empty value appearing in NullFields will be sent to the server as
43377	// null. It is an error if a field in this list has a non-empty value.
43378	// This may be used to include null fields in Patch requests.
43379	NullFields []string `json:"-"`
43380}
43381
43382func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
43383	type NoMethod VpnGatewayListWarningData
43384	raw := NoMethod(*s)
43385	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43386}
43387
43388type VpnGatewayStatus struct {
43389	// VpnConnections: List of VPN connection for this VpnGateway.
43390	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
43391
43392	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
43393	// unconditionally include in API requests. By default, fields with
43394	// empty values are omitted from API requests. However, any non-pointer,
43395	// non-interface field appearing in ForceSendFields will be sent to the
43396	// server regardless of whether the field is empty or not. This may be
43397	// used to include empty fields in Patch requests.
43398	ForceSendFields []string `json:"-"`
43399
43400	// NullFields is a list of field names (e.g. "VpnConnections") to
43401	// include in API requests with the JSON null value. By default, fields
43402	// with empty values are omitted from API requests. However, any field
43403	// with an empty value appearing in NullFields will be sent to the
43404	// server as null. It is an error if a field in this list has a
43405	// non-empty value. This may be used to include null fields in Patch
43406	// requests.
43407	NullFields []string `json:"-"`
43408}
43409
43410func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
43411	type NoMethod VpnGatewayStatus
43412	raw := NoMethod(*s)
43413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43414}
43415
43416// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
43417// availability requirement state for the VPN connection between this
43418// Cloud VPN gateway and a peer gateway.
43419type VpnGatewayStatusHighAvailabilityRequirementState struct {
43420	// State: Indicates the high availability requirement state for the VPN
43421	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
43422	// CONNECTION_REDUNDANCY_NOT_MET.
43423	//
43424	// Possible values:
43425	//   "CONNECTION_REDUNDANCY_MET"
43426	//   "CONNECTION_REDUNDANCY_NOT_MET"
43427	State string `json:"state,omitempty"`
43428
43429	// UnsatisfiedReason: Indicates the reason why the VPN connection does
43430	// not meet the high availability redundancy criteria/requirement. Valid
43431	// values is INCOMPLETE_TUNNELS_COVERAGE.
43432	//
43433	// Possible values:
43434	//   "INCOMPLETE_TUNNELS_COVERAGE"
43435	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
43436
43437	// ForceSendFields is a list of field names (e.g. "State") to
43438	// unconditionally include in API requests. By default, fields with
43439	// empty values are omitted from API requests. However, any non-pointer,
43440	// non-interface field appearing in ForceSendFields will be sent to the
43441	// server regardless of whether the field is empty or not. This may be
43442	// used to include empty fields in Patch requests.
43443	ForceSendFields []string `json:"-"`
43444
43445	// NullFields is a list of field names (e.g. "State") to include in API
43446	// requests with the JSON null value. By default, fields with empty
43447	// values are omitted from API requests. However, any field with an
43448	// empty value appearing in NullFields will be sent to the server as
43449	// null. It is an error if a field in this list has a non-empty value.
43450	// This may be used to include null fields in Patch requests.
43451	NullFields []string `json:"-"`
43452}
43453
43454func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
43455	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
43456	raw := NoMethod(*s)
43457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43458}
43459
43460// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
43461type VpnGatewayStatusTunnel struct {
43462	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
43463	// associated with.
43464	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
43465
43466	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
43467	// connected to, the peer gateway could either be an external VPN
43468	// gateway or GCP VPN gateway.
43469	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
43470
43471	// TunnelUrl: URL reference to the VPN tunnel.
43472	TunnelUrl string `json:"tunnelUrl,omitempty"`
43473
43474	// ForceSendFields is a list of field names (e.g.
43475	// "LocalGatewayInterface") to unconditionally include in API requests.
43476	// By default, fields with empty values are omitted from API requests.
43477	// However, any non-pointer, non-interface field appearing in
43478	// ForceSendFields will be sent to the server regardless of whether the
43479	// field is empty or not. This may be used to include empty fields in
43480	// Patch requests.
43481	ForceSendFields []string `json:"-"`
43482
43483	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
43484	// include in API requests with the JSON null value. By default, fields
43485	// with empty values are omitted from API requests. However, any field
43486	// with an empty value appearing in NullFields will be sent to the
43487	// server as null. It is an error if a field in this list has a
43488	// non-empty value. This may be used to include null fields in Patch
43489	// requests.
43490	NullFields []string `json:"-"`
43491}
43492
43493func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
43494	type NoMethod VpnGatewayStatusTunnel
43495	raw := NoMethod(*s)
43496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43497}
43498
43499// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
43500// tunnels connected from this VpnGateway to the same peer gateway. The
43501// peer gateway could either be a external VPN gateway or GCP VPN
43502// gateway.
43503type VpnGatewayStatusVpnConnection struct {
43504	// PeerExternalGateway: URL reference to the peer external VPN gateways
43505	// to which the VPN tunnels in this VPN connection are connected. This
43506	// field is mutually exclusive with peer_gcp_gateway.
43507	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
43508
43509	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
43510	// the VPN tunnels in this VPN connection are connected. This field is
43511	// mutually exclusive with peer_gcp_gateway.
43512	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
43513
43514	// State: HighAvailabilityRequirementState for the VPN connection.
43515	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
43516
43517	// Tunnels: List of VPN tunnels that are in this VPN connection.
43518	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
43519
43520	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
43521	// to unconditionally include in API requests. By default, fields with
43522	// empty values are omitted from API requests. However, any non-pointer,
43523	// non-interface field appearing in ForceSendFields will be sent to the
43524	// server regardless of whether the field is empty or not. This may be
43525	// used to include empty fields in Patch requests.
43526	ForceSendFields []string `json:"-"`
43527
43528	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
43529	// include in API requests with the JSON null value. By default, fields
43530	// with empty values are omitted from API requests. However, any field
43531	// with an empty value appearing in NullFields will be sent to the
43532	// server as null. It is an error if a field in this list has a
43533	// non-empty value. This may be used to include null fields in Patch
43534	// requests.
43535	NullFields []string `json:"-"`
43536}
43537
43538func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
43539	type NoMethod VpnGatewayStatusVpnConnection
43540	raw := NoMethod(*s)
43541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43542}
43543
43544// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
43545type VpnGatewayVpnGatewayInterface struct {
43546	// Id: The numeric ID of this VPN gateway interface.
43547	Id int64 `json:"id,omitempty"`
43548
43549	// IpAddress: [Output Only] The external IP address for this VPN gateway
43550	// interface.
43551	IpAddress string `json:"ipAddress,omitempty"`
43552
43553	// ForceSendFields is a list of field names (e.g. "Id") to
43554	// unconditionally include in API requests. By default, fields with
43555	// empty values are omitted from API requests. However, any non-pointer,
43556	// non-interface field appearing in ForceSendFields will be sent to the
43557	// server regardless of whether the field is empty or not. This may be
43558	// used to include empty fields in Patch requests.
43559	ForceSendFields []string `json:"-"`
43560
43561	// NullFields is a list of field names (e.g. "Id") to include in API
43562	// requests with the JSON null value. By default, fields with empty
43563	// values are omitted from API requests. However, any field with an
43564	// empty value appearing in NullFields will be sent to the server as
43565	// null. It is an error if a field in this list has a non-empty value.
43566	// This may be used to include null fields in Patch requests.
43567	NullFields []string `json:"-"`
43568}
43569
43570func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
43571	type NoMethod VpnGatewayVpnGatewayInterface
43572	raw := NoMethod(*s)
43573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43574}
43575
43576type VpnGatewaysGetStatusResponse struct {
43577	Result *VpnGatewayStatus `json:"result,omitempty"`
43578
43579	// ServerResponse contains the HTTP response code and headers from the
43580	// server.
43581	googleapi.ServerResponse `json:"-"`
43582
43583	// ForceSendFields is a list of field names (e.g. "Result") to
43584	// unconditionally include in API requests. By default, fields with
43585	// empty values are omitted from API requests. However, any non-pointer,
43586	// non-interface field appearing in ForceSendFields will be sent to the
43587	// server regardless of whether the field is empty or not. This may be
43588	// used to include empty fields in Patch requests.
43589	ForceSendFields []string `json:"-"`
43590
43591	// NullFields is a list of field names (e.g. "Result") to include in API
43592	// requests with the JSON null value. By default, fields with empty
43593	// values are omitted from API requests. However, any field with an
43594	// empty value appearing in NullFields will be sent to the server as
43595	// null. It is an error if a field in this list has a non-empty value.
43596	// This may be used to include null fields in Patch requests.
43597	NullFields []string `json:"-"`
43598}
43599
43600func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
43601	type NoMethod VpnGatewaysGetStatusResponse
43602	raw := NoMethod(*s)
43603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43604}
43605
43606type VpnGatewaysScopedList struct {
43607	// VpnGateways: [Output Only] A list of VPN gateways contained in this
43608	// scope.
43609	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
43610
43611	// Warning: [Output Only] Informational warning which replaces the list
43612	// of addresses when the list is empty.
43613	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
43614
43615	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
43616	// unconditionally include in API requests. By default, fields with
43617	// empty values are omitted from API requests. However, any non-pointer,
43618	// non-interface field appearing in ForceSendFields will be sent to the
43619	// server regardless of whether the field is empty or not. This may be
43620	// used to include empty fields in Patch requests.
43621	ForceSendFields []string `json:"-"`
43622
43623	// NullFields is a list of field names (e.g. "VpnGateways") to include
43624	// in API requests with the JSON null value. By default, fields with
43625	// empty values are omitted from API requests. However, any field with
43626	// an empty value appearing in NullFields will be sent to the server as
43627	// null. It is an error if a field in this list has a non-empty value.
43628	// This may be used to include null fields in Patch requests.
43629	NullFields []string `json:"-"`
43630}
43631
43632func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
43633	type NoMethod VpnGatewaysScopedList
43634	raw := NoMethod(*s)
43635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43636}
43637
43638// VpnGatewaysScopedListWarning: [Output Only] Informational warning
43639// which replaces the list of addresses when the list is empty.
43640type VpnGatewaysScopedListWarning struct {
43641	// Code: [Output Only] A warning code, if applicable. For example,
43642	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43643	// the response.
43644	//
43645	// Possible values:
43646	//   "CLEANUP_FAILED"
43647	//   "DEPRECATED_RESOURCE_USED"
43648	//   "DEPRECATED_TYPE_USED"
43649	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43650	//   "EXPERIMENTAL_TYPE_USED"
43651	//   "EXTERNAL_API_WARNING"
43652	//   "FIELD_VALUE_OVERRIDEN"
43653	//   "INJECTED_KERNELS_DEPRECATED"
43654	//   "MISSING_TYPE_DEPENDENCY"
43655	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43656	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43657	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43658	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43659	//   "NEXT_HOP_NOT_RUNNING"
43660	//   "NOT_CRITICAL_ERROR"
43661	//   "NO_RESULTS_ON_PAGE"
43662	//   "REQUIRED_TOS_AGREEMENT"
43663	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43664	//   "RESOURCE_NOT_DELETED"
43665	//   "SCHEMA_VALIDATION_IGNORED"
43666	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43667	//   "UNDECLARED_PROPERTIES"
43668	//   "UNREACHABLE"
43669	Code string `json:"code,omitempty"`
43670
43671	// Data: [Output Only] Metadata about this warning in key: value format.
43672	// For example:
43673	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43674	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
43675
43676	// Message: [Output Only] A human-readable description of the warning
43677	// code.
43678	Message string `json:"message,omitempty"`
43679
43680	// ForceSendFields is a list of field names (e.g. "Code") to
43681	// unconditionally include in API requests. By default, fields with
43682	// empty values are omitted from API requests. However, any non-pointer,
43683	// non-interface field appearing in ForceSendFields will be sent to the
43684	// server regardless of whether the field is empty or not. This may be
43685	// used to include empty fields in Patch requests.
43686	ForceSendFields []string `json:"-"`
43687
43688	// NullFields is a list of field names (e.g. "Code") to include in API
43689	// requests with the JSON null value. By default, fields with empty
43690	// values are omitted from API requests. However, any field with an
43691	// empty value appearing in NullFields will be sent to the server as
43692	// null. It is an error if a field in this list has a non-empty value.
43693	// This may be used to include null fields in Patch requests.
43694	NullFields []string `json:"-"`
43695}
43696
43697func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
43698	type NoMethod VpnGatewaysScopedListWarning
43699	raw := NoMethod(*s)
43700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43701}
43702
43703type VpnGatewaysScopedListWarningData struct {
43704	// Key: [Output Only] A key that provides more detail on the warning
43705	// being returned. For example, for warnings where there are no results
43706	// in a list request for a particular zone, this key might be scope and
43707	// the key value might be the zone name. Other examples might be a key
43708	// indicating a deprecated resource and a suggested replacement, or a
43709	// warning about invalid network settings (for example, if an instance
43710	// attempts to perform IP forwarding but is not enabled for IP
43711	// forwarding).
43712	Key string `json:"key,omitempty"`
43713
43714	// Value: [Output Only] A warning data value corresponding to the key.
43715	Value string `json:"value,omitempty"`
43716
43717	// ForceSendFields is a list of field names (e.g. "Key") to
43718	// unconditionally include in API requests. By default, fields with
43719	// empty values are omitted from API requests. However, any non-pointer,
43720	// non-interface field appearing in ForceSendFields will be sent to the
43721	// server regardless of whether the field is empty or not. This may be
43722	// used to include empty fields in Patch requests.
43723	ForceSendFields []string `json:"-"`
43724
43725	// NullFields is a list of field names (e.g. "Key") to include in API
43726	// requests with the JSON null value. By default, fields with empty
43727	// values are omitted from API requests. However, any field with an
43728	// empty value appearing in NullFields will be sent to the server as
43729	// null. It is an error if a field in this list has a non-empty value.
43730	// This may be used to include null fields in Patch requests.
43731	NullFields []string `json:"-"`
43732}
43733
43734func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
43735	type NoMethod VpnGatewaysScopedListWarningData
43736	raw := NoMethod(*s)
43737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43738}
43739
43740// VpnTunnel: Represents a Cloud VPN Tunnel resource.
43741//
43742// For more information about VPN, read the the Cloud VPN Overview. (==
43743// resource_for {$api_version}.vpnTunnels ==)
43744type VpnTunnel struct {
43745	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43746	// format.
43747	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43748
43749	// Description: An optional description of this resource. Provide this
43750	// property when you create the resource.
43751	Description string `json:"description,omitempty"`
43752
43753	// DetailedStatus: [Output Only] Detailed status message for the VPN
43754	// tunnel.
43755	DetailedStatus string `json:"detailedStatus,omitempty"`
43756
43757	// Id: [Output Only] The unique identifier for the resource. This
43758	// identifier is defined by the server.
43759	Id uint64 `json:"id,omitempty,string"`
43760
43761	// IkeVersion: IKE protocol version to use when establishing the VPN
43762	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
43763	// The default version is 2.
43764	IkeVersion int64 `json:"ikeVersion,omitempty"`
43765
43766	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
43767	// VPN tunnels.
43768	Kind string `json:"kind,omitempty"`
43769
43770	// LabelFingerprint: A fingerprint for the labels being applied to this
43771	// VpnTunnel, which is essentially a hash of the labels set used for
43772	// optimistic locking. The fingerprint is initially generated by Compute
43773	// Engine and changes after every request to modify or update labels.
43774	// You must always provide an up-to-date fingerprint hash in order to
43775	// update or change labels, otherwise the request will fail with error
43776	// 412 conditionNotMet.
43777	//
43778	// To see the latest fingerprint, make a get() request to retrieve a
43779	// VpnTunnel.
43780	LabelFingerprint string `json:"labelFingerprint,omitempty"`
43781
43782	// Labels: Labels for this resource. These can only be added or modified
43783	// by the setLabels method. Each label key/value pair must comply with
43784	// RFC1035. Label values may be empty.
43785	Labels map[string]string `json:"labels,omitempty"`
43786
43787	// LocalTrafficSelector: Local traffic selector to use when establishing
43788	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
43789	// formatted string, for example: 192.168.0.0/16. The ranges must be
43790	// disjoint. Only IPv4 is supported.
43791	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
43792
43793	// Name: Name of the resource. Provided by the client when the resource
43794	// is created. The name must be 1-63 characters long, and comply with
43795	// RFC1035. Specifically, the name must be 1-63 characters long and
43796	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43797	// the first character must be a lowercase letter, and all following
43798	// characters must be a dash, lowercase letter, or digit, except the
43799	// last character, which cannot be a dash.
43800	Name string `json:"name,omitempty"`
43801
43802	// PeerExternalGateway: URL of the peer side external VPN gateway to
43803	// which this VPN tunnel is connected. Provided by the client when the
43804	// VPN tunnel is created. This field is exclusive with the field
43805	// peerGcpGateway.
43806	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
43807
43808	// PeerExternalGatewayInterface: The interface ID of the external VPN
43809	// gateway to which this VPN tunnel is connected. Provided by the client
43810	// when the VPN tunnel is created.
43811	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
43812
43813	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
43814	// VPN tunnel is connected. Provided by the client when the VPN tunnel
43815	// is created. This field can be used when creating highly available VPN
43816	// from VPC network to VPC network, the field is exclusive with the
43817	// field peerExternalGateway. If provided, the VPN tunnel will
43818	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
43819	// gateway.
43820	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
43821
43822	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
43823	PeerIp string `json:"peerIp,omitempty"`
43824
43825	// Region: [Output Only] URL of the region where the VPN tunnel resides.
43826	// You must specify this field as part of the HTTP request URL. It is
43827	// not settable as a field in the request body.
43828	Region string `json:"region,omitempty"`
43829
43830	// RemoteTrafficSelector: Remote traffic selectors to use when
43831	// establishing the VPN tunnel with the peer VPN gateway. The value
43832	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
43833	// ranges should be disjoint. Only IPv4 is supported.
43834	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
43835
43836	// Router: URL of the router resource to be used for dynamic routing.
43837	Router string `json:"router,omitempty"`
43838
43839	// SelfLink: [Output Only] Server-defined URL for the resource.
43840	SelfLink string `json:"selfLink,omitempty"`
43841
43842	// SharedSecret: Shared secret used to set the secure session between
43843	// the Cloud VPN gateway and the peer VPN gateway.
43844	SharedSecret string `json:"sharedSecret,omitempty"`
43845
43846	// SharedSecretHash: Hash of the shared secret.
43847	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
43848
43849	// Status: [Output Only] The status of the VPN tunnel, which can be one
43850	// of the following:
43851	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
43852	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
43853	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
43854	// and Route resources are needed to setup the VPN tunnel.
43855	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
43856	// - ESTABLISHED: Secure session is successfully established with the
43857	// peer VPN.
43858	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
43859	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
43860	//
43861	// - NEGOTIATION_FAILURE: Handshake failed.
43862	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
43863	//
43864	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
43865	// be used.
43866	// - NO_INCOMING_PACKETS: No incoming packets from peer.
43867	// - REJECTED: Tunnel configuration was rejected, can be result of being
43868	// blacklisted.
43869	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
43870	// required resources.
43871	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
43872	// deleted for Classic VPN tunnels or the project is in frozen state.
43873	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
43874	// probably behind NAT.
43875	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
43876	// for an HA-VPN tunnel.
43877	//
43878	// Possible values:
43879	//   "ALLOCATING_RESOURCES"
43880	//   "AUTHORIZATION_ERROR"
43881	//   "DEPROVISIONING"
43882	//   "ESTABLISHED"
43883	//   "FAILED"
43884	//   "FIRST_HANDSHAKE"
43885	//   "NEGOTIATION_FAILURE"
43886	//   "NETWORK_ERROR"
43887	//   "NO_INCOMING_PACKETS"
43888	//   "PROVISIONING"
43889	//   "REJECTED"
43890	//   "STOPPED"
43891	//   "WAITING_FOR_FULL_CONFIG"
43892	Status string `json:"status,omitempty"`
43893
43894	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
43895	// tunnel is associated. Provided by the client when the VPN tunnel is
43896	// created.
43897	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
43898
43899	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
43900	// associated. Provided by the client when the VPN tunnel is created.
43901	// This must be used (instead of target_vpn_gateway) if a High
43902	// Availability VPN gateway resource is created.
43903	VpnGateway string `json:"vpnGateway,omitempty"`
43904
43905	// VpnGatewayInterface: The interface ID of the VPN gateway with which
43906	// this VPN tunnel is associated.
43907	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
43908
43909	// ServerResponse contains the HTTP response code and headers from the
43910	// server.
43911	googleapi.ServerResponse `json:"-"`
43912
43913	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43914	// to unconditionally include in API requests. By default, fields with
43915	// empty values are omitted from API requests. However, any non-pointer,
43916	// non-interface field appearing in ForceSendFields will be sent to the
43917	// server regardless of whether the field is empty or not. This may be
43918	// used to include empty fields in Patch requests.
43919	ForceSendFields []string `json:"-"`
43920
43921	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43922	// include in API requests with the JSON null value. By default, fields
43923	// with empty values are omitted from API requests. However, any field
43924	// with an empty value appearing in NullFields will be sent to the
43925	// server as null. It is an error if a field in this list has a
43926	// non-empty value. This may be used to include null fields in Patch
43927	// requests.
43928	NullFields []string `json:"-"`
43929}
43930
43931func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
43932	type NoMethod VpnTunnel
43933	raw := NoMethod(*s)
43934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43935}
43936
43937type VpnTunnelAggregatedList struct {
43938	// Id: [Output Only] Unique identifier for the resource; defined by the
43939	// server.
43940	Id string `json:"id,omitempty"`
43941
43942	// Items: A list of VpnTunnelsScopedList resources.
43943	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
43944
43945	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
43946	// VPN tunnels.
43947	Kind string `json:"kind,omitempty"`
43948
43949	// NextPageToken: [Output Only] This token allows you to get the next
43950	// page of results for list requests. If the number of results is larger
43951	// than maxResults, use the nextPageToken as a value for the query
43952	// parameter pageToken in the next list request. Subsequent list
43953	// requests will have their own nextPageToken to continue paging through
43954	// the results.
43955	NextPageToken string `json:"nextPageToken,omitempty"`
43956
43957	// SelfLink: [Output Only] Server-defined URL for this resource.
43958	SelfLink string `json:"selfLink,omitempty"`
43959
43960	// Warning: [Output Only] Informational warning message.
43961	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
43962
43963	// ServerResponse contains the HTTP response code and headers from the
43964	// server.
43965	googleapi.ServerResponse `json:"-"`
43966
43967	// ForceSendFields is a list of field names (e.g. "Id") to
43968	// unconditionally include in API requests. By default, fields with
43969	// empty values are omitted from API requests. However, any non-pointer,
43970	// non-interface field appearing in ForceSendFields will be sent to the
43971	// server regardless of whether the field is empty or not. This may be
43972	// used to include empty fields in Patch requests.
43973	ForceSendFields []string `json:"-"`
43974
43975	// NullFields is a list of field names (e.g. "Id") to include in API
43976	// requests with the JSON null value. By default, fields with empty
43977	// values are omitted from API requests. However, any field with an
43978	// empty value appearing in NullFields will be sent to the server as
43979	// null. It is an error if a field in this list has a non-empty value.
43980	// This may be used to include null fields in Patch requests.
43981	NullFields []string `json:"-"`
43982}
43983
43984func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
43985	type NoMethod VpnTunnelAggregatedList
43986	raw := NoMethod(*s)
43987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43988}
43989
43990// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
43991// message.
43992type VpnTunnelAggregatedListWarning struct {
43993	// Code: [Output Only] A warning code, if applicable. For example,
43994	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43995	// the response.
43996	//
43997	// Possible values:
43998	//   "CLEANUP_FAILED"
43999	//   "DEPRECATED_RESOURCE_USED"
44000	//   "DEPRECATED_TYPE_USED"
44001	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44002	//   "EXPERIMENTAL_TYPE_USED"
44003	//   "EXTERNAL_API_WARNING"
44004	//   "FIELD_VALUE_OVERRIDEN"
44005	//   "INJECTED_KERNELS_DEPRECATED"
44006	//   "MISSING_TYPE_DEPENDENCY"
44007	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44008	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44009	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44010	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44011	//   "NEXT_HOP_NOT_RUNNING"
44012	//   "NOT_CRITICAL_ERROR"
44013	//   "NO_RESULTS_ON_PAGE"
44014	//   "REQUIRED_TOS_AGREEMENT"
44015	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44016	//   "RESOURCE_NOT_DELETED"
44017	//   "SCHEMA_VALIDATION_IGNORED"
44018	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44019	//   "UNDECLARED_PROPERTIES"
44020	//   "UNREACHABLE"
44021	Code string `json:"code,omitempty"`
44022
44023	// Data: [Output Only] Metadata about this warning in key: value format.
44024	// For example:
44025	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44026	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
44027
44028	// Message: [Output Only] A human-readable description of the warning
44029	// code.
44030	Message string `json:"message,omitempty"`
44031
44032	// ForceSendFields is a list of field names (e.g. "Code") to
44033	// unconditionally include in API requests. By default, fields with
44034	// empty values are omitted from API requests. However, any non-pointer,
44035	// non-interface field appearing in ForceSendFields will be sent to the
44036	// server regardless of whether the field is empty or not. This may be
44037	// used to include empty fields in Patch requests.
44038	ForceSendFields []string `json:"-"`
44039
44040	// NullFields is a list of field names (e.g. "Code") to include in API
44041	// requests with the JSON null value. By default, fields with empty
44042	// values are omitted from API requests. However, any field with an
44043	// empty value appearing in NullFields will be sent to the server as
44044	// null. It is an error if a field in this list has a non-empty value.
44045	// This may be used to include null fields in Patch requests.
44046	NullFields []string `json:"-"`
44047}
44048
44049func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
44050	type NoMethod VpnTunnelAggregatedListWarning
44051	raw := NoMethod(*s)
44052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44053}
44054
44055type VpnTunnelAggregatedListWarningData struct {
44056	// Key: [Output Only] A key that provides more detail on the warning
44057	// being returned. For example, for warnings where there are no results
44058	// in a list request for a particular zone, this key might be scope and
44059	// the key value might be the zone name. Other examples might be a key
44060	// indicating a deprecated resource and a suggested replacement, or a
44061	// warning about invalid network settings (for example, if an instance
44062	// attempts to perform IP forwarding but is not enabled for IP
44063	// forwarding).
44064	Key string `json:"key,omitempty"`
44065
44066	// Value: [Output Only] A warning data value corresponding to the key.
44067	Value string `json:"value,omitempty"`
44068
44069	// ForceSendFields is a list of field names (e.g. "Key") to
44070	// unconditionally include in API requests. By default, fields with
44071	// empty values are omitted from API requests. However, any non-pointer,
44072	// non-interface field appearing in ForceSendFields will be sent to the
44073	// server regardless of whether the field is empty or not. This may be
44074	// used to include empty fields in Patch requests.
44075	ForceSendFields []string `json:"-"`
44076
44077	// NullFields is a list of field names (e.g. "Key") to include in API
44078	// requests with the JSON null value. By default, fields with empty
44079	// values are omitted from API requests. However, any field with an
44080	// empty value appearing in NullFields will be sent to the server as
44081	// null. It is an error if a field in this list has a non-empty value.
44082	// This may be used to include null fields in Patch requests.
44083	NullFields []string `json:"-"`
44084}
44085
44086func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44087	type NoMethod VpnTunnelAggregatedListWarningData
44088	raw := NoMethod(*s)
44089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44090}
44091
44092// VpnTunnelList: Contains a list of VpnTunnel resources.
44093type VpnTunnelList struct {
44094	// Id: [Output Only] Unique identifier for the resource; defined by the
44095	// server.
44096	Id string `json:"id,omitempty"`
44097
44098	// Items: A list of VpnTunnel resources.
44099	Items []*VpnTunnel `json:"items,omitempty"`
44100
44101	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
44102	// VPN tunnels.
44103	Kind string `json:"kind,omitempty"`
44104
44105	// NextPageToken: [Output Only] This token allows you to get the next
44106	// page of results for list requests. If the number of results is larger
44107	// than maxResults, use the nextPageToken as a value for the query
44108	// parameter pageToken in the next list request. Subsequent list
44109	// requests will have their own nextPageToken to continue paging through
44110	// the results.
44111	NextPageToken string `json:"nextPageToken,omitempty"`
44112
44113	// SelfLink: [Output Only] Server-defined URL for this resource.
44114	SelfLink string `json:"selfLink,omitempty"`
44115
44116	// Warning: [Output Only] Informational warning message.
44117	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
44118
44119	// ServerResponse contains the HTTP response code and headers from the
44120	// server.
44121	googleapi.ServerResponse `json:"-"`
44122
44123	// ForceSendFields is a list of field names (e.g. "Id") to
44124	// unconditionally include in API requests. By default, fields with
44125	// empty values are omitted from API requests. However, any non-pointer,
44126	// non-interface field appearing in ForceSendFields will be sent to the
44127	// server regardless of whether the field is empty or not. This may be
44128	// used to include empty fields in Patch requests.
44129	ForceSendFields []string `json:"-"`
44130
44131	// NullFields is a list of field names (e.g. "Id") to include in API
44132	// requests with the JSON null value. By default, fields with empty
44133	// values are omitted from API requests. However, any field with an
44134	// empty value appearing in NullFields will be sent to the server as
44135	// null. It is an error if a field in this list has a non-empty value.
44136	// This may be used to include null fields in Patch requests.
44137	NullFields []string `json:"-"`
44138}
44139
44140func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
44141	type NoMethod VpnTunnelList
44142	raw := NoMethod(*s)
44143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44144}
44145
44146// VpnTunnelListWarning: [Output Only] Informational warning message.
44147type VpnTunnelListWarning struct {
44148	// Code: [Output Only] A warning code, if applicable. For example,
44149	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44150	// the response.
44151	//
44152	// Possible values:
44153	//   "CLEANUP_FAILED"
44154	//   "DEPRECATED_RESOURCE_USED"
44155	//   "DEPRECATED_TYPE_USED"
44156	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44157	//   "EXPERIMENTAL_TYPE_USED"
44158	//   "EXTERNAL_API_WARNING"
44159	//   "FIELD_VALUE_OVERRIDEN"
44160	//   "INJECTED_KERNELS_DEPRECATED"
44161	//   "MISSING_TYPE_DEPENDENCY"
44162	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44163	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44164	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44165	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44166	//   "NEXT_HOP_NOT_RUNNING"
44167	//   "NOT_CRITICAL_ERROR"
44168	//   "NO_RESULTS_ON_PAGE"
44169	//   "REQUIRED_TOS_AGREEMENT"
44170	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44171	//   "RESOURCE_NOT_DELETED"
44172	//   "SCHEMA_VALIDATION_IGNORED"
44173	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44174	//   "UNDECLARED_PROPERTIES"
44175	//   "UNREACHABLE"
44176	Code string `json:"code,omitempty"`
44177
44178	// Data: [Output Only] Metadata about this warning in key: value format.
44179	// For example:
44180	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44181	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
44182
44183	// Message: [Output Only] A human-readable description of the warning
44184	// code.
44185	Message string `json:"message,omitempty"`
44186
44187	// ForceSendFields is a list of field names (e.g. "Code") to
44188	// unconditionally include in API requests. By default, fields with
44189	// empty values are omitted from API requests. However, any non-pointer,
44190	// non-interface field appearing in ForceSendFields will be sent to the
44191	// server regardless of whether the field is empty or not. This may be
44192	// used to include empty fields in Patch requests.
44193	ForceSendFields []string `json:"-"`
44194
44195	// NullFields is a list of field names (e.g. "Code") to include in API
44196	// requests with the JSON null value. By default, fields with empty
44197	// values are omitted from API requests. However, any field with an
44198	// empty value appearing in NullFields will be sent to the server as
44199	// null. It is an error if a field in this list has a non-empty value.
44200	// This may be used to include null fields in Patch requests.
44201	NullFields []string `json:"-"`
44202}
44203
44204func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
44205	type NoMethod VpnTunnelListWarning
44206	raw := NoMethod(*s)
44207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44208}
44209
44210type VpnTunnelListWarningData struct {
44211	// Key: [Output Only] A key that provides more detail on the warning
44212	// being returned. For example, for warnings where there are no results
44213	// in a list request for a particular zone, this key might be scope and
44214	// the key value might be the zone name. Other examples might be a key
44215	// indicating a deprecated resource and a suggested replacement, or a
44216	// warning about invalid network settings (for example, if an instance
44217	// attempts to perform IP forwarding but is not enabled for IP
44218	// forwarding).
44219	Key string `json:"key,omitempty"`
44220
44221	// Value: [Output Only] A warning data value corresponding to the key.
44222	Value string `json:"value,omitempty"`
44223
44224	// ForceSendFields is a list of field names (e.g. "Key") to
44225	// unconditionally include in API requests. By default, fields with
44226	// empty values are omitted from API requests. However, any non-pointer,
44227	// non-interface field appearing in ForceSendFields will be sent to the
44228	// server regardless of whether the field is empty or not. This may be
44229	// used to include empty fields in Patch requests.
44230	ForceSendFields []string `json:"-"`
44231
44232	// NullFields is a list of field names (e.g. "Key") to include in API
44233	// requests with the JSON null value. By default, fields with empty
44234	// values are omitted from API requests. However, any field with an
44235	// empty value appearing in NullFields will be sent to the server as
44236	// null. It is an error if a field in this list has a non-empty value.
44237	// This may be used to include null fields in Patch requests.
44238	NullFields []string `json:"-"`
44239}
44240
44241func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
44242	type NoMethod VpnTunnelListWarningData
44243	raw := NoMethod(*s)
44244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44245}
44246
44247type VpnTunnelsScopedList struct {
44248	// VpnTunnels: A list of VPN tunnels contained in this scope.
44249	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
44250
44251	// Warning: Informational warning which replaces the list of addresses
44252	// when the list is empty.
44253	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
44254
44255	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
44256	// unconditionally include in API requests. By default, fields with
44257	// empty values are omitted from API requests. However, any non-pointer,
44258	// non-interface field appearing in ForceSendFields will be sent to the
44259	// server regardless of whether the field is empty or not. This may be
44260	// used to include empty fields in Patch requests.
44261	ForceSendFields []string `json:"-"`
44262
44263	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
44264	// API requests with the JSON null value. By default, fields with empty
44265	// values are omitted from API requests. However, any field with an
44266	// empty value appearing in NullFields will be sent to the server as
44267	// null. It is an error if a field in this list has a non-empty value.
44268	// This may be used to include null fields in Patch requests.
44269	NullFields []string `json:"-"`
44270}
44271
44272func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
44273	type NoMethod VpnTunnelsScopedList
44274	raw := NoMethod(*s)
44275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44276}
44277
44278// VpnTunnelsScopedListWarning: Informational warning which replaces the
44279// list of addresses when the list is empty.
44280type VpnTunnelsScopedListWarning struct {
44281	// Code: [Output Only] A warning code, if applicable. For example,
44282	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44283	// the response.
44284	//
44285	// Possible values:
44286	//   "CLEANUP_FAILED"
44287	//   "DEPRECATED_RESOURCE_USED"
44288	//   "DEPRECATED_TYPE_USED"
44289	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44290	//   "EXPERIMENTAL_TYPE_USED"
44291	//   "EXTERNAL_API_WARNING"
44292	//   "FIELD_VALUE_OVERRIDEN"
44293	//   "INJECTED_KERNELS_DEPRECATED"
44294	//   "MISSING_TYPE_DEPENDENCY"
44295	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44296	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44297	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44298	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44299	//   "NEXT_HOP_NOT_RUNNING"
44300	//   "NOT_CRITICAL_ERROR"
44301	//   "NO_RESULTS_ON_PAGE"
44302	//   "REQUIRED_TOS_AGREEMENT"
44303	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44304	//   "RESOURCE_NOT_DELETED"
44305	//   "SCHEMA_VALIDATION_IGNORED"
44306	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44307	//   "UNDECLARED_PROPERTIES"
44308	//   "UNREACHABLE"
44309	Code string `json:"code,omitempty"`
44310
44311	// Data: [Output Only] Metadata about this warning in key: value format.
44312	// For example:
44313	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44314	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
44315
44316	// Message: [Output Only] A human-readable description of the warning
44317	// code.
44318	Message string `json:"message,omitempty"`
44319
44320	// ForceSendFields is a list of field names (e.g. "Code") to
44321	// unconditionally include in API requests. By default, fields with
44322	// empty values are omitted from API requests. However, any non-pointer,
44323	// non-interface field appearing in ForceSendFields will be sent to the
44324	// server regardless of whether the field is empty or not. This may be
44325	// used to include empty fields in Patch requests.
44326	ForceSendFields []string `json:"-"`
44327
44328	// NullFields is a list of field names (e.g. "Code") to include in API
44329	// requests with the JSON null value. By default, fields with empty
44330	// values are omitted from API requests. However, any field with an
44331	// empty value appearing in NullFields will be sent to the server as
44332	// null. It is an error if a field in this list has a non-empty value.
44333	// This may be used to include null fields in Patch requests.
44334	NullFields []string `json:"-"`
44335}
44336
44337func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
44338	type NoMethod VpnTunnelsScopedListWarning
44339	raw := NoMethod(*s)
44340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44341}
44342
44343type VpnTunnelsScopedListWarningData struct {
44344	// Key: [Output Only] A key that provides more detail on the warning
44345	// being returned. For example, for warnings where there are no results
44346	// in a list request for a particular zone, this key might be scope and
44347	// the key value might be the zone name. Other examples might be a key
44348	// indicating a deprecated resource and a suggested replacement, or a
44349	// warning about invalid network settings (for example, if an instance
44350	// attempts to perform IP forwarding but is not enabled for IP
44351	// forwarding).
44352	Key string `json:"key,omitempty"`
44353
44354	// Value: [Output Only] A warning data value corresponding to the key.
44355	Value string `json:"value,omitempty"`
44356
44357	// ForceSendFields is a list of field names (e.g. "Key") to
44358	// unconditionally include in API requests. By default, fields with
44359	// empty values are omitted from API requests. However, any non-pointer,
44360	// non-interface field appearing in ForceSendFields will be sent to the
44361	// server regardless of whether the field is empty or not. This may be
44362	// used to include empty fields in Patch requests.
44363	ForceSendFields []string `json:"-"`
44364
44365	// NullFields is a list of field names (e.g. "Key") to include in API
44366	// requests with the JSON null value. By default, fields with empty
44367	// values are omitted from API requests. However, any field with an
44368	// empty value appearing in NullFields will be sent to the server as
44369	// null. It is an error if a field in this list has a non-empty value.
44370	// This may be used to include null fields in Patch requests.
44371	NullFields []string `json:"-"`
44372}
44373
44374func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
44375	type NoMethod VpnTunnelsScopedListWarningData
44376	raw := NoMethod(*s)
44377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44378}
44379
44380type WafExpressionSet struct {
44381	// Aliases: A list of alternate IDs. The format should be: - E.g.
44382	// XSS-stable Generic suffix like "stable" is particularly useful if a
44383	// policy likes to avail newer set of expressions without having to
44384	// change the policy. A given alias name can't be used for more than one
44385	// entity set.
44386	Aliases []string `json:"aliases,omitempty"`
44387
44388	// Expressions: List of available expressions.
44389	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
44390
44391	// Id: Google specified expression set ID. The format should be: - E.g.
44392	// XSS-20170329
44393	Id string `json:"id,omitempty"`
44394
44395	// ForceSendFields is a list of field names (e.g. "Aliases") to
44396	// unconditionally include in API requests. By default, fields with
44397	// empty values are omitted from API requests. However, any non-pointer,
44398	// non-interface field appearing in ForceSendFields will be sent to the
44399	// server regardless of whether the field is empty or not. This may be
44400	// used to include empty fields in Patch requests.
44401	ForceSendFields []string `json:"-"`
44402
44403	// NullFields is a list of field names (e.g. "Aliases") to include in
44404	// API requests with the JSON null value. By default, fields with empty
44405	// values are omitted from API requests. However, any field with an
44406	// empty value appearing in NullFields will be sent to the server as
44407	// null. It is an error if a field in this list has a non-empty value.
44408	// This may be used to include null fields in Patch requests.
44409	NullFields []string `json:"-"`
44410}
44411
44412func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
44413	type NoMethod WafExpressionSet
44414	raw := NoMethod(*s)
44415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44416}
44417
44418type WafExpressionSetExpression struct {
44419	// Id: Expression ID should uniquely identify the origin of the
44420	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
44421	// rule set version 2.9.1 rule id 973337. The ID could be used to
44422	// determine the individual attack definition that has been detected. It
44423	// could also be used to exclude it from the policy in case of false
44424	// positive.
44425	Id string `json:"id,omitempty"`
44426
44427	// ForceSendFields is a list of field names (e.g. "Id") to
44428	// unconditionally include in API requests. By default, fields with
44429	// empty values are omitted from API requests. However, any non-pointer,
44430	// non-interface field appearing in ForceSendFields will be sent to the
44431	// server regardless of whether the field is empty or not. This may be
44432	// used to include empty fields in Patch requests.
44433	ForceSendFields []string `json:"-"`
44434
44435	// NullFields is a list of field names (e.g. "Id") to include in API
44436	// requests with the JSON null value. By default, fields with empty
44437	// values are omitted from API requests. However, any field with an
44438	// empty value appearing in NullFields will be sent to the server as
44439	// null. It is an error if a field in this list has a non-empty value.
44440	// This may be used to include null fields in Patch requests.
44441	NullFields []string `json:"-"`
44442}
44443
44444func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
44445	type NoMethod WafExpressionSetExpression
44446	raw := NoMethod(*s)
44447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44448}
44449
44450// WeightedBackendService: In contrast to a single BackendService in
44451// HttpRouteAction to which all matching traffic is directed to,
44452// WeightedBackendService allows traffic to be split across multiple
44453// BackendServices. The volume of traffic for each BackendService is
44454// proportional to the weight specified in each WeightedBackendService
44455type WeightedBackendService struct {
44456	// BackendService: The full or partial URL to the default BackendService
44457	// resource. Before forwarding the request to backendService, the
44458	// loadbalancer applies any relevant headerActions specified as part of
44459	// this backendServiceWeight.
44460	BackendService string `json:"backendService,omitempty"`
44461
44462	// HeaderAction: Specifies changes to request and response headers that
44463	// need to take effect for the selected backendService.
44464	// headerAction specified here take effect before headerAction in the
44465	// enclosing HttpRouteRule, PathMatcher and UrlMap.
44466	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
44467
44468	// Weight: Specifies the fraction of traffic sent to backendService,
44469	// computed as weight / (sum of all weightedBackendService weights in
44470	// routeAction) .
44471	// The selection of a backend service is determined only for new
44472	// traffic. Once a user's request has been directed to a backendService,
44473	// subsequent requests will be sent to the same backendService as
44474	// determined by the BackendService's session affinity policy.
44475	// The value must be between 0 and 1000
44476	Weight int64 `json:"weight,omitempty"`
44477
44478	// ForceSendFields is a list of field names (e.g. "BackendService") to
44479	// unconditionally include in API requests. By default, fields with
44480	// empty values are omitted from API requests. However, any non-pointer,
44481	// non-interface field appearing in ForceSendFields will be sent to the
44482	// server regardless of whether the field is empty or not. This may be
44483	// used to include empty fields in Patch requests.
44484	ForceSendFields []string `json:"-"`
44485
44486	// NullFields is a list of field names (e.g. "BackendService") to
44487	// include in API requests with the JSON null value. By default, fields
44488	// with empty values are omitted from API requests. However, any field
44489	// with an empty value appearing in NullFields will be sent to the
44490	// server as null. It is an error if a field in this list has a
44491	// non-empty value. This may be used to include null fields in Patch
44492	// requests.
44493	NullFields []string `json:"-"`
44494}
44495
44496func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
44497	type NoMethod WeightedBackendService
44498	raw := NoMethod(*s)
44499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44500}
44501
44502type XpnHostList struct {
44503	// Id: [Output Only] Unique identifier for the resource; defined by the
44504	// server.
44505	Id string `json:"id,omitempty"`
44506
44507	// Items: [Output Only] A list of shared VPC host project URLs.
44508	Items []*Project `json:"items,omitempty"`
44509
44510	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
44511	// lists of shared VPC hosts.
44512	Kind string `json:"kind,omitempty"`
44513
44514	// NextPageToken: [Output Only] This token allows you to get the next
44515	// page of results for list requests. If the number of results is larger
44516	// than maxResults, use the nextPageToken as a value for the query
44517	// parameter pageToken in the next list request. Subsequent list
44518	// requests will have their own nextPageToken to continue paging through
44519	// the results.
44520	NextPageToken string `json:"nextPageToken,omitempty"`
44521
44522	// SelfLink: [Output Only] Server-defined URL for this resource.
44523	SelfLink string `json:"selfLink,omitempty"`
44524
44525	// Warning: [Output Only] Informational warning message.
44526	Warning *XpnHostListWarning `json:"warning,omitempty"`
44527
44528	// ServerResponse contains the HTTP response code and headers from the
44529	// server.
44530	googleapi.ServerResponse `json:"-"`
44531
44532	// ForceSendFields is a list of field names (e.g. "Id") to
44533	// unconditionally include in API requests. By default, fields with
44534	// empty values are omitted from API requests. However, any non-pointer,
44535	// non-interface field appearing in ForceSendFields will be sent to the
44536	// server regardless of whether the field is empty or not. This may be
44537	// used to include empty fields in Patch requests.
44538	ForceSendFields []string `json:"-"`
44539
44540	// NullFields is a list of field names (e.g. "Id") to include in API
44541	// requests with the JSON null value. By default, fields with empty
44542	// values are omitted from API requests. However, any field with an
44543	// empty value appearing in NullFields will be sent to the server as
44544	// null. It is an error if a field in this list has a non-empty value.
44545	// This may be used to include null fields in Patch requests.
44546	NullFields []string `json:"-"`
44547}
44548
44549func (s *XpnHostList) MarshalJSON() ([]byte, error) {
44550	type NoMethod XpnHostList
44551	raw := NoMethod(*s)
44552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44553}
44554
44555// XpnHostListWarning: [Output Only] Informational warning message.
44556type XpnHostListWarning struct {
44557	// Code: [Output Only] A warning code, if applicable. For example,
44558	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44559	// the response.
44560	//
44561	// Possible values:
44562	//   "CLEANUP_FAILED"
44563	//   "DEPRECATED_RESOURCE_USED"
44564	//   "DEPRECATED_TYPE_USED"
44565	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44566	//   "EXPERIMENTAL_TYPE_USED"
44567	//   "EXTERNAL_API_WARNING"
44568	//   "FIELD_VALUE_OVERRIDEN"
44569	//   "INJECTED_KERNELS_DEPRECATED"
44570	//   "MISSING_TYPE_DEPENDENCY"
44571	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44572	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44573	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44574	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44575	//   "NEXT_HOP_NOT_RUNNING"
44576	//   "NOT_CRITICAL_ERROR"
44577	//   "NO_RESULTS_ON_PAGE"
44578	//   "REQUIRED_TOS_AGREEMENT"
44579	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44580	//   "RESOURCE_NOT_DELETED"
44581	//   "SCHEMA_VALIDATION_IGNORED"
44582	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44583	//   "UNDECLARED_PROPERTIES"
44584	//   "UNREACHABLE"
44585	Code string `json:"code,omitempty"`
44586
44587	// Data: [Output Only] Metadata about this warning in key: value format.
44588	// For example:
44589	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44590	Data []*XpnHostListWarningData `json:"data,omitempty"`
44591
44592	// Message: [Output Only] A human-readable description of the warning
44593	// code.
44594	Message string `json:"message,omitempty"`
44595
44596	// ForceSendFields is a list of field names (e.g. "Code") to
44597	// unconditionally include in API requests. By default, fields with
44598	// empty values are omitted from API requests. However, any non-pointer,
44599	// non-interface field appearing in ForceSendFields will be sent to the
44600	// server regardless of whether the field is empty or not. This may be
44601	// used to include empty fields in Patch requests.
44602	ForceSendFields []string `json:"-"`
44603
44604	// NullFields is a list of field names (e.g. "Code") to include in API
44605	// requests with the JSON null value. By default, fields with empty
44606	// values are omitted from API requests. However, any field with an
44607	// empty value appearing in NullFields will be sent to the server as
44608	// null. It is an error if a field in this list has a non-empty value.
44609	// This may be used to include null fields in Patch requests.
44610	NullFields []string `json:"-"`
44611}
44612
44613func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
44614	type NoMethod XpnHostListWarning
44615	raw := NoMethod(*s)
44616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44617}
44618
44619type XpnHostListWarningData struct {
44620	// Key: [Output Only] A key that provides more detail on the warning
44621	// being returned. For example, for warnings where there are no results
44622	// in a list request for a particular zone, this key might be scope and
44623	// the key value might be the zone name. Other examples might be a key
44624	// indicating a deprecated resource and a suggested replacement, or a
44625	// warning about invalid network settings (for example, if an instance
44626	// attempts to perform IP forwarding but is not enabled for IP
44627	// forwarding).
44628	Key string `json:"key,omitempty"`
44629
44630	// Value: [Output Only] A warning data value corresponding to the key.
44631	Value string `json:"value,omitempty"`
44632
44633	// ForceSendFields is a list of field names (e.g. "Key") to
44634	// unconditionally include in API requests. By default, fields with
44635	// empty values are omitted from API requests. However, any non-pointer,
44636	// non-interface field appearing in ForceSendFields will be sent to the
44637	// server regardless of whether the field is empty or not. This may be
44638	// used to include empty fields in Patch requests.
44639	ForceSendFields []string `json:"-"`
44640
44641	// NullFields is a list of field names (e.g. "Key") to include in API
44642	// requests with the JSON null value. By default, fields with empty
44643	// values are omitted from API requests. However, any field with an
44644	// empty value appearing in NullFields will be sent to the server as
44645	// null. It is an error if a field in this list has a non-empty value.
44646	// This may be used to include null fields in Patch requests.
44647	NullFields []string `json:"-"`
44648}
44649
44650func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
44651	type NoMethod XpnHostListWarningData
44652	raw := NoMethod(*s)
44653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44654}
44655
44656// XpnResourceId: Service resource (a.k.a service project) ID.
44657type XpnResourceId struct {
44658	// Id: The ID of the service resource. In the case of projects, this
44659	// field supports project id (e.g., my-project-123) and project number
44660	// (e.g. 12345678).
44661	Id string `json:"id,omitempty"`
44662
44663	// Type: The type of the service resource.
44664	//
44665	// Possible values:
44666	//   "PROJECT"
44667	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
44668	Type string `json:"type,omitempty"`
44669
44670	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
44679	// 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 *XpnResourceId) MarshalJSON() ([]byte, error) {
44688	type NoMethod XpnResourceId
44689	raw := NoMethod(*s)
44690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44691}
44692
44693// Zone: Represents a Zone resource.
44694//
44695// A zone is a deployment area. These deployment areas are subsets of a
44696// region. For example the zone us-east1-a is located in the us-east1
44697// region. For more information, read Regions and Zones. (==
44698// resource_for {$api_version}.zones ==)
44699type Zone struct {
44700	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
44701	// selections for the zone.
44702	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
44703
44704	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44705	// format.
44706	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44707
44708	// Deprecated: [Output Only] The deprecation status associated with this
44709	// zone.
44710	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
44711
44712	// Description: [Output Only] Textual description of the resource.
44713	Description string `json:"description,omitempty"`
44714
44715	// Id: [Output Only] The unique identifier for the resource. This
44716	// identifier is defined by the server.
44717	Id uint64 `json:"id,omitempty,string"`
44718
44719	// Kind: [Output Only] Type of the resource. Always compute#zone for
44720	// zones.
44721	Kind string `json:"kind,omitempty"`
44722
44723	// Name: [Output Only] Name of the resource.
44724	Name string `json:"name,omitempty"`
44725
44726	// Region: [Output Only] Full URL reference to the region which hosts
44727	// the zone.
44728	Region string `json:"region,omitempty"`
44729
44730	// SelfLink: [Output Only] Server-defined URL for the resource.
44731	SelfLink string `json:"selfLink,omitempty"`
44732
44733	// Status: [Output Only] Status of the zone, either UP or DOWN.
44734	//
44735	// Possible values:
44736	//   "DOWN"
44737	//   "UP"
44738	Status string `json:"status,omitempty"`
44739
44740	// ServerResponse contains the HTTP response code and headers from the
44741	// server.
44742	googleapi.ServerResponse `json:"-"`
44743
44744	// ForceSendFields is a list of field names (e.g.
44745	// "AvailableCpuPlatforms") to unconditionally include in API requests.
44746	// By default, fields with empty values are omitted from API requests.
44747	// However, any non-pointer, non-interface field appearing in
44748	// ForceSendFields will be sent to the server regardless of whether the
44749	// field is empty or not. This may be used to include empty fields in
44750	// Patch requests.
44751	ForceSendFields []string `json:"-"`
44752
44753	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
44754	// include in API requests with the JSON null value. By default, fields
44755	// with empty values are omitted from API requests. However, any field
44756	// with an empty value appearing in NullFields will be sent to the
44757	// server as null. It is an error if a field in this list has a
44758	// non-empty value. This may be used to include null fields in Patch
44759	// requests.
44760	NullFields []string `json:"-"`
44761}
44762
44763func (s *Zone) MarshalJSON() ([]byte, error) {
44764	type NoMethod Zone
44765	raw := NoMethod(*s)
44766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44767}
44768
44769// ZoneList: Contains a list of zone resources.
44770type ZoneList struct {
44771	// Id: [Output Only] Unique identifier for the resource; defined by the
44772	// server.
44773	Id string `json:"id,omitempty"`
44774
44775	// Items: A list of Zone resources.
44776	Items []*Zone `json:"items,omitempty"`
44777
44778	// Kind: Type of resource.
44779	Kind string `json:"kind,omitempty"`
44780
44781	// NextPageToken: [Output Only] This token allows you to get the next
44782	// page of results for list requests. If the number of results is larger
44783	// than maxResults, use the nextPageToken as a value for the query
44784	// parameter pageToken in the next list request. Subsequent list
44785	// requests will have their own nextPageToken to continue paging through
44786	// the results.
44787	NextPageToken string `json:"nextPageToken,omitempty"`
44788
44789	// SelfLink: [Output Only] Server-defined URL for this resource.
44790	SelfLink string `json:"selfLink,omitempty"`
44791
44792	// Warning: [Output Only] Informational warning message.
44793	Warning *ZoneListWarning `json:"warning,omitempty"`
44794
44795	// ServerResponse contains the HTTP response code and headers from the
44796	// server.
44797	googleapi.ServerResponse `json:"-"`
44798
44799	// ForceSendFields is a list of field names (e.g. "Id") to
44800	// unconditionally include in API requests. By default, fields with
44801	// empty values are omitted from API requests. However, any non-pointer,
44802	// non-interface field appearing in ForceSendFields will be sent to the
44803	// server regardless of whether the field is empty or not. This may be
44804	// used to include empty fields in Patch requests.
44805	ForceSendFields []string `json:"-"`
44806
44807	// NullFields is a list of field names (e.g. "Id") to include in API
44808	// requests with the JSON null value. By default, fields with empty
44809	// values are omitted from API requests. However, any field with an
44810	// empty value appearing in NullFields will be sent to the server as
44811	// null. It is an error if a field in this list has a non-empty value.
44812	// This may be used to include null fields in Patch requests.
44813	NullFields []string `json:"-"`
44814}
44815
44816func (s *ZoneList) MarshalJSON() ([]byte, error) {
44817	type NoMethod ZoneList
44818	raw := NoMethod(*s)
44819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44820}
44821
44822// ZoneListWarning: [Output Only] Informational warning message.
44823type ZoneListWarning struct {
44824	// Code: [Output Only] A warning code, if applicable. For example,
44825	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44826	// the response.
44827	//
44828	// Possible values:
44829	//   "CLEANUP_FAILED"
44830	//   "DEPRECATED_RESOURCE_USED"
44831	//   "DEPRECATED_TYPE_USED"
44832	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44833	//   "EXPERIMENTAL_TYPE_USED"
44834	//   "EXTERNAL_API_WARNING"
44835	//   "FIELD_VALUE_OVERRIDEN"
44836	//   "INJECTED_KERNELS_DEPRECATED"
44837	//   "MISSING_TYPE_DEPENDENCY"
44838	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44839	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44840	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44841	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44842	//   "NEXT_HOP_NOT_RUNNING"
44843	//   "NOT_CRITICAL_ERROR"
44844	//   "NO_RESULTS_ON_PAGE"
44845	//   "REQUIRED_TOS_AGREEMENT"
44846	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44847	//   "RESOURCE_NOT_DELETED"
44848	//   "SCHEMA_VALIDATION_IGNORED"
44849	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44850	//   "UNDECLARED_PROPERTIES"
44851	//   "UNREACHABLE"
44852	Code string `json:"code,omitempty"`
44853
44854	// Data: [Output Only] Metadata about this warning in key: value format.
44855	// For example:
44856	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44857	Data []*ZoneListWarningData `json:"data,omitempty"`
44858
44859	// Message: [Output Only] A human-readable description of the warning
44860	// code.
44861	Message string `json:"message,omitempty"`
44862
44863	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *ZoneListWarning) MarshalJSON() ([]byte, error) {
44881	type NoMethod ZoneListWarning
44882	raw := NoMethod(*s)
44883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44884}
44885
44886type ZoneListWarningData struct {
44887	// Key: [Output Only] A key that provides more detail on the warning
44888	// being returned. For example, for warnings where there are no results
44889	// in a list request for a particular zone, this key might be scope and
44890	// the key value might be the zone name. Other examples might be a key
44891	// indicating a deprecated resource and a suggested replacement, or a
44892	// warning about invalid network settings (for example, if an instance
44893	// attempts to perform IP forwarding but is not enabled for IP
44894	// forwarding).
44895	Key string `json:"key,omitempty"`
44896
44897	// Value: [Output Only] A warning data value corresponding to the key.
44898	Value string `json:"value,omitempty"`
44899
44900	// ForceSendFields is a list of field names (e.g. "Key") to
44901	// unconditionally include in API requests. By default, fields with
44902	// empty values are omitted from API requests. However, any non-pointer,
44903	// non-interface field appearing in ForceSendFields will be sent to the
44904	// server regardless of whether the field is empty or not. This may be
44905	// used to include empty fields in Patch requests.
44906	ForceSendFields []string `json:"-"`
44907
44908	// NullFields is a list of field names (e.g. "Key") to include in API
44909	// requests with the JSON null value. By default, fields with empty
44910	// values are omitted from API requests. However, any field with an
44911	// empty value appearing in NullFields will be sent to the server as
44912	// null. It is an error if a field in this list has a non-empty value.
44913	// This may be used to include null fields in Patch requests.
44914	NullFields []string `json:"-"`
44915}
44916
44917func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
44918	type NoMethod ZoneListWarningData
44919	raw := NoMethod(*s)
44920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44921}
44922
44923type ZoneSetLabelsRequest struct {
44924	// LabelFingerprint: The fingerprint of the previous set of labels for
44925	// this resource, used to detect conflicts. The fingerprint is initially
44926	// generated by Compute Engine and changes after every request to modify
44927	// or update labels. You must always provide an up-to-date fingerprint
44928	// hash in order to update or change labels. Make a get() request to the
44929	// resource to get the latest fingerprint.
44930	LabelFingerprint string `json:"labelFingerprint,omitempty"`
44931
44932	// Labels: The labels to set for this resource.
44933	Labels map[string]string `json:"labels,omitempty"`
44934
44935	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
44936	// unconditionally include in API requests. By default, fields with
44937	// empty values are omitted from API requests. However, any non-pointer,
44938	// non-interface field appearing in ForceSendFields will be sent to the
44939	// server regardless of whether the field is empty or not. This may be
44940	// used to include empty fields in Patch requests.
44941	ForceSendFields []string `json:"-"`
44942
44943	// NullFields is a list of field names (e.g. "LabelFingerprint") to
44944	// include in API requests with the JSON null value. By default, fields
44945	// with empty values are omitted from API requests. However, any field
44946	// with an empty value appearing in NullFields will be sent to the
44947	// server as null. It is an error if a field in this list has a
44948	// non-empty value. This may be used to include null fields in Patch
44949	// requests.
44950	NullFields []string `json:"-"`
44951}
44952
44953func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
44954	type NoMethod ZoneSetLabelsRequest
44955	raw := NoMethod(*s)
44956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44957}
44958
44959type ZoneSetPolicyRequest struct {
44960	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
44961	// Deprecated. Use 'policy' to specify bindings.
44962	Bindings []*Binding `json:"bindings,omitempty"`
44963
44964	// Etag: Flatten Policy to create a backward compatible wire-format.
44965	// Deprecated. Use 'policy' to specify the etag.
44966	Etag string `json:"etag,omitempty"`
44967
44968	// Policy: REQUIRED: The complete policy to be applied to the
44969	// 'resource'. The size of the policy is limited to a few 10s of KB. An
44970	// empty policy is in general a valid policy but certain services (like
44971	// Projects) might reject them.
44972	Policy *Policy `json:"policy,omitempty"`
44973
44974	// ForceSendFields is a list of field names (e.g. "Bindings") to
44975	// unconditionally include in API requests. By default, fields with
44976	// empty values are omitted from API requests. However, any non-pointer,
44977	// non-interface field appearing in ForceSendFields will be sent to the
44978	// server regardless of whether the field is empty or not. This may be
44979	// used to include empty fields in Patch requests.
44980	ForceSendFields []string `json:"-"`
44981
44982	// NullFields is a list of field names (e.g. "Bindings") to include in
44983	// API requests with the JSON null value. By default, fields with empty
44984	// values are omitted from API requests. However, any field with an
44985	// empty value appearing in NullFields will be sent to the server as
44986	// null. It is an error if a field in this list has a non-empty value.
44987	// This may be used to include null fields in Patch requests.
44988	NullFields []string `json:"-"`
44989}
44990
44991func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
44992	type NoMethod ZoneSetPolicyRequest
44993	raw := NoMethod(*s)
44994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44995}
44996
44997// method id "compute.acceleratorTypes.aggregatedList":
44998
44999type AcceleratorTypesAggregatedListCall struct {
45000	s            *Service
45001	project      string
45002	urlParams_   gensupport.URLParams
45003	ifNoneMatch_ string
45004	ctx_         context.Context
45005	header_      http.Header
45006}
45007
45008// AggregatedList: Retrieves an aggregated list of accelerator types.
45009func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
45010	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45011	c.project = project
45012	return c
45013}
45014
45015// Filter sets the optional parameter "filter": A filter expression that
45016// filters resources listed in the response. The expression must specify
45017// the field name, a comparison operator, and the value that you want to
45018// use for filtering. The value must be a string, a number, or a
45019// boolean. The comparison operator must be either `=`, `!=`, `>`, or
45020// `<`.
45021//
45022// For example, if you are filtering Compute Engine instances, you can
45023// exclude instances named `example-instance` by specifying `name !=
45024// example-instance`.
45025//
45026// You can also filter nested fields. For example, you could specify
45027// `scheduling.automaticRestart = false` to include instances only if
45028// they are not scheduled for automatic restarts. You can use filtering
45029// on nested fields to filter based on resource labels.
45030//
45031// To filter on multiple expressions, provide each separate expression
45032// within parentheses. For example: ``` (scheduling.automaticRestart =
45033// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
45034// is an `AND` expression. However, you can include `AND` and `OR`
45035// expressions explicitly. For example: ``` (cpuPlatform = "Intel
45036// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
45037// (scheduling.automaticRestart = true) ```
45038func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
45039	c.urlParams_.Set("filter", filter)
45040	return c
45041}
45042
45043// IncludeAllScopes sets the optional parameter "includeAllScopes":
45044// Indicates whether every visible scope for each scope type (zone,
45045// region, global) should be included in the response. For new resource
45046// types added after this field, the flag has no effect as new resource
45047// types will always include every visible scope for each scope type in
45048// response. For resource types which predate this field, if this flag
45049// is omitted or false, only scopes of the scope types where the
45050// resource type is expected to be found will be included.
45051func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
45052	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
45053	return c
45054}
45055
45056// MaxResults sets the optional parameter "maxResults": The maximum
45057// number of results per page that should be returned. If the number of
45058// available results is larger than `maxResults`, Compute Engine returns
45059// a `nextPageToken` that can be used to get the next page of results in
45060// subsequent list requests. Acceptable values are `0` to `500`,
45061// inclusive. (Default: `500`)
45062func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
45063	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45064	return c
45065}
45066
45067// OrderBy sets the optional parameter "orderBy": Sorts list results by
45068// a certain order. By default, results are returned in alphanumerical
45069// order based on the resource name.
45070//
45071// You can also sort results in descending order based on the creation
45072// timestamp using `orderBy="creationTimestamp desc". This sorts
45073// results based on the `creationTimestamp` field in reverse
45074// chronological order (newest result first). Use this to sort resources
45075// like operations so that the newest operation is returned
45076// first.
45077//
45078// Currently, only sorting by `name` or `creationTimestamp desc` is
45079// supported.
45080func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
45081	c.urlParams_.Set("orderBy", orderBy)
45082	return c
45083}
45084
45085// PageToken sets the optional parameter "pageToken": Specifies a page
45086// token to use. Set `pageToken` to the `nextPageToken` returned by a
45087// previous list request to get the next page of results.
45088func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
45089	c.urlParams_.Set("pageToken", pageToken)
45090	return c
45091}
45092
45093// Fields allows partial responses to be retrieved. See
45094// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45095// for more information.
45096func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
45097	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45098	return c
45099}
45100
45101// IfNoneMatch sets the optional parameter which makes the operation
45102// fail if the object's ETag matches the given value. This is useful for
45103// getting updates only after the object has changed since the last
45104// request. Use googleapi.IsNotModified to check whether the response
45105// error from Do is the result of In-None-Match.
45106func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
45107	c.ifNoneMatch_ = entityTag
45108	return c
45109}
45110
45111// Context sets the context to be used in this call's Do method. Any
45112// pending HTTP request will be aborted if the provided context is
45113// canceled.
45114func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
45115	c.ctx_ = ctx
45116	return c
45117}
45118
45119// Header returns an http.Header that can be modified by the caller to
45120// add HTTP headers to the request.
45121func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
45122	if c.header_ == nil {
45123		c.header_ = make(http.Header)
45124	}
45125	return c.header_
45126}
45127
45128func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
45129	reqHeaders := make(http.Header)
45130	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45131	for k, v := range c.header_ {
45132		reqHeaders[k] = v
45133	}
45134	reqHeaders.Set("User-Agent", c.s.userAgent())
45135	if c.ifNoneMatch_ != "" {
45136		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45137	}
45138	var body io.Reader = nil
45139	c.urlParams_.Set("alt", alt)
45140	c.urlParams_.Set("prettyPrint", "false")
45141	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
45142	urls += "?" + c.urlParams_.Encode()
45143	req, err := http.NewRequest("GET", urls, body)
45144	if err != nil {
45145		return nil, err
45146	}
45147	req.Header = reqHeaders
45148	googleapi.Expand(req.URL, map[string]string{
45149		"project": c.project,
45150	})
45151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45152}
45153
45154// Do executes the "compute.acceleratorTypes.aggregatedList" call.
45155// Exactly one of *AcceleratorTypeAggregatedList or error will be
45156// non-nil. Any non-2xx status code is an error. Response headers are in
45157// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
45158// response was returned at all) in error.(*googleapi.Error).Header. Use
45159// googleapi.IsNotModified to check whether the returned error was
45160// because http.StatusNotModified was returned.
45161func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
45162	gensupport.SetOptions(c.urlParams_, opts...)
45163	res, err := c.doRequest("json")
45164	if res != nil && res.StatusCode == http.StatusNotModified {
45165		if res.Body != nil {
45166			res.Body.Close()
45167		}
45168		return nil, &googleapi.Error{
45169			Code:   res.StatusCode,
45170			Header: res.Header,
45171		}
45172	}
45173	if err != nil {
45174		return nil, err
45175	}
45176	defer googleapi.CloseBody(res)
45177	if err := googleapi.CheckResponse(res); err != nil {
45178		return nil, err
45179	}
45180	ret := &AcceleratorTypeAggregatedList{
45181		ServerResponse: googleapi.ServerResponse{
45182			Header:         res.Header,
45183			HTTPStatusCode: res.StatusCode,
45184		},
45185	}
45186	target := &ret
45187	if err := gensupport.DecodeResponse(target, res); err != nil {
45188		return nil, err
45189	}
45190	return ret, nil
45191	// {
45192	//   "description": "Retrieves an aggregated list of accelerator types.",
45193	//   "httpMethod": "GET",
45194	//   "id": "compute.acceleratorTypes.aggregatedList",
45195	//   "parameterOrder": [
45196	//     "project"
45197	//   ],
45198	//   "parameters": {
45199	//     "filter": {
45200	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
45201	//       "location": "query",
45202	//       "type": "string"
45203	//     },
45204	//     "includeAllScopes": {
45205	//       "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.",
45206	//       "location": "query",
45207	//       "type": "boolean"
45208	//     },
45209	//     "maxResults": {
45210	//       "default": "500",
45211	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
45212	//       "format": "uint32",
45213	//       "location": "query",
45214	//       "minimum": "0",
45215	//       "type": "integer"
45216	//     },
45217	//     "orderBy": {
45218	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
45219	//       "location": "query",
45220	//       "type": "string"
45221	//     },
45222	//     "pageToken": {
45223	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
45224	//       "location": "query",
45225	//       "type": "string"
45226	//     },
45227	//     "project": {
45228	//       "description": "Project ID for this request.",
45229	//       "location": "path",
45230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45231	//       "required": true,
45232	//       "type": "string"
45233	//     }
45234	//   },
45235	//   "path": "{project}/aggregated/acceleratorTypes",
45236	//   "response": {
45237	//     "$ref": "AcceleratorTypeAggregatedList"
45238	//   },
45239	//   "scopes": [
45240	//     "https://www.googleapis.com/auth/cloud-platform",
45241	//     "https://www.googleapis.com/auth/compute",
45242	//     "https://www.googleapis.com/auth/compute.readonly"
45243	//   ]
45244	// }
45245
45246}
45247
45248// Pages invokes f for each page of results.
45249// A non-nil error returned from f will halt the iteration.
45250// The provided context supersedes any context provided to the Context method.
45251func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
45252	c.ctx_ = ctx
45253	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45254	for {
45255		x, err := c.Do()
45256		if err != nil {
45257			return err
45258		}
45259		if err := f(x); err != nil {
45260			return err
45261		}
45262		if x.NextPageToken == "" {
45263			return nil
45264		}
45265		c.PageToken(x.NextPageToken)
45266	}
45267}
45268
45269// method id "compute.acceleratorTypes.get":
45270
45271type AcceleratorTypesGetCall struct {
45272	s               *Service
45273	project         string
45274	zone            string
45275	acceleratorType string
45276	urlParams_      gensupport.URLParams
45277	ifNoneMatch_    string
45278	ctx_            context.Context
45279	header_         http.Header
45280}
45281
45282// Get: Returns the specified accelerator type.
45283func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
45284	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45285	c.project = project
45286	c.zone = zone
45287	c.acceleratorType = acceleratorType
45288	return c
45289}
45290
45291// Fields allows partial responses to be retrieved. See
45292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45293// for more information.
45294func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
45295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45296	return c
45297}
45298
45299// IfNoneMatch sets the optional parameter which makes the operation
45300// fail if the object's ETag matches the given value. This is useful for
45301// getting updates only after the object has changed since the last
45302// request. Use googleapi.IsNotModified to check whether the response
45303// error from Do is the result of In-None-Match.
45304func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
45305	c.ifNoneMatch_ = entityTag
45306	return c
45307}
45308
45309// Context sets the context to be used in this call's Do method. Any
45310// pending HTTP request will be aborted if the provided context is
45311// canceled.
45312func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
45313	c.ctx_ = ctx
45314	return c
45315}
45316
45317// Header returns an http.Header that can be modified by the caller to
45318// add HTTP headers to the request.
45319func (c *AcceleratorTypesGetCall) Header() http.Header {
45320	if c.header_ == nil {
45321		c.header_ = make(http.Header)
45322	}
45323	return c.header_
45324}
45325
45326func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
45327	reqHeaders := make(http.Header)
45328	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45329	for k, v := range c.header_ {
45330		reqHeaders[k] = v
45331	}
45332	reqHeaders.Set("User-Agent", c.s.userAgent())
45333	if c.ifNoneMatch_ != "" {
45334		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45335	}
45336	var body io.Reader = nil
45337	c.urlParams_.Set("alt", alt)
45338	c.urlParams_.Set("prettyPrint", "false")
45339	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
45340	urls += "?" + c.urlParams_.Encode()
45341	req, err := http.NewRequest("GET", urls, body)
45342	if err != nil {
45343		return nil, err
45344	}
45345	req.Header = reqHeaders
45346	googleapi.Expand(req.URL, map[string]string{
45347		"project":         c.project,
45348		"zone":            c.zone,
45349		"acceleratorType": c.acceleratorType,
45350	})
45351	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45352}
45353
45354// Do executes the "compute.acceleratorTypes.get" call.
45355// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
45356// status code is an error. Response headers are in either
45357// *AcceleratorType.ServerResponse.Header or (if a response was returned
45358// at all) in error.(*googleapi.Error).Header. Use
45359// googleapi.IsNotModified to check whether the returned error was
45360// because http.StatusNotModified was returned.
45361func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
45362	gensupport.SetOptions(c.urlParams_, opts...)
45363	res, err := c.doRequest("json")
45364	if res != nil && res.StatusCode == http.StatusNotModified {
45365		if res.Body != nil {
45366			res.Body.Close()
45367		}
45368		return nil, &googleapi.Error{
45369			Code:   res.StatusCode,
45370			Header: res.Header,
45371		}
45372	}
45373	if err != nil {
45374		return nil, err
45375	}
45376	defer googleapi.CloseBody(res)
45377	if err := googleapi.CheckResponse(res); err != nil {
45378		return nil, err
45379	}
45380	ret := &AcceleratorType{
45381		ServerResponse: googleapi.ServerResponse{
45382			Header:         res.Header,
45383			HTTPStatusCode: res.StatusCode,
45384		},
45385	}
45386	target := &ret
45387	if err := gensupport.DecodeResponse(target, res); err != nil {
45388		return nil, err
45389	}
45390	return ret, nil
45391	// {
45392	//   "description": "Returns the specified accelerator type.",
45393	//   "httpMethod": "GET",
45394	//   "id": "compute.acceleratorTypes.get",
45395	//   "parameterOrder": [
45396	//     "project",
45397	//     "zone",
45398	//     "acceleratorType"
45399	//   ],
45400	//   "parameters": {
45401	//     "acceleratorType": {
45402	//       "description": "Name of the accelerator type to return.",
45403	//       "location": "path",
45404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45405	//       "required": true,
45406	//       "type": "string"
45407	//     },
45408	//     "project": {
45409	//       "description": "Project ID for this request.",
45410	//       "location": "path",
45411	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45412	//       "required": true,
45413	//       "type": "string"
45414	//     },
45415	//     "zone": {
45416	//       "description": "The name of the zone for this request.",
45417	//       "location": "path",
45418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45419	//       "required": true,
45420	//       "type": "string"
45421	//     }
45422	//   },
45423	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
45424	//   "response": {
45425	//     "$ref": "AcceleratorType"
45426	//   },
45427	//   "scopes": [
45428	//     "https://www.googleapis.com/auth/cloud-platform",
45429	//     "https://www.googleapis.com/auth/compute",
45430	//     "https://www.googleapis.com/auth/compute.readonly"
45431	//   ]
45432	// }
45433
45434}
45435
45436// method id "compute.acceleratorTypes.list":
45437
45438type AcceleratorTypesListCall struct {
45439	s            *Service
45440	project      string
45441	zone         string
45442	urlParams_   gensupport.URLParams
45443	ifNoneMatch_ string
45444	ctx_         context.Context
45445	header_      http.Header
45446}
45447
45448// List: Retrieves a list of accelerator types that are available to the
45449// specified project.
45450func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
45451	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45452	c.project = project
45453	c.zone = zone
45454	return c
45455}
45456
45457// Filter sets the optional parameter "filter": A filter expression that
45458// filters resources listed in the response. The expression must specify
45459// the field name, a comparison operator, and the value that you want to
45460// use for filtering. The value must be a string, a number, or a
45461// boolean. The comparison operator must be either `=`, `!=`, `>`, or
45462// `<`.
45463//
45464// For example, if you are filtering Compute Engine instances, you can
45465// exclude instances named `example-instance` by specifying `name !=
45466// example-instance`.
45467//
45468// You can also filter nested fields. For example, you could specify
45469// `scheduling.automaticRestart = false` to include instances only if
45470// they are not scheduled for automatic restarts. You can use filtering
45471// on nested fields to filter based on resource labels.
45472//
45473// To filter on multiple expressions, provide each separate expression
45474// within parentheses. For example: ``` (scheduling.automaticRestart =
45475// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
45476// is an `AND` expression. However, you can include `AND` and `OR`
45477// expressions explicitly. For example: ``` (cpuPlatform = "Intel
45478// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
45479// (scheduling.automaticRestart = true) ```
45480func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
45481	c.urlParams_.Set("filter", filter)
45482	return c
45483}
45484
45485// MaxResults sets the optional parameter "maxResults": The maximum
45486// number of results per page that should be returned. If the number of
45487// available results is larger than `maxResults`, Compute Engine returns
45488// a `nextPageToken` that can be used to get the next page of results in
45489// subsequent list requests. Acceptable values are `0` to `500`,
45490// inclusive. (Default: `500`)
45491func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
45492	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45493	return c
45494}
45495
45496// OrderBy sets the optional parameter "orderBy": Sorts list results by
45497// a certain order. By default, results are returned in alphanumerical
45498// order based on the resource name.
45499//
45500// You can also sort results in descending order based on the creation
45501// timestamp using `orderBy="creationTimestamp desc". This sorts
45502// results based on the `creationTimestamp` field in reverse
45503// chronological order (newest result first). Use this to sort resources
45504// like operations so that the newest operation is returned
45505// first.
45506//
45507// Currently, only sorting by `name` or `creationTimestamp desc` is
45508// supported.
45509func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
45510	c.urlParams_.Set("orderBy", orderBy)
45511	return c
45512}
45513
45514// PageToken sets the optional parameter "pageToken": Specifies a page
45515// token to use. Set `pageToken` to the `nextPageToken` returned by a
45516// previous list request to get the next page of results.
45517func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
45518	c.urlParams_.Set("pageToken", pageToken)
45519	return c
45520}
45521
45522// Fields allows partial responses to be retrieved. See
45523// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45524// for more information.
45525func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
45526	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45527	return c
45528}
45529
45530// IfNoneMatch sets the optional parameter which makes the operation
45531// fail if the object's ETag matches the given value. This is useful for
45532// getting updates only after the object has changed since the last
45533// request. Use googleapi.IsNotModified to check whether the response
45534// error from Do is the result of In-None-Match.
45535func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
45536	c.ifNoneMatch_ = entityTag
45537	return c
45538}
45539
45540// Context sets the context to be used in this call's Do method. Any
45541// pending HTTP request will be aborted if the provided context is
45542// canceled.
45543func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
45544	c.ctx_ = ctx
45545	return c
45546}
45547
45548// Header returns an http.Header that can be modified by the caller to
45549// add HTTP headers to the request.
45550func (c *AcceleratorTypesListCall) Header() http.Header {
45551	if c.header_ == nil {
45552		c.header_ = make(http.Header)
45553	}
45554	return c.header_
45555}
45556
45557func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
45558	reqHeaders := make(http.Header)
45559	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45560	for k, v := range c.header_ {
45561		reqHeaders[k] = v
45562	}
45563	reqHeaders.Set("User-Agent", c.s.userAgent())
45564	if c.ifNoneMatch_ != "" {
45565		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45566	}
45567	var body io.Reader = nil
45568	c.urlParams_.Set("alt", alt)
45569	c.urlParams_.Set("prettyPrint", "false")
45570	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
45571	urls += "?" + c.urlParams_.Encode()
45572	req, err := http.NewRequest("GET", urls, body)
45573	if err != nil {
45574		return nil, err
45575	}
45576	req.Header = reqHeaders
45577	googleapi.Expand(req.URL, map[string]string{
45578		"project": c.project,
45579		"zone":    c.zone,
45580	})
45581	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45582}
45583
45584// Do executes the "compute.acceleratorTypes.list" call.
45585// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
45586// non-2xx status code is an error. Response headers are in either
45587// *AcceleratorTypeList.ServerResponse.Header or (if a response was
45588// returned at all) in error.(*googleapi.Error).Header. Use
45589// googleapi.IsNotModified to check whether the returned error was
45590// because http.StatusNotModified was returned.
45591func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
45592	gensupport.SetOptions(c.urlParams_, opts...)
45593	res, err := c.doRequest("json")
45594	if res != nil && res.StatusCode == http.StatusNotModified {
45595		if res.Body != nil {
45596			res.Body.Close()
45597		}
45598		return nil, &googleapi.Error{
45599			Code:   res.StatusCode,
45600			Header: res.Header,
45601		}
45602	}
45603	if err != nil {
45604		return nil, err
45605	}
45606	defer googleapi.CloseBody(res)
45607	if err := googleapi.CheckResponse(res); err != nil {
45608		return nil, err
45609	}
45610	ret := &AcceleratorTypeList{
45611		ServerResponse: googleapi.ServerResponse{
45612			Header:         res.Header,
45613			HTTPStatusCode: res.StatusCode,
45614		},
45615	}
45616	target := &ret
45617	if err := gensupport.DecodeResponse(target, res); err != nil {
45618		return nil, err
45619	}
45620	return ret, nil
45621	// {
45622	//   "description": "Retrieves a list of accelerator types that are available to the specified project.",
45623	//   "httpMethod": "GET",
45624	//   "id": "compute.acceleratorTypes.list",
45625	//   "parameterOrder": [
45626	//     "project",
45627	//     "zone"
45628	//   ],
45629	//   "parameters": {
45630	//     "filter": {
45631	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
45632	//       "location": "query",
45633	//       "type": "string"
45634	//     },
45635	//     "maxResults": {
45636	//       "default": "500",
45637	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
45638	//       "format": "uint32",
45639	//       "location": "query",
45640	//       "minimum": "0",
45641	//       "type": "integer"
45642	//     },
45643	//     "orderBy": {
45644	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
45645	//       "location": "query",
45646	//       "type": "string"
45647	//     },
45648	//     "pageToken": {
45649	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
45650	//       "location": "query",
45651	//       "type": "string"
45652	//     },
45653	//     "project": {
45654	//       "description": "Project ID for this request.",
45655	//       "location": "path",
45656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45657	//       "required": true,
45658	//       "type": "string"
45659	//     },
45660	//     "zone": {
45661	//       "description": "The name of the zone for this request.",
45662	//       "location": "path",
45663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45664	//       "required": true,
45665	//       "type": "string"
45666	//     }
45667	//   },
45668	//   "path": "{project}/zones/{zone}/acceleratorTypes",
45669	//   "response": {
45670	//     "$ref": "AcceleratorTypeList"
45671	//   },
45672	//   "scopes": [
45673	//     "https://www.googleapis.com/auth/cloud-platform",
45674	//     "https://www.googleapis.com/auth/compute",
45675	//     "https://www.googleapis.com/auth/compute.readonly"
45676	//   ]
45677	// }
45678
45679}
45680
45681// Pages invokes f for each page of results.
45682// A non-nil error returned from f will halt the iteration.
45683// The provided context supersedes any context provided to the Context method.
45684func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
45685	c.ctx_ = ctx
45686	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45687	for {
45688		x, err := c.Do()
45689		if err != nil {
45690			return err
45691		}
45692		if err := f(x); err != nil {
45693			return err
45694		}
45695		if x.NextPageToken == "" {
45696			return nil
45697		}
45698		c.PageToken(x.NextPageToken)
45699	}
45700}
45701
45702// method id "compute.addresses.aggregatedList":
45703
45704type AddressesAggregatedListCall struct {
45705	s            *Service
45706	project      string
45707	urlParams_   gensupport.URLParams
45708	ifNoneMatch_ string
45709	ctx_         context.Context
45710	header_      http.Header
45711}
45712
45713// AggregatedList: Retrieves an aggregated list of addresses.
45714// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
45715func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
45716	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45717	c.project = project
45718	return c
45719}
45720
45721// Filter sets the optional parameter "filter": A filter expression that
45722// filters resources listed in the response. The expression must specify
45723// the field name, a comparison operator, and the value that you want to
45724// use for filtering. The value must be a string, a number, or a
45725// boolean. The comparison operator must be either `=`, `!=`, `>`, or
45726// `<`.
45727//
45728// For example, if you are filtering Compute Engine instances, you can
45729// exclude instances named `example-instance` by specifying `name !=
45730// example-instance`.
45731//
45732// You can also filter nested fields. For example, you could specify
45733// `scheduling.automaticRestart = false` to include instances only if
45734// they are not scheduled for automatic restarts. You can use filtering
45735// on nested fields to filter based on resource labels.
45736//
45737// To filter on multiple expressions, provide each separate expression
45738// within parentheses. For example: ``` (scheduling.automaticRestart =
45739// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
45740// is an `AND` expression. However, you can include `AND` and `OR`
45741// expressions explicitly. For example: ``` (cpuPlatform = "Intel
45742// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
45743// (scheduling.automaticRestart = true) ```
45744func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
45745	c.urlParams_.Set("filter", filter)
45746	return c
45747}
45748
45749// IncludeAllScopes sets the optional parameter "includeAllScopes":
45750// Indicates whether every visible scope for each scope type (zone,
45751// region, global) should be included in the response. For new resource
45752// types added after this field, the flag has no effect as new resource
45753// types will always include every visible scope for each scope type in
45754// response. For resource types which predate this field, if this flag
45755// is omitted or false, only scopes of the scope types where the
45756// resource type is expected to be found will be included.
45757func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
45758	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
45759	return c
45760}
45761
45762// MaxResults sets the optional parameter "maxResults": The maximum
45763// number of results per page that should be returned. If the number of
45764// available results is larger than `maxResults`, Compute Engine returns
45765// a `nextPageToken` that can be used to get the next page of results in
45766// subsequent list requests. Acceptable values are `0` to `500`,
45767// inclusive. (Default: `500`)
45768func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
45769	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45770	return c
45771}
45772
45773// OrderBy sets the optional parameter "orderBy": Sorts list results by
45774// a certain order. By default, results are returned in alphanumerical
45775// order based on the resource name.
45776//
45777// You can also sort results in descending order based on the creation
45778// timestamp using `orderBy="creationTimestamp desc". This sorts
45779// results based on the `creationTimestamp` field in reverse
45780// chronological order (newest result first). Use this to sort resources
45781// like operations so that the newest operation is returned
45782// first.
45783//
45784// Currently, only sorting by `name` or `creationTimestamp desc` is
45785// supported.
45786func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
45787	c.urlParams_.Set("orderBy", orderBy)
45788	return c
45789}
45790
45791// PageToken sets the optional parameter "pageToken": Specifies a page
45792// token to use. Set `pageToken` to the `nextPageToken` returned by a
45793// previous list request to get the next page of results.
45794func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
45795	c.urlParams_.Set("pageToken", pageToken)
45796	return c
45797}
45798
45799// Fields allows partial responses to be retrieved. See
45800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45801// for more information.
45802func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
45803	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45804	return c
45805}
45806
45807// IfNoneMatch sets the optional parameter which makes the operation
45808// fail if the object's ETag matches the given value. This is useful for
45809// getting updates only after the object has changed since the last
45810// request. Use googleapi.IsNotModified to check whether the response
45811// error from Do is the result of In-None-Match.
45812func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
45813	c.ifNoneMatch_ = entityTag
45814	return c
45815}
45816
45817// Context sets the context to be used in this call's Do method. Any
45818// pending HTTP request will be aborted if the provided context is
45819// canceled.
45820func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
45821	c.ctx_ = ctx
45822	return c
45823}
45824
45825// Header returns an http.Header that can be modified by the caller to
45826// add HTTP headers to the request.
45827func (c *AddressesAggregatedListCall) Header() http.Header {
45828	if c.header_ == nil {
45829		c.header_ = make(http.Header)
45830	}
45831	return c.header_
45832}
45833
45834func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
45835	reqHeaders := make(http.Header)
45836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
45837	for k, v := range c.header_ {
45838		reqHeaders[k] = v
45839	}
45840	reqHeaders.Set("User-Agent", c.s.userAgent())
45841	if c.ifNoneMatch_ != "" {
45842		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45843	}
45844	var body io.Reader = nil
45845	c.urlParams_.Set("alt", alt)
45846	c.urlParams_.Set("prettyPrint", "false")
45847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
45848	urls += "?" + c.urlParams_.Encode()
45849	req, err := http.NewRequest("GET", urls, body)
45850	if err != nil {
45851		return nil, err
45852	}
45853	req.Header = reqHeaders
45854	googleapi.Expand(req.URL, map[string]string{
45855		"project": c.project,
45856	})
45857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45858}
45859
45860// Do executes the "compute.addresses.aggregatedList" call.
45861// Exactly one of *AddressAggregatedList or error will be non-nil. Any
45862// non-2xx status code is an error. Response headers are in either
45863// *AddressAggregatedList.ServerResponse.Header or (if a response was
45864// returned at all) in error.(*googleapi.Error).Header. Use
45865// googleapi.IsNotModified to check whether the returned error was
45866// because http.StatusNotModified was returned.
45867func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
45868	gensupport.SetOptions(c.urlParams_, opts...)
45869	res, err := c.doRequest("json")
45870	if res != nil && res.StatusCode == http.StatusNotModified {
45871		if res.Body != nil {
45872			res.Body.Close()
45873		}
45874		return nil, &googleapi.Error{
45875			Code:   res.StatusCode,
45876			Header: res.Header,
45877		}
45878	}
45879	if err != nil {
45880		return nil, err
45881	}
45882	defer googleapi.CloseBody(res)
45883	if err := googleapi.CheckResponse(res); err != nil {
45884		return nil, err
45885	}
45886	ret := &AddressAggregatedList{
45887		ServerResponse: googleapi.ServerResponse{
45888			Header:         res.Header,
45889			HTTPStatusCode: res.StatusCode,
45890		},
45891	}
45892	target := &ret
45893	if err := gensupport.DecodeResponse(target, res); err != nil {
45894		return nil, err
45895	}
45896	return ret, nil
45897	// {
45898	//   "description": "Retrieves an aggregated list of addresses.",
45899	//   "httpMethod": "GET",
45900	//   "id": "compute.addresses.aggregatedList",
45901	//   "parameterOrder": [
45902	//     "project"
45903	//   ],
45904	//   "parameters": {
45905	//     "filter": {
45906	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
45907	//       "location": "query",
45908	//       "type": "string"
45909	//     },
45910	//     "includeAllScopes": {
45911	//       "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.",
45912	//       "location": "query",
45913	//       "type": "boolean"
45914	//     },
45915	//     "maxResults": {
45916	//       "default": "500",
45917	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
45918	//       "format": "uint32",
45919	//       "location": "query",
45920	//       "minimum": "0",
45921	//       "type": "integer"
45922	//     },
45923	//     "orderBy": {
45924	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
45925	//       "location": "query",
45926	//       "type": "string"
45927	//     },
45928	//     "pageToken": {
45929	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
45930	//       "location": "query",
45931	//       "type": "string"
45932	//     },
45933	//     "project": {
45934	//       "description": "Project ID for this request.",
45935	//       "location": "path",
45936	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45937	//       "required": true,
45938	//       "type": "string"
45939	//     }
45940	//   },
45941	//   "path": "{project}/aggregated/addresses",
45942	//   "response": {
45943	//     "$ref": "AddressAggregatedList"
45944	//   },
45945	//   "scopes": [
45946	//     "https://www.googleapis.com/auth/cloud-platform",
45947	//     "https://www.googleapis.com/auth/compute",
45948	//     "https://www.googleapis.com/auth/compute.readonly"
45949	//   ]
45950	// }
45951
45952}
45953
45954// Pages invokes f for each page of results.
45955// A non-nil error returned from f will halt the iteration.
45956// The provided context supersedes any context provided to the Context method.
45957func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
45958	c.ctx_ = ctx
45959	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45960	for {
45961		x, err := c.Do()
45962		if err != nil {
45963			return err
45964		}
45965		if err := f(x); err != nil {
45966			return err
45967		}
45968		if x.NextPageToken == "" {
45969			return nil
45970		}
45971		c.PageToken(x.NextPageToken)
45972	}
45973}
45974
45975// method id "compute.addresses.delete":
45976
45977type AddressesDeleteCall struct {
45978	s          *Service
45979	project    string
45980	region     string
45981	address    string
45982	urlParams_ gensupport.URLParams
45983	ctx_       context.Context
45984	header_    http.Header
45985}
45986
45987// Delete: Deletes the specified address resource.
45988// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
45989func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
45990	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45991	c.project = project
45992	c.region = region
45993	c.address = address
45994	return c
45995}
45996
45997// RequestId sets the optional parameter "requestId": An optional
45998// request ID to identify requests. Specify a unique request ID so that
45999// if you must retry your request, the server will know to ignore the
46000// request if it has already been completed.
46001//
46002// For example, consider a situation where you make an initial request
46003// and the request times out. If you make the request again with the
46004// same request ID, the server can check if original operation with the
46005// same request ID was received, and if so, will ignore the second
46006// request. This prevents clients from accidentally creating duplicate
46007// commitments.
46008//
46009// The request ID must be a valid UUID with the exception that zero UUID
46010// is not supported (00000000-0000-0000-0000-000000000000).
46011func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
46012	c.urlParams_.Set("requestId", requestId)
46013	return c
46014}
46015
46016// Fields allows partial responses to be retrieved. See
46017// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46018// for more information.
46019func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
46020	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46021	return c
46022}
46023
46024// Context sets the context to be used in this call's Do method. Any
46025// pending HTTP request will be aborted if the provided context is
46026// canceled.
46027func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
46028	c.ctx_ = ctx
46029	return c
46030}
46031
46032// Header returns an http.Header that can be modified by the caller to
46033// add HTTP headers to the request.
46034func (c *AddressesDeleteCall) Header() http.Header {
46035	if c.header_ == nil {
46036		c.header_ = make(http.Header)
46037	}
46038	return c.header_
46039}
46040
46041func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
46042	reqHeaders := make(http.Header)
46043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46044	for k, v := range c.header_ {
46045		reqHeaders[k] = v
46046	}
46047	reqHeaders.Set("User-Agent", c.s.userAgent())
46048	var body io.Reader = nil
46049	c.urlParams_.Set("alt", alt)
46050	c.urlParams_.Set("prettyPrint", "false")
46051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
46052	urls += "?" + c.urlParams_.Encode()
46053	req, err := http.NewRequest("DELETE", urls, body)
46054	if err != nil {
46055		return nil, err
46056	}
46057	req.Header = reqHeaders
46058	googleapi.Expand(req.URL, map[string]string{
46059		"project": c.project,
46060		"region":  c.region,
46061		"address": c.address,
46062	})
46063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46064}
46065
46066// Do executes the "compute.addresses.delete" call.
46067// Exactly one of *Operation or error will be non-nil. Any non-2xx
46068// status code is an error. Response headers are in either
46069// *Operation.ServerResponse.Header or (if a response was returned at
46070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46071// to check whether the returned error was because
46072// http.StatusNotModified was returned.
46073func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46074	gensupport.SetOptions(c.urlParams_, opts...)
46075	res, err := c.doRequest("json")
46076	if res != nil && res.StatusCode == http.StatusNotModified {
46077		if res.Body != nil {
46078			res.Body.Close()
46079		}
46080		return nil, &googleapi.Error{
46081			Code:   res.StatusCode,
46082			Header: res.Header,
46083		}
46084	}
46085	if err != nil {
46086		return nil, err
46087	}
46088	defer googleapi.CloseBody(res)
46089	if err := googleapi.CheckResponse(res); err != nil {
46090		return nil, err
46091	}
46092	ret := &Operation{
46093		ServerResponse: googleapi.ServerResponse{
46094			Header:         res.Header,
46095			HTTPStatusCode: res.StatusCode,
46096		},
46097	}
46098	target := &ret
46099	if err := gensupport.DecodeResponse(target, res); err != nil {
46100		return nil, err
46101	}
46102	return ret, nil
46103	// {
46104	//   "description": "Deletes the specified address resource.",
46105	//   "httpMethod": "DELETE",
46106	//   "id": "compute.addresses.delete",
46107	//   "parameterOrder": [
46108	//     "project",
46109	//     "region",
46110	//     "address"
46111	//   ],
46112	//   "parameters": {
46113	//     "address": {
46114	//       "description": "Name of the address resource to delete.",
46115	//       "location": "path",
46116	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46117	//       "required": true,
46118	//       "type": "string"
46119	//     },
46120	//     "project": {
46121	//       "description": "Project ID for this request.",
46122	//       "location": "path",
46123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46124	//       "required": true,
46125	//       "type": "string"
46126	//     },
46127	//     "region": {
46128	//       "description": "Name of the region for this request.",
46129	//       "location": "path",
46130	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46131	//       "required": true,
46132	//       "type": "string"
46133	//     },
46134	//     "requestId": {
46135	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46136	//       "location": "query",
46137	//       "type": "string"
46138	//     }
46139	//   },
46140	//   "path": "{project}/regions/{region}/addresses/{address}",
46141	//   "response": {
46142	//     "$ref": "Operation"
46143	//   },
46144	//   "scopes": [
46145	//     "https://www.googleapis.com/auth/cloud-platform",
46146	//     "https://www.googleapis.com/auth/compute"
46147	//   ]
46148	// }
46149
46150}
46151
46152// method id "compute.addresses.get":
46153
46154type AddressesGetCall struct {
46155	s            *Service
46156	project      string
46157	region       string
46158	address      string
46159	urlParams_   gensupport.URLParams
46160	ifNoneMatch_ string
46161	ctx_         context.Context
46162	header_      http.Header
46163}
46164
46165// Get: Returns the specified address resource.
46166// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
46167func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
46168	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46169	c.project = project
46170	c.region = region
46171	c.address = address
46172	return c
46173}
46174
46175// Fields allows partial responses to be retrieved. See
46176// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46177// for more information.
46178func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
46179	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46180	return c
46181}
46182
46183// IfNoneMatch sets the optional parameter which makes the operation
46184// fail if the object's ETag matches the given value. This is useful for
46185// getting updates only after the object has changed since the last
46186// request. Use googleapi.IsNotModified to check whether the response
46187// error from Do is the result of In-None-Match.
46188func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
46189	c.ifNoneMatch_ = entityTag
46190	return c
46191}
46192
46193// Context sets the context to be used in this call's Do method. Any
46194// pending HTTP request will be aborted if the provided context is
46195// canceled.
46196func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
46197	c.ctx_ = ctx
46198	return c
46199}
46200
46201// Header returns an http.Header that can be modified by the caller to
46202// add HTTP headers to the request.
46203func (c *AddressesGetCall) Header() http.Header {
46204	if c.header_ == nil {
46205		c.header_ = make(http.Header)
46206	}
46207	return c.header_
46208}
46209
46210func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
46211	reqHeaders := make(http.Header)
46212	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46213	for k, v := range c.header_ {
46214		reqHeaders[k] = v
46215	}
46216	reqHeaders.Set("User-Agent", c.s.userAgent())
46217	if c.ifNoneMatch_ != "" {
46218		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46219	}
46220	var body io.Reader = nil
46221	c.urlParams_.Set("alt", alt)
46222	c.urlParams_.Set("prettyPrint", "false")
46223	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
46224	urls += "?" + c.urlParams_.Encode()
46225	req, err := http.NewRequest("GET", urls, body)
46226	if err != nil {
46227		return nil, err
46228	}
46229	req.Header = reqHeaders
46230	googleapi.Expand(req.URL, map[string]string{
46231		"project": c.project,
46232		"region":  c.region,
46233		"address": c.address,
46234	})
46235	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46236}
46237
46238// Do executes the "compute.addresses.get" call.
46239// Exactly one of *Address or error will be non-nil. Any non-2xx status
46240// code is an error. Response headers are in either
46241// *Address.ServerResponse.Header or (if a response was returned at all)
46242// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
46243// check whether the returned error was because http.StatusNotModified
46244// was returned.
46245func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
46246	gensupport.SetOptions(c.urlParams_, opts...)
46247	res, err := c.doRequest("json")
46248	if res != nil && res.StatusCode == http.StatusNotModified {
46249		if res.Body != nil {
46250			res.Body.Close()
46251		}
46252		return nil, &googleapi.Error{
46253			Code:   res.StatusCode,
46254			Header: res.Header,
46255		}
46256	}
46257	if err != nil {
46258		return nil, err
46259	}
46260	defer googleapi.CloseBody(res)
46261	if err := googleapi.CheckResponse(res); err != nil {
46262		return nil, err
46263	}
46264	ret := &Address{
46265		ServerResponse: googleapi.ServerResponse{
46266			Header:         res.Header,
46267			HTTPStatusCode: res.StatusCode,
46268		},
46269	}
46270	target := &ret
46271	if err := gensupport.DecodeResponse(target, res); err != nil {
46272		return nil, err
46273	}
46274	return ret, nil
46275	// {
46276	//   "description": "Returns the specified address resource.",
46277	//   "httpMethod": "GET",
46278	//   "id": "compute.addresses.get",
46279	//   "parameterOrder": [
46280	//     "project",
46281	//     "region",
46282	//     "address"
46283	//   ],
46284	//   "parameters": {
46285	//     "address": {
46286	//       "description": "Name of the address resource to return.",
46287	//       "location": "path",
46288	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46289	//       "required": true,
46290	//       "type": "string"
46291	//     },
46292	//     "project": {
46293	//       "description": "Project ID for this request.",
46294	//       "location": "path",
46295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46296	//       "required": true,
46297	//       "type": "string"
46298	//     },
46299	//     "region": {
46300	//       "description": "Name of the region for this request.",
46301	//       "location": "path",
46302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46303	//       "required": true,
46304	//       "type": "string"
46305	//     }
46306	//   },
46307	//   "path": "{project}/regions/{region}/addresses/{address}",
46308	//   "response": {
46309	//     "$ref": "Address"
46310	//   },
46311	//   "scopes": [
46312	//     "https://www.googleapis.com/auth/cloud-platform",
46313	//     "https://www.googleapis.com/auth/compute",
46314	//     "https://www.googleapis.com/auth/compute.readonly"
46315	//   ]
46316	// }
46317
46318}
46319
46320// method id "compute.addresses.insert":
46321
46322type AddressesInsertCall struct {
46323	s          *Service
46324	project    string
46325	region     string
46326	address    *Address
46327	urlParams_ gensupport.URLParams
46328	ctx_       context.Context
46329	header_    http.Header
46330}
46331
46332// Insert: Creates an address resource in the specified project by using
46333// the data included in the request.
46334// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
46335func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
46336	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46337	c.project = project
46338	c.region = region
46339	c.address = address
46340	return c
46341}
46342
46343// RequestId sets the optional parameter "requestId": An optional
46344// request ID to identify requests. Specify a unique request ID so that
46345// if you must retry your request, the server will know to ignore the
46346// request if it has already been completed.
46347//
46348// For example, consider a situation where you make an initial request
46349// and the request times out. If you make the request again with the
46350// same request ID, the server can check if original operation with the
46351// same request ID was received, and if so, will ignore the second
46352// request. This prevents clients from accidentally creating duplicate
46353// commitments.
46354//
46355// The request ID must be a valid UUID with the exception that zero UUID
46356// is not supported (00000000-0000-0000-0000-000000000000).
46357func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
46358	c.urlParams_.Set("requestId", requestId)
46359	return c
46360}
46361
46362// Fields allows partial responses to be retrieved. See
46363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46364// for more information.
46365func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
46366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46367	return c
46368}
46369
46370// Context sets the context to be used in this call's Do method. Any
46371// pending HTTP request will be aborted if the provided context is
46372// canceled.
46373func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
46374	c.ctx_ = ctx
46375	return c
46376}
46377
46378// Header returns an http.Header that can be modified by the caller to
46379// add HTTP headers to the request.
46380func (c *AddressesInsertCall) Header() http.Header {
46381	if c.header_ == nil {
46382		c.header_ = make(http.Header)
46383	}
46384	return c.header_
46385}
46386
46387func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
46388	reqHeaders := make(http.Header)
46389	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46390	for k, v := range c.header_ {
46391		reqHeaders[k] = v
46392	}
46393	reqHeaders.Set("User-Agent", c.s.userAgent())
46394	var body io.Reader = nil
46395	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
46396	if err != nil {
46397		return nil, err
46398	}
46399	reqHeaders.Set("Content-Type", "application/json")
46400	c.urlParams_.Set("alt", alt)
46401	c.urlParams_.Set("prettyPrint", "false")
46402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
46403	urls += "?" + c.urlParams_.Encode()
46404	req, err := http.NewRequest("POST", urls, body)
46405	if err != nil {
46406		return nil, err
46407	}
46408	req.Header = reqHeaders
46409	googleapi.Expand(req.URL, map[string]string{
46410		"project": c.project,
46411		"region":  c.region,
46412	})
46413	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46414}
46415
46416// Do executes the "compute.addresses.insert" call.
46417// Exactly one of *Operation or error will be non-nil. Any non-2xx
46418// status code is an error. Response headers are in either
46419// *Operation.ServerResponse.Header or (if a response was returned at
46420// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46421// to check whether the returned error was because
46422// http.StatusNotModified was returned.
46423func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46424	gensupport.SetOptions(c.urlParams_, opts...)
46425	res, err := c.doRequest("json")
46426	if res != nil && res.StatusCode == http.StatusNotModified {
46427		if res.Body != nil {
46428			res.Body.Close()
46429		}
46430		return nil, &googleapi.Error{
46431			Code:   res.StatusCode,
46432			Header: res.Header,
46433		}
46434	}
46435	if err != nil {
46436		return nil, err
46437	}
46438	defer googleapi.CloseBody(res)
46439	if err := googleapi.CheckResponse(res); err != nil {
46440		return nil, err
46441	}
46442	ret := &Operation{
46443		ServerResponse: googleapi.ServerResponse{
46444			Header:         res.Header,
46445			HTTPStatusCode: res.StatusCode,
46446		},
46447	}
46448	target := &ret
46449	if err := gensupport.DecodeResponse(target, res); err != nil {
46450		return nil, err
46451	}
46452	return ret, nil
46453	// {
46454	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
46455	//   "httpMethod": "POST",
46456	//   "id": "compute.addresses.insert",
46457	//   "parameterOrder": [
46458	//     "project",
46459	//     "region"
46460	//   ],
46461	//   "parameters": {
46462	//     "project": {
46463	//       "description": "Project ID for this request.",
46464	//       "location": "path",
46465	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46466	//       "required": true,
46467	//       "type": "string"
46468	//     },
46469	//     "region": {
46470	//       "description": "Name of the region for this request.",
46471	//       "location": "path",
46472	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46473	//       "required": true,
46474	//       "type": "string"
46475	//     },
46476	//     "requestId": {
46477	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46478	//       "location": "query",
46479	//       "type": "string"
46480	//     }
46481	//   },
46482	//   "path": "{project}/regions/{region}/addresses",
46483	//   "request": {
46484	//     "$ref": "Address"
46485	//   },
46486	//   "response": {
46487	//     "$ref": "Operation"
46488	//   },
46489	//   "scopes": [
46490	//     "https://www.googleapis.com/auth/cloud-platform",
46491	//     "https://www.googleapis.com/auth/compute"
46492	//   ]
46493	// }
46494
46495}
46496
46497// method id "compute.addresses.list":
46498
46499type AddressesListCall struct {
46500	s            *Service
46501	project      string
46502	region       string
46503	urlParams_   gensupport.URLParams
46504	ifNoneMatch_ string
46505	ctx_         context.Context
46506	header_      http.Header
46507}
46508
46509// List: Retrieves a list of addresses contained within the specified
46510// region.
46511// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
46512func (r *AddressesService) List(project string, region string) *AddressesListCall {
46513	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46514	c.project = project
46515	c.region = region
46516	return c
46517}
46518
46519// Filter sets the optional parameter "filter": A filter expression that
46520// filters resources listed in the response. The expression must specify
46521// the field name, a comparison operator, and the value that you want to
46522// use for filtering. The value must be a string, a number, or a
46523// boolean. The comparison operator must be either `=`, `!=`, `>`, or
46524// `<`.
46525//
46526// For example, if you are filtering Compute Engine instances, you can
46527// exclude instances named `example-instance` by specifying `name !=
46528// example-instance`.
46529//
46530// You can also filter nested fields. For example, you could specify
46531// `scheduling.automaticRestart = false` to include instances only if
46532// they are not scheduled for automatic restarts. You can use filtering
46533// on nested fields to filter based on resource labels.
46534//
46535// To filter on multiple expressions, provide each separate expression
46536// within parentheses. For example: ``` (scheduling.automaticRestart =
46537// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
46538// is an `AND` expression. However, you can include `AND` and `OR`
46539// expressions explicitly. For example: ``` (cpuPlatform = "Intel
46540// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
46541// (scheduling.automaticRestart = true) ```
46542func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
46543	c.urlParams_.Set("filter", filter)
46544	return c
46545}
46546
46547// MaxResults sets the optional parameter "maxResults": The maximum
46548// number of results per page that should be returned. If the number of
46549// available results is larger than `maxResults`, Compute Engine returns
46550// a `nextPageToken` that can be used to get the next page of results in
46551// subsequent list requests. Acceptable values are `0` to `500`,
46552// inclusive. (Default: `500`)
46553func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
46554	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
46555	return c
46556}
46557
46558// OrderBy sets the optional parameter "orderBy": Sorts list results by
46559// a certain order. By default, results are returned in alphanumerical
46560// order based on the resource name.
46561//
46562// You can also sort results in descending order based on the creation
46563// timestamp using `orderBy="creationTimestamp desc". This sorts
46564// results based on the `creationTimestamp` field in reverse
46565// chronological order (newest result first). Use this to sort resources
46566// like operations so that the newest operation is returned
46567// first.
46568//
46569// Currently, only sorting by `name` or `creationTimestamp desc` is
46570// supported.
46571func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
46572	c.urlParams_.Set("orderBy", orderBy)
46573	return c
46574}
46575
46576// PageToken sets the optional parameter "pageToken": Specifies a page
46577// token to use. Set `pageToken` to the `nextPageToken` returned by a
46578// previous list request to get the next page of results.
46579func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
46580	c.urlParams_.Set("pageToken", pageToken)
46581	return c
46582}
46583
46584// Fields allows partial responses to be retrieved. See
46585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46586// for more information.
46587func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
46588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46589	return c
46590}
46591
46592// IfNoneMatch sets the optional parameter which makes the operation
46593// fail if the object's ETag matches the given value. This is useful for
46594// getting updates only after the object has changed since the last
46595// request. Use googleapi.IsNotModified to check whether the response
46596// error from Do is the result of In-None-Match.
46597func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
46598	c.ifNoneMatch_ = entityTag
46599	return c
46600}
46601
46602// Context sets the context to be used in this call's Do method. Any
46603// pending HTTP request will be aborted if the provided context is
46604// canceled.
46605func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
46606	c.ctx_ = ctx
46607	return c
46608}
46609
46610// Header returns an http.Header that can be modified by the caller to
46611// add HTTP headers to the request.
46612func (c *AddressesListCall) Header() http.Header {
46613	if c.header_ == nil {
46614		c.header_ = make(http.Header)
46615	}
46616	return c.header_
46617}
46618
46619func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
46620	reqHeaders := make(http.Header)
46621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46622	for k, v := range c.header_ {
46623		reqHeaders[k] = v
46624	}
46625	reqHeaders.Set("User-Agent", c.s.userAgent())
46626	if c.ifNoneMatch_ != "" {
46627		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46628	}
46629	var body io.Reader = nil
46630	c.urlParams_.Set("alt", alt)
46631	c.urlParams_.Set("prettyPrint", "false")
46632	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
46633	urls += "?" + c.urlParams_.Encode()
46634	req, err := http.NewRequest("GET", urls, body)
46635	if err != nil {
46636		return nil, err
46637	}
46638	req.Header = reqHeaders
46639	googleapi.Expand(req.URL, map[string]string{
46640		"project": c.project,
46641		"region":  c.region,
46642	})
46643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46644}
46645
46646// Do executes the "compute.addresses.list" call.
46647// Exactly one of *AddressList or error will be non-nil. Any non-2xx
46648// status code is an error. Response headers are in either
46649// *AddressList.ServerResponse.Header or (if a response was returned at
46650// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46651// to check whether the returned error was because
46652// http.StatusNotModified was returned.
46653func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
46654	gensupport.SetOptions(c.urlParams_, opts...)
46655	res, err := c.doRequest("json")
46656	if res != nil && res.StatusCode == http.StatusNotModified {
46657		if res.Body != nil {
46658			res.Body.Close()
46659		}
46660		return nil, &googleapi.Error{
46661			Code:   res.StatusCode,
46662			Header: res.Header,
46663		}
46664	}
46665	if err != nil {
46666		return nil, err
46667	}
46668	defer googleapi.CloseBody(res)
46669	if err := googleapi.CheckResponse(res); err != nil {
46670		return nil, err
46671	}
46672	ret := &AddressList{
46673		ServerResponse: googleapi.ServerResponse{
46674			Header:         res.Header,
46675			HTTPStatusCode: res.StatusCode,
46676		},
46677	}
46678	target := &ret
46679	if err := gensupport.DecodeResponse(target, res); err != nil {
46680		return nil, err
46681	}
46682	return ret, nil
46683	// {
46684	//   "description": "Retrieves a list of addresses contained within the specified region.",
46685	//   "httpMethod": "GET",
46686	//   "id": "compute.addresses.list",
46687	//   "parameterOrder": [
46688	//     "project",
46689	//     "region"
46690	//   ],
46691	//   "parameters": {
46692	//     "filter": {
46693	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
46694	//       "location": "query",
46695	//       "type": "string"
46696	//     },
46697	//     "maxResults": {
46698	//       "default": "500",
46699	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
46700	//       "format": "uint32",
46701	//       "location": "query",
46702	//       "minimum": "0",
46703	//       "type": "integer"
46704	//     },
46705	//     "orderBy": {
46706	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
46707	//       "location": "query",
46708	//       "type": "string"
46709	//     },
46710	//     "pageToken": {
46711	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
46712	//       "location": "query",
46713	//       "type": "string"
46714	//     },
46715	//     "project": {
46716	//       "description": "Project ID for this request.",
46717	//       "location": "path",
46718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46719	//       "required": true,
46720	//       "type": "string"
46721	//     },
46722	//     "region": {
46723	//       "description": "Name of the region for this request.",
46724	//       "location": "path",
46725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46726	//       "required": true,
46727	//       "type": "string"
46728	//     }
46729	//   },
46730	//   "path": "{project}/regions/{region}/addresses",
46731	//   "response": {
46732	//     "$ref": "AddressList"
46733	//   },
46734	//   "scopes": [
46735	//     "https://www.googleapis.com/auth/cloud-platform",
46736	//     "https://www.googleapis.com/auth/compute",
46737	//     "https://www.googleapis.com/auth/compute.readonly"
46738	//   ]
46739	// }
46740
46741}
46742
46743// Pages invokes f for each page of results.
46744// A non-nil error returned from f will halt the iteration.
46745// The provided context supersedes any context provided to the Context method.
46746func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
46747	c.ctx_ = ctx
46748	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
46749	for {
46750		x, err := c.Do()
46751		if err != nil {
46752			return err
46753		}
46754		if err := f(x); err != nil {
46755			return err
46756		}
46757		if x.NextPageToken == "" {
46758			return nil
46759		}
46760		c.PageToken(x.NextPageToken)
46761	}
46762}
46763
46764// method id "compute.addresses.setLabels":
46765
46766type AddressesSetLabelsCall struct {
46767	s                      *Service
46768	project                string
46769	region                 string
46770	resource               string
46771	regionsetlabelsrequest *RegionSetLabelsRequest
46772	urlParams_             gensupport.URLParams
46773	ctx_                   context.Context
46774	header_                http.Header
46775}
46776
46777// SetLabels: Sets the labels on an Address. To learn more about labels,
46778// read the Labeling Resources documentation.
46779func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall {
46780	c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46781	c.project = project
46782	c.region = region
46783	c.resource = resource
46784	c.regionsetlabelsrequest = regionsetlabelsrequest
46785	return c
46786}
46787
46788// RequestId sets the optional parameter "requestId": An optional
46789// request ID to identify requests. Specify a unique request ID so that
46790// if you must retry your request, the server will know to ignore the
46791// request if it has already been completed.
46792//
46793// For example, consider a situation where you make an initial request
46794// and the request times out. If you make the request again with the
46795// same request ID, the server can check if original operation with the
46796// same request ID was received, and if so, will ignore the second
46797// request. This prevents clients from accidentally creating duplicate
46798// commitments.
46799//
46800// The request ID must be a valid UUID with the exception that zero UUID
46801// is not supported (00000000-0000-0000-0000-000000000000).
46802func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall {
46803	c.urlParams_.Set("requestId", requestId)
46804	return c
46805}
46806
46807// Fields allows partial responses to be retrieved. See
46808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46809// for more information.
46810func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall {
46811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46812	return c
46813}
46814
46815// Context sets the context to be used in this call's Do method. Any
46816// pending HTTP request will be aborted if the provided context is
46817// canceled.
46818func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall {
46819	c.ctx_ = ctx
46820	return c
46821}
46822
46823// Header returns an http.Header that can be modified by the caller to
46824// add HTTP headers to the request.
46825func (c *AddressesSetLabelsCall) Header() http.Header {
46826	if c.header_ == nil {
46827		c.header_ = make(http.Header)
46828	}
46829	return c.header_
46830}
46831
46832func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
46833	reqHeaders := make(http.Header)
46834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
46835	for k, v := range c.header_ {
46836		reqHeaders[k] = v
46837	}
46838	reqHeaders.Set("User-Agent", c.s.userAgent())
46839	var body io.Reader = nil
46840	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
46841	if err != nil {
46842		return nil, err
46843	}
46844	reqHeaders.Set("Content-Type", "application/json")
46845	c.urlParams_.Set("alt", alt)
46846	c.urlParams_.Set("prettyPrint", "false")
46847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/setLabels")
46848	urls += "?" + c.urlParams_.Encode()
46849	req, err := http.NewRequest("POST", urls, body)
46850	if err != nil {
46851		return nil, err
46852	}
46853	req.Header = reqHeaders
46854	googleapi.Expand(req.URL, map[string]string{
46855		"project":  c.project,
46856		"region":   c.region,
46857		"resource": c.resource,
46858	})
46859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46860}
46861
46862// Do executes the "compute.addresses.setLabels" call.
46863// Exactly one of *Operation or error will be non-nil. Any non-2xx
46864// status code is an error. Response headers are in either
46865// *Operation.ServerResponse.Header or (if a response was returned at
46866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46867// to check whether the returned error was because
46868// http.StatusNotModified was returned.
46869func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46870	gensupport.SetOptions(c.urlParams_, opts...)
46871	res, err := c.doRequest("json")
46872	if res != nil && res.StatusCode == http.StatusNotModified {
46873		if res.Body != nil {
46874			res.Body.Close()
46875		}
46876		return nil, &googleapi.Error{
46877			Code:   res.StatusCode,
46878			Header: res.Header,
46879		}
46880	}
46881	if err != nil {
46882		return nil, err
46883	}
46884	defer googleapi.CloseBody(res)
46885	if err := googleapi.CheckResponse(res); err != nil {
46886		return nil, err
46887	}
46888	ret := &Operation{
46889		ServerResponse: googleapi.ServerResponse{
46890			Header:         res.Header,
46891			HTTPStatusCode: res.StatusCode,
46892		},
46893	}
46894	target := &ret
46895	if err := gensupport.DecodeResponse(target, res); err != nil {
46896		return nil, err
46897	}
46898	return ret, nil
46899	// {
46900	//   "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.",
46901	//   "httpMethod": "POST",
46902	//   "id": "compute.addresses.setLabels",
46903	//   "parameterOrder": [
46904	//     "project",
46905	//     "region",
46906	//     "resource"
46907	//   ],
46908	//   "parameters": {
46909	//     "project": {
46910	//       "description": "Project ID for this request.",
46911	//       "location": "path",
46912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46913	//       "required": true,
46914	//       "type": "string"
46915	//     },
46916	//     "region": {
46917	//       "description": "The region for this request.",
46918	//       "location": "path",
46919	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46920	//       "required": true,
46921	//       "type": "string"
46922	//     },
46923	//     "requestId": {
46924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46925	//       "location": "query",
46926	//       "type": "string"
46927	//     },
46928	//     "resource": {
46929	//       "description": "Name or id of the resource for this request.",
46930	//       "location": "path",
46931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46932	//       "required": true,
46933	//       "type": "string"
46934	//     }
46935	//   },
46936	//   "path": "{project}/regions/{region}/addresses/{resource}/setLabels",
46937	//   "request": {
46938	//     "$ref": "RegionSetLabelsRequest"
46939	//   },
46940	//   "response": {
46941	//     "$ref": "Operation"
46942	//   },
46943	//   "scopes": [
46944	//     "https://www.googleapis.com/auth/cloud-platform",
46945	//     "https://www.googleapis.com/auth/compute"
46946	//   ]
46947	// }
46948
46949}
46950
46951// method id "compute.addresses.testIamPermissions":
46952
46953type AddressesTestIamPermissionsCall struct {
46954	s                      *Service
46955	project                string
46956	region                 string
46957	resource               string
46958	testpermissionsrequest *TestPermissionsRequest
46959	urlParams_             gensupport.URLParams
46960	ctx_                   context.Context
46961	header_                http.Header
46962}
46963
46964// TestIamPermissions: Returns permissions that a caller has on the
46965// specified resource.
46966func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall {
46967	c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46968	c.project = project
46969	c.region = region
46970	c.resource = resource
46971	c.testpermissionsrequest = testpermissionsrequest
46972	return c
46973}
46974
46975// Fields allows partial responses to be retrieved. See
46976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46977// for more information.
46978func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall {
46979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46980	return c
46981}
46982
46983// Context sets the context to be used in this call's Do method. Any
46984// pending HTTP request will be aborted if the provided context is
46985// canceled.
46986func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall {
46987	c.ctx_ = ctx
46988	return c
46989}
46990
46991// Header returns an http.Header that can be modified by the caller to
46992// add HTTP headers to the request.
46993func (c *AddressesTestIamPermissionsCall) Header() http.Header {
46994	if c.header_ == nil {
46995		c.header_ = make(http.Header)
46996	}
46997	return c.header_
46998}
46999
47000func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
47001	reqHeaders := make(http.Header)
47002	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47003	for k, v := range c.header_ {
47004		reqHeaders[k] = v
47005	}
47006	reqHeaders.Set("User-Agent", c.s.userAgent())
47007	var body io.Reader = nil
47008	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
47009	if err != nil {
47010		return nil, err
47011	}
47012	reqHeaders.Set("Content-Type", "application/json")
47013	c.urlParams_.Set("alt", alt)
47014	c.urlParams_.Set("prettyPrint", "false")
47015	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/testIamPermissions")
47016	urls += "?" + c.urlParams_.Encode()
47017	req, err := http.NewRequest("POST", urls, body)
47018	if err != nil {
47019		return nil, err
47020	}
47021	req.Header = reqHeaders
47022	googleapi.Expand(req.URL, map[string]string{
47023		"project":  c.project,
47024		"region":   c.region,
47025		"resource": c.resource,
47026	})
47027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47028}
47029
47030// Do executes the "compute.addresses.testIamPermissions" call.
47031// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
47032// non-2xx status code is an error. Response headers are in either
47033// *TestPermissionsResponse.ServerResponse.Header or (if a response was
47034// returned at all) in error.(*googleapi.Error).Header. Use
47035// googleapi.IsNotModified to check whether the returned error was
47036// because http.StatusNotModified was returned.
47037func (c *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
47038	gensupport.SetOptions(c.urlParams_, opts...)
47039	res, err := c.doRequest("json")
47040	if res != nil && res.StatusCode == http.StatusNotModified {
47041		if res.Body != nil {
47042			res.Body.Close()
47043		}
47044		return nil, &googleapi.Error{
47045			Code:   res.StatusCode,
47046			Header: res.Header,
47047		}
47048	}
47049	if err != nil {
47050		return nil, err
47051	}
47052	defer googleapi.CloseBody(res)
47053	if err := googleapi.CheckResponse(res); err != nil {
47054		return nil, err
47055	}
47056	ret := &TestPermissionsResponse{
47057		ServerResponse: googleapi.ServerResponse{
47058			Header:         res.Header,
47059			HTTPStatusCode: res.StatusCode,
47060		},
47061	}
47062	target := &ret
47063	if err := gensupport.DecodeResponse(target, res); err != nil {
47064		return nil, err
47065	}
47066	return ret, nil
47067	// {
47068	//   "description": "Returns permissions that a caller has on the specified resource.",
47069	//   "httpMethod": "POST",
47070	//   "id": "compute.addresses.testIamPermissions",
47071	//   "parameterOrder": [
47072	//     "project",
47073	//     "region",
47074	//     "resource"
47075	//   ],
47076	//   "parameters": {
47077	//     "project": {
47078	//       "description": "Project ID for this request.",
47079	//       "location": "path",
47080	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47081	//       "required": true,
47082	//       "type": "string"
47083	//     },
47084	//     "region": {
47085	//       "description": "The name of the region for this request.",
47086	//       "location": "path",
47087	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47088	//       "required": true,
47089	//       "type": "string"
47090	//     },
47091	//     "resource": {
47092	//       "description": "Name or id of the resource for this request.",
47093	//       "location": "path",
47094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47095	//       "required": true,
47096	//       "type": "string"
47097	//     }
47098	//   },
47099	//   "path": "{project}/regions/{region}/addresses/{resource}/testIamPermissions",
47100	//   "request": {
47101	//     "$ref": "TestPermissionsRequest"
47102	//   },
47103	//   "response": {
47104	//     "$ref": "TestPermissionsResponse"
47105	//   },
47106	//   "scopes": [
47107	//     "https://www.googleapis.com/auth/cloud-platform",
47108	//     "https://www.googleapis.com/auth/compute",
47109	//     "https://www.googleapis.com/auth/compute.readonly"
47110	//   ]
47111	// }
47112
47113}
47114
47115// method id "compute.autoscalers.aggregatedList":
47116
47117type AutoscalersAggregatedListCall struct {
47118	s            *Service
47119	project      string
47120	urlParams_   gensupport.URLParams
47121	ifNoneMatch_ string
47122	ctx_         context.Context
47123	header_      http.Header
47124}
47125
47126// AggregatedList: Retrieves an aggregated list of autoscalers.
47127func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
47128	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47129	c.project = project
47130	return c
47131}
47132
47133// Filter sets the optional parameter "filter": A filter expression that
47134// filters resources listed in the response. The expression must specify
47135// the field name, a comparison operator, and the value that you want to
47136// use for filtering. The value must be a string, a number, or a
47137// boolean. The comparison operator must be either `=`, `!=`, `>`, or
47138// `<`.
47139//
47140// For example, if you are filtering Compute Engine instances, you can
47141// exclude instances named `example-instance` by specifying `name !=
47142// example-instance`.
47143//
47144// You can also filter nested fields. For example, you could specify
47145// `scheduling.automaticRestart = false` to include instances only if
47146// they are not scheduled for automatic restarts. You can use filtering
47147// on nested fields to filter based on resource labels.
47148//
47149// To filter on multiple expressions, provide each separate expression
47150// within parentheses. For example: ``` (scheduling.automaticRestart =
47151// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
47152// is an `AND` expression. However, you can include `AND` and `OR`
47153// expressions explicitly. For example: ``` (cpuPlatform = "Intel
47154// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
47155// (scheduling.automaticRestart = true) ```
47156func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
47157	c.urlParams_.Set("filter", filter)
47158	return c
47159}
47160
47161// IncludeAllScopes sets the optional parameter "includeAllScopes":
47162// Indicates whether every visible scope for each scope type (zone,
47163// region, global) should be included in the response. For new resource
47164// types added after this field, the flag has no effect as new resource
47165// types will always include every visible scope for each scope type in
47166// response. For resource types which predate this field, if this flag
47167// is omitted or false, only scopes of the scope types where the
47168// resource type is expected to be found will be included.
47169func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
47170	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
47171	return c
47172}
47173
47174// MaxResults sets the optional parameter "maxResults": The maximum
47175// number of results per page that should be returned. If the number of
47176// available results is larger than `maxResults`, Compute Engine returns
47177// a `nextPageToken` that can be used to get the next page of results in
47178// subsequent list requests. Acceptable values are `0` to `500`,
47179// inclusive. (Default: `500`)
47180func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
47181	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47182	return c
47183}
47184
47185// OrderBy sets the optional parameter "orderBy": Sorts list results by
47186// a certain order. By default, results are returned in alphanumerical
47187// order based on the resource name.
47188//
47189// You can also sort results in descending order based on the creation
47190// timestamp using `orderBy="creationTimestamp desc". This sorts
47191// results based on the `creationTimestamp` field in reverse
47192// chronological order (newest result first). Use this to sort resources
47193// like operations so that the newest operation is returned
47194// first.
47195//
47196// Currently, only sorting by `name` or `creationTimestamp desc` is
47197// supported.
47198func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
47199	c.urlParams_.Set("orderBy", orderBy)
47200	return c
47201}
47202
47203// PageToken sets the optional parameter "pageToken": Specifies a page
47204// token to use. Set `pageToken` to the `nextPageToken` returned by a
47205// previous list request to get the next page of results.
47206func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
47207	c.urlParams_.Set("pageToken", pageToken)
47208	return c
47209}
47210
47211// Fields allows partial responses to be retrieved. See
47212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47213// for more information.
47214func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
47215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47216	return c
47217}
47218
47219// IfNoneMatch sets the optional parameter which makes the operation
47220// fail if the object's ETag matches the given value. This is useful for
47221// getting updates only after the object has changed since the last
47222// request. Use googleapi.IsNotModified to check whether the response
47223// error from Do is the result of In-None-Match.
47224func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
47225	c.ifNoneMatch_ = entityTag
47226	return c
47227}
47228
47229// Context sets the context to be used in this call's Do method. Any
47230// pending HTTP request will be aborted if the provided context is
47231// canceled.
47232func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
47233	c.ctx_ = ctx
47234	return c
47235}
47236
47237// Header returns an http.Header that can be modified by the caller to
47238// add HTTP headers to the request.
47239func (c *AutoscalersAggregatedListCall) Header() http.Header {
47240	if c.header_ == nil {
47241		c.header_ = make(http.Header)
47242	}
47243	return c.header_
47244}
47245
47246func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
47247	reqHeaders := make(http.Header)
47248	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47249	for k, v := range c.header_ {
47250		reqHeaders[k] = v
47251	}
47252	reqHeaders.Set("User-Agent", c.s.userAgent())
47253	if c.ifNoneMatch_ != "" {
47254		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47255	}
47256	var body io.Reader = nil
47257	c.urlParams_.Set("alt", alt)
47258	c.urlParams_.Set("prettyPrint", "false")
47259	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
47260	urls += "?" + c.urlParams_.Encode()
47261	req, err := http.NewRequest("GET", urls, body)
47262	if err != nil {
47263		return nil, err
47264	}
47265	req.Header = reqHeaders
47266	googleapi.Expand(req.URL, map[string]string{
47267		"project": c.project,
47268	})
47269	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47270}
47271
47272// Do executes the "compute.autoscalers.aggregatedList" call.
47273// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
47274// Any non-2xx status code is an error. Response headers are in either
47275// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
47276// returned at all) in error.(*googleapi.Error).Header. Use
47277// googleapi.IsNotModified to check whether the returned error was
47278// because http.StatusNotModified was returned.
47279func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
47280	gensupport.SetOptions(c.urlParams_, opts...)
47281	res, err := c.doRequest("json")
47282	if res != nil && res.StatusCode == http.StatusNotModified {
47283		if res.Body != nil {
47284			res.Body.Close()
47285		}
47286		return nil, &googleapi.Error{
47287			Code:   res.StatusCode,
47288			Header: res.Header,
47289		}
47290	}
47291	if err != nil {
47292		return nil, err
47293	}
47294	defer googleapi.CloseBody(res)
47295	if err := googleapi.CheckResponse(res); err != nil {
47296		return nil, err
47297	}
47298	ret := &AutoscalerAggregatedList{
47299		ServerResponse: googleapi.ServerResponse{
47300			Header:         res.Header,
47301			HTTPStatusCode: res.StatusCode,
47302		},
47303	}
47304	target := &ret
47305	if err := gensupport.DecodeResponse(target, res); err != nil {
47306		return nil, err
47307	}
47308	return ret, nil
47309	// {
47310	//   "description": "Retrieves an aggregated list of autoscalers.",
47311	//   "httpMethod": "GET",
47312	//   "id": "compute.autoscalers.aggregatedList",
47313	//   "parameterOrder": [
47314	//     "project"
47315	//   ],
47316	//   "parameters": {
47317	//     "filter": {
47318	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
47319	//       "location": "query",
47320	//       "type": "string"
47321	//     },
47322	//     "includeAllScopes": {
47323	//       "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.",
47324	//       "location": "query",
47325	//       "type": "boolean"
47326	//     },
47327	//     "maxResults": {
47328	//       "default": "500",
47329	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
47330	//       "format": "uint32",
47331	//       "location": "query",
47332	//       "minimum": "0",
47333	//       "type": "integer"
47334	//     },
47335	//     "orderBy": {
47336	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
47337	//       "location": "query",
47338	//       "type": "string"
47339	//     },
47340	//     "pageToken": {
47341	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
47342	//       "location": "query",
47343	//       "type": "string"
47344	//     },
47345	//     "project": {
47346	//       "description": "Project ID for this request.",
47347	//       "location": "path",
47348	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47349	//       "required": true,
47350	//       "type": "string"
47351	//     }
47352	//   },
47353	//   "path": "{project}/aggregated/autoscalers",
47354	//   "response": {
47355	//     "$ref": "AutoscalerAggregatedList"
47356	//   },
47357	//   "scopes": [
47358	//     "https://www.googleapis.com/auth/cloud-platform",
47359	//     "https://www.googleapis.com/auth/compute",
47360	//     "https://www.googleapis.com/auth/compute.readonly"
47361	//   ]
47362	// }
47363
47364}
47365
47366// Pages invokes f for each page of results.
47367// A non-nil error returned from f will halt the iteration.
47368// The provided context supersedes any context provided to the Context method.
47369func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
47370	c.ctx_ = ctx
47371	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
47372	for {
47373		x, err := c.Do()
47374		if err != nil {
47375			return err
47376		}
47377		if err := f(x); err != nil {
47378			return err
47379		}
47380		if x.NextPageToken == "" {
47381			return nil
47382		}
47383		c.PageToken(x.NextPageToken)
47384	}
47385}
47386
47387// method id "compute.autoscalers.delete":
47388
47389type AutoscalersDeleteCall struct {
47390	s          *Service
47391	project    string
47392	zone       string
47393	autoscaler string
47394	urlParams_ gensupport.URLParams
47395	ctx_       context.Context
47396	header_    http.Header
47397}
47398
47399// Delete: Deletes the specified autoscaler.
47400func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
47401	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47402	c.project = project
47403	c.zone = zone
47404	c.autoscaler = autoscaler
47405	return c
47406}
47407
47408// RequestId sets the optional parameter "requestId": An optional
47409// request ID to identify requests. Specify a unique request ID so that
47410// if you must retry your request, the server will know to ignore the
47411// request if it has already been completed.
47412//
47413// For example, consider a situation where you make an initial request
47414// and the request times out. If you make the request again with the
47415// same request ID, the server can check if original operation with the
47416// same request ID was received, and if so, will ignore the second
47417// request. This prevents clients from accidentally creating duplicate
47418// commitments.
47419//
47420// The request ID must be a valid UUID with the exception that zero UUID
47421// is not supported (00000000-0000-0000-0000-000000000000).
47422func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
47423	c.urlParams_.Set("requestId", requestId)
47424	return c
47425}
47426
47427// Fields allows partial responses to be retrieved. See
47428// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47429// for more information.
47430func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
47431	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47432	return c
47433}
47434
47435// Context sets the context to be used in this call's Do method. Any
47436// pending HTTP request will be aborted if the provided context is
47437// canceled.
47438func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
47439	c.ctx_ = ctx
47440	return c
47441}
47442
47443// Header returns an http.Header that can be modified by the caller to
47444// add HTTP headers to the request.
47445func (c *AutoscalersDeleteCall) Header() http.Header {
47446	if c.header_ == nil {
47447		c.header_ = make(http.Header)
47448	}
47449	return c.header_
47450}
47451
47452func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
47453	reqHeaders := make(http.Header)
47454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47455	for k, v := range c.header_ {
47456		reqHeaders[k] = v
47457	}
47458	reqHeaders.Set("User-Agent", c.s.userAgent())
47459	var body io.Reader = nil
47460	c.urlParams_.Set("alt", alt)
47461	c.urlParams_.Set("prettyPrint", "false")
47462	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
47463	urls += "?" + c.urlParams_.Encode()
47464	req, err := http.NewRequest("DELETE", urls, body)
47465	if err != nil {
47466		return nil, err
47467	}
47468	req.Header = reqHeaders
47469	googleapi.Expand(req.URL, map[string]string{
47470		"project":    c.project,
47471		"zone":       c.zone,
47472		"autoscaler": c.autoscaler,
47473	})
47474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47475}
47476
47477// Do executes the "compute.autoscalers.delete" call.
47478// Exactly one of *Operation or error will be non-nil. Any non-2xx
47479// status code is an error. Response headers are in either
47480// *Operation.ServerResponse.Header or (if a response was returned at
47481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47482// to check whether the returned error was because
47483// http.StatusNotModified was returned.
47484func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47485	gensupport.SetOptions(c.urlParams_, opts...)
47486	res, err := c.doRequest("json")
47487	if res != nil && res.StatusCode == http.StatusNotModified {
47488		if res.Body != nil {
47489			res.Body.Close()
47490		}
47491		return nil, &googleapi.Error{
47492			Code:   res.StatusCode,
47493			Header: res.Header,
47494		}
47495	}
47496	if err != nil {
47497		return nil, err
47498	}
47499	defer googleapi.CloseBody(res)
47500	if err := googleapi.CheckResponse(res); err != nil {
47501		return nil, err
47502	}
47503	ret := &Operation{
47504		ServerResponse: googleapi.ServerResponse{
47505			Header:         res.Header,
47506			HTTPStatusCode: res.StatusCode,
47507		},
47508	}
47509	target := &ret
47510	if err := gensupport.DecodeResponse(target, res); err != nil {
47511		return nil, err
47512	}
47513	return ret, nil
47514	// {
47515	//   "description": "Deletes the specified autoscaler.",
47516	//   "httpMethod": "DELETE",
47517	//   "id": "compute.autoscalers.delete",
47518	//   "parameterOrder": [
47519	//     "project",
47520	//     "zone",
47521	//     "autoscaler"
47522	//   ],
47523	//   "parameters": {
47524	//     "autoscaler": {
47525	//       "description": "Name of the autoscaler to delete.",
47526	//       "location": "path",
47527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47528	//       "required": true,
47529	//       "type": "string"
47530	//     },
47531	//     "project": {
47532	//       "description": "Project ID for this request.",
47533	//       "location": "path",
47534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47535	//       "required": true,
47536	//       "type": "string"
47537	//     },
47538	//     "requestId": {
47539	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47540	//       "location": "query",
47541	//       "type": "string"
47542	//     },
47543	//     "zone": {
47544	//       "description": "Name of the zone for this request.",
47545	//       "location": "path",
47546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47547	//       "required": true,
47548	//       "type": "string"
47549	//     }
47550	//   },
47551	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
47552	//   "response": {
47553	//     "$ref": "Operation"
47554	//   },
47555	//   "scopes": [
47556	//     "https://www.googleapis.com/auth/cloud-platform",
47557	//     "https://www.googleapis.com/auth/compute"
47558	//   ]
47559	// }
47560
47561}
47562
47563// method id "compute.autoscalers.get":
47564
47565type AutoscalersGetCall struct {
47566	s            *Service
47567	project      string
47568	zone         string
47569	autoscaler   string
47570	urlParams_   gensupport.URLParams
47571	ifNoneMatch_ string
47572	ctx_         context.Context
47573	header_      http.Header
47574}
47575
47576// Get: Returns the specified autoscaler resource. Gets a list of
47577// available autoscalers by making a list() request.
47578func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
47579	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47580	c.project = project
47581	c.zone = zone
47582	c.autoscaler = autoscaler
47583	return c
47584}
47585
47586// Fields allows partial responses to be retrieved. See
47587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47588// for more information.
47589func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
47590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47591	return c
47592}
47593
47594// IfNoneMatch sets the optional parameter which makes the operation
47595// fail if the object's ETag matches the given value. This is useful for
47596// getting updates only after the object has changed since the last
47597// request. Use googleapi.IsNotModified to check whether the response
47598// error from Do is the result of In-None-Match.
47599func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
47600	c.ifNoneMatch_ = entityTag
47601	return c
47602}
47603
47604// Context sets the context to be used in this call's Do method. Any
47605// pending HTTP request will be aborted if the provided context is
47606// canceled.
47607func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
47608	c.ctx_ = ctx
47609	return c
47610}
47611
47612// Header returns an http.Header that can be modified by the caller to
47613// add HTTP headers to the request.
47614func (c *AutoscalersGetCall) Header() http.Header {
47615	if c.header_ == nil {
47616		c.header_ = make(http.Header)
47617	}
47618	return c.header_
47619}
47620
47621func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
47622	reqHeaders := make(http.Header)
47623	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47624	for k, v := range c.header_ {
47625		reqHeaders[k] = v
47626	}
47627	reqHeaders.Set("User-Agent", c.s.userAgent())
47628	if c.ifNoneMatch_ != "" {
47629		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47630	}
47631	var body io.Reader = nil
47632	c.urlParams_.Set("alt", alt)
47633	c.urlParams_.Set("prettyPrint", "false")
47634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
47635	urls += "?" + c.urlParams_.Encode()
47636	req, err := http.NewRequest("GET", urls, body)
47637	if err != nil {
47638		return nil, err
47639	}
47640	req.Header = reqHeaders
47641	googleapi.Expand(req.URL, map[string]string{
47642		"project":    c.project,
47643		"zone":       c.zone,
47644		"autoscaler": c.autoscaler,
47645	})
47646	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47647}
47648
47649// Do executes the "compute.autoscalers.get" call.
47650// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
47651// status code is an error. Response headers are in either
47652// *Autoscaler.ServerResponse.Header or (if a response was returned at
47653// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47654// to check whether the returned error was because
47655// http.StatusNotModified was returned.
47656func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
47657	gensupport.SetOptions(c.urlParams_, opts...)
47658	res, err := c.doRequest("json")
47659	if res != nil && res.StatusCode == http.StatusNotModified {
47660		if res.Body != nil {
47661			res.Body.Close()
47662		}
47663		return nil, &googleapi.Error{
47664			Code:   res.StatusCode,
47665			Header: res.Header,
47666		}
47667	}
47668	if err != nil {
47669		return nil, err
47670	}
47671	defer googleapi.CloseBody(res)
47672	if err := googleapi.CheckResponse(res); err != nil {
47673		return nil, err
47674	}
47675	ret := &Autoscaler{
47676		ServerResponse: googleapi.ServerResponse{
47677			Header:         res.Header,
47678			HTTPStatusCode: res.StatusCode,
47679		},
47680	}
47681	target := &ret
47682	if err := gensupport.DecodeResponse(target, res); err != nil {
47683		return nil, err
47684	}
47685	return ret, nil
47686	// {
47687	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
47688	//   "httpMethod": "GET",
47689	//   "id": "compute.autoscalers.get",
47690	//   "parameterOrder": [
47691	//     "project",
47692	//     "zone",
47693	//     "autoscaler"
47694	//   ],
47695	//   "parameters": {
47696	//     "autoscaler": {
47697	//       "description": "Name of the autoscaler to return.",
47698	//       "location": "path",
47699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47700	//       "required": true,
47701	//       "type": "string"
47702	//     },
47703	//     "project": {
47704	//       "description": "Project ID for this request.",
47705	//       "location": "path",
47706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47707	//       "required": true,
47708	//       "type": "string"
47709	//     },
47710	//     "zone": {
47711	//       "description": "Name of the zone for this request.",
47712	//       "location": "path",
47713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47714	//       "required": true,
47715	//       "type": "string"
47716	//     }
47717	//   },
47718	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
47719	//   "response": {
47720	//     "$ref": "Autoscaler"
47721	//   },
47722	//   "scopes": [
47723	//     "https://www.googleapis.com/auth/cloud-platform",
47724	//     "https://www.googleapis.com/auth/compute",
47725	//     "https://www.googleapis.com/auth/compute.readonly"
47726	//   ]
47727	// }
47728
47729}
47730
47731// method id "compute.autoscalers.insert":
47732
47733type AutoscalersInsertCall struct {
47734	s          *Service
47735	project    string
47736	zone       string
47737	autoscaler *Autoscaler
47738	urlParams_ gensupport.URLParams
47739	ctx_       context.Context
47740	header_    http.Header
47741}
47742
47743// Insert: Creates an autoscaler in the specified project using the data
47744// included in the request.
47745func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
47746	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47747	c.project = project
47748	c.zone = zone
47749	c.autoscaler = autoscaler
47750	return c
47751}
47752
47753// RequestId sets the optional parameter "requestId": An optional
47754// request ID to identify requests. Specify a unique request ID so that
47755// if you must retry your request, the server will know to ignore the
47756// request if it has already been completed.
47757//
47758// For example, consider a situation where you make an initial request
47759// and the request times out. If you make the request again with the
47760// same request ID, the server can check if original operation with the
47761// same request ID was received, and if so, will ignore the second
47762// request. This prevents clients from accidentally creating duplicate
47763// commitments.
47764//
47765// The request ID must be a valid UUID with the exception that zero UUID
47766// is not supported (00000000-0000-0000-0000-000000000000).
47767func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
47768	c.urlParams_.Set("requestId", requestId)
47769	return c
47770}
47771
47772// Fields allows partial responses to be retrieved. See
47773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47774// for more information.
47775func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
47776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47777	return c
47778}
47779
47780// Context sets the context to be used in this call's Do method. Any
47781// pending HTTP request will be aborted if the provided context is
47782// canceled.
47783func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
47784	c.ctx_ = ctx
47785	return c
47786}
47787
47788// Header returns an http.Header that can be modified by the caller to
47789// add HTTP headers to the request.
47790func (c *AutoscalersInsertCall) Header() http.Header {
47791	if c.header_ == nil {
47792		c.header_ = make(http.Header)
47793	}
47794	return c.header_
47795}
47796
47797func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
47798	reqHeaders := make(http.Header)
47799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
47800	for k, v := range c.header_ {
47801		reqHeaders[k] = v
47802	}
47803	reqHeaders.Set("User-Agent", c.s.userAgent())
47804	var body io.Reader = nil
47805	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
47806	if err != nil {
47807		return nil, err
47808	}
47809	reqHeaders.Set("Content-Type", "application/json")
47810	c.urlParams_.Set("alt", alt)
47811	c.urlParams_.Set("prettyPrint", "false")
47812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
47813	urls += "?" + c.urlParams_.Encode()
47814	req, err := http.NewRequest("POST", urls, body)
47815	if err != nil {
47816		return nil, err
47817	}
47818	req.Header = reqHeaders
47819	googleapi.Expand(req.URL, map[string]string{
47820		"project": c.project,
47821		"zone":    c.zone,
47822	})
47823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47824}
47825
47826// Do executes the "compute.autoscalers.insert" call.
47827// Exactly one of *Operation or error will be non-nil. Any non-2xx
47828// status code is an error. Response headers are in either
47829// *Operation.ServerResponse.Header or (if a response was returned at
47830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47831// to check whether the returned error was because
47832// http.StatusNotModified was returned.
47833func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47834	gensupport.SetOptions(c.urlParams_, opts...)
47835	res, err := c.doRequest("json")
47836	if res != nil && res.StatusCode == http.StatusNotModified {
47837		if res.Body != nil {
47838			res.Body.Close()
47839		}
47840		return nil, &googleapi.Error{
47841			Code:   res.StatusCode,
47842			Header: res.Header,
47843		}
47844	}
47845	if err != nil {
47846		return nil, err
47847	}
47848	defer googleapi.CloseBody(res)
47849	if err := googleapi.CheckResponse(res); err != nil {
47850		return nil, err
47851	}
47852	ret := &Operation{
47853		ServerResponse: googleapi.ServerResponse{
47854			Header:         res.Header,
47855			HTTPStatusCode: res.StatusCode,
47856		},
47857	}
47858	target := &ret
47859	if err := gensupport.DecodeResponse(target, res); err != nil {
47860		return nil, err
47861	}
47862	return ret, nil
47863	// {
47864	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
47865	//   "httpMethod": "POST",
47866	//   "id": "compute.autoscalers.insert",
47867	//   "parameterOrder": [
47868	//     "project",
47869	//     "zone"
47870	//   ],
47871	//   "parameters": {
47872	//     "project": {
47873	//       "description": "Project ID for this request.",
47874	//       "location": "path",
47875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47876	//       "required": true,
47877	//       "type": "string"
47878	//     },
47879	//     "requestId": {
47880	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47881	//       "location": "query",
47882	//       "type": "string"
47883	//     },
47884	//     "zone": {
47885	//       "description": "Name of the zone for this request.",
47886	//       "location": "path",
47887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47888	//       "required": true,
47889	//       "type": "string"
47890	//     }
47891	//   },
47892	//   "path": "{project}/zones/{zone}/autoscalers",
47893	//   "request": {
47894	//     "$ref": "Autoscaler"
47895	//   },
47896	//   "response": {
47897	//     "$ref": "Operation"
47898	//   },
47899	//   "scopes": [
47900	//     "https://www.googleapis.com/auth/cloud-platform",
47901	//     "https://www.googleapis.com/auth/compute"
47902	//   ]
47903	// }
47904
47905}
47906
47907// method id "compute.autoscalers.list":
47908
47909type AutoscalersListCall struct {
47910	s            *Service
47911	project      string
47912	zone         string
47913	urlParams_   gensupport.URLParams
47914	ifNoneMatch_ string
47915	ctx_         context.Context
47916	header_      http.Header
47917}
47918
47919// List: Retrieves a list of autoscalers contained within the specified
47920// zone.
47921func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
47922	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47923	c.project = project
47924	c.zone = zone
47925	return c
47926}
47927
47928// Filter sets the optional parameter "filter": A filter expression that
47929// filters resources listed in the response. The expression must specify
47930// the field name, a comparison operator, and the value that you want to
47931// use for filtering. The value must be a string, a number, or a
47932// boolean. The comparison operator must be either `=`, `!=`, `>`, or
47933// `<`.
47934//
47935// For example, if you are filtering Compute Engine instances, you can
47936// exclude instances named `example-instance` by specifying `name !=
47937// example-instance`.
47938//
47939// You can also filter nested fields. For example, you could specify
47940// `scheduling.automaticRestart = false` to include instances only if
47941// they are not scheduled for automatic restarts. You can use filtering
47942// on nested fields to filter based on resource labels.
47943//
47944// To filter on multiple expressions, provide each separate expression
47945// within parentheses. For example: ``` (scheduling.automaticRestart =
47946// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
47947// is an `AND` expression. However, you can include `AND` and `OR`
47948// expressions explicitly. For example: ``` (cpuPlatform = "Intel
47949// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
47950// (scheduling.automaticRestart = true) ```
47951func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
47952	c.urlParams_.Set("filter", filter)
47953	return c
47954}
47955
47956// MaxResults sets the optional parameter "maxResults": The maximum
47957// number of results per page that should be returned. If the number of
47958// available results is larger than `maxResults`, Compute Engine returns
47959// a `nextPageToken` that can be used to get the next page of results in
47960// subsequent list requests. Acceptable values are `0` to `500`,
47961// inclusive. (Default: `500`)
47962func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
47963	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47964	return c
47965}
47966
47967// OrderBy sets the optional parameter "orderBy": Sorts list results by
47968// a certain order. By default, results are returned in alphanumerical
47969// order based on the resource name.
47970//
47971// You can also sort results in descending order based on the creation
47972// timestamp using `orderBy="creationTimestamp desc". This sorts
47973// results based on the `creationTimestamp` field in reverse
47974// chronological order (newest result first). Use this to sort resources
47975// like operations so that the newest operation is returned
47976// first.
47977//
47978// Currently, only sorting by `name` or `creationTimestamp desc` is
47979// supported.
47980func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
47981	c.urlParams_.Set("orderBy", orderBy)
47982	return c
47983}
47984
47985// PageToken sets the optional parameter "pageToken": Specifies a page
47986// token to use. Set `pageToken` to the `nextPageToken` returned by a
47987// previous list request to get the next page of results.
47988func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
47989	c.urlParams_.Set("pageToken", pageToken)
47990	return c
47991}
47992
47993// Fields allows partial responses to be retrieved. See
47994// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47995// for more information.
47996func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
47997	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47998	return c
47999}
48000
48001// IfNoneMatch sets the optional parameter which makes the operation
48002// fail if the object's ETag matches the given value. This is useful for
48003// getting updates only after the object has changed since the last
48004// request. Use googleapi.IsNotModified to check whether the response
48005// error from Do is the result of In-None-Match.
48006func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
48007	c.ifNoneMatch_ = entityTag
48008	return c
48009}
48010
48011// Context sets the context to be used in this call's Do method. Any
48012// pending HTTP request will be aborted if the provided context is
48013// canceled.
48014func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
48015	c.ctx_ = ctx
48016	return c
48017}
48018
48019// Header returns an http.Header that can be modified by the caller to
48020// add HTTP headers to the request.
48021func (c *AutoscalersListCall) Header() http.Header {
48022	if c.header_ == nil {
48023		c.header_ = make(http.Header)
48024	}
48025	return c.header_
48026}
48027
48028func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
48029	reqHeaders := make(http.Header)
48030	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48031	for k, v := range c.header_ {
48032		reqHeaders[k] = v
48033	}
48034	reqHeaders.Set("User-Agent", c.s.userAgent())
48035	if c.ifNoneMatch_ != "" {
48036		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48037	}
48038	var body io.Reader = nil
48039	c.urlParams_.Set("alt", alt)
48040	c.urlParams_.Set("prettyPrint", "false")
48041	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
48042	urls += "?" + c.urlParams_.Encode()
48043	req, err := http.NewRequest("GET", urls, body)
48044	if err != nil {
48045		return nil, err
48046	}
48047	req.Header = reqHeaders
48048	googleapi.Expand(req.URL, map[string]string{
48049		"project": c.project,
48050		"zone":    c.zone,
48051	})
48052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48053}
48054
48055// Do executes the "compute.autoscalers.list" call.
48056// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
48057// status code is an error. Response headers are in either
48058// *AutoscalerList.ServerResponse.Header or (if a response was returned
48059// at all) in error.(*googleapi.Error).Header. Use
48060// googleapi.IsNotModified to check whether the returned error was
48061// because http.StatusNotModified was returned.
48062func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
48063	gensupport.SetOptions(c.urlParams_, opts...)
48064	res, err := c.doRequest("json")
48065	if res != nil && res.StatusCode == http.StatusNotModified {
48066		if res.Body != nil {
48067			res.Body.Close()
48068		}
48069		return nil, &googleapi.Error{
48070			Code:   res.StatusCode,
48071			Header: res.Header,
48072		}
48073	}
48074	if err != nil {
48075		return nil, err
48076	}
48077	defer googleapi.CloseBody(res)
48078	if err := googleapi.CheckResponse(res); err != nil {
48079		return nil, err
48080	}
48081	ret := &AutoscalerList{
48082		ServerResponse: googleapi.ServerResponse{
48083			Header:         res.Header,
48084			HTTPStatusCode: res.StatusCode,
48085		},
48086	}
48087	target := &ret
48088	if err := gensupport.DecodeResponse(target, res); err != nil {
48089		return nil, err
48090	}
48091	return ret, nil
48092	// {
48093	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
48094	//   "httpMethod": "GET",
48095	//   "id": "compute.autoscalers.list",
48096	//   "parameterOrder": [
48097	//     "project",
48098	//     "zone"
48099	//   ],
48100	//   "parameters": {
48101	//     "filter": {
48102	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
48103	//       "location": "query",
48104	//       "type": "string"
48105	//     },
48106	//     "maxResults": {
48107	//       "default": "500",
48108	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
48109	//       "format": "uint32",
48110	//       "location": "query",
48111	//       "minimum": "0",
48112	//       "type": "integer"
48113	//     },
48114	//     "orderBy": {
48115	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
48116	//       "location": "query",
48117	//       "type": "string"
48118	//     },
48119	//     "pageToken": {
48120	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
48121	//       "location": "query",
48122	//       "type": "string"
48123	//     },
48124	//     "project": {
48125	//       "description": "Project ID for this request.",
48126	//       "location": "path",
48127	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48128	//       "required": true,
48129	//       "type": "string"
48130	//     },
48131	//     "zone": {
48132	//       "description": "Name of the zone for this request.",
48133	//       "location": "path",
48134	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48135	//       "required": true,
48136	//       "type": "string"
48137	//     }
48138	//   },
48139	//   "path": "{project}/zones/{zone}/autoscalers",
48140	//   "response": {
48141	//     "$ref": "AutoscalerList"
48142	//   },
48143	//   "scopes": [
48144	//     "https://www.googleapis.com/auth/cloud-platform",
48145	//     "https://www.googleapis.com/auth/compute",
48146	//     "https://www.googleapis.com/auth/compute.readonly"
48147	//   ]
48148	// }
48149
48150}
48151
48152// Pages invokes f for each page of results.
48153// A non-nil error returned from f will halt the iteration.
48154// The provided context supersedes any context provided to the Context method.
48155func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
48156	c.ctx_ = ctx
48157	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48158	for {
48159		x, err := c.Do()
48160		if err != nil {
48161			return err
48162		}
48163		if err := f(x); err != nil {
48164			return err
48165		}
48166		if x.NextPageToken == "" {
48167			return nil
48168		}
48169		c.PageToken(x.NextPageToken)
48170	}
48171}
48172
48173// method id "compute.autoscalers.patch":
48174
48175type AutoscalersPatchCall struct {
48176	s          *Service
48177	project    string
48178	zone       string
48179	autoscaler *Autoscaler
48180	urlParams_ gensupport.URLParams
48181	ctx_       context.Context
48182	header_    http.Header
48183}
48184
48185// Patch: Updates an autoscaler in the specified project using the data
48186// included in the request. This method supports PATCH semantics and
48187// uses the JSON merge patch format and processing rules.
48188func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
48189	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48190	c.project = project
48191	c.zone = zone
48192	c.autoscaler = autoscaler
48193	return c
48194}
48195
48196// Autoscaler sets the optional parameter "autoscaler": Name of the
48197// autoscaler to patch.
48198func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
48199	c.urlParams_.Set("autoscaler", autoscaler)
48200	return c
48201}
48202
48203// RequestId sets the optional parameter "requestId": An optional
48204// request ID to identify requests. Specify a unique request ID so that
48205// if you must retry your request, the server will know to ignore the
48206// request if it has already been completed.
48207//
48208// For example, consider a situation where you make an initial request
48209// and the request times out. If you make the request again with the
48210// same request ID, the server can check if original operation with the
48211// same request ID was received, and if so, will ignore the second
48212// request. This prevents clients from accidentally creating duplicate
48213// commitments.
48214//
48215// The request ID must be a valid UUID with the exception that zero UUID
48216// is not supported (00000000-0000-0000-0000-000000000000).
48217func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
48218	c.urlParams_.Set("requestId", requestId)
48219	return c
48220}
48221
48222// Fields allows partial responses to be retrieved. See
48223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48224// for more information.
48225func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
48226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48227	return c
48228}
48229
48230// Context sets the context to be used in this call's Do method. Any
48231// pending HTTP request will be aborted if the provided context is
48232// canceled.
48233func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
48234	c.ctx_ = ctx
48235	return c
48236}
48237
48238// Header returns an http.Header that can be modified by the caller to
48239// add HTTP headers to the request.
48240func (c *AutoscalersPatchCall) Header() http.Header {
48241	if c.header_ == nil {
48242		c.header_ = make(http.Header)
48243	}
48244	return c.header_
48245}
48246
48247func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
48248	reqHeaders := make(http.Header)
48249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48250	for k, v := range c.header_ {
48251		reqHeaders[k] = v
48252	}
48253	reqHeaders.Set("User-Agent", c.s.userAgent())
48254	var body io.Reader = nil
48255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
48256	if err != nil {
48257		return nil, err
48258	}
48259	reqHeaders.Set("Content-Type", "application/json")
48260	c.urlParams_.Set("alt", alt)
48261	c.urlParams_.Set("prettyPrint", "false")
48262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
48263	urls += "?" + c.urlParams_.Encode()
48264	req, err := http.NewRequest("PATCH", urls, body)
48265	if err != nil {
48266		return nil, err
48267	}
48268	req.Header = reqHeaders
48269	googleapi.Expand(req.URL, map[string]string{
48270		"project": c.project,
48271		"zone":    c.zone,
48272	})
48273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48274}
48275
48276// Do executes the "compute.autoscalers.patch" call.
48277// Exactly one of *Operation or error will be non-nil. Any non-2xx
48278// status code is an error. Response headers are in either
48279// *Operation.ServerResponse.Header or (if a response was returned at
48280// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48281// to check whether the returned error was because
48282// http.StatusNotModified was returned.
48283func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48284	gensupport.SetOptions(c.urlParams_, opts...)
48285	res, err := c.doRequest("json")
48286	if res != nil && res.StatusCode == http.StatusNotModified {
48287		if res.Body != nil {
48288			res.Body.Close()
48289		}
48290		return nil, &googleapi.Error{
48291			Code:   res.StatusCode,
48292			Header: res.Header,
48293		}
48294	}
48295	if err != nil {
48296		return nil, err
48297	}
48298	defer googleapi.CloseBody(res)
48299	if err := googleapi.CheckResponse(res); err != nil {
48300		return nil, err
48301	}
48302	ret := &Operation{
48303		ServerResponse: googleapi.ServerResponse{
48304			Header:         res.Header,
48305			HTTPStatusCode: res.StatusCode,
48306		},
48307	}
48308	target := &ret
48309	if err := gensupport.DecodeResponse(target, res); err != nil {
48310		return nil, err
48311	}
48312	return ret, nil
48313	// {
48314	//   "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.",
48315	//   "httpMethod": "PATCH",
48316	//   "id": "compute.autoscalers.patch",
48317	//   "parameterOrder": [
48318	//     "project",
48319	//     "zone"
48320	//   ],
48321	//   "parameters": {
48322	//     "autoscaler": {
48323	//       "description": "Name of the autoscaler to patch.",
48324	//       "location": "query",
48325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48326	//       "type": "string"
48327	//     },
48328	//     "project": {
48329	//       "description": "Project ID for this request.",
48330	//       "location": "path",
48331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48332	//       "required": true,
48333	//       "type": "string"
48334	//     },
48335	//     "requestId": {
48336	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48337	//       "location": "query",
48338	//       "type": "string"
48339	//     },
48340	//     "zone": {
48341	//       "description": "Name of the zone for this request.",
48342	//       "location": "path",
48343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48344	//       "required": true,
48345	//       "type": "string"
48346	//     }
48347	//   },
48348	//   "path": "{project}/zones/{zone}/autoscalers",
48349	//   "request": {
48350	//     "$ref": "Autoscaler"
48351	//   },
48352	//   "response": {
48353	//     "$ref": "Operation"
48354	//   },
48355	//   "scopes": [
48356	//     "https://www.googleapis.com/auth/cloud-platform",
48357	//     "https://www.googleapis.com/auth/compute"
48358	//   ]
48359	// }
48360
48361}
48362
48363// method id "compute.autoscalers.testIamPermissions":
48364
48365type AutoscalersTestIamPermissionsCall struct {
48366	s                      *Service
48367	project                string
48368	zone                   string
48369	resource               string
48370	testpermissionsrequest *TestPermissionsRequest
48371	urlParams_             gensupport.URLParams
48372	ctx_                   context.Context
48373	header_                http.Header
48374}
48375
48376// TestIamPermissions: Returns permissions that a caller has on the
48377// specified resource.
48378func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall {
48379	c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48380	c.project = project
48381	c.zone = zone
48382	c.resource = resource
48383	c.testpermissionsrequest = testpermissionsrequest
48384	return c
48385}
48386
48387// Fields allows partial responses to be retrieved. See
48388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48389// for more information.
48390func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall {
48391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48392	return c
48393}
48394
48395// Context sets the context to be used in this call's Do method. Any
48396// pending HTTP request will be aborted if the provided context is
48397// canceled.
48398func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall {
48399	c.ctx_ = ctx
48400	return c
48401}
48402
48403// Header returns an http.Header that can be modified by the caller to
48404// add HTTP headers to the request.
48405func (c *AutoscalersTestIamPermissionsCall) Header() http.Header {
48406	if c.header_ == nil {
48407		c.header_ = make(http.Header)
48408	}
48409	return c.header_
48410}
48411
48412func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
48413	reqHeaders := make(http.Header)
48414	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48415	for k, v := range c.header_ {
48416		reqHeaders[k] = v
48417	}
48418	reqHeaders.Set("User-Agent", c.s.userAgent())
48419	var body io.Reader = nil
48420	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
48421	if err != nil {
48422		return nil, err
48423	}
48424	reqHeaders.Set("Content-Type", "application/json")
48425	c.urlParams_.Set("alt", alt)
48426	c.urlParams_.Set("prettyPrint", "false")
48427	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions")
48428	urls += "?" + c.urlParams_.Encode()
48429	req, err := http.NewRequest("POST", urls, body)
48430	if err != nil {
48431		return nil, err
48432	}
48433	req.Header = reqHeaders
48434	googleapi.Expand(req.URL, map[string]string{
48435		"project":  c.project,
48436		"zone":     c.zone,
48437		"resource": c.resource,
48438	})
48439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48440}
48441
48442// Do executes the "compute.autoscalers.testIamPermissions" call.
48443// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
48444// non-2xx status code is an error. Response headers are in either
48445// *TestPermissionsResponse.ServerResponse.Header or (if a response was
48446// returned at all) in error.(*googleapi.Error).Header. Use
48447// googleapi.IsNotModified to check whether the returned error was
48448// because http.StatusNotModified was returned.
48449func (c *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
48450	gensupport.SetOptions(c.urlParams_, opts...)
48451	res, err := c.doRequest("json")
48452	if res != nil && res.StatusCode == http.StatusNotModified {
48453		if res.Body != nil {
48454			res.Body.Close()
48455		}
48456		return nil, &googleapi.Error{
48457			Code:   res.StatusCode,
48458			Header: res.Header,
48459		}
48460	}
48461	if err != nil {
48462		return nil, err
48463	}
48464	defer googleapi.CloseBody(res)
48465	if err := googleapi.CheckResponse(res); err != nil {
48466		return nil, err
48467	}
48468	ret := &TestPermissionsResponse{
48469		ServerResponse: googleapi.ServerResponse{
48470			Header:         res.Header,
48471			HTTPStatusCode: res.StatusCode,
48472		},
48473	}
48474	target := &ret
48475	if err := gensupport.DecodeResponse(target, res); err != nil {
48476		return nil, err
48477	}
48478	return ret, nil
48479	// {
48480	//   "description": "Returns permissions that a caller has on the specified resource.",
48481	//   "httpMethod": "POST",
48482	//   "id": "compute.autoscalers.testIamPermissions",
48483	//   "parameterOrder": [
48484	//     "project",
48485	//     "zone",
48486	//     "resource"
48487	//   ],
48488	//   "parameters": {
48489	//     "project": {
48490	//       "description": "Project ID for this request.",
48491	//       "location": "path",
48492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48493	//       "required": true,
48494	//       "type": "string"
48495	//     },
48496	//     "resource": {
48497	//       "description": "Name or id of the resource for this request.",
48498	//       "location": "path",
48499	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48500	//       "required": true,
48501	//       "type": "string"
48502	//     },
48503	//     "zone": {
48504	//       "description": "The name of the zone for this request.",
48505	//       "location": "path",
48506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48507	//       "required": true,
48508	//       "type": "string"
48509	//     }
48510	//   },
48511	//   "path": "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
48512	//   "request": {
48513	//     "$ref": "TestPermissionsRequest"
48514	//   },
48515	//   "response": {
48516	//     "$ref": "TestPermissionsResponse"
48517	//   },
48518	//   "scopes": [
48519	//     "https://www.googleapis.com/auth/cloud-platform",
48520	//     "https://www.googleapis.com/auth/compute",
48521	//     "https://www.googleapis.com/auth/compute.readonly"
48522	//   ]
48523	// }
48524
48525}
48526
48527// method id "compute.autoscalers.update":
48528
48529type AutoscalersUpdateCall struct {
48530	s          *Service
48531	project    string
48532	zone       string
48533	autoscaler *Autoscaler
48534	urlParams_ gensupport.URLParams
48535	ctx_       context.Context
48536	header_    http.Header
48537}
48538
48539// Update: Updates an autoscaler in the specified project using the data
48540// included in the request.
48541func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
48542	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48543	c.project = project
48544	c.zone = zone
48545	c.autoscaler = autoscaler
48546	return c
48547}
48548
48549// Autoscaler sets the optional parameter "autoscaler": Name of the
48550// autoscaler to update.
48551func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
48552	c.urlParams_.Set("autoscaler", autoscaler)
48553	return c
48554}
48555
48556// RequestId sets the optional parameter "requestId": An optional
48557// request ID to identify requests. Specify a unique request ID so that
48558// if you must retry your request, the server will know to ignore the
48559// request if it has already been completed.
48560//
48561// For example, consider a situation where you make an initial request
48562// and the request times out. If you make the request again with the
48563// same request ID, the server can check if original operation with the
48564// same request ID was received, and if so, will ignore the second
48565// request. This prevents clients from accidentally creating duplicate
48566// commitments.
48567//
48568// The request ID must be a valid UUID with the exception that zero UUID
48569// is not supported (00000000-0000-0000-0000-000000000000).
48570func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
48571	c.urlParams_.Set("requestId", requestId)
48572	return c
48573}
48574
48575// Fields allows partial responses to be retrieved. See
48576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48577// for more information.
48578func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
48579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48580	return c
48581}
48582
48583// Context sets the context to be used in this call's Do method. Any
48584// pending HTTP request will be aborted if the provided context is
48585// canceled.
48586func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
48587	c.ctx_ = ctx
48588	return c
48589}
48590
48591// Header returns an http.Header that can be modified by the caller to
48592// add HTTP headers to the request.
48593func (c *AutoscalersUpdateCall) Header() http.Header {
48594	if c.header_ == nil {
48595		c.header_ = make(http.Header)
48596	}
48597	return c.header_
48598}
48599
48600func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
48601	reqHeaders := make(http.Header)
48602	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48603	for k, v := range c.header_ {
48604		reqHeaders[k] = v
48605	}
48606	reqHeaders.Set("User-Agent", c.s.userAgent())
48607	var body io.Reader = nil
48608	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
48609	if err != nil {
48610		return nil, err
48611	}
48612	reqHeaders.Set("Content-Type", "application/json")
48613	c.urlParams_.Set("alt", alt)
48614	c.urlParams_.Set("prettyPrint", "false")
48615	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
48616	urls += "?" + c.urlParams_.Encode()
48617	req, err := http.NewRequest("PUT", urls, body)
48618	if err != nil {
48619		return nil, err
48620	}
48621	req.Header = reqHeaders
48622	googleapi.Expand(req.URL, map[string]string{
48623		"project": c.project,
48624		"zone":    c.zone,
48625	})
48626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48627}
48628
48629// Do executes the "compute.autoscalers.update" call.
48630// Exactly one of *Operation or error will be non-nil. Any non-2xx
48631// status code is an error. Response headers are in either
48632// *Operation.ServerResponse.Header or (if a response was returned at
48633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48634// to check whether the returned error was because
48635// http.StatusNotModified was returned.
48636func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48637	gensupport.SetOptions(c.urlParams_, opts...)
48638	res, err := c.doRequest("json")
48639	if res != nil && res.StatusCode == http.StatusNotModified {
48640		if res.Body != nil {
48641			res.Body.Close()
48642		}
48643		return nil, &googleapi.Error{
48644			Code:   res.StatusCode,
48645			Header: res.Header,
48646		}
48647	}
48648	if err != nil {
48649		return nil, err
48650	}
48651	defer googleapi.CloseBody(res)
48652	if err := googleapi.CheckResponse(res); err != nil {
48653		return nil, err
48654	}
48655	ret := &Operation{
48656		ServerResponse: googleapi.ServerResponse{
48657			Header:         res.Header,
48658			HTTPStatusCode: res.StatusCode,
48659		},
48660	}
48661	target := &ret
48662	if err := gensupport.DecodeResponse(target, res); err != nil {
48663		return nil, err
48664	}
48665	return ret, nil
48666	// {
48667	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
48668	//   "httpMethod": "PUT",
48669	//   "id": "compute.autoscalers.update",
48670	//   "parameterOrder": [
48671	//     "project",
48672	//     "zone"
48673	//   ],
48674	//   "parameters": {
48675	//     "autoscaler": {
48676	//       "description": "Name of the autoscaler to update.",
48677	//       "location": "query",
48678	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48679	//       "type": "string"
48680	//     },
48681	//     "project": {
48682	//       "description": "Project ID for this request.",
48683	//       "location": "path",
48684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48685	//       "required": true,
48686	//       "type": "string"
48687	//     },
48688	//     "requestId": {
48689	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48690	//       "location": "query",
48691	//       "type": "string"
48692	//     },
48693	//     "zone": {
48694	//       "description": "Name of the zone for this request.",
48695	//       "location": "path",
48696	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48697	//       "required": true,
48698	//       "type": "string"
48699	//     }
48700	//   },
48701	//   "path": "{project}/zones/{zone}/autoscalers",
48702	//   "request": {
48703	//     "$ref": "Autoscaler"
48704	//   },
48705	//   "response": {
48706	//     "$ref": "Operation"
48707	//   },
48708	//   "scopes": [
48709	//     "https://www.googleapis.com/auth/cloud-platform",
48710	//     "https://www.googleapis.com/auth/compute"
48711	//   ]
48712	// }
48713
48714}
48715
48716// method id "compute.backendBuckets.addSignedUrlKey":
48717
48718type BackendBucketsAddSignedUrlKeyCall struct {
48719	s             *Service
48720	project       string
48721	backendBucket string
48722	signedurlkey  *SignedUrlKey
48723	urlParams_    gensupport.URLParams
48724	ctx_          context.Context
48725	header_       http.Header
48726}
48727
48728// AddSignedUrlKey: Adds a key for validating requests with signed URLs
48729// for this backend bucket.
48730func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
48731	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48732	c.project = project
48733	c.backendBucket = backendBucket
48734	c.signedurlkey = signedurlkey
48735	return c
48736}
48737
48738// RequestId sets the optional parameter "requestId": An optional
48739// request ID to identify requests. Specify a unique request ID so that
48740// if you must retry your request, the server will know to ignore the
48741// request if it has already been completed.
48742//
48743// For example, consider a situation where you make an initial request
48744// and the request times out. If you make the request again with the
48745// same request ID, the server can check if original operation with the
48746// same request ID was received, and if so, will ignore the second
48747// request. This prevents clients from accidentally creating duplicate
48748// commitments.
48749//
48750// The request ID must be a valid UUID with the exception that zero UUID
48751// is not supported (00000000-0000-0000-0000-000000000000).
48752func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
48753	c.urlParams_.Set("requestId", requestId)
48754	return c
48755}
48756
48757// Fields allows partial responses to be retrieved. See
48758// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48759// for more information.
48760func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
48761	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48762	return c
48763}
48764
48765// Context sets the context to be used in this call's Do method. Any
48766// pending HTTP request will be aborted if the provided context is
48767// canceled.
48768func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
48769	c.ctx_ = ctx
48770	return c
48771}
48772
48773// Header returns an http.Header that can be modified by the caller to
48774// add HTTP headers to the request.
48775func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
48776	if c.header_ == nil {
48777		c.header_ = make(http.Header)
48778	}
48779	return c.header_
48780}
48781
48782func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
48783	reqHeaders := make(http.Header)
48784	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48785	for k, v := range c.header_ {
48786		reqHeaders[k] = v
48787	}
48788	reqHeaders.Set("User-Agent", c.s.userAgent())
48789	var body io.Reader = nil
48790	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
48791	if err != nil {
48792		return nil, err
48793	}
48794	reqHeaders.Set("Content-Type", "application/json")
48795	c.urlParams_.Set("alt", alt)
48796	c.urlParams_.Set("prettyPrint", "false")
48797	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
48798	urls += "?" + c.urlParams_.Encode()
48799	req, err := http.NewRequest("POST", urls, body)
48800	if err != nil {
48801		return nil, err
48802	}
48803	req.Header = reqHeaders
48804	googleapi.Expand(req.URL, map[string]string{
48805		"project":       c.project,
48806		"backendBucket": c.backendBucket,
48807	})
48808	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48809}
48810
48811// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
48812// Exactly one of *Operation or error will be non-nil. Any non-2xx
48813// status code is an error. Response headers are in either
48814// *Operation.ServerResponse.Header or (if a response was returned at
48815// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48816// to check whether the returned error was because
48817// http.StatusNotModified was returned.
48818func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48819	gensupport.SetOptions(c.urlParams_, opts...)
48820	res, err := c.doRequest("json")
48821	if res != nil && res.StatusCode == http.StatusNotModified {
48822		if res.Body != nil {
48823			res.Body.Close()
48824		}
48825		return nil, &googleapi.Error{
48826			Code:   res.StatusCode,
48827			Header: res.Header,
48828		}
48829	}
48830	if err != nil {
48831		return nil, err
48832	}
48833	defer googleapi.CloseBody(res)
48834	if err := googleapi.CheckResponse(res); err != nil {
48835		return nil, err
48836	}
48837	ret := &Operation{
48838		ServerResponse: googleapi.ServerResponse{
48839			Header:         res.Header,
48840			HTTPStatusCode: res.StatusCode,
48841		},
48842	}
48843	target := &ret
48844	if err := gensupport.DecodeResponse(target, res); err != nil {
48845		return nil, err
48846	}
48847	return ret, nil
48848	// {
48849	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
48850	//   "httpMethod": "POST",
48851	//   "id": "compute.backendBuckets.addSignedUrlKey",
48852	//   "parameterOrder": [
48853	//     "project",
48854	//     "backendBucket"
48855	//   ],
48856	//   "parameters": {
48857	//     "backendBucket": {
48858	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
48859	//       "location": "path",
48860	//       "required": true,
48861	//       "type": "string"
48862	//     },
48863	//     "project": {
48864	//       "description": "Project ID for this request.",
48865	//       "location": "path",
48866	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48867	//       "required": true,
48868	//       "type": "string"
48869	//     },
48870	//     "requestId": {
48871	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48872	//       "location": "query",
48873	//       "type": "string"
48874	//     }
48875	//   },
48876	//   "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
48877	//   "request": {
48878	//     "$ref": "SignedUrlKey"
48879	//   },
48880	//   "response": {
48881	//     "$ref": "Operation"
48882	//   },
48883	//   "scopes": [
48884	//     "https://www.googleapis.com/auth/cloud-platform",
48885	//     "https://www.googleapis.com/auth/compute"
48886	//   ]
48887	// }
48888
48889}
48890
48891// method id "compute.backendBuckets.delete":
48892
48893type BackendBucketsDeleteCall struct {
48894	s             *Service
48895	project       string
48896	backendBucket string
48897	urlParams_    gensupport.URLParams
48898	ctx_          context.Context
48899	header_       http.Header
48900}
48901
48902// Delete: Deletes the specified BackendBucket resource.
48903func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
48904	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48905	c.project = project
48906	c.backendBucket = backendBucket
48907	return c
48908}
48909
48910// RequestId sets the optional parameter "requestId": An optional
48911// request ID to identify requests. Specify a unique request ID so that
48912// if you must retry your request, the server will know to ignore the
48913// request if it has already been completed.
48914//
48915// For example, consider a situation where you make an initial request
48916// and the request times out. If you make the request again with the
48917// same request ID, the server can check if original operation with the
48918// same request ID was received, and if so, will ignore the second
48919// request. This prevents clients from accidentally creating duplicate
48920// commitments.
48921//
48922// The request ID must be a valid UUID with the exception that zero UUID
48923// is not supported (00000000-0000-0000-0000-000000000000).
48924func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
48925	c.urlParams_.Set("requestId", requestId)
48926	return c
48927}
48928
48929// Fields allows partial responses to be retrieved. See
48930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48931// for more information.
48932func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
48933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48934	return c
48935}
48936
48937// Context sets the context to be used in this call's Do method. Any
48938// pending HTTP request will be aborted if the provided context is
48939// canceled.
48940func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
48941	c.ctx_ = ctx
48942	return c
48943}
48944
48945// Header returns an http.Header that can be modified by the caller to
48946// add HTTP headers to the request.
48947func (c *BackendBucketsDeleteCall) Header() http.Header {
48948	if c.header_ == nil {
48949		c.header_ = make(http.Header)
48950	}
48951	return c.header_
48952}
48953
48954func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
48955	reqHeaders := make(http.Header)
48956	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
48957	for k, v := range c.header_ {
48958		reqHeaders[k] = v
48959	}
48960	reqHeaders.Set("User-Agent", c.s.userAgent())
48961	var body io.Reader = nil
48962	c.urlParams_.Set("alt", alt)
48963	c.urlParams_.Set("prettyPrint", "false")
48964	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
48965	urls += "?" + c.urlParams_.Encode()
48966	req, err := http.NewRequest("DELETE", urls, body)
48967	if err != nil {
48968		return nil, err
48969	}
48970	req.Header = reqHeaders
48971	googleapi.Expand(req.URL, map[string]string{
48972		"project":       c.project,
48973		"backendBucket": c.backendBucket,
48974	})
48975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48976}
48977
48978// Do executes the "compute.backendBuckets.delete" call.
48979// Exactly one of *Operation or error will be non-nil. Any non-2xx
48980// status code is an error. Response headers are in either
48981// *Operation.ServerResponse.Header or (if a response was returned at
48982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48983// to check whether the returned error was because
48984// http.StatusNotModified was returned.
48985func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48986	gensupport.SetOptions(c.urlParams_, opts...)
48987	res, err := c.doRequest("json")
48988	if res != nil && res.StatusCode == http.StatusNotModified {
48989		if res.Body != nil {
48990			res.Body.Close()
48991		}
48992		return nil, &googleapi.Error{
48993			Code:   res.StatusCode,
48994			Header: res.Header,
48995		}
48996	}
48997	if err != nil {
48998		return nil, err
48999	}
49000	defer googleapi.CloseBody(res)
49001	if err := googleapi.CheckResponse(res); err != nil {
49002		return nil, err
49003	}
49004	ret := &Operation{
49005		ServerResponse: googleapi.ServerResponse{
49006			Header:         res.Header,
49007			HTTPStatusCode: res.StatusCode,
49008		},
49009	}
49010	target := &ret
49011	if err := gensupport.DecodeResponse(target, res); err != nil {
49012		return nil, err
49013	}
49014	return ret, nil
49015	// {
49016	//   "description": "Deletes the specified BackendBucket resource.",
49017	//   "httpMethod": "DELETE",
49018	//   "id": "compute.backendBuckets.delete",
49019	//   "parameterOrder": [
49020	//     "project",
49021	//     "backendBucket"
49022	//   ],
49023	//   "parameters": {
49024	//     "backendBucket": {
49025	//       "description": "Name of the BackendBucket resource to delete.",
49026	//       "location": "path",
49027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49028	//       "required": true,
49029	//       "type": "string"
49030	//     },
49031	//     "project": {
49032	//       "description": "Project ID for this request.",
49033	//       "location": "path",
49034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49035	//       "required": true,
49036	//       "type": "string"
49037	//     },
49038	//     "requestId": {
49039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49040	//       "location": "query",
49041	//       "type": "string"
49042	//     }
49043	//   },
49044	//   "path": "{project}/global/backendBuckets/{backendBucket}",
49045	//   "response": {
49046	//     "$ref": "Operation"
49047	//   },
49048	//   "scopes": [
49049	//     "https://www.googleapis.com/auth/cloud-platform",
49050	//     "https://www.googleapis.com/auth/compute"
49051	//   ]
49052	// }
49053
49054}
49055
49056// method id "compute.backendBuckets.deleteSignedUrlKey":
49057
49058type BackendBucketsDeleteSignedUrlKeyCall struct {
49059	s             *Service
49060	project       string
49061	backendBucket string
49062	urlParams_    gensupport.URLParams
49063	ctx_          context.Context
49064	header_       http.Header
49065}
49066
49067// DeleteSignedUrlKey: Deletes a key for validating requests with signed
49068// URLs for this backend bucket.
49069func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
49070	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49071	c.project = project
49072	c.backendBucket = backendBucket
49073	c.urlParams_.Set("keyName", keyName)
49074	return c
49075}
49076
49077// RequestId sets the optional parameter "requestId": An optional
49078// request ID to identify requests. Specify a unique request ID so that
49079// if you must retry your request, the server will know to ignore the
49080// request if it has already been completed.
49081//
49082// For example, consider a situation where you make an initial request
49083// and the request times out. If you make the request again with the
49084// same request ID, the server can check if original operation with the
49085// same request ID was received, and if so, will ignore the second
49086// request. This prevents clients from accidentally creating duplicate
49087// commitments.
49088//
49089// The request ID must be a valid UUID with the exception that zero UUID
49090// is not supported (00000000-0000-0000-0000-000000000000).
49091func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
49092	c.urlParams_.Set("requestId", requestId)
49093	return c
49094}
49095
49096// Fields allows partial responses to be retrieved. See
49097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49098// for more information.
49099func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
49100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49101	return c
49102}
49103
49104// Context sets the context to be used in this call's Do method. Any
49105// pending HTTP request will be aborted if the provided context is
49106// canceled.
49107func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
49108	c.ctx_ = ctx
49109	return c
49110}
49111
49112// Header returns an http.Header that can be modified by the caller to
49113// add HTTP headers to the request.
49114func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
49115	if c.header_ == nil {
49116		c.header_ = make(http.Header)
49117	}
49118	return c.header_
49119}
49120
49121func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
49122	reqHeaders := make(http.Header)
49123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49124	for k, v := range c.header_ {
49125		reqHeaders[k] = v
49126	}
49127	reqHeaders.Set("User-Agent", c.s.userAgent())
49128	var body io.Reader = nil
49129	c.urlParams_.Set("alt", alt)
49130	c.urlParams_.Set("prettyPrint", "false")
49131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
49132	urls += "?" + c.urlParams_.Encode()
49133	req, err := http.NewRequest("POST", urls, body)
49134	if err != nil {
49135		return nil, err
49136	}
49137	req.Header = reqHeaders
49138	googleapi.Expand(req.URL, map[string]string{
49139		"project":       c.project,
49140		"backendBucket": c.backendBucket,
49141	})
49142	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49143}
49144
49145// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
49146// Exactly one of *Operation or error will be non-nil. Any non-2xx
49147// status code is an error. Response headers are in either
49148// *Operation.ServerResponse.Header or (if a response was returned at
49149// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49150// to check whether the returned error was because
49151// http.StatusNotModified was returned.
49152func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49153	gensupport.SetOptions(c.urlParams_, opts...)
49154	res, err := c.doRequest("json")
49155	if res != nil && res.StatusCode == http.StatusNotModified {
49156		if res.Body != nil {
49157			res.Body.Close()
49158		}
49159		return nil, &googleapi.Error{
49160			Code:   res.StatusCode,
49161			Header: res.Header,
49162		}
49163	}
49164	if err != nil {
49165		return nil, err
49166	}
49167	defer googleapi.CloseBody(res)
49168	if err := googleapi.CheckResponse(res); err != nil {
49169		return nil, err
49170	}
49171	ret := &Operation{
49172		ServerResponse: googleapi.ServerResponse{
49173			Header:         res.Header,
49174			HTTPStatusCode: res.StatusCode,
49175		},
49176	}
49177	target := &ret
49178	if err := gensupport.DecodeResponse(target, res); err != nil {
49179		return nil, err
49180	}
49181	return ret, nil
49182	// {
49183	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
49184	//   "httpMethod": "POST",
49185	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
49186	//   "parameterOrder": [
49187	//     "project",
49188	//     "backendBucket",
49189	//     "keyName"
49190	//   ],
49191	//   "parameters": {
49192	//     "backendBucket": {
49193	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
49194	//       "location": "path",
49195	//       "required": true,
49196	//       "type": "string"
49197	//     },
49198	//     "keyName": {
49199	//       "description": "The name of the Signed URL Key to delete.",
49200	//       "location": "query",
49201	//       "required": true,
49202	//       "type": "string"
49203	//     },
49204	//     "project": {
49205	//       "description": "Project ID for this request.",
49206	//       "location": "path",
49207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49208	//       "required": true,
49209	//       "type": "string"
49210	//     },
49211	//     "requestId": {
49212	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49213	//       "location": "query",
49214	//       "type": "string"
49215	//     }
49216	//   },
49217	//   "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
49218	//   "response": {
49219	//     "$ref": "Operation"
49220	//   },
49221	//   "scopes": [
49222	//     "https://www.googleapis.com/auth/cloud-platform",
49223	//     "https://www.googleapis.com/auth/compute"
49224	//   ]
49225	// }
49226
49227}
49228
49229// method id "compute.backendBuckets.get":
49230
49231type BackendBucketsGetCall struct {
49232	s             *Service
49233	project       string
49234	backendBucket string
49235	urlParams_    gensupport.URLParams
49236	ifNoneMatch_  string
49237	ctx_          context.Context
49238	header_       http.Header
49239}
49240
49241// Get: Returns the specified BackendBucket resource. Gets a list of
49242// available backend buckets by making a list() request.
49243func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
49244	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49245	c.project = project
49246	c.backendBucket = backendBucket
49247	return c
49248}
49249
49250// Fields allows partial responses to be retrieved. See
49251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49252// for more information.
49253func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
49254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49255	return c
49256}
49257
49258// IfNoneMatch sets the optional parameter which makes the operation
49259// fail if the object's ETag matches the given value. This is useful for
49260// getting updates only after the object has changed since the last
49261// request. Use googleapi.IsNotModified to check whether the response
49262// error from Do is the result of In-None-Match.
49263func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
49264	c.ifNoneMatch_ = entityTag
49265	return c
49266}
49267
49268// Context sets the context to be used in this call's Do method. Any
49269// pending HTTP request will be aborted if the provided context is
49270// canceled.
49271func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
49272	c.ctx_ = ctx
49273	return c
49274}
49275
49276// Header returns an http.Header that can be modified by the caller to
49277// add HTTP headers to the request.
49278func (c *BackendBucketsGetCall) Header() http.Header {
49279	if c.header_ == nil {
49280		c.header_ = make(http.Header)
49281	}
49282	return c.header_
49283}
49284
49285func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
49286	reqHeaders := make(http.Header)
49287	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49288	for k, v := range c.header_ {
49289		reqHeaders[k] = v
49290	}
49291	reqHeaders.Set("User-Agent", c.s.userAgent())
49292	if c.ifNoneMatch_ != "" {
49293		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49294	}
49295	var body io.Reader = nil
49296	c.urlParams_.Set("alt", alt)
49297	c.urlParams_.Set("prettyPrint", "false")
49298	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
49299	urls += "?" + c.urlParams_.Encode()
49300	req, err := http.NewRequest("GET", urls, body)
49301	if err != nil {
49302		return nil, err
49303	}
49304	req.Header = reqHeaders
49305	googleapi.Expand(req.URL, map[string]string{
49306		"project":       c.project,
49307		"backendBucket": c.backendBucket,
49308	})
49309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49310}
49311
49312// Do executes the "compute.backendBuckets.get" call.
49313// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
49314// status code is an error. Response headers are in either
49315// *BackendBucket.ServerResponse.Header or (if a response was returned
49316// at all) in error.(*googleapi.Error).Header. Use
49317// googleapi.IsNotModified to check whether the returned error was
49318// because http.StatusNotModified was returned.
49319func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
49320	gensupport.SetOptions(c.urlParams_, opts...)
49321	res, err := c.doRequest("json")
49322	if res != nil && res.StatusCode == http.StatusNotModified {
49323		if res.Body != nil {
49324			res.Body.Close()
49325		}
49326		return nil, &googleapi.Error{
49327			Code:   res.StatusCode,
49328			Header: res.Header,
49329		}
49330	}
49331	if err != nil {
49332		return nil, err
49333	}
49334	defer googleapi.CloseBody(res)
49335	if err := googleapi.CheckResponse(res); err != nil {
49336		return nil, err
49337	}
49338	ret := &BackendBucket{
49339		ServerResponse: googleapi.ServerResponse{
49340			Header:         res.Header,
49341			HTTPStatusCode: res.StatusCode,
49342		},
49343	}
49344	target := &ret
49345	if err := gensupport.DecodeResponse(target, res); err != nil {
49346		return nil, err
49347	}
49348	return ret, nil
49349	// {
49350	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
49351	//   "httpMethod": "GET",
49352	//   "id": "compute.backendBuckets.get",
49353	//   "parameterOrder": [
49354	//     "project",
49355	//     "backendBucket"
49356	//   ],
49357	//   "parameters": {
49358	//     "backendBucket": {
49359	//       "description": "Name of the BackendBucket resource to return.",
49360	//       "location": "path",
49361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49362	//       "required": true,
49363	//       "type": "string"
49364	//     },
49365	//     "project": {
49366	//       "description": "Project ID for this request.",
49367	//       "location": "path",
49368	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49369	//       "required": true,
49370	//       "type": "string"
49371	//     }
49372	//   },
49373	//   "path": "{project}/global/backendBuckets/{backendBucket}",
49374	//   "response": {
49375	//     "$ref": "BackendBucket"
49376	//   },
49377	//   "scopes": [
49378	//     "https://www.googleapis.com/auth/cloud-platform",
49379	//     "https://www.googleapis.com/auth/compute",
49380	//     "https://www.googleapis.com/auth/compute.readonly"
49381	//   ]
49382	// }
49383
49384}
49385
49386// method id "compute.backendBuckets.insert":
49387
49388type BackendBucketsInsertCall struct {
49389	s             *Service
49390	project       string
49391	backendbucket *BackendBucket
49392	urlParams_    gensupport.URLParams
49393	ctx_          context.Context
49394	header_       http.Header
49395}
49396
49397// Insert: Creates a BackendBucket resource in the specified project
49398// using the data included in the request.
49399func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
49400	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49401	c.project = project
49402	c.backendbucket = backendbucket
49403	return c
49404}
49405
49406// RequestId sets the optional parameter "requestId": An optional
49407// request ID to identify requests. Specify a unique request ID so that
49408// if you must retry your request, the server will know to ignore the
49409// request if it has already been completed.
49410//
49411// For example, consider a situation where you make an initial request
49412// and the request times out. If you make the request again with the
49413// same request ID, the server can check if original operation with the
49414// same request ID was received, and if so, will ignore the second
49415// request. This prevents clients from accidentally creating duplicate
49416// commitments.
49417//
49418// The request ID must be a valid UUID with the exception that zero UUID
49419// is not supported (00000000-0000-0000-0000-000000000000).
49420func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
49421	c.urlParams_.Set("requestId", requestId)
49422	return c
49423}
49424
49425// Fields allows partial responses to be retrieved. See
49426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49427// for more information.
49428func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
49429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49430	return c
49431}
49432
49433// Context sets the context to be used in this call's Do method. Any
49434// pending HTTP request will be aborted if the provided context is
49435// canceled.
49436func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
49437	c.ctx_ = ctx
49438	return c
49439}
49440
49441// Header returns an http.Header that can be modified by the caller to
49442// add HTTP headers to the request.
49443func (c *BackendBucketsInsertCall) Header() http.Header {
49444	if c.header_ == nil {
49445		c.header_ = make(http.Header)
49446	}
49447	return c.header_
49448}
49449
49450func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
49451	reqHeaders := make(http.Header)
49452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49453	for k, v := range c.header_ {
49454		reqHeaders[k] = v
49455	}
49456	reqHeaders.Set("User-Agent", c.s.userAgent())
49457	var body io.Reader = nil
49458	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
49459	if err != nil {
49460		return nil, err
49461	}
49462	reqHeaders.Set("Content-Type", "application/json")
49463	c.urlParams_.Set("alt", alt)
49464	c.urlParams_.Set("prettyPrint", "false")
49465	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
49466	urls += "?" + c.urlParams_.Encode()
49467	req, err := http.NewRequest("POST", urls, body)
49468	if err != nil {
49469		return nil, err
49470	}
49471	req.Header = reqHeaders
49472	googleapi.Expand(req.URL, map[string]string{
49473		"project": c.project,
49474	})
49475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49476}
49477
49478// Do executes the "compute.backendBuckets.insert" call.
49479// Exactly one of *Operation or error will be non-nil. Any non-2xx
49480// status code is an error. Response headers are in either
49481// *Operation.ServerResponse.Header or (if a response was returned at
49482// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49483// to check whether the returned error was because
49484// http.StatusNotModified was returned.
49485func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49486	gensupport.SetOptions(c.urlParams_, opts...)
49487	res, err := c.doRequest("json")
49488	if res != nil && res.StatusCode == http.StatusNotModified {
49489		if res.Body != nil {
49490			res.Body.Close()
49491		}
49492		return nil, &googleapi.Error{
49493			Code:   res.StatusCode,
49494			Header: res.Header,
49495		}
49496	}
49497	if err != nil {
49498		return nil, err
49499	}
49500	defer googleapi.CloseBody(res)
49501	if err := googleapi.CheckResponse(res); err != nil {
49502		return nil, err
49503	}
49504	ret := &Operation{
49505		ServerResponse: googleapi.ServerResponse{
49506			Header:         res.Header,
49507			HTTPStatusCode: res.StatusCode,
49508		},
49509	}
49510	target := &ret
49511	if err := gensupport.DecodeResponse(target, res); err != nil {
49512		return nil, err
49513	}
49514	return ret, nil
49515	// {
49516	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
49517	//   "httpMethod": "POST",
49518	//   "id": "compute.backendBuckets.insert",
49519	//   "parameterOrder": [
49520	//     "project"
49521	//   ],
49522	//   "parameters": {
49523	//     "project": {
49524	//       "description": "Project ID for this request.",
49525	//       "location": "path",
49526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49527	//       "required": true,
49528	//       "type": "string"
49529	//     },
49530	//     "requestId": {
49531	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49532	//       "location": "query",
49533	//       "type": "string"
49534	//     }
49535	//   },
49536	//   "path": "{project}/global/backendBuckets",
49537	//   "request": {
49538	//     "$ref": "BackendBucket"
49539	//   },
49540	//   "response": {
49541	//     "$ref": "Operation"
49542	//   },
49543	//   "scopes": [
49544	//     "https://www.googleapis.com/auth/cloud-platform",
49545	//     "https://www.googleapis.com/auth/compute"
49546	//   ]
49547	// }
49548
49549}
49550
49551// method id "compute.backendBuckets.list":
49552
49553type BackendBucketsListCall struct {
49554	s            *Service
49555	project      string
49556	urlParams_   gensupport.URLParams
49557	ifNoneMatch_ string
49558	ctx_         context.Context
49559	header_      http.Header
49560}
49561
49562// List: Retrieves the list of BackendBucket resources available to the
49563// specified project.
49564func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
49565	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49566	c.project = project
49567	return c
49568}
49569
49570// Filter sets the optional parameter "filter": A filter expression that
49571// filters resources listed in the response. The expression must specify
49572// the field name, a comparison operator, and the value that you want to
49573// use for filtering. The value must be a string, a number, or a
49574// boolean. The comparison operator must be either `=`, `!=`, `>`, or
49575// `<`.
49576//
49577// For example, if you are filtering Compute Engine instances, you can
49578// exclude instances named `example-instance` by specifying `name !=
49579// example-instance`.
49580//
49581// You can also filter nested fields. For example, you could specify
49582// `scheduling.automaticRestart = false` to include instances only if
49583// they are not scheduled for automatic restarts. You can use filtering
49584// on nested fields to filter based on resource labels.
49585//
49586// To filter on multiple expressions, provide each separate expression
49587// within parentheses. For example: ``` (scheduling.automaticRestart =
49588// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
49589// is an `AND` expression. However, you can include `AND` and `OR`
49590// expressions explicitly. For example: ``` (cpuPlatform = "Intel
49591// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
49592// (scheduling.automaticRestart = true) ```
49593func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
49594	c.urlParams_.Set("filter", filter)
49595	return c
49596}
49597
49598// MaxResults sets the optional parameter "maxResults": The maximum
49599// number of results per page that should be returned. If the number of
49600// available results is larger than `maxResults`, Compute Engine returns
49601// a `nextPageToken` that can be used to get the next page of results in
49602// subsequent list requests. Acceptable values are `0` to `500`,
49603// inclusive. (Default: `500`)
49604func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
49605	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49606	return c
49607}
49608
49609// OrderBy sets the optional parameter "orderBy": Sorts list results by
49610// a certain order. By default, results are returned in alphanumerical
49611// order based on the resource name.
49612//
49613// You can also sort results in descending order based on the creation
49614// timestamp using `orderBy="creationTimestamp desc". This sorts
49615// results based on the `creationTimestamp` field in reverse
49616// chronological order (newest result first). Use this to sort resources
49617// like operations so that the newest operation is returned
49618// first.
49619//
49620// Currently, only sorting by `name` or `creationTimestamp desc` is
49621// supported.
49622func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
49623	c.urlParams_.Set("orderBy", orderBy)
49624	return c
49625}
49626
49627// PageToken sets the optional parameter "pageToken": Specifies a page
49628// token to use. Set `pageToken` to the `nextPageToken` returned by a
49629// previous list request to get the next page of results.
49630func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
49631	c.urlParams_.Set("pageToken", pageToken)
49632	return c
49633}
49634
49635// Fields allows partial responses to be retrieved. See
49636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49637// for more information.
49638func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
49639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49640	return c
49641}
49642
49643// IfNoneMatch sets the optional parameter which makes the operation
49644// fail if the object's ETag matches the given value. This is useful for
49645// getting updates only after the object has changed since the last
49646// request. Use googleapi.IsNotModified to check whether the response
49647// error from Do is the result of In-None-Match.
49648func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
49649	c.ifNoneMatch_ = entityTag
49650	return c
49651}
49652
49653// Context sets the context to be used in this call's Do method. Any
49654// pending HTTP request will be aborted if the provided context is
49655// canceled.
49656func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
49657	c.ctx_ = ctx
49658	return c
49659}
49660
49661// Header returns an http.Header that can be modified by the caller to
49662// add HTTP headers to the request.
49663func (c *BackendBucketsListCall) Header() http.Header {
49664	if c.header_ == nil {
49665		c.header_ = make(http.Header)
49666	}
49667	return c.header_
49668}
49669
49670func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
49671	reqHeaders := make(http.Header)
49672	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49673	for k, v := range c.header_ {
49674		reqHeaders[k] = v
49675	}
49676	reqHeaders.Set("User-Agent", c.s.userAgent())
49677	if c.ifNoneMatch_ != "" {
49678		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49679	}
49680	var body io.Reader = nil
49681	c.urlParams_.Set("alt", alt)
49682	c.urlParams_.Set("prettyPrint", "false")
49683	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
49684	urls += "?" + c.urlParams_.Encode()
49685	req, err := http.NewRequest("GET", urls, body)
49686	if err != nil {
49687		return nil, err
49688	}
49689	req.Header = reqHeaders
49690	googleapi.Expand(req.URL, map[string]string{
49691		"project": c.project,
49692	})
49693	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49694}
49695
49696// Do executes the "compute.backendBuckets.list" call.
49697// Exactly one of *BackendBucketList or error will be non-nil. Any
49698// non-2xx status code is an error. Response headers are in either
49699// *BackendBucketList.ServerResponse.Header or (if a response was
49700// returned at all) in error.(*googleapi.Error).Header. Use
49701// googleapi.IsNotModified to check whether the returned error was
49702// because http.StatusNotModified was returned.
49703func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
49704	gensupport.SetOptions(c.urlParams_, opts...)
49705	res, err := c.doRequest("json")
49706	if res != nil && res.StatusCode == http.StatusNotModified {
49707		if res.Body != nil {
49708			res.Body.Close()
49709		}
49710		return nil, &googleapi.Error{
49711			Code:   res.StatusCode,
49712			Header: res.Header,
49713		}
49714	}
49715	if err != nil {
49716		return nil, err
49717	}
49718	defer googleapi.CloseBody(res)
49719	if err := googleapi.CheckResponse(res); err != nil {
49720		return nil, err
49721	}
49722	ret := &BackendBucketList{
49723		ServerResponse: googleapi.ServerResponse{
49724			Header:         res.Header,
49725			HTTPStatusCode: res.StatusCode,
49726		},
49727	}
49728	target := &ret
49729	if err := gensupport.DecodeResponse(target, res); err != nil {
49730		return nil, err
49731	}
49732	return ret, nil
49733	// {
49734	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
49735	//   "httpMethod": "GET",
49736	//   "id": "compute.backendBuckets.list",
49737	//   "parameterOrder": [
49738	//     "project"
49739	//   ],
49740	//   "parameters": {
49741	//     "filter": {
49742	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
49743	//       "location": "query",
49744	//       "type": "string"
49745	//     },
49746	//     "maxResults": {
49747	//       "default": "500",
49748	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
49749	//       "format": "uint32",
49750	//       "location": "query",
49751	//       "minimum": "0",
49752	//       "type": "integer"
49753	//     },
49754	//     "orderBy": {
49755	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
49756	//       "location": "query",
49757	//       "type": "string"
49758	//     },
49759	//     "pageToken": {
49760	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
49761	//       "location": "query",
49762	//       "type": "string"
49763	//     },
49764	//     "project": {
49765	//       "description": "Project ID for this request.",
49766	//       "location": "path",
49767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49768	//       "required": true,
49769	//       "type": "string"
49770	//     }
49771	//   },
49772	//   "path": "{project}/global/backendBuckets",
49773	//   "response": {
49774	//     "$ref": "BackendBucketList"
49775	//   },
49776	//   "scopes": [
49777	//     "https://www.googleapis.com/auth/cloud-platform",
49778	//     "https://www.googleapis.com/auth/compute",
49779	//     "https://www.googleapis.com/auth/compute.readonly"
49780	//   ]
49781	// }
49782
49783}
49784
49785// Pages invokes f for each page of results.
49786// A non-nil error returned from f will halt the iteration.
49787// The provided context supersedes any context provided to the Context method.
49788func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
49789	c.ctx_ = ctx
49790	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49791	for {
49792		x, err := c.Do()
49793		if err != nil {
49794			return err
49795		}
49796		if err := f(x); err != nil {
49797			return err
49798		}
49799		if x.NextPageToken == "" {
49800			return nil
49801		}
49802		c.PageToken(x.NextPageToken)
49803	}
49804}
49805
49806// method id "compute.backendBuckets.patch":
49807
49808type BackendBucketsPatchCall struct {
49809	s             *Service
49810	project       string
49811	backendBucket string
49812	backendbucket *BackendBucket
49813	urlParams_    gensupport.URLParams
49814	ctx_          context.Context
49815	header_       http.Header
49816}
49817
49818// Patch: Updates the specified BackendBucket resource with the data
49819// included in the request. This method supports PATCH semantics and
49820// uses the JSON merge patch format and processing rules.
49821func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
49822	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49823	c.project = project
49824	c.backendBucket = backendBucket
49825	c.backendbucket = backendbucket
49826	return c
49827}
49828
49829// RequestId sets the optional parameter "requestId": An optional
49830// request ID to identify requests. Specify a unique request ID so that
49831// if you must retry your request, the server will know to ignore the
49832// request if it has already been completed.
49833//
49834// For example, consider a situation where you make an initial request
49835// and the request times out. If you make the request again with the
49836// same request ID, the server can check if original operation with the
49837// same request ID was received, and if so, will ignore the second
49838// request. This prevents clients from accidentally creating duplicate
49839// commitments.
49840//
49841// The request ID must be a valid UUID with the exception that zero UUID
49842// is not supported (00000000-0000-0000-0000-000000000000).
49843func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
49844	c.urlParams_.Set("requestId", requestId)
49845	return c
49846}
49847
49848// Fields allows partial responses to be retrieved. See
49849// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49850// for more information.
49851func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
49852	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49853	return c
49854}
49855
49856// Context sets the context to be used in this call's Do method. Any
49857// pending HTTP request will be aborted if the provided context is
49858// canceled.
49859func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
49860	c.ctx_ = ctx
49861	return c
49862}
49863
49864// Header returns an http.Header that can be modified by the caller to
49865// add HTTP headers to the request.
49866func (c *BackendBucketsPatchCall) Header() http.Header {
49867	if c.header_ == nil {
49868		c.header_ = make(http.Header)
49869	}
49870	return c.header_
49871}
49872
49873func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
49874	reqHeaders := make(http.Header)
49875	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
49876	for k, v := range c.header_ {
49877		reqHeaders[k] = v
49878	}
49879	reqHeaders.Set("User-Agent", c.s.userAgent())
49880	var body io.Reader = nil
49881	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
49882	if err != nil {
49883		return nil, err
49884	}
49885	reqHeaders.Set("Content-Type", "application/json")
49886	c.urlParams_.Set("alt", alt)
49887	c.urlParams_.Set("prettyPrint", "false")
49888	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
49889	urls += "?" + c.urlParams_.Encode()
49890	req, err := http.NewRequest("PATCH", urls, body)
49891	if err != nil {
49892		return nil, err
49893	}
49894	req.Header = reqHeaders
49895	googleapi.Expand(req.URL, map[string]string{
49896		"project":       c.project,
49897		"backendBucket": c.backendBucket,
49898	})
49899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49900}
49901
49902// Do executes the "compute.backendBuckets.patch" call.
49903// Exactly one of *Operation or error will be non-nil. Any non-2xx
49904// status code is an error. Response headers are in either
49905// *Operation.ServerResponse.Header or (if a response was returned at
49906// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49907// to check whether the returned error was because
49908// http.StatusNotModified was returned.
49909func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49910	gensupport.SetOptions(c.urlParams_, opts...)
49911	res, err := c.doRequest("json")
49912	if res != nil && res.StatusCode == http.StatusNotModified {
49913		if res.Body != nil {
49914			res.Body.Close()
49915		}
49916		return nil, &googleapi.Error{
49917			Code:   res.StatusCode,
49918			Header: res.Header,
49919		}
49920	}
49921	if err != nil {
49922		return nil, err
49923	}
49924	defer googleapi.CloseBody(res)
49925	if err := googleapi.CheckResponse(res); err != nil {
49926		return nil, err
49927	}
49928	ret := &Operation{
49929		ServerResponse: googleapi.ServerResponse{
49930			Header:         res.Header,
49931			HTTPStatusCode: res.StatusCode,
49932		},
49933	}
49934	target := &ret
49935	if err := gensupport.DecodeResponse(target, res); err != nil {
49936		return nil, err
49937	}
49938	return ret, nil
49939	// {
49940	//   "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.",
49941	//   "httpMethod": "PATCH",
49942	//   "id": "compute.backendBuckets.patch",
49943	//   "parameterOrder": [
49944	//     "project",
49945	//     "backendBucket"
49946	//   ],
49947	//   "parameters": {
49948	//     "backendBucket": {
49949	//       "description": "Name of the BackendBucket resource to patch.",
49950	//       "location": "path",
49951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49952	//       "required": true,
49953	//       "type": "string"
49954	//     },
49955	//     "project": {
49956	//       "description": "Project ID for this request.",
49957	//       "location": "path",
49958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49959	//       "required": true,
49960	//       "type": "string"
49961	//     },
49962	//     "requestId": {
49963	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49964	//       "location": "query",
49965	//       "type": "string"
49966	//     }
49967	//   },
49968	//   "path": "{project}/global/backendBuckets/{backendBucket}",
49969	//   "request": {
49970	//     "$ref": "BackendBucket"
49971	//   },
49972	//   "response": {
49973	//     "$ref": "Operation"
49974	//   },
49975	//   "scopes": [
49976	//     "https://www.googleapis.com/auth/cloud-platform",
49977	//     "https://www.googleapis.com/auth/compute"
49978	//   ]
49979	// }
49980
49981}
49982
49983// method id "compute.backendBuckets.update":
49984
49985type BackendBucketsUpdateCall struct {
49986	s             *Service
49987	project       string
49988	backendBucket string
49989	backendbucket *BackendBucket
49990	urlParams_    gensupport.URLParams
49991	ctx_          context.Context
49992	header_       http.Header
49993}
49994
49995// Update: Updates the specified BackendBucket resource with the data
49996// included in the request.
49997func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
49998	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49999	c.project = project
50000	c.backendBucket = backendBucket
50001	c.backendbucket = backendbucket
50002	return c
50003}
50004
50005// RequestId sets the optional parameter "requestId": An optional
50006// request ID to identify requests. Specify a unique request ID so that
50007// if you must retry your request, the server will know to ignore the
50008// request if it has already been completed.
50009//
50010// For example, consider a situation where you make an initial request
50011// and the request times out. If you make the request again with the
50012// same request ID, the server can check if original operation with the
50013// same request ID was received, and if so, will ignore the second
50014// request. This prevents clients from accidentally creating duplicate
50015// commitments.
50016//
50017// The request ID must be a valid UUID with the exception that zero UUID
50018// is not supported (00000000-0000-0000-0000-000000000000).
50019func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
50020	c.urlParams_.Set("requestId", requestId)
50021	return c
50022}
50023
50024// Fields allows partial responses to be retrieved. See
50025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50026// for more information.
50027func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
50028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50029	return c
50030}
50031
50032// Context sets the context to be used in this call's Do method. Any
50033// pending HTTP request will be aborted if the provided context is
50034// canceled.
50035func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
50036	c.ctx_ = ctx
50037	return c
50038}
50039
50040// Header returns an http.Header that can be modified by the caller to
50041// add HTTP headers to the request.
50042func (c *BackendBucketsUpdateCall) Header() http.Header {
50043	if c.header_ == nil {
50044		c.header_ = make(http.Header)
50045	}
50046	return c.header_
50047}
50048
50049func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
50050	reqHeaders := make(http.Header)
50051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50052	for k, v := range c.header_ {
50053		reqHeaders[k] = v
50054	}
50055	reqHeaders.Set("User-Agent", c.s.userAgent())
50056	var body io.Reader = nil
50057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
50058	if err != nil {
50059		return nil, err
50060	}
50061	reqHeaders.Set("Content-Type", "application/json")
50062	c.urlParams_.Set("alt", alt)
50063	c.urlParams_.Set("prettyPrint", "false")
50064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
50065	urls += "?" + c.urlParams_.Encode()
50066	req, err := http.NewRequest("PUT", urls, body)
50067	if err != nil {
50068		return nil, err
50069	}
50070	req.Header = reqHeaders
50071	googleapi.Expand(req.URL, map[string]string{
50072		"project":       c.project,
50073		"backendBucket": c.backendBucket,
50074	})
50075	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50076}
50077
50078// Do executes the "compute.backendBuckets.update" call.
50079// Exactly one of *Operation or error will be non-nil. Any non-2xx
50080// status code is an error. Response headers are in either
50081// *Operation.ServerResponse.Header or (if a response was returned at
50082// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50083// to check whether the returned error was because
50084// http.StatusNotModified was returned.
50085func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50086	gensupport.SetOptions(c.urlParams_, opts...)
50087	res, err := c.doRequest("json")
50088	if res != nil && res.StatusCode == http.StatusNotModified {
50089		if res.Body != nil {
50090			res.Body.Close()
50091		}
50092		return nil, &googleapi.Error{
50093			Code:   res.StatusCode,
50094			Header: res.Header,
50095		}
50096	}
50097	if err != nil {
50098		return nil, err
50099	}
50100	defer googleapi.CloseBody(res)
50101	if err := googleapi.CheckResponse(res); err != nil {
50102		return nil, err
50103	}
50104	ret := &Operation{
50105		ServerResponse: googleapi.ServerResponse{
50106			Header:         res.Header,
50107			HTTPStatusCode: res.StatusCode,
50108		},
50109	}
50110	target := &ret
50111	if err := gensupport.DecodeResponse(target, res); err != nil {
50112		return nil, err
50113	}
50114	return ret, nil
50115	// {
50116	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
50117	//   "httpMethod": "PUT",
50118	//   "id": "compute.backendBuckets.update",
50119	//   "parameterOrder": [
50120	//     "project",
50121	//     "backendBucket"
50122	//   ],
50123	//   "parameters": {
50124	//     "backendBucket": {
50125	//       "description": "Name of the BackendBucket resource to update.",
50126	//       "location": "path",
50127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50128	//       "required": true,
50129	//       "type": "string"
50130	//     },
50131	//     "project": {
50132	//       "description": "Project ID for this request.",
50133	//       "location": "path",
50134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50135	//       "required": true,
50136	//       "type": "string"
50137	//     },
50138	//     "requestId": {
50139	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50140	//       "location": "query",
50141	//       "type": "string"
50142	//     }
50143	//   },
50144	//   "path": "{project}/global/backendBuckets/{backendBucket}",
50145	//   "request": {
50146	//     "$ref": "BackendBucket"
50147	//   },
50148	//   "response": {
50149	//     "$ref": "Operation"
50150	//   },
50151	//   "scopes": [
50152	//     "https://www.googleapis.com/auth/cloud-platform",
50153	//     "https://www.googleapis.com/auth/compute"
50154	//   ]
50155	// }
50156
50157}
50158
50159// method id "compute.backendServices.addSignedUrlKey":
50160
50161type BackendServicesAddSignedUrlKeyCall struct {
50162	s              *Service
50163	project        string
50164	backendService string
50165	signedurlkey   *SignedUrlKey
50166	urlParams_     gensupport.URLParams
50167	ctx_           context.Context
50168	header_        http.Header
50169}
50170
50171// AddSignedUrlKey: Adds a key for validating requests with signed URLs
50172// for this backend service.
50173func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
50174	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50175	c.project = project
50176	c.backendService = backendService
50177	c.signedurlkey = signedurlkey
50178	return c
50179}
50180
50181// RequestId sets the optional parameter "requestId": An optional
50182// request ID to identify requests. Specify a unique request ID so that
50183// if you must retry your request, the server will know to ignore the
50184// request if it has already been completed.
50185//
50186// For example, consider a situation where you make an initial request
50187// and the request times out. If you make the request again with the
50188// same request ID, the server can check if original operation with the
50189// same request ID was received, and if so, will ignore the second
50190// request. This prevents clients from accidentally creating duplicate
50191// commitments.
50192//
50193// The request ID must be a valid UUID with the exception that zero UUID
50194// is not supported (00000000-0000-0000-0000-000000000000).
50195func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
50196	c.urlParams_.Set("requestId", requestId)
50197	return c
50198}
50199
50200// Fields allows partial responses to be retrieved. See
50201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50202// for more information.
50203func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
50204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50205	return c
50206}
50207
50208// Context sets the context to be used in this call's Do method. Any
50209// pending HTTP request will be aborted if the provided context is
50210// canceled.
50211func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
50212	c.ctx_ = ctx
50213	return c
50214}
50215
50216// Header returns an http.Header that can be modified by the caller to
50217// add HTTP headers to the request.
50218func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
50219	if c.header_ == nil {
50220		c.header_ = make(http.Header)
50221	}
50222	return c.header_
50223}
50224
50225func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
50226	reqHeaders := make(http.Header)
50227	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50228	for k, v := range c.header_ {
50229		reqHeaders[k] = v
50230	}
50231	reqHeaders.Set("User-Agent", c.s.userAgent())
50232	var body io.Reader = nil
50233	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
50234	if err != nil {
50235		return nil, err
50236	}
50237	reqHeaders.Set("Content-Type", "application/json")
50238	c.urlParams_.Set("alt", alt)
50239	c.urlParams_.Set("prettyPrint", "false")
50240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
50241	urls += "?" + c.urlParams_.Encode()
50242	req, err := http.NewRequest("POST", urls, body)
50243	if err != nil {
50244		return nil, err
50245	}
50246	req.Header = reqHeaders
50247	googleapi.Expand(req.URL, map[string]string{
50248		"project":        c.project,
50249		"backendService": c.backendService,
50250	})
50251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50252}
50253
50254// Do executes the "compute.backendServices.addSignedUrlKey" call.
50255// Exactly one of *Operation or error will be non-nil. Any non-2xx
50256// status code is an error. Response headers are in either
50257// *Operation.ServerResponse.Header or (if a response was returned at
50258// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50259// to check whether the returned error was because
50260// http.StatusNotModified was returned.
50261func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50262	gensupport.SetOptions(c.urlParams_, opts...)
50263	res, err := c.doRequest("json")
50264	if res != nil && res.StatusCode == http.StatusNotModified {
50265		if res.Body != nil {
50266			res.Body.Close()
50267		}
50268		return nil, &googleapi.Error{
50269			Code:   res.StatusCode,
50270			Header: res.Header,
50271		}
50272	}
50273	if err != nil {
50274		return nil, err
50275	}
50276	defer googleapi.CloseBody(res)
50277	if err := googleapi.CheckResponse(res); err != nil {
50278		return nil, err
50279	}
50280	ret := &Operation{
50281		ServerResponse: googleapi.ServerResponse{
50282			Header:         res.Header,
50283			HTTPStatusCode: res.StatusCode,
50284		},
50285	}
50286	target := &ret
50287	if err := gensupport.DecodeResponse(target, res); err != nil {
50288		return nil, err
50289	}
50290	return ret, nil
50291	// {
50292	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
50293	//   "httpMethod": "POST",
50294	//   "id": "compute.backendServices.addSignedUrlKey",
50295	//   "parameterOrder": [
50296	//     "project",
50297	//     "backendService"
50298	//   ],
50299	//   "parameters": {
50300	//     "backendService": {
50301	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
50302	//       "location": "path",
50303	//       "required": true,
50304	//       "type": "string"
50305	//     },
50306	//     "project": {
50307	//       "description": "Project ID for this request.",
50308	//       "location": "path",
50309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50310	//       "required": true,
50311	//       "type": "string"
50312	//     },
50313	//     "requestId": {
50314	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50315	//       "location": "query",
50316	//       "type": "string"
50317	//     }
50318	//   },
50319	//   "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
50320	//   "request": {
50321	//     "$ref": "SignedUrlKey"
50322	//   },
50323	//   "response": {
50324	//     "$ref": "Operation"
50325	//   },
50326	//   "scopes": [
50327	//     "https://www.googleapis.com/auth/cloud-platform",
50328	//     "https://www.googleapis.com/auth/compute"
50329	//   ]
50330	// }
50331
50332}
50333
50334// method id "compute.backendServices.aggregatedList":
50335
50336type BackendServicesAggregatedListCall struct {
50337	s            *Service
50338	project      string
50339	urlParams_   gensupport.URLParams
50340	ifNoneMatch_ string
50341	ctx_         context.Context
50342	header_      http.Header
50343}
50344
50345// AggregatedList: Retrieves the list of all BackendService resources,
50346// regional and global, available to the specified project.
50347func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
50348	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50349	c.project = project
50350	return c
50351}
50352
50353// Filter sets the optional parameter "filter": A filter expression that
50354// filters resources listed in the response. The expression must specify
50355// the field name, a comparison operator, and the value that you want to
50356// use for filtering. The value must be a string, a number, or a
50357// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50358// `<`.
50359//
50360// For example, if you are filtering Compute Engine instances, you can
50361// exclude instances named `example-instance` by specifying `name !=
50362// example-instance`.
50363//
50364// You can also filter nested fields. For example, you could specify
50365// `scheduling.automaticRestart = false` to include instances only if
50366// they are not scheduled for automatic restarts. You can use filtering
50367// on nested fields to filter based on resource labels.
50368//
50369// To filter on multiple expressions, provide each separate expression
50370// within parentheses. For example: ``` (scheduling.automaticRestart =
50371// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50372// is an `AND` expression. However, you can include `AND` and `OR`
50373// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50374// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50375// (scheduling.automaticRestart = true) ```
50376func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
50377	c.urlParams_.Set("filter", filter)
50378	return c
50379}
50380
50381// IncludeAllScopes sets the optional parameter "includeAllScopes":
50382// Indicates whether every visible scope for each scope type (zone,
50383// region, global) should be included in the response. For new resource
50384// types added after this field, the flag has no effect as new resource
50385// types will always include every visible scope for each scope type in
50386// response. For resource types which predate this field, if this flag
50387// is omitted or false, only scopes of the scope types where the
50388// resource type is expected to be found will be included.
50389func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
50390	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
50391	return c
50392}
50393
50394// MaxResults sets the optional parameter "maxResults": The maximum
50395// number of results per page that should be returned. If the number of
50396// available results is larger than `maxResults`, Compute Engine returns
50397// a `nextPageToken` that can be used to get the next page of results in
50398// subsequent list requests. Acceptable values are `0` to `500`,
50399// inclusive. (Default: `500`)
50400func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
50401	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50402	return c
50403}
50404
50405// OrderBy sets the optional parameter "orderBy": Sorts list results by
50406// a certain order. By default, results are returned in alphanumerical
50407// order based on the resource name.
50408//
50409// You can also sort results in descending order based on the creation
50410// timestamp using `orderBy="creationTimestamp desc". This sorts
50411// results based on the `creationTimestamp` field in reverse
50412// chronological order (newest result first). Use this to sort resources
50413// like operations so that the newest operation is returned
50414// first.
50415//
50416// Currently, only sorting by `name` or `creationTimestamp desc` is
50417// supported.
50418func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
50419	c.urlParams_.Set("orderBy", orderBy)
50420	return c
50421}
50422
50423// PageToken sets the optional parameter "pageToken": Specifies a page
50424// token to use. Set `pageToken` to the `nextPageToken` returned by a
50425// previous list request to get the next page of results.
50426func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
50427	c.urlParams_.Set("pageToken", pageToken)
50428	return c
50429}
50430
50431// Fields allows partial responses to be retrieved. See
50432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50433// for more information.
50434func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
50435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50436	return c
50437}
50438
50439// IfNoneMatch sets the optional parameter which makes the operation
50440// fail if the object's ETag matches the given value. This is useful for
50441// getting updates only after the object has changed since the last
50442// request. Use googleapi.IsNotModified to check whether the response
50443// error from Do is the result of In-None-Match.
50444func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
50445	c.ifNoneMatch_ = entityTag
50446	return c
50447}
50448
50449// Context sets the context to be used in this call's Do method. Any
50450// pending HTTP request will be aborted if the provided context is
50451// canceled.
50452func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
50453	c.ctx_ = ctx
50454	return c
50455}
50456
50457// Header returns an http.Header that can be modified by the caller to
50458// add HTTP headers to the request.
50459func (c *BackendServicesAggregatedListCall) Header() http.Header {
50460	if c.header_ == nil {
50461		c.header_ = make(http.Header)
50462	}
50463	return c.header_
50464}
50465
50466func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50467	reqHeaders := make(http.Header)
50468	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50469	for k, v := range c.header_ {
50470		reqHeaders[k] = v
50471	}
50472	reqHeaders.Set("User-Agent", c.s.userAgent())
50473	if c.ifNoneMatch_ != "" {
50474		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50475	}
50476	var body io.Reader = nil
50477	c.urlParams_.Set("alt", alt)
50478	c.urlParams_.Set("prettyPrint", "false")
50479	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
50480	urls += "?" + c.urlParams_.Encode()
50481	req, err := http.NewRequest("GET", urls, body)
50482	if err != nil {
50483		return nil, err
50484	}
50485	req.Header = reqHeaders
50486	googleapi.Expand(req.URL, map[string]string{
50487		"project": c.project,
50488	})
50489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50490}
50491
50492// Do executes the "compute.backendServices.aggregatedList" call.
50493// Exactly one of *BackendServiceAggregatedList or error will be
50494// non-nil. Any non-2xx status code is an error. Response headers are in
50495// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
50496// response was returned at all) in error.(*googleapi.Error).Header. Use
50497// googleapi.IsNotModified to check whether the returned error was
50498// because http.StatusNotModified was returned.
50499func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
50500	gensupport.SetOptions(c.urlParams_, opts...)
50501	res, err := c.doRequest("json")
50502	if res != nil && res.StatusCode == http.StatusNotModified {
50503		if res.Body != nil {
50504			res.Body.Close()
50505		}
50506		return nil, &googleapi.Error{
50507			Code:   res.StatusCode,
50508			Header: res.Header,
50509		}
50510	}
50511	if err != nil {
50512		return nil, err
50513	}
50514	defer googleapi.CloseBody(res)
50515	if err := googleapi.CheckResponse(res); err != nil {
50516		return nil, err
50517	}
50518	ret := &BackendServiceAggregatedList{
50519		ServerResponse: googleapi.ServerResponse{
50520			Header:         res.Header,
50521			HTTPStatusCode: res.StatusCode,
50522		},
50523	}
50524	target := &ret
50525	if err := gensupport.DecodeResponse(target, res); err != nil {
50526		return nil, err
50527	}
50528	return ret, nil
50529	// {
50530	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
50531	//   "httpMethod": "GET",
50532	//   "id": "compute.backendServices.aggregatedList",
50533	//   "parameterOrder": [
50534	//     "project"
50535	//   ],
50536	//   "parameters": {
50537	//     "filter": {
50538	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
50539	//       "location": "query",
50540	//       "type": "string"
50541	//     },
50542	//     "includeAllScopes": {
50543	//       "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.",
50544	//       "location": "query",
50545	//       "type": "boolean"
50546	//     },
50547	//     "maxResults": {
50548	//       "default": "500",
50549	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50550	//       "format": "uint32",
50551	//       "location": "query",
50552	//       "minimum": "0",
50553	//       "type": "integer"
50554	//     },
50555	//     "orderBy": {
50556	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50557	//       "location": "query",
50558	//       "type": "string"
50559	//     },
50560	//     "pageToken": {
50561	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50562	//       "location": "query",
50563	//       "type": "string"
50564	//     },
50565	//     "project": {
50566	//       "description": "Name of the project scoping this request.",
50567	//       "location": "path",
50568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50569	//       "required": true,
50570	//       "type": "string"
50571	//     }
50572	//   },
50573	//   "path": "{project}/aggregated/backendServices",
50574	//   "response": {
50575	//     "$ref": "BackendServiceAggregatedList"
50576	//   },
50577	//   "scopes": [
50578	//     "https://www.googleapis.com/auth/cloud-platform",
50579	//     "https://www.googleapis.com/auth/compute",
50580	//     "https://www.googleapis.com/auth/compute.readonly"
50581	//   ]
50582	// }
50583
50584}
50585
50586// Pages invokes f for each page of results.
50587// A non-nil error returned from f will halt the iteration.
50588// The provided context supersedes any context provided to the Context method.
50589func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
50590	c.ctx_ = ctx
50591	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50592	for {
50593		x, err := c.Do()
50594		if err != nil {
50595			return err
50596		}
50597		if err := f(x); err != nil {
50598			return err
50599		}
50600		if x.NextPageToken == "" {
50601			return nil
50602		}
50603		c.PageToken(x.NextPageToken)
50604	}
50605}
50606
50607// method id "compute.backendServices.delete":
50608
50609type BackendServicesDeleteCall struct {
50610	s              *Service
50611	project        string
50612	backendService string
50613	urlParams_     gensupport.URLParams
50614	ctx_           context.Context
50615	header_        http.Header
50616}
50617
50618// Delete: Deletes the specified BackendService resource.
50619// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
50620func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
50621	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50622	c.project = project
50623	c.backendService = backendService
50624	return c
50625}
50626
50627// RequestId sets the optional parameter "requestId": An optional
50628// request ID to identify requests. Specify a unique request ID so that
50629// if you must retry your request, the server will know to ignore the
50630// request if it has already been completed.
50631//
50632// For example, consider a situation where you make an initial request
50633// and the request times out. If you make the request again with the
50634// same request ID, the server can check if original operation with the
50635// same request ID was received, and if so, will ignore the second
50636// request. This prevents clients from accidentally creating duplicate
50637// commitments.
50638//
50639// The request ID must be a valid UUID with the exception that zero UUID
50640// is not supported (00000000-0000-0000-0000-000000000000).
50641func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
50642	c.urlParams_.Set("requestId", requestId)
50643	return c
50644}
50645
50646// Fields allows partial responses to be retrieved. See
50647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50648// for more information.
50649func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
50650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50651	return c
50652}
50653
50654// Context sets the context to be used in this call's Do method. Any
50655// pending HTTP request will be aborted if the provided context is
50656// canceled.
50657func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
50658	c.ctx_ = ctx
50659	return c
50660}
50661
50662// Header returns an http.Header that can be modified by the caller to
50663// add HTTP headers to the request.
50664func (c *BackendServicesDeleteCall) Header() http.Header {
50665	if c.header_ == nil {
50666		c.header_ = make(http.Header)
50667	}
50668	return c.header_
50669}
50670
50671func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
50672	reqHeaders := make(http.Header)
50673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50674	for k, v := range c.header_ {
50675		reqHeaders[k] = v
50676	}
50677	reqHeaders.Set("User-Agent", c.s.userAgent())
50678	var body io.Reader = nil
50679	c.urlParams_.Set("alt", alt)
50680	c.urlParams_.Set("prettyPrint", "false")
50681	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
50682	urls += "?" + c.urlParams_.Encode()
50683	req, err := http.NewRequest("DELETE", urls, body)
50684	if err != nil {
50685		return nil, err
50686	}
50687	req.Header = reqHeaders
50688	googleapi.Expand(req.URL, map[string]string{
50689		"project":        c.project,
50690		"backendService": c.backendService,
50691	})
50692	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50693}
50694
50695// Do executes the "compute.backendServices.delete" call.
50696// Exactly one of *Operation or error will be non-nil. Any non-2xx
50697// status code is an error. Response headers are in either
50698// *Operation.ServerResponse.Header or (if a response was returned at
50699// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50700// to check whether the returned error was because
50701// http.StatusNotModified was returned.
50702func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50703	gensupport.SetOptions(c.urlParams_, opts...)
50704	res, err := c.doRequest("json")
50705	if res != nil && res.StatusCode == http.StatusNotModified {
50706		if res.Body != nil {
50707			res.Body.Close()
50708		}
50709		return nil, &googleapi.Error{
50710			Code:   res.StatusCode,
50711			Header: res.Header,
50712		}
50713	}
50714	if err != nil {
50715		return nil, err
50716	}
50717	defer googleapi.CloseBody(res)
50718	if err := googleapi.CheckResponse(res); err != nil {
50719		return nil, err
50720	}
50721	ret := &Operation{
50722		ServerResponse: googleapi.ServerResponse{
50723			Header:         res.Header,
50724			HTTPStatusCode: res.StatusCode,
50725		},
50726	}
50727	target := &ret
50728	if err := gensupport.DecodeResponse(target, res); err != nil {
50729		return nil, err
50730	}
50731	return ret, nil
50732	// {
50733	//   "description": "Deletes the specified BackendService resource.",
50734	//   "httpMethod": "DELETE",
50735	//   "id": "compute.backendServices.delete",
50736	//   "parameterOrder": [
50737	//     "project",
50738	//     "backendService"
50739	//   ],
50740	//   "parameters": {
50741	//     "backendService": {
50742	//       "description": "Name of the BackendService resource to delete.",
50743	//       "location": "path",
50744	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50745	//       "required": true,
50746	//       "type": "string"
50747	//     },
50748	//     "project": {
50749	//       "description": "Project ID for this request.",
50750	//       "location": "path",
50751	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50752	//       "required": true,
50753	//       "type": "string"
50754	//     },
50755	//     "requestId": {
50756	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50757	//       "location": "query",
50758	//       "type": "string"
50759	//     }
50760	//   },
50761	//   "path": "{project}/global/backendServices/{backendService}",
50762	//   "response": {
50763	//     "$ref": "Operation"
50764	//   },
50765	//   "scopes": [
50766	//     "https://www.googleapis.com/auth/cloud-platform",
50767	//     "https://www.googleapis.com/auth/compute"
50768	//   ]
50769	// }
50770
50771}
50772
50773// method id "compute.backendServices.deleteSignedUrlKey":
50774
50775type BackendServicesDeleteSignedUrlKeyCall struct {
50776	s              *Service
50777	project        string
50778	backendService string
50779	urlParams_     gensupport.URLParams
50780	ctx_           context.Context
50781	header_        http.Header
50782}
50783
50784// DeleteSignedUrlKey: Deletes a key for validating requests with signed
50785// URLs for this backend service.
50786func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
50787	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50788	c.project = project
50789	c.backendService = backendService
50790	c.urlParams_.Set("keyName", keyName)
50791	return c
50792}
50793
50794// RequestId sets the optional parameter "requestId": An optional
50795// request ID to identify requests. Specify a unique request ID so that
50796// if you must retry your request, the server will know to ignore the
50797// request if it has already been completed.
50798//
50799// For example, consider a situation where you make an initial request
50800// and the request times out. If you make the request again with the
50801// same request ID, the server can check if original operation with the
50802// same request ID was received, and if so, will ignore the second
50803// request. This prevents clients from accidentally creating duplicate
50804// commitments.
50805//
50806// The request ID must be a valid UUID with the exception that zero UUID
50807// is not supported (00000000-0000-0000-0000-000000000000).
50808func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
50809	c.urlParams_.Set("requestId", requestId)
50810	return c
50811}
50812
50813// Fields allows partial responses to be retrieved. See
50814// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50815// for more information.
50816func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
50817	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50818	return c
50819}
50820
50821// Context sets the context to be used in this call's Do method. Any
50822// pending HTTP request will be aborted if the provided context is
50823// canceled.
50824func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
50825	c.ctx_ = ctx
50826	return c
50827}
50828
50829// Header returns an http.Header that can be modified by the caller to
50830// add HTTP headers to the request.
50831func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
50832	if c.header_ == nil {
50833		c.header_ = make(http.Header)
50834	}
50835	return c.header_
50836}
50837
50838func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
50839	reqHeaders := make(http.Header)
50840	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
50841	for k, v := range c.header_ {
50842		reqHeaders[k] = v
50843	}
50844	reqHeaders.Set("User-Agent", c.s.userAgent())
50845	var body io.Reader = nil
50846	c.urlParams_.Set("alt", alt)
50847	c.urlParams_.Set("prettyPrint", "false")
50848	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
50849	urls += "?" + c.urlParams_.Encode()
50850	req, err := http.NewRequest("POST", urls, body)
50851	if err != nil {
50852		return nil, err
50853	}
50854	req.Header = reqHeaders
50855	googleapi.Expand(req.URL, map[string]string{
50856		"project":        c.project,
50857		"backendService": c.backendService,
50858	})
50859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50860}
50861
50862// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
50863// Exactly one of *Operation or error will be non-nil. Any non-2xx
50864// status code is an error. Response headers are in either
50865// *Operation.ServerResponse.Header or (if a response was returned at
50866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50867// to check whether the returned error was because
50868// http.StatusNotModified was returned.
50869func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50870	gensupport.SetOptions(c.urlParams_, opts...)
50871	res, err := c.doRequest("json")
50872	if res != nil && res.StatusCode == http.StatusNotModified {
50873		if res.Body != nil {
50874			res.Body.Close()
50875		}
50876		return nil, &googleapi.Error{
50877			Code:   res.StatusCode,
50878			Header: res.Header,
50879		}
50880	}
50881	if err != nil {
50882		return nil, err
50883	}
50884	defer googleapi.CloseBody(res)
50885	if err := googleapi.CheckResponse(res); err != nil {
50886		return nil, err
50887	}
50888	ret := &Operation{
50889		ServerResponse: googleapi.ServerResponse{
50890			Header:         res.Header,
50891			HTTPStatusCode: res.StatusCode,
50892		},
50893	}
50894	target := &ret
50895	if err := gensupport.DecodeResponse(target, res); err != nil {
50896		return nil, err
50897	}
50898	return ret, nil
50899	// {
50900	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
50901	//   "httpMethod": "POST",
50902	//   "id": "compute.backendServices.deleteSignedUrlKey",
50903	//   "parameterOrder": [
50904	//     "project",
50905	//     "backendService",
50906	//     "keyName"
50907	//   ],
50908	//   "parameters": {
50909	//     "backendService": {
50910	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
50911	//       "location": "path",
50912	//       "required": true,
50913	//       "type": "string"
50914	//     },
50915	//     "keyName": {
50916	//       "description": "The name of the Signed URL Key to delete.",
50917	//       "location": "query",
50918	//       "required": true,
50919	//       "type": "string"
50920	//     },
50921	//     "project": {
50922	//       "description": "Project ID for this request.",
50923	//       "location": "path",
50924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50925	//       "required": true,
50926	//       "type": "string"
50927	//     },
50928	//     "requestId": {
50929	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50930	//       "location": "query",
50931	//       "type": "string"
50932	//     }
50933	//   },
50934	//   "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
50935	//   "response": {
50936	//     "$ref": "Operation"
50937	//   },
50938	//   "scopes": [
50939	//     "https://www.googleapis.com/auth/cloud-platform",
50940	//     "https://www.googleapis.com/auth/compute"
50941	//   ]
50942	// }
50943
50944}
50945
50946// method id "compute.backendServices.get":
50947
50948type BackendServicesGetCall struct {
50949	s              *Service
50950	project        string
50951	backendService string
50952	urlParams_     gensupport.URLParams
50953	ifNoneMatch_   string
50954	ctx_           context.Context
50955	header_        http.Header
50956}
50957
50958// Get: Returns the specified BackendService resource. Gets a list of
50959// available backend services.
50960// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
50961func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
50962	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50963	c.project = project
50964	c.backendService = backendService
50965	return c
50966}
50967
50968// Fields allows partial responses to be retrieved. See
50969// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50970// for more information.
50971func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
50972	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50973	return c
50974}
50975
50976// IfNoneMatch sets the optional parameter which makes the operation
50977// fail if the object's ETag matches the given value. This is useful for
50978// getting updates only after the object has changed since the last
50979// request. Use googleapi.IsNotModified to check whether the response
50980// error from Do is the result of In-None-Match.
50981func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
50982	c.ifNoneMatch_ = entityTag
50983	return c
50984}
50985
50986// Context sets the context to be used in this call's Do method. Any
50987// pending HTTP request will be aborted if the provided context is
50988// canceled.
50989func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
50990	c.ctx_ = ctx
50991	return c
50992}
50993
50994// Header returns an http.Header that can be modified by the caller to
50995// add HTTP headers to the request.
50996func (c *BackendServicesGetCall) Header() http.Header {
50997	if c.header_ == nil {
50998		c.header_ = make(http.Header)
50999	}
51000	return c.header_
51001}
51002
51003func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
51004	reqHeaders := make(http.Header)
51005	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51006	for k, v := range c.header_ {
51007		reqHeaders[k] = v
51008	}
51009	reqHeaders.Set("User-Agent", c.s.userAgent())
51010	if c.ifNoneMatch_ != "" {
51011		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51012	}
51013	var body io.Reader = nil
51014	c.urlParams_.Set("alt", alt)
51015	c.urlParams_.Set("prettyPrint", "false")
51016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
51017	urls += "?" + c.urlParams_.Encode()
51018	req, err := http.NewRequest("GET", urls, body)
51019	if err != nil {
51020		return nil, err
51021	}
51022	req.Header = reqHeaders
51023	googleapi.Expand(req.URL, map[string]string{
51024		"project":        c.project,
51025		"backendService": c.backendService,
51026	})
51027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51028}
51029
51030// Do executes the "compute.backendServices.get" call.
51031// Exactly one of *BackendService or error will be non-nil. Any non-2xx
51032// status code is an error. Response headers are in either
51033// *BackendService.ServerResponse.Header or (if a response was returned
51034// at all) in error.(*googleapi.Error).Header. Use
51035// googleapi.IsNotModified to check whether the returned error was
51036// because http.StatusNotModified was returned.
51037func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
51038	gensupport.SetOptions(c.urlParams_, opts...)
51039	res, err := c.doRequest("json")
51040	if res != nil && res.StatusCode == http.StatusNotModified {
51041		if res.Body != nil {
51042			res.Body.Close()
51043		}
51044		return nil, &googleapi.Error{
51045			Code:   res.StatusCode,
51046			Header: res.Header,
51047		}
51048	}
51049	if err != nil {
51050		return nil, err
51051	}
51052	defer googleapi.CloseBody(res)
51053	if err := googleapi.CheckResponse(res); err != nil {
51054		return nil, err
51055	}
51056	ret := &BackendService{
51057		ServerResponse: googleapi.ServerResponse{
51058			Header:         res.Header,
51059			HTTPStatusCode: res.StatusCode,
51060		},
51061	}
51062	target := &ret
51063	if err := gensupport.DecodeResponse(target, res); err != nil {
51064		return nil, err
51065	}
51066	return ret, nil
51067	// {
51068	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
51069	//   "httpMethod": "GET",
51070	//   "id": "compute.backendServices.get",
51071	//   "parameterOrder": [
51072	//     "project",
51073	//     "backendService"
51074	//   ],
51075	//   "parameters": {
51076	//     "backendService": {
51077	//       "description": "Name of the BackendService resource to return.",
51078	//       "location": "path",
51079	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51080	//       "required": true,
51081	//       "type": "string"
51082	//     },
51083	//     "project": {
51084	//       "description": "Project ID for this request.",
51085	//       "location": "path",
51086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51087	//       "required": true,
51088	//       "type": "string"
51089	//     }
51090	//   },
51091	//   "path": "{project}/global/backendServices/{backendService}",
51092	//   "response": {
51093	//     "$ref": "BackendService"
51094	//   },
51095	//   "scopes": [
51096	//     "https://www.googleapis.com/auth/cloud-platform",
51097	//     "https://www.googleapis.com/auth/compute",
51098	//     "https://www.googleapis.com/auth/compute.readonly"
51099	//   ]
51100	// }
51101
51102}
51103
51104// method id "compute.backendServices.getHealth":
51105
51106type BackendServicesGetHealthCall struct {
51107	s                      *Service
51108	project                string
51109	backendService         string
51110	resourcegroupreference *ResourceGroupReference
51111	urlParams_             gensupport.URLParams
51112	ctx_                   context.Context
51113	header_                http.Header
51114}
51115
51116// GetHealth: Gets the most recent health check results for this
51117// BackendService.
51118//
51119// Example request body:
51120//
51121// { "group": "/zones/us-east1-b/instanceGroups/lb-backend-example" }
51122// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
51123func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
51124	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51125	c.project = project
51126	c.backendService = backendService
51127	c.resourcegroupreference = resourcegroupreference
51128	return c
51129}
51130
51131// Fields allows partial responses to be retrieved. See
51132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51133// for more information.
51134func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
51135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51136	return c
51137}
51138
51139// Context sets the context to be used in this call's Do method. Any
51140// pending HTTP request will be aborted if the provided context is
51141// canceled.
51142func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
51143	c.ctx_ = ctx
51144	return c
51145}
51146
51147// Header returns an http.Header that can be modified by the caller to
51148// add HTTP headers to the request.
51149func (c *BackendServicesGetHealthCall) Header() http.Header {
51150	if c.header_ == nil {
51151		c.header_ = make(http.Header)
51152	}
51153	return c.header_
51154}
51155
51156func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
51157	reqHeaders := make(http.Header)
51158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51159	for k, v := range c.header_ {
51160		reqHeaders[k] = v
51161	}
51162	reqHeaders.Set("User-Agent", c.s.userAgent())
51163	var body io.Reader = nil
51164	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
51165	if err != nil {
51166		return nil, err
51167	}
51168	reqHeaders.Set("Content-Type", "application/json")
51169	c.urlParams_.Set("alt", alt)
51170	c.urlParams_.Set("prettyPrint", "false")
51171	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
51172	urls += "?" + c.urlParams_.Encode()
51173	req, err := http.NewRequest("POST", urls, body)
51174	if err != nil {
51175		return nil, err
51176	}
51177	req.Header = reqHeaders
51178	googleapi.Expand(req.URL, map[string]string{
51179		"project":        c.project,
51180		"backendService": c.backendService,
51181	})
51182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51183}
51184
51185// Do executes the "compute.backendServices.getHealth" call.
51186// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
51187// Any non-2xx status code is an error. Response headers are in either
51188// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
51189// was returned at all) in error.(*googleapi.Error).Header. Use
51190// googleapi.IsNotModified to check whether the returned error was
51191// because http.StatusNotModified was returned.
51192func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
51193	gensupport.SetOptions(c.urlParams_, opts...)
51194	res, err := c.doRequest("json")
51195	if res != nil && res.StatusCode == http.StatusNotModified {
51196		if res.Body != nil {
51197			res.Body.Close()
51198		}
51199		return nil, &googleapi.Error{
51200			Code:   res.StatusCode,
51201			Header: res.Header,
51202		}
51203	}
51204	if err != nil {
51205		return nil, err
51206	}
51207	defer googleapi.CloseBody(res)
51208	if err := googleapi.CheckResponse(res); err != nil {
51209		return nil, err
51210	}
51211	ret := &BackendServiceGroupHealth{
51212		ServerResponse: googleapi.ServerResponse{
51213			Header:         res.Header,
51214			HTTPStatusCode: res.StatusCode,
51215		},
51216	}
51217	target := &ret
51218	if err := gensupport.DecodeResponse(target, res); err != nil {
51219		return nil, err
51220	}
51221	return ret, nil
51222	// {
51223	//   "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\" }",
51224	//   "httpMethod": "POST",
51225	//   "id": "compute.backendServices.getHealth",
51226	//   "parameterOrder": [
51227	//     "project",
51228	//     "backendService"
51229	//   ],
51230	//   "parameters": {
51231	//     "backendService": {
51232	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
51233	//       "location": "path",
51234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51235	//       "required": true,
51236	//       "type": "string"
51237	//     },
51238	//     "project": {
51239	//       "location": "path",
51240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51241	//       "required": true,
51242	//       "type": "string"
51243	//     }
51244	//   },
51245	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
51246	//   "request": {
51247	//     "$ref": "ResourceGroupReference"
51248	//   },
51249	//   "response": {
51250	//     "$ref": "BackendServiceGroupHealth"
51251	//   },
51252	//   "scopes": [
51253	//     "https://www.googleapis.com/auth/cloud-platform",
51254	//     "https://www.googleapis.com/auth/compute",
51255	//     "https://www.googleapis.com/auth/compute.readonly"
51256	//   ]
51257	// }
51258
51259}
51260
51261// method id "compute.backendServices.insert":
51262
51263type BackendServicesInsertCall struct {
51264	s              *Service
51265	project        string
51266	backendservice *BackendService
51267	urlParams_     gensupport.URLParams
51268	ctx_           context.Context
51269	header_        http.Header
51270}
51271
51272// Insert: Creates a BackendService resource in the specified project
51273// using the data included in the request. For more information, see
51274// Backend services overview.
51275// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
51276func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
51277	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51278	c.project = project
51279	c.backendservice = backendservice
51280	return c
51281}
51282
51283// RequestId sets the optional parameter "requestId": An optional
51284// request ID to identify requests. Specify a unique request ID so that
51285// if you must retry your request, the server will know to ignore the
51286// request if it has already been completed.
51287//
51288// For example, consider a situation where you make an initial request
51289// and the request times out. If you make the request again with the
51290// same request ID, the server can check if original operation with the
51291// same request ID was received, and if so, will ignore the second
51292// request. This prevents clients from accidentally creating duplicate
51293// commitments.
51294//
51295// The request ID must be a valid UUID with the exception that zero UUID
51296// is not supported (00000000-0000-0000-0000-000000000000).
51297func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
51298	c.urlParams_.Set("requestId", requestId)
51299	return c
51300}
51301
51302// Fields allows partial responses to be retrieved. See
51303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51304// for more information.
51305func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
51306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51307	return c
51308}
51309
51310// Context sets the context to be used in this call's Do method. Any
51311// pending HTTP request will be aborted if the provided context is
51312// canceled.
51313func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
51314	c.ctx_ = ctx
51315	return c
51316}
51317
51318// Header returns an http.Header that can be modified by the caller to
51319// add HTTP headers to the request.
51320func (c *BackendServicesInsertCall) Header() http.Header {
51321	if c.header_ == nil {
51322		c.header_ = make(http.Header)
51323	}
51324	return c.header_
51325}
51326
51327func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
51328	reqHeaders := make(http.Header)
51329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51330	for k, v := range c.header_ {
51331		reqHeaders[k] = v
51332	}
51333	reqHeaders.Set("User-Agent", c.s.userAgent())
51334	var body io.Reader = nil
51335	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
51336	if err != nil {
51337		return nil, err
51338	}
51339	reqHeaders.Set("Content-Type", "application/json")
51340	c.urlParams_.Set("alt", alt)
51341	c.urlParams_.Set("prettyPrint", "false")
51342	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
51343	urls += "?" + c.urlParams_.Encode()
51344	req, err := http.NewRequest("POST", urls, body)
51345	if err != nil {
51346		return nil, err
51347	}
51348	req.Header = reqHeaders
51349	googleapi.Expand(req.URL, map[string]string{
51350		"project": c.project,
51351	})
51352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51353}
51354
51355// Do executes the "compute.backendServices.insert" call.
51356// Exactly one of *Operation or error will be non-nil. Any non-2xx
51357// status code is an error. Response headers are in either
51358// *Operation.ServerResponse.Header or (if a response was returned at
51359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51360// to check whether the returned error was because
51361// http.StatusNotModified was returned.
51362func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51363	gensupport.SetOptions(c.urlParams_, opts...)
51364	res, err := c.doRequest("json")
51365	if res != nil && res.StatusCode == http.StatusNotModified {
51366		if res.Body != nil {
51367			res.Body.Close()
51368		}
51369		return nil, &googleapi.Error{
51370			Code:   res.StatusCode,
51371			Header: res.Header,
51372		}
51373	}
51374	if err != nil {
51375		return nil, err
51376	}
51377	defer googleapi.CloseBody(res)
51378	if err := googleapi.CheckResponse(res); err != nil {
51379		return nil, err
51380	}
51381	ret := &Operation{
51382		ServerResponse: googleapi.ServerResponse{
51383			Header:         res.Header,
51384			HTTPStatusCode: res.StatusCode,
51385		},
51386	}
51387	target := &ret
51388	if err := gensupport.DecodeResponse(target, res); err != nil {
51389		return nil, err
51390	}
51391	return ret, nil
51392	// {
51393	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
51394	//   "httpMethod": "POST",
51395	//   "id": "compute.backendServices.insert",
51396	//   "parameterOrder": [
51397	//     "project"
51398	//   ],
51399	//   "parameters": {
51400	//     "project": {
51401	//       "description": "Project ID for this request.",
51402	//       "location": "path",
51403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51404	//       "required": true,
51405	//       "type": "string"
51406	//     },
51407	//     "requestId": {
51408	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51409	//       "location": "query",
51410	//       "type": "string"
51411	//     }
51412	//   },
51413	//   "path": "{project}/global/backendServices",
51414	//   "request": {
51415	//     "$ref": "BackendService"
51416	//   },
51417	//   "response": {
51418	//     "$ref": "Operation"
51419	//   },
51420	//   "scopes": [
51421	//     "https://www.googleapis.com/auth/cloud-platform",
51422	//     "https://www.googleapis.com/auth/compute"
51423	//   ]
51424	// }
51425
51426}
51427
51428// method id "compute.backendServices.list":
51429
51430type BackendServicesListCall struct {
51431	s            *Service
51432	project      string
51433	urlParams_   gensupport.URLParams
51434	ifNoneMatch_ string
51435	ctx_         context.Context
51436	header_      http.Header
51437}
51438
51439// List: Retrieves the list of BackendService resources available to the
51440// specified project.
51441// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
51442func (r *BackendServicesService) List(project string) *BackendServicesListCall {
51443	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51444	c.project = project
51445	return c
51446}
51447
51448// Filter sets the optional parameter "filter": A filter expression that
51449// filters resources listed in the response. The expression must specify
51450// the field name, a comparison operator, and the value that you want to
51451// use for filtering. The value must be a string, a number, or a
51452// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51453// `<`.
51454//
51455// For example, if you are filtering Compute Engine instances, you can
51456// exclude instances named `example-instance` by specifying `name !=
51457// example-instance`.
51458//
51459// You can also filter nested fields. For example, you could specify
51460// `scheduling.automaticRestart = false` to include instances only if
51461// they are not scheduled for automatic restarts. You can use filtering
51462// on nested fields to filter based on resource labels.
51463//
51464// To filter on multiple expressions, provide each separate expression
51465// within parentheses. For example: ``` (scheduling.automaticRestart =
51466// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
51467// is an `AND` expression. However, you can include `AND` and `OR`
51468// expressions explicitly. For example: ``` (cpuPlatform = "Intel
51469// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
51470// (scheduling.automaticRestart = true) ```
51471func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
51472	c.urlParams_.Set("filter", filter)
51473	return c
51474}
51475
51476// MaxResults sets the optional parameter "maxResults": The maximum
51477// number of results per page that should be returned. If the number of
51478// available results is larger than `maxResults`, Compute Engine returns
51479// a `nextPageToken` that can be used to get the next page of results in
51480// subsequent list requests. Acceptable values are `0` to `500`,
51481// inclusive. (Default: `500`)
51482func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
51483	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51484	return c
51485}
51486
51487// OrderBy sets the optional parameter "orderBy": Sorts list results by
51488// a certain order. By default, results are returned in alphanumerical
51489// order based on the resource name.
51490//
51491// You can also sort results in descending order based on the creation
51492// timestamp using `orderBy="creationTimestamp desc". This sorts
51493// results based on the `creationTimestamp` field in reverse
51494// chronological order (newest result first). Use this to sort resources
51495// like operations so that the newest operation is returned
51496// first.
51497//
51498// Currently, only sorting by `name` or `creationTimestamp desc` is
51499// supported.
51500func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
51501	c.urlParams_.Set("orderBy", orderBy)
51502	return c
51503}
51504
51505// PageToken sets the optional parameter "pageToken": Specifies a page
51506// token to use. Set `pageToken` to the `nextPageToken` returned by a
51507// previous list request to get the next page of results.
51508func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
51509	c.urlParams_.Set("pageToken", pageToken)
51510	return c
51511}
51512
51513// Fields allows partial responses to be retrieved. See
51514// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51515// for more information.
51516func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
51517	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51518	return c
51519}
51520
51521// IfNoneMatch sets the optional parameter which makes the operation
51522// fail if the object's ETag matches the given value. This is useful for
51523// getting updates only after the object has changed since the last
51524// request. Use googleapi.IsNotModified to check whether the response
51525// error from Do is the result of In-None-Match.
51526func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
51527	c.ifNoneMatch_ = entityTag
51528	return c
51529}
51530
51531// Context sets the context to be used in this call's Do method. Any
51532// pending HTTP request will be aborted if the provided context is
51533// canceled.
51534func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
51535	c.ctx_ = ctx
51536	return c
51537}
51538
51539// Header returns an http.Header that can be modified by the caller to
51540// add HTTP headers to the request.
51541func (c *BackendServicesListCall) Header() http.Header {
51542	if c.header_ == nil {
51543		c.header_ = make(http.Header)
51544	}
51545	return c.header_
51546}
51547
51548func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
51549	reqHeaders := make(http.Header)
51550	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51551	for k, v := range c.header_ {
51552		reqHeaders[k] = v
51553	}
51554	reqHeaders.Set("User-Agent", c.s.userAgent())
51555	if c.ifNoneMatch_ != "" {
51556		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51557	}
51558	var body io.Reader = nil
51559	c.urlParams_.Set("alt", alt)
51560	c.urlParams_.Set("prettyPrint", "false")
51561	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
51562	urls += "?" + c.urlParams_.Encode()
51563	req, err := http.NewRequest("GET", urls, body)
51564	if err != nil {
51565		return nil, err
51566	}
51567	req.Header = reqHeaders
51568	googleapi.Expand(req.URL, map[string]string{
51569		"project": c.project,
51570	})
51571	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51572}
51573
51574// Do executes the "compute.backendServices.list" call.
51575// Exactly one of *BackendServiceList or error will be non-nil. Any
51576// non-2xx status code is an error. Response headers are in either
51577// *BackendServiceList.ServerResponse.Header or (if a response was
51578// returned at all) in error.(*googleapi.Error).Header. Use
51579// googleapi.IsNotModified to check whether the returned error was
51580// because http.StatusNotModified was returned.
51581func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
51582	gensupport.SetOptions(c.urlParams_, opts...)
51583	res, err := c.doRequest("json")
51584	if res != nil && res.StatusCode == http.StatusNotModified {
51585		if res.Body != nil {
51586			res.Body.Close()
51587		}
51588		return nil, &googleapi.Error{
51589			Code:   res.StatusCode,
51590			Header: res.Header,
51591		}
51592	}
51593	if err != nil {
51594		return nil, err
51595	}
51596	defer googleapi.CloseBody(res)
51597	if err := googleapi.CheckResponse(res); err != nil {
51598		return nil, err
51599	}
51600	ret := &BackendServiceList{
51601		ServerResponse: googleapi.ServerResponse{
51602			Header:         res.Header,
51603			HTTPStatusCode: res.StatusCode,
51604		},
51605	}
51606	target := &ret
51607	if err := gensupport.DecodeResponse(target, res); err != nil {
51608		return nil, err
51609	}
51610	return ret, nil
51611	// {
51612	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
51613	//   "httpMethod": "GET",
51614	//   "id": "compute.backendServices.list",
51615	//   "parameterOrder": [
51616	//     "project"
51617	//   ],
51618	//   "parameters": {
51619	//     "filter": {
51620	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
51621	//       "location": "query",
51622	//       "type": "string"
51623	//     },
51624	//     "maxResults": {
51625	//       "default": "500",
51626	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
51627	//       "format": "uint32",
51628	//       "location": "query",
51629	//       "minimum": "0",
51630	//       "type": "integer"
51631	//     },
51632	//     "orderBy": {
51633	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
51634	//       "location": "query",
51635	//       "type": "string"
51636	//     },
51637	//     "pageToken": {
51638	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
51639	//       "location": "query",
51640	//       "type": "string"
51641	//     },
51642	//     "project": {
51643	//       "description": "Project ID for this request.",
51644	//       "location": "path",
51645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51646	//       "required": true,
51647	//       "type": "string"
51648	//     }
51649	//   },
51650	//   "path": "{project}/global/backendServices",
51651	//   "response": {
51652	//     "$ref": "BackendServiceList"
51653	//   },
51654	//   "scopes": [
51655	//     "https://www.googleapis.com/auth/cloud-platform",
51656	//     "https://www.googleapis.com/auth/compute",
51657	//     "https://www.googleapis.com/auth/compute.readonly"
51658	//   ]
51659	// }
51660
51661}
51662
51663// Pages invokes f for each page of results.
51664// A non-nil error returned from f will halt the iteration.
51665// The provided context supersedes any context provided to the Context method.
51666func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
51667	c.ctx_ = ctx
51668	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51669	for {
51670		x, err := c.Do()
51671		if err != nil {
51672			return err
51673		}
51674		if err := f(x); err != nil {
51675			return err
51676		}
51677		if x.NextPageToken == "" {
51678			return nil
51679		}
51680		c.PageToken(x.NextPageToken)
51681	}
51682}
51683
51684// method id "compute.backendServices.patch":
51685
51686type BackendServicesPatchCall struct {
51687	s              *Service
51688	project        string
51689	backendService string
51690	backendservice *BackendService
51691	urlParams_     gensupport.URLParams
51692	ctx_           context.Context
51693	header_        http.Header
51694}
51695
51696// Patch: Patches the specified BackendService resource with the data
51697// included in the request. For more information, see  Backend services
51698// overview. This method supports PATCH semantics and uses the JSON
51699// merge patch format and processing rules.
51700// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
51701func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
51702	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51703	c.project = project
51704	c.backendService = backendService
51705	c.backendservice = backendservice
51706	return c
51707}
51708
51709// RequestId sets the optional parameter "requestId": An optional
51710// request ID to identify requests. Specify a unique request ID so that
51711// if you must retry your request, the server will know to ignore the
51712// request if it has already been completed.
51713//
51714// For example, consider a situation where you make an initial request
51715// and the request times out. If you make the request again with the
51716// same request ID, the server can check if original operation with the
51717// same request ID was received, and if so, will ignore the second
51718// request. This prevents clients from accidentally creating duplicate
51719// commitments.
51720//
51721// The request ID must be a valid UUID with the exception that zero UUID
51722// is not supported (00000000-0000-0000-0000-000000000000).
51723func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
51724	c.urlParams_.Set("requestId", requestId)
51725	return c
51726}
51727
51728// Fields allows partial responses to be retrieved. See
51729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51730// for more information.
51731func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
51732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51733	return c
51734}
51735
51736// Context sets the context to be used in this call's Do method. Any
51737// pending HTTP request will be aborted if the provided context is
51738// canceled.
51739func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
51740	c.ctx_ = ctx
51741	return c
51742}
51743
51744// Header returns an http.Header that can be modified by the caller to
51745// add HTTP headers to the request.
51746func (c *BackendServicesPatchCall) Header() http.Header {
51747	if c.header_ == nil {
51748		c.header_ = make(http.Header)
51749	}
51750	return c.header_
51751}
51752
51753func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
51754	reqHeaders := make(http.Header)
51755	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51756	for k, v := range c.header_ {
51757		reqHeaders[k] = v
51758	}
51759	reqHeaders.Set("User-Agent", c.s.userAgent())
51760	var body io.Reader = nil
51761	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
51762	if err != nil {
51763		return nil, err
51764	}
51765	reqHeaders.Set("Content-Type", "application/json")
51766	c.urlParams_.Set("alt", alt)
51767	c.urlParams_.Set("prettyPrint", "false")
51768	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
51769	urls += "?" + c.urlParams_.Encode()
51770	req, err := http.NewRequest("PATCH", urls, body)
51771	if err != nil {
51772		return nil, err
51773	}
51774	req.Header = reqHeaders
51775	googleapi.Expand(req.URL, map[string]string{
51776		"project":        c.project,
51777		"backendService": c.backendService,
51778	})
51779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51780}
51781
51782// Do executes the "compute.backendServices.patch" call.
51783// Exactly one of *Operation or error will be non-nil. Any non-2xx
51784// status code is an error. Response headers are in either
51785// *Operation.ServerResponse.Header or (if a response was returned at
51786// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51787// to check whether the returned error was because
51788// http.StatusNotModified was returned.
51789func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51790	gensupport.SetOptions(c.urlParams_, opts...)
51791	res, err := c.doRequest("json")
51792	if res != nil && res.StatusCode == http.StatusNotModified {
51793		if res.Body != nil {
51794			res.Body.Close()
51795		}
51796		return nil, &googleapi.Error{
51797			Code:   res.StatusCode,
51798			Header: res.Header,
51799		}
51800	}
51801	if err != nil {
51802		return nil, err
51803	}
51804	defer googleapi.CloseBody(res)
51805	if err := googleapi.CheckResponse(res); err != nil {
51806		return nil, err
51807	}
51808	ret := &Operation{
51809		ServerResponse: googleapi.ServerResponse{
51810			Header:         res.Header,
51811			HTTPStatusCode: res.StatusCode,
51812		},
51813	}
51814	target := &ret
51815	if err := gensupport.DecodeResponse(target, res); err != nil {
51816		return nil, err
51817	}
51818	return ret, nil
51819	// {
51820	//   "description": "Patches the specified BackendService resource with the data included in the request. For more information, see  Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
51821	//   "httpMethod": "PATCH",
51822	//   "id": "compute.backendServices.patch",
51823	//   "parameterOrder": [
51824	//     "project",
51825	//     "backendService"
51826	//   ],
51827	//   "parameters": {
51828	//     "backendService": {
51829	//       "description": "Name of the BackendService resource to patch.",
51830	//       "location": "path",
51831	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51832	//       "required": true,
51833	//       "type": "string"
51834	//     },
51835	//     "project": {
51836	//       "description": "Project ID for this request.",
51837	//       "location": "path",
51838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51839	//       "required": true,
51840	//       "type": "string"
51841	//     },
51842	//     "requestId": {
51843	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51844	//       "location": "query",
51845	//       "type": "string"
51846	//     }
51847	//   },
51848	//   "path": "{project}/global/backendServices/{backendService}",
51849	//   "request": {
51850	//     "$ref": "BackendService"
51851	//   },
51852	//   "response": {
51853	//     "$ref": "Operation"
51854	//   },
51855	//   "scopes": [
51856	//     "https://www.googleapis.com/auth/cloud-platform",
51857	//     "https://www.googleapis.com/auth/compute"
51858	//   ]
51859	// }
51860
51861}
51862
51863// method id "compute.backendServices.setSecurityPolicy":
51864
51865type BackendServicesSetSecurityPolicyCall struct {
51866	s                       *Service
51867	project                 string
51868	backendService          string
51869	securitypolicyreference *SecurityPolicyReference
51870	urlParams_              gensupport.URLParams
51871	ctx_                    context.Context
51872	header_                 http.Header
51873}
51874
51875// SetSecurityPolicy: Sets the security policy for the specified backend
51876// service.
51877func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
51878	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51879	c.project = project
51880	c.backendService = backendService
51881	c.securitypolicyreference = securitypolicyreference
51882	return c
51883}
51884
51885// RequestId sets the optional parameter "requestId": An optional
51886// request ID to identify requests. Specify a unique request ID so that
51887// if you must retry your request, the server will know to ignore the
51888// request if it has already been completed.
51889//
51890// For example, consider a situation where you make an initial request
51891// and the request times out. If you make the request again with the
51892// same request ID, the server can check if original operation with the
51893// same request ID was received, and if so, will ignore the second
51894// request. This prevents clients from accidentally creating duplicate
51895// commitments.
51896//
51897// The request ID must be a valid UUID with the exception that zero UUID
51898// is not supported (00000000-0000-0000-0000-000000000000).
51899func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
51900	c.urlParams_.Set("requestId", requestId)
51901	return c
51902}
51903
51904// Fields allows partial responses to be retrieved. See
51905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51906// for more information.
51907func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
51908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51909	return c
51910}
51911
51912// Context sets the context to be used in this call's Do method. Any
51913// pending HTTP request will be aborted if the provided context is
51914// canceled.
51915func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
51916	c.ctx_ = ctx
51917	return c
51918}
51919
51920// Header returns an http.Header that can be modified by the caller to
51921// add HTTP headers to the request.
51922func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
51923	if c.header_ == nil {
51924		c.header_ = make(http.Header)
51925	}
51926	return c.header_
51927}
51928
51929func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
51930	reqHeaders := make(http.Header)
51931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
51932	for k, v := range c.header_ {
51933		reqHeaders[k] = v
51934	}
51935	reqHeaders.Set("User-Agent", c.s.userAgent())
51936	var body io.Reader = nil
51937	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
51938	if err != nil {
51939		return nil, err
51940	}
51941	reqHeaders.Set("Content-Type", "application/json")
51942	c.urlParams_.Set("alt", alt)
51943	c.urlParams_.Set("prettyPrint", "false")
51944	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/setSecurityPolicy")
51945	urls += "?" + c.urlParams_.Encode()
51946	req, err := http.NewRequest("POST", urls, body)
51947	if err != nil {
51948		return nil, err
51949	}
51950	req.Header = reqHeaders
51951	googleapi.Expand(req.URL, map[string]string{
51952		"project":        c.project,
51953		"backendService": c.backendService,
51954	})
51955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51956}
51957
51958// Do executes the "compute.backendServices.setSecurityPolicy" call.
51959// Exactly one of *Operation or error will be non-nil. Any non-2xx
51960// status code is an error. Response headers are in either
51961// *Operation.ServerResponse.Header or (if a response was returned at
51962// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51963// to check whether the returned error was because
51964// http.StatusNotModified was returned.
51965func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51966	gensupport.SetOptions(c.urlParams_, opts...)
51967	res, err := c.doRequest("json")
51968	if res != nil && res.StatusCode == http.StatusNotModified {
51969		if res.Body != nil {
51970			res.Body.Close()
51971		}
51972		return nil, &googleapi.Error{
51973			Code:   res.StatusCode,
51974			Header: res.Header,
51975		}
51976	}
51977	if err != nil {
51978		return nil, err
51979	}
51980	defer googleapi.CloseBody(res)
51981	if err := googleapi.CheckResponse(res); err != nil {
51982		return nil, err
51983	}
51984	ret := &Operation{
51985		ServerResponse: googleapi.ServerResponse{
51986			Header:         res.Header,
51987			HTTPStatusCode: res.StatusCode,
51988		},
51989	}
51990	target := &ret
51991	if err := gensupport.DecodeResponse(target, res); err != nil {
51992		return nil, err
51993	}
51994	return ret, nil
51995	// {
51996	//   "description": "Sets the security policy for the specified backend service.",
51997	//   "httpMethod": "POST",
51998	//   "id": "compute.backendServices.setSecurityPolicy",
51999	//   "parameterOrder": [
52000	//     "project",
52001	//     "backendService"
52002	//   ],
52003	//   "parameters": {
52004	//     "backendService": {
52005	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
52006	//       "location": "path",
52007	//       "required": true,
52008	//       "type": "string"
52009	//     },
52010	//     "project": {
52011	//       "description": "Project ID for this request.",
52012	//       "location": "path",
52013	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52014	//       "required": true,
52015	//       "type": "string"
52016	//     },
52017	//     "requestId": {
52018	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52019	//       "location": "query",
52020	//       "type": "string"
52021	//     }
52022	//   },
52023	//   "path": "{project}/global/backendServices/{backendService}/setSecurityPolicy",
52024	//   "request": {
52025	//     "$ref": "SecurityPolicyReference"
52026	//   },
52027	//   "response": {
52028	//     "$ref": "Operation"
52029	//   },
52030	//   "scopes": [
52031	//     "https://www.googleapis.com/auth/cloud-platform",
52032	//     "https://www.googleapis.com/auth/compute"
52033	//   ]
52034	// }
52035
52036}
52037
52038// method id "compute.backendServices.testIamPermissions":
52039
52040type BackendServicesTestIamPermissionsCall struct {
52041	s                      *Service
52042	project                string
52043	resource               string
52044	testpermissionsrequest *TestPermissionsRequest
52045	urlParams_             gensupport.URLParams
52046	ctx_                   context.Context
52047	header_                http.Header
52048}
52049
52050// TestIamPermissions: Returns permissions that a caller has on the
52051// specified resource.
52052func (r *BackendServicesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendServicesTestIamPermissionsCall {
52053	c := &BackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52054	c.project = project
52055	c.resource = resource
52056	c.testpermissionsrequest = testpermissionsrequest
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 *BackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendServicesTestIamPermissionsCall {
52064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52065	return c
52066}
52067
52068// Context sets the context to be used in this call's Do method. Any
52069// pending HTTP request will be aborted if the provided context is
52070// canceled.
52071func (c *BackendServicesTestIamPermissionsCall) Context(ctx context.Context) *BackendServicesTestIamPermissionsCall {
52072	c.ctx_ = ctx
52073	return c
52074}
52075
52076// Header returns an http.Header that can be modified by the caller to
52077// add HTTP headers to the request.
52078func (c *BackendServicesTestIamPermissionsCall) Header() http.Header {
52079	if c.header_ == nil {
52080		c.header_ = make(http.Header)
52081	}
52082	return c.header_
52083}
52084
52085func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
52086	reqHeaders := make(http.Header)
52087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52088	for k, v := range c.header_ {
52089		reqHeaders[k] = v
52090	}
52091	reqHeaders.Set("User-Agent", c.s.userAgent())
52092	var body io.Reader = nil
52093	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
52094	if err != nil {
52095		return nil, err
52096	}
52097	reqHeaders.Set("Content-Type", "application/json")
52098	c.urlParams_.Set("alt", alt)
52099	c.urlParams_.Set("prettyPrint", "false")
52100	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{resource}/testIamPermissions")
52101	urls += "?" + c.urlParams_.Encode()
52102	req, err := http.NewRequest("POST", urls, body)
52103	if err != nil {
52104		return nil, err
52105	}
52106	req.Header = reqHeaders
52107	googleapi.Expand(req.URL, map[string]string{
52108		"project":  c.project,
52109		"resource": c.resource,
52110	})
52111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52112}
52113
52114// Do executes the "compute.backendServices.testIamPermissions" call.
52115// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
52116// non-2xx status code is an error. Response headers are in either
52117// *TestPermissionsResponse.ServerResponse.Header or (if a response was
52118// returned at all) in error.(*googleapi.Error).Header. Use
52119// googleapi.IsNotModified to check whether the returned error was
52120// because http.StatusNotModified was returned.
52121func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
52122	gensupport.SetOptions(c.urlParams_, opts...)
52123	res, err := c.doRequest("json")
52124	if res != nil && res.StatusCode == http.StatusNotModified {
52125		if res.Body != nil {
52126			res.Body.Close()
52127		}
52128		return nil, &googleapi.Error{
52129			Code:   res.StatusCode,
52130			Header: res.Header,
52131		}
52132	}
52133	if err != nil {
52134		return nil, err
52135	}
52136	defer googleapi.CloseBody(res)
52137	if err := googleapi.CheckResponse(res); err != nil {
52138		return nil, err
52139	}
52140	ret := &TestPermissionsResponse{
52141		ServerResponse: googleapi.ServerResponse{
52142			Header:         res.Header,
52143			HTTPStatusCode: res.StatusCode,
52144		},
52145	}
52146	target := &ret
52147	if err := gensupport.DecodeResponse(target, res); err != nil {
52148		return nil, err
52149	}
52150	return ret, nil
52151	// {
52152	//   "description": "Returns permissions that a caller has on the specified resource.",
52153	//   "httpMethod": "POST",
52154	//   "id": "compute.backendServices.testIamPermissions",
52155	//   "parameterOrder": [
52156	//     "project",
52157	//     "resource"
52158	//   ],
52159	//   "parameters": {
52160	//     "project": {
52161	//       "description": "Project ID for this request.",
52162	//       "location": "path",
52163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52164	//       "required": true,
52165	//       "type": "string"
52166	//     },
52167	//     "resource": {
52168	//       "description": "Name or id of the resource for this request.",
52169	//       "location": "path",
52170	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52171	//       "required": true,
52172	//       "type": "string"
52173	//     }
52174	//   },
52175	//   "path": "{project}/global/backendServices/{resource}/testIamPermissions",
52176	//   "request": {
52177	//     "$ref": "TestPermissionsRequest"
52178	//   },
52179	//   "response": {
52180	//     "$ref": "TestPermissionsResponse"
52181	//   },
52182	//   "scopes": [
52183	//     "https://www.googleapis.com/auth/cloud-platform",
52184	//     "https://www.googleapis.com/auth/compute",
52185	//     "https://www.googleapis.com/auth/compute.readonly"
52186	//   ]
52187	// }
52188
52189}
52190
52191// method id "compute.backendServices.update":
52192
52193type BackendServicesUpdateCall struct {
52194	s              *Service
52195	project        string
52196	backendService string
52197	backendservice *BackendService
52198	urlParams_     gensupport.URLParams
52199	ctx_           context.Context
52200	header_        http.Header
52201}
52202
52203// Update: Updates the specified BackendService resource with the data
52204// included in the request. For more information, see Backend services
52205// overview.
52206// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
52207func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
52208	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52209	c.project = project
52210	c.backendService = backendService
52211	c.backendservice = backendservice
52212	return c
52213}
52214
52215// RequestId sets the optional parameter "requestId": An optional
52216// request ID to identify requests. Specify a unique request ID so that
52217// if you must retry your request, the server will know to ignore the
52218// request if it has already been completed.
52219//
52220// For example, consider a situation where you make an initial request
52221// and the request times out. If you make the request again with the
52222// same request ID, the server can check if original operation with the
52223// same request ID was received, and if so, will ignore the second
52224// request. This prevents clients from accidentally creating duplicate
52225// commitments.
52226//
52227// The request ID must be a valid UUID with the exception that zero UUID
52228// is not supported (00000000-0000-0000-0000-000000000000).
52229func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
52230	c.urlParams_.Set("requestId", requestId)
52231	return c
52232}
52233
52234// Fields allows partial responses to be retrieved. See
52235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52236// for more information.
52237func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
52238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52239	return c
52240}
52241
52242// Context sets the context to be used in this call's Do method. Any
52243// pending HTTP request will be aborted if the provided context is
52244// canceled.
52245func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
52246	c.ctx_ = ctx
52247	return c
52248}
52249
52250// Header returns an http.Header that can be modified by the caller to
52251// add HTTP headers to the request.
52252func (c *BackendServicesUpdateCall) Header() http.Header {
52253	if c.header_ == nil {
52254		c.header_ = make(http.Header)
52255	}
52256	return c.header_
52257}
52258
52259func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
52260	reqHeaders := make(http.Header)
52261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52262	for k, v := range c.header_ {
52263		reqHeaders[k] = v
52264	}
52265	reqHeaders.Set("User-Agent", c.s.userAgent())
52266	var body io.Reader = nil
52267	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
52268	if err != nil {
52269		return nil, err
52270	}
52271	reqHeaders.Set("Content-Type", "application/json")
52272	c.urlParams_.Set("alt", alt)
52273	c.urlParams_.Set("prettyPrint", "false")
52274	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
52275	urls += "?" + c.urlParams_.Encode()
52276	req, err := http.NewRequest("PUT", urls, body)
52277	if err != nil {
52278		return nil, err
52279	}
52280	req.Header = reqHeaders
52281	googleapi.Expand(req.URL, map[string]string{
52282		"project":        c.project,
52283		"backendService": c.backendService,
52284	})
52285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52286}
52287
52288// Do executes the "compute.backendServices.update" call.
52289// Exactly one of *Operation or error will be non-nil. Any non-2xx
52290// status code is an error. Response headers are in either
52291// *Operation.ServerResponse.Header or (if a response was returned at
52292// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52293// to check whether the returned error was because
52294// http.StatusNotModified was returned.
52295func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52296	gensupport.SetOptions(c.urlParams_, opts...)
52297	res, err := c.doRequest("json")
52298	if res != nil && res.StatusCode == http.StatusNotModified {
52299		if res.Body != nil {
52300			res.Body.Close()
52301		}
52302		return nil, &googleapi.Error{
52303			Code:   res.StatusCode,
52304			Header: res.Header,
52305		}
52306	}
52307	if err != nil {
52308		return nil, err
52309	}
52310	defer googleapi.CloseBody(res)
52311	if err := googleapi.CheckResponse(res); err != nil {
52312		return nil, err
52313	}
52314	ret := &Operation{
52315		ServerResponse: googleapi.ServerResponse{
52316			Header:         res.Header,
52317			HTTPStatusCode: res.StatusCode,
52318		},
52319	}
52320	target := &ret
52321	if err := gensupport.DecodeResponse(target, res); err != nil {
52322		return nil, err
52323	}
52324	return ret, nil
52325	// {
52326	//   "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.",
52327	//   "httpMethod": "PUT",
52328	//   "id": "compute.backendServices.update",
52329	//   "parameterOrder": [
52330	//     "project",
52331	//     "backendService"
52332	//   ],
52333	//   "parameters": {
52334	//     "backendService": {
52335	//       "description": "Name of the BackendService resource to update.",
52336	//       "location": "path",
52337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52338	//       "required": true,
52339	//       "type": "string"
52340	//     },
52341	//     "project": {
52342	//       "description": "Project ID for this request.",
52343	//       "location": "path",
52344	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52345	//       "required": true,
52346	//       "type": "string"
52347	//     },
52348	//     "requestId": {
52349	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52350	//       "location": "query",
52351	//       "type": "string"
52352	//     }
52353	//   },
52354	//   "path": "{project}/global/backendServices/{backendService}",
52355	//   "request": {
52356	//     "$ref": "BackendService"
52357	//   },
52358	//   "response": {
52359	//     "$ref": "Operation"
52360	//   },
52361	//   "scopes": [
52362	//     "https://www.googleapis.com/auth/cloud-platform",
52363	//     "https://www.googleapis.com/auth/compute"
52364	//   ]
52365	// }
52366
52367}
52368
52369// method id "compute.diskTypes.aggregatedList":
52370
52371type DiskTypesAggregatedListCall struct {
52372	s            *Service
52373	project      string
52374	urlParams_   gensupport.URLParams
52375	ifNoneMatch_ string
52376	ctx_         context.Context
52377	header_      http.Header
52378}
52379
52380// AggregatedList: Retrieves an aggregated list of disk types.
52381// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
52382func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
52383	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52384	c.project = project
52385	return c
52386}
52387
52388// Filter sets the optional parameter "filter": A filter expression that
52389// filters resources listed in the response. The expression must specify
52390// the field name, a comparison operator, and the value that you want to
52391// use for filtering. The value must be a string, a number, or a
52392// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52393// `<`.
52394//
52395// For example, if you are filtering Compute Engine instances, you can
52396// exclude instances named `example-instance` by specifying `name !=
52397// example-instance`.
52398//
52399// You can also filter nested fields. For example, you could specify
52400// `scheduling.automaticRestart = false` to include instances only if
52401// they are not scheduled for automatic restarts. You can use filtering
52402// on nested fields to filter based on resource labels.
52403//
52404// To filter on multiple expressions, provide each separate expression
52405// within parentheses. For example: ``` (scheduling.automaticRestart =
52406// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52407// is an `AND` expression. However, you can include `AND` and `OR`
52408// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52409// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52410// (scheduling.automaticRestart = true) ```
52411func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
52412	c.urlParams_.Set("filter", filter)
52413	return c
52414}
52415
52416// IncludeAllScopes sets the optional parameter "includeAllScopes":
52417// Indicates whether every visible scope for each scope type (zone,
52418// region, global) should be included in the response. For new resource
52419// types added after this field, the flag has no effect as new resource
52420// types will always include every visible scope for each scope type in
52421// response. For resource types which predate this field, if this flag
52422// is omitted or false, only scopes of the scope types where the
52423// resource type is expected to be found will be included.
52424func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
52425	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52426	return c
52427}
52428
52429// MaxResults sets the optional parameter "maxResults": The maximum
52430// number of results per page that should be returned. If the number of
52431// available results is larger than `maxResults`, Compute Engine returns
52432// a `nextPageToken` that can be used to get the next page of results in
52433// subsequent list requests. Acceptable values are `0` to `500`,
52434// inclusive. (Default: `500`)
52435func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
52436	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52437	return c
52438}
52439
52440// OrderBy sets the optional parameter "orderBy": Sorts list results by
52441// a certain order. By default, results are returned in alphanumerical
52442// order based on the resource name.
52443//
52444// You can also sort results in descending order based on the creation
52445// timestamp using `orderBy="creationTimestamp desc". This sorts
52446// results based on the `creationTimestamp` field in reverse
52447// chronological order (newest result first). Use this to sort resources
52448// like operations so that the newest operation is returned
52449// first.
52450//
52451// Currently, only sorting by `name` or `creationTimestamp desc` is
52452// supported.
52453func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
52454	c.urlParams_.Set("orderBy", orderBy)
52455	return c
52456}
52457
52458// PageToken sets the optional parameter "pageToken": Specifies a page
52459// token to use. Set `pageToken` to the `nextPageToken` returned by a
52460// previous list request to get the next page of results.
52461func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
52462	c.urlParams_.Set("pageToken", pageToken)
52463	return c
52464}
52465
52466// Fields allows partial responses to be retrieved. See
52467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52468// for more information.
52469func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
52470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52471	return c
52472}
52473
52474// IfNoneMatch sets the optional parameter which makes the operation
52475// fail if the object's ETag matches the given value. This is useful for
52476// getting updates only after the object has changed since the last
52477// request. Use googleapi.IsNotModified to check whether the response
52478// error from Do is the result of In-None-Match.
52479func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
52480	c.ifNoneMatch_ = entityTag
52481	return c
52482}
52483
52484// Context sets the context to be used in this call's Do method. Any
52485// pending HTTP request will be aborted if the provided context is
52486// canceled.
52487func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
52488	c.ctx_ = ctx
52489	return c
52490}
52491
52492// Header returns an http.Header that can be modified by the caller to
52493// add HTTP headers to the request.
52494func (c *DiskTypesAggregatedListCall) Header() http.Header {
52495	if c.header_ == nil {
52496		c.header_ = make(http.Header)
52497	}
52498	return c.header_
52499}
52500
52501func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52502	reqHeaders := make(http.Header)
52503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52504	for k, v := range c.header_ {
52505		reqHeaders[k] = v
52506	}
52507	reqHeaders.Set("User-Agent", c.s.userAgent())
52508	if c.ifNoneMatch_ != "" {
52509		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52510	}
52511	var body io.Reader = nil
52512	c.urlParams_.Set("alt", alt)
52513	c.urlParams_.Set("prettyPrint", "false")
52514	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
52515	urls += "?" + c.urlParams_.Encode()
52516	req, err := http.NewRequest("GET", urls, body)
52517	if err != nil {
52518		return nil, err
52519	}
52520	req.Header = reqHeaders
52521	googleapi.Expand(req.URL, map[string]string{
52522		"project": c.project,
52523	})
52524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52525}
52526
52527// Do executes the "compute.diskTypes.aggregatedList" call.
52528// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
52529// non-2xx status code is an error. Response headers are in either
52530// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
52531// returned at all) in error.(*googleapi.Error).Header. Use
52532// googleapi.IsNotModified to check whether the returned error was
52533// because http.StatusNotModified was returned.
52534func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
52535	gensupport.SetOptions(c.urlParams_, opts...)
52536	res, err := c.doRequest("json")
52537	if res != nil && res.StatusCode == http.StatusNotModified {
52538		if res.Body != nil {
52539			res.Body.Close()
52540		}
52541		return nil, &googleapi.Error{
52542			Code:   res.StatusCode,
52543			Header: res.Header,
52544		}
52545	}
52546	if err != nil {
52547		return nil, err
52548	}
52549	defer googleapi.CloseBody(res)
52550	if err := googleapi.CheckResponse(res); err != nil {
52551		return nil, err
52552	}
52553	ret := &DiskTypeAggregatedList{
52554		ServerResponse: googleapi.ServerResponse{
52555			Header:         res.Header,
52556			HTTPStatusCode: res.StatusCode,
52557		},
52558	}
52559	target := &ret
52560	if err := gensupport.DecodeResponse(target, res); err != nil {
52561		return nil, err
52562	}
52563	return ret, nil
52564	// {
52565	//   "description": "Retrieves an aggregated list of disk types.",
52566	//   "httpMethod": "GET",
52567	//   "id": "compute.diskTypes.aggregatedList",
52568	//   "parameterOrder": [
52569	//     "project"
52570	//   ],
52571	//   "parameters": {
52572	//     "filter": {
52573	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52574	//       "location": "query",
52575	//       "type": "string"
52576	//     },
52577	//     "includeAllScopes": {
52578	//       "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.",
52579	//       "location": "query",
52580	//       "type": "boolean"
52581	//     },
52582	//     "maxResults": {
52583	//       "default": "500",
52584	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52585	//       "format": "uint32",
52586	//       "location": "query",
52587	//       "minimum": "0",
52588	//       "type": "integer"
52589	//     },
52590	//     "orderBy": {
52591	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
52592	//       "location": "query",
52593	//       "type": "string"
52594	//     },
52595	//     "pageToken": {
52596	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52597	//       "location": "query",
52598	//       "type": "string"
52599	//     },
52600	//     "project": {
52601	//       "description": "Project ID for this request.",
52602	//       "location": "path",
52603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52604	//       "required": true,
52605	//       "type": "string"
52606	//     }
52607	//   },
52608	//   "path": "{project}/aggregated/diskTypes",
52609	//   "response": {
52610	//     "$ref": "DiskTypeAggregatedList"
52611	//   },
52612	//   "scopes": [
52613	//     "https://www.googleapis.com/auth/cloud-platform",
52614	//     "https://www.googleapis.com/auth/compute",
52615	//     "https://www.googleapis.com/auth/compute.readonly"
52616	//   ]
52617	// }
52618
52619}
52620
52621// Pages invokes f for each page of results.
52622// A non-nil error returned from f will halt the iteration.
52623// The provided context supersedes any context provided to the Context method.
52624func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
52625	c.ctx_ = ctx
52626	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52627	for {
52628		x, err := c.Do()
52629		if err != nil {
52630			return err
52631		}
52632		if err := f(x); err != nil {
52633			return err
52634		}
52635		if x.NextPageToken == "" {
52636			return nil
52637		}
52638		c.PageToken(x.NextPageToken)
52639	}
52640}
52641
52642// method id "compute.diskTypes.get":
52643
52644type DiskTypesGetCall struct {
52645	s            *Service
52646	project      string
52647	zone         string
52648	diskType     string
52649	urlParams_   gensupport.URLParams
52650	ifNoneMatch_ string
52651	ctx_         context.Context
52652	header_      http.Header
52653}
52654
52655// Get: Returns the specified disk type. Gets a list of available disk
52656// types by making a list() request.
52657// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
52658func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
52659	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52660	c.project = project
52661	c.zone = zone
52662	c.diskType = diskType
52663	return c
52664}
52665
52666// Fields allows partial responses to be retrieved. See
52667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52668// for more information.
52669func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
52670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52671	return c
52672}
52673
52674// IfNoneMatch sets the optional parameter which makes the operation
52675// fail if the object's ETag matches the given value. This is useful for
52676// getting updates only after the object has changed since the last
52677// request. Use googleapi.IsNotModified to check whether the response
52678// error from Do is the result of In-None-Match.
52679func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
52680	c.ifNoneMatch_ = entityTag
52681	return c
52682}
52683
52684// Context sets the context to be used in this call's Do method. Any
52685// pending HTTP request will be aborted if the provided context is
52686// canceled.
52687func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
52688	c.ctx_ = ctx
52689	return c
52690}
52691
52692// Header returns an http.Header that can be modified by the caller to
52693// add HTTP headers to the request.
52694func (c *DiskTypesGetCall) Header() http.Header {
52695	if c.header_ == nil {
52696		c.header_ = make(http.Header)
52697	}
52698	return c.header_
52699}
52700
52701func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
52702	reqHeaders := make(http.Header)
52703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52704	for k, v := range c.header_ {
52705		reqHeaders[k] = v
52706	}
52707	reqHeaders.Set("User-Agent", c.s.userAgent())
52708	if c.ifNoneMatch_ != "" {
52709		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52710	}
52711	var body io.Reader = nil
52712	c.urlParams_.Set("alt", alt)
52713	c.urlParams_.Set("prettyPrint", "false")
52714	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
52715	urls += "?" + c.urlParams_.Encode()
52716	req, err := http.NewRequest("GET", urls, body)
52717	if err != nil {
52718		return nil, err
52719	}
52720	req.Header = reqHeaders
52721	googleapi.Expand(req.URL, map[string]string{
52722		"project":  c.project,
52723		"zone":     c.zone,
52724		"diskType": c.diskType,
52725	})
52726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52727}
52728
52729// Do executes the "compute.diskTypes.get" call.
52730// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
52731// code is an error. Response headers are in either
52732// *DiskType.ServerResponse.Header or (if a response was returned at
52733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52734// to check whether the returned error was because
52735// http.StatusNotModified was returned.
52736func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
52737	gensupport.SetOptions(c.urlParams_, opts...)
52738	res, err := c.doRequest("json")
52739	if res != nil && res.StatusCode == http.StatusNotModified {
52740		if res.Body != nil {
52741			res.Body.Close()
52742		}
52743		return nil, &googleapi.Error{
52744			Code:   res.StatusCode,
52745			Header: res.Header,
52746		}
52747	}
52748	if err != nil {
52749		return nil, err
52750	}
52751	defer googleapi.CloseBody(res)
52752	if err := googleapi.CheckResponse(res); err != nil {
52753		return nil, err
52754	}
52755	ret := &DiskType{
52756		ServerResponse: googleapi.ServerResponse{
52757			Header:         res.Header,
52758			HTTPStatusCode: res.StatusCode,
52759		},
52760	}
52761	target := &ret
52762	if err := gensupport.DecodeResponse(target, res); err != nil {
52763		return nil, err
52764	}
52765	return ret, nil
52766	// {
52767	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
52768	//   "httpMethod": "GET",
52769	//   "id": "compute.diskTypes.get",
52770	//   "parameterOrder": [
52771	//     "project",
52772	//     "zone",
52773	//     "diskType"
52774	//   ],
52775	//   "parameters": {
52776	//     "diskType": {
52777	//       "description": "Name of the disk type to return.",
52778	//       "location": "path",
52779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52780	//       "required": true,
52781	//       "type": "string"
52782	//     },
52783	//     "project": {
52784	//       "description": "Project ID for this request.",
52785	//       "location": "path",
52786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52787	//       "required": true,
52788	//       "type": "string"
52789	//     },
52790	//     "zone": {
52791	//       "description": "The name of the zone for this request.",
52792	//       "location": "path",
52793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52794	//       "required": true,
52795	//       "type": "string"
52796	//     }
52797	//   },
52798	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
52799	//   "response": {
52800	//     "$ref": "DiskType"
52801	//   },
52802	//   "scopes": [
52803	//     "https://www.googleapis.com/auth/cloud-platform",
52804	//     "https://www.googleapis.com/auth/compute",
52805	//     "https://www.googleapis.com/auth/compute.readonly"
52806	//   ]
52807	// }
52808
52809}
52810
52811// method id "compute.diskTypes.list":
52812
52813type DiskTypesListCall struct {
52814	s            *Service
52815	project      string
52816	zone         string
52817	urlParams_   gensupport.URLParams
52818	ifNoneMatch_ string
52819	ctx_         context.Context
52820	header_      http.Header
52821}
52822
52823// List: Retrieves a list of disk types available to the specified
52824// project.
52825// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
52826func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
52827	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52828	c.project = project
52829	c.zone = zone
52830	return c
52831}
52832
52833// Filter sets the optional parameter "filter": A filter expression that
52834// filters resources listed in the response. The expression must specify
52835// the field name, a comparison operator, and the value that you want to
52836// use for filtering. The value must be a string, a number, or a
52837// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52838// `<`.
52839//
52840// For example, if you are filtering Compute Engine instances, you can
52841// exclude instances named `example-instance` by specifying `name !=
52842// example-instance`.
52843//
52844// You can also filter nested fields. For example, you could specify
52845// `scheduling.automaticRestart = false` to include instances only if
52846// they are not scheduled for automatic restarts. You can use filtering
52847// on nested fields to filter based on resource labels.
52848//
52849// To filter on multiple expressions, provide each separate expression
52850// within parentheses. For example: ``` (scheduling.automaticRestart =
52851// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52852// is an `AND` expression. However, you can include `AND` and `OR`
52853// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52854// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52855// (scheduling.automaticRestart = true) ```
52856func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
52857	c.urlParams_.Set("filter", filter)
52858	return c
52859}
52860
52861// MaxResults sets the optional parameter "maxResults": The maximum
52862// number of results per page that should be returned. If the number of
52863// available results is larger than `maxResults`, Compute Engine returns
52864// a `nextPageToken` that can be used to get the next page of results in
52865// subsequent list requests. Acceptable values are `0` to `500`,
52866// inclusive. (Default: `500`)
52867func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
52868	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52869	return c
52870}
52871
52872// OrderBy sets the optional parameter "orderBy": Sorts list results by
52873// a certain order. By default, results are returned in alphanumerical
52874// order based on the resource name.
52875//
52876// You can also sort results in descending order based on the creation
52877// timestamp using `orderBy="creationTimestamp desc". This sorts
52878// results based on the `creationTimestamp` field in reverse
52879// chronological order (newest result first). Use this to sort resources
52880// like operations so that the newest operation is returned
52881// first.
52882//
52883// Currently, only sorting by `name` or `creationTimestamp desc` is
52884// supported.
52885func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
52886	c.urlParams_.Set("orderBy", orderBy)
52887	return c
52888}
52889
52890// PageToken sets the optional parameter "pageToken": Specifies a page
52891// token to use. Set `pageToken` to the `nextPageToken` returned by a
52892// previous list request to get the next page of results.
52893func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
52894	c.urlParams_.Set("pageToken", pageToken)
52895	return c
52896}
52897
52898// Fields allows partial responses to be retrieved. See
52899// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52900// for more information.
52901func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
52902	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52903	return c
52904}
52905
52906// IfNoneMatch sets the optional parameter which makes the operation
52907// fail if the object's ETag matches the given value. This is useful for
52908// getting updates only after the object has changed since the last
52909// request. Use googleapi.IsNotModified to check whether the response
52910// error from Do is the result of In-None-Match.
52911func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
52912	c.ifNoneMatch_ = entityTag
52913	return c
52914}
52915
52916// Context sets the context to be used in this call's Do method. Any
52917// pending HTTP request will be aborted if the provided context is
52918// canceled.
52919func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
52920	c.ctx_ = ctx
52921	return c
52922}
52923
52924// Header returns an http.Header that can be modified by the caller to
52925// add HTTP headers to the request.
52926func (c *DiskTypesListCall) Header() http.Header {
52927	if c.header_ == nil {
52928		c.header_ = make(http.Header)
52929	}
52930	return c.header_
52931}
52932
52933func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
52934	reqHeaders := make(http.Header)
52935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
52936	for k, v := range c.header_ {
52937		reqHeaders[k] = v
52938	}
52939	reqHeaders.Set("User-Agent", c.s.userAgent())
52940	if c.ifNoneMatch_ != "" {
52941		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52942	}
52943	var body io.Reader = nil
52944	c.urlParams_.Set("alt", alt)
52945	c.urlParams_.Set("prettyPrint", "false")
52946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
52947	urls += "?" + c.urlParams_.Encode()
52948	req, err := http.NewRequest("GET", urls, body)
52949	if err != nil {
52950		return nil, err
52951	}
52952	req.Header = reqHeaders
52953	googleapi.Expand(req.URL, map[string]string{
52954		"project": c.project,
52955		"zone":    c.zone,
52956	})
52957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52958}
52959
52960// Do executes the "compute.diskTypes.list" call.
52961// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
52962// status code is an error. Response headers are in either
52963// *DiskTypeList.ServerResponse.Header or (if a response was returned at
52964// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52965// to check whether the returned error was because
52966// http.StatusNotModified was returned.
52967func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
52968	gensupport.SetOptions(c.urlParams_, opts...)
52969	res, err := c.doRequest("json")
52970	if res != nil && res.StatusCode == http.StatusNotModified {
52971		if res.Body != nil {
52972			res.Body.Close()
52973		}
52974		return nil, &googleapi.Error{
52975			Code:   res.StatusCode,
52976			Header: res.Header,
52977		}
52978	}
52979	if err != nil {
52980		return nil, err
52981	}
52982	defer googleapi.CloseBody(res)
52983	if err := googleapi.CheckResponse(res); err != nil {
52984		return nil, err
52985	}
52986	ret := &DiskTypeList{
52987		ServerResponse: googleapi.ServerResponse{
52988			Header:         res.Header,
52989			HTTPStatusCode: res.StatusCode,
52990		},
52991	}
52992	target := &ret
52993	if err := gensupport.DecodeResponse(target, res); err != nil {
52994		return nil, err
52995	}
52996	return ret, nil
52997	// {
52998	//   "description": "Retrieves a list of disk types available to the specified project.",
52999	//   "httpMethod": "GET",
53000	//   "id": "compute.diskTypes.list",
53001	//   "parameterOrder": [
53002	//     "project",
53003	//     "zone"
53004	//   ],
53005	//   "parameters": {
53006	//     "filter": {
53007	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
53008	//       "location": "query",
53009	//       "type": "string"
53010	//     },
53011	//     "maxResults": {
53012	//       "default": "500",
53013	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53014	//       "format": "uint32",
53015	//       "location": "query",
53016	//       "minimum": "0",
53017	//       "type": "integer"
53018	//     },
53019	//     "orderBy": {
53020	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
53021	//       "location": "query",
53022	//       "type": "string"
53023	//     },
53024	//     "pageToken": {
53025	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53026	//       "location": "query",
53027	//       "type": "string"
53028	//     },
53029	//     "project": {
53030	//       "description": "Project ID for this request.",
53031	//       "location": "path",
53032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53033	//       "required": true,
53034	//       "type": "string"
53035	//     },
53036	//     "zone": {
53037	//       "description": "The name of the zone for this request.",
53038	//       "location": "path",
53039	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53040	//       "required": true,
53041	//       "type": "string"
53042	//     }
53043	//   },
53044	//   "path": "{project}/zones/{zone}/diskTypes",
53045	//   "response": {
53046	//     "$ref": "DiskTypeList"
53047	//   },
53048	//   "scopes": [
53049	//     "https://www.googleapis.com/auth/cloud-platform",
53050	//     "https://www.googleapis.com/auth/compute",
53051	//     "https://www.googleapis.com/auth/compute.readonly"
53052	//   ]
53053	// }
53054
53055}
53056
53057// Pages invokes f for each page of results.
53058// A non-nil error returned from f will halt the iteration.
53059// The provided context supersedes any context provided to the Context method.
53060func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
53061	c.ctx_ = ctx
53062	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53063	for {
53064		x, err := c.Do()
53065		if err != nil {
53066			return err
53067		}
53068		if err := f(x); err != nil {
53069			return err
53070		}
53071		if x.NextPageToken == "" {
53072			return nil
53073		}
53074		c.PageToken(x.NextPageToken)
53075	}
53076}
53077
53078// method id "compute.disks.addResourcePolicies":
53079
53080type DisksAddResourcePoliciesCall struct {
53081	s                               *Service
53082	project                         string
53083	zone                            string
53084	disk                            string
53085	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
53086	urlParams_                      gensupport.URLParams
53087	ctx_                            context.Context
53088	header_                         http.Header
53089}
53090
53091// AddResourcePolicies: Adds existing resource policies to a disk. You
53092// can only add one policy which will be applied to this disk for
53093// scheduling snapshot creation.
53094func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
53095	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53096	c.project = project
53097	c.zone = zone
53098	c.disk = disk
53099	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
53100	return c
53101}
53102
53103// RequestId sets the optional parameter "requestId": An optional
53104// request ID to identify requests. Specify a unique request ID so that
53105// if you must retry your request, the server will know to ignore the
53106// request if it has already been completed.
53107//
53108// For example, consider a situation where you make an initial request
53109// and the request times out. If you make the request again with the
53110// same request ID, the server can check if original operation with the
53111// same request ID was received, and if so, will ignore the second
53112// request. This prevents clients from accidentally creating duplicate
53113// commitments.
53114//
53115// The request ID must be a valid UUID with the exception that zero UUID
53116// is not supported (00000000-0000-0000-0000-000000000000).
53117func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
53118	c.urlParams_.Set("requestId", requestId)
53119	return c
53120}
53121
53122// Fields allows partial responses to be retrieved. See
53123// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53124// for more information.
53125func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
53126	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53127	return c
53128}
53129
53130// Context sets the context to be used in this call's Do method. Any
53131// pending HTTP request will be aborted if the provided context is
53132// canceled.
53133func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
53134	c.ctx_ = ctx
53135	return c
53136}
53137
53138// Header returns an http.Header that can be modified by the caller to
53139// add HTTP headers to the request.
53140func (c *DisksAddResourcePoliciesCall) Header() http.Header {
53141	if c.header_ == nil {
53142		c.header_ = make(http.Header)
53143	}
53144	return c.header_
53145}
53146
53147func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
53148	reqHeaders := make(http.Header)
53149	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53150	for k, v := range c.header_ {
53151		reqHeaders[k] = v
53152	}
53153	reqHeaders.Set("User-Agent", c.s.userAgent())
53154	var body io.Reader = nil
53155	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
53156	if err != nil {
53157		return nil, err
53158	}
53159	reqHeaders.Set("Content-Type", "application/json")
53160	c.urlParams_.Set("alt", alt)
53161	c.urlParams_.Set("prettyPrint", "false")
53162	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
53163	urls += "?" + c.urlParams_.Encode()
53164	req, err := http.NewRequest("POST", urls, body)
53165	if err != nil {
53166		return nil, err
53167	}
53168	req.Header = reqHeaders
53169	googleapi.Expand(req.URL, map[string]string{
53170		"project": c.project,
53171		"zone":    c.zone,
53172		"disk":    c.disk,
53173	})
53174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53175}
53176
53177// Do executes the "compute.disks.addResourcePolicies" call.
53178// Exactly one of *Operation or error will be non-nil. Any non-2xx
53179// status code is an error. Response headers are in either
53180// *Operation.ServerResponse.Header or (if a response was returned at
53181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53182// to check whether the returned error was because
53183// http.StatusNotModified was returned.
53184func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53185	gensupport.SetOptions(c.urlParams_, opts...)
53186	res, err := c.doRequest("json")
53187	if res != nil && res.StatusCode == http.StatusNotModified {
53188		if res.Body != nil {
53189			res.Body.Close()
53190		}
53191		return nil, &googleapi.Error{
53192			Code:   res.StatusCode,
53193			Header: res.Header,
53194		}
53195	}
53196	if err != nil {
53197		return nil, err
53198	}
53199	defer googleapi.CloseBody(res)
53200	if err := googleapi.CheckResponse(res); err != nil {
53201		return nil, err
53202	}
53203	ret := &Operation{
53204		ServerResponse: googleapi.ServerResponse{
53205			Header:         res.Header,
53206			HTTPStatusCode: res.StatusCode,
53207		},
53208	}
53209	target := &ret
53210	if err := gensupport.DecodeResponse(target, res); err != nil {
53211		return nil, err
53212	}
53213	return ret, nil
53214	// {
53215	//   "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.",
53216	//   "httpMethod": "POST",
53217	//   "id": "compute.disks.addResourcePolicies",
53218	//   "parameterOrder": [
53219	//     "project",
53220	//     "zone",
53221	//     "disk"
53222	//   ],
53223	//   "parameters": {
53224	//     "disk": {
53225	//       "description": "The disk name for this request.",
53226	//       "location": "path",
53227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53228	//       "required": true,
53229	//       "type": "string"
53230	//     },
53231	//     "project": {
53232	//       "description": "Project ID for this request.",
53233	//       "location": "path",
53234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53235	//       "required": true,
53236	//       "type": "string"
53237	//     },
53238	//     "requestId": {
53239	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53240	//       "location": "query",
53241	//       "type": "string"
53242	//     },
53243	//     "zone": {
53244	//       "description": "The name of the zone for this request.",
53245	//       "location": "path",
53246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53247	//       "required": true,
53248	//       "type": "string"
53249	//     }
53250	//   },
53251	//   "path": "{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
53252	//   "request": {
53253	//     "$ref": "DisksAddResourcePoliciesRequest"
53254	//   },
53255	//   "response": {
53256	//     "$ref": "Operation"
53257	//   },
53258	//   "scopes": [
53259	//     "https://www.googleapis.com/auth/cloud-platform",
53260	//     "https://www.googleapis.com/auth/compute"
53261	//   ]
53262	// }
53263
53264}
53265
53266// method id "compute.disks.aggregatedList":
53267
53268type DisksAggregatedListCall struct {
53269	s            *Service
53270	project      string
53271	urlParams_   gensupport.URLParams
53272	ifNoneMatch_ string
53273	ctx_         context.Context
53274	header_      http.Header
53275}
53276
53277// AggregatedList: Retrieves an aggregated list of persistent disks.
53278// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
53279func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
53280	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53281	c.project = project
53282	return c
53283}
53284
53285// Filter sets the optional parameter "filter": A filter expression that
53286// filters resources listed in the response. The expression must specify
53287// the field name, a comparison operator, and the value that you want to
53288// use for filtering. The value must be a string, a number, or a
53289// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53290// `<`.
53291//
53292// For example, if you are filtering Compute Engine instances, you can
53293// exclude instances named `example-instance` by specifying `name !=
53294// example-instance`.
53295//
53296// You can also filter nested fields. For example, you could specify
53297// `scheduling.automaticRestart = false` to include instances only if
53298// they are not scheduled for automatic restarts. You can use filtering
53299// on nested fields to filter based on resource labels.
53300//
53301// To filter on multiple expressions, provide each separate expression
53302// within parentheses. For example: ``` (scheduling.automaticRestart =
53303// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
53304// is an `AND` expression. However, you can include `AND` and `OR`
53305// expressions explicitly. For example: ``` (cpuPlatform = "Intel
53306// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
53307// (scheduling.automaticRestart = true) ```
53308func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
53309	c.urlParams_.Set("filter", filter)
53310	return c
53311}
53312
53313// IncludeAllScopes sets the optional parameter "includeAllScopes":
53314// Indicates whether every visible scope for each scope type (zone,
53315// region, global) should be included in the response. For new resource
53316// types added after this field, the flag has no effect as new resource
53317// types will always include every visible scope for each scope type in
53318// response. For resource types which predate this field, if this flag
53319// is omitted or false, only scopes of the scope types where the
53320// resource type is expected to be found will be included.
53321func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
53322	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
53323	return c
53324}
53325
53326// MaxResults sets the optional parameter "maxResults": The maximum
53327// number of results per page that should be returned. If the number of
53328// available results is larger than `maxResults`, Compute Engine returns
53329// a `nextPageToken` that can be used to get the next page of results in
53330// subsequent list requests. Acceptable values are `0` to `500`,
53331// inclusive. (Default: `500`)
53332func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
53333	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53334	return c
53335}
53336
53337// OrderBy sets the optional parameter "orderBy": Sorts list results by
53338// a certain order. By default, results are returned in alphanumerical
53339// order based on the resource name.
53340//
53341// You can also sort results in descending order based on the creation
53342// timestamp using `orderBy="creationTimestamp desc". This sorts
53343// results based on the `creationTimestamp` field in reverse
53344// chronological order (newest result first). Use this to sort resources
53345// like operations so that the newest operation is returned
53346// first.
53347//
53348// Currently, only sorting by `name` or `creationTimestamp desc` is
53349// supported.
53350func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
53351	c.urlParams_.Set("orderBy", orderBy)
53352	return c
53353}
53354
53355// PageToken sets the optional parameter "pageToken": Specifies a page
53356// token to use. Set `pageToken` to the `nextPageToken` returned by a
53357// previous list request to get the next page of results.
53358func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
53359	c.urlParams_.Set("pageToken", pageToken)
53360	return c
53361}
53362
53363// Fields allows partial responses to be retrieved. See
53364// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53365// for more information.
53366func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
53367	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53368	return c
53369}
53370
53371// IfNoneMatch sets the optional parameter which makes the operation
53372// fail if the object's ETag matches the given value. This is useful for
53373// getting updates only after the object has changed since the last
53374// request. Use googleapi.IsNotModified to check whether the response
53375// error from Do is the result of In-None-Match.
53376func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
53377	c.ifNoneMatch_ = entityTag
53378	return c
53379}
53380
53381// Context sets the context to be used in this call's Do method. Any
53382// pending HTTP request will be aborted if the provided context is
53383// canceled.
53384func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
53385	c.ctx_ = ctx
53386	return c
53387}
53388
53389// Header returns an http.Header that can be modified by the caller to
53390// add HTTP headers to the request.
53391func (c *DisksAggregatedListCall) Header() http.Header {
53392	if c.header_ == nil {
53393		c.header_ = make(http.Header)
53394	}
53395	return c.header_
53396}
53397
53398func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
53399	reqHeaders := make(http.Header)
53400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53401	for k, v := range c.header_ {
53402		reqHeaders[k] = v
53403	}
53404	reqHeaders.Set("User-Agent", c.s.userAgent())
53405	if c.ifNoneMatch_ != "" {
53406		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53407	}
53408	var body io.Reader = nil
53409	c.urlParams_.Set("alt", alt)
53410	c.urlParams_.Set("prettyPrint", "false")
53411	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
53412	urls += "?" + c.urlParams_.Encode()
53413	req, err := http.NewRequest("GET", urls, body)
53414	if err != nil {
53415		return nil, err
53416	}
53417	req.Header = reqHeaders
53418	googleapi.Expand(req.URL, map[string]string{
53419		"project": c.project,
53420	})
53421	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53422}
53423
53424// Do executes the "compute.disks.aggregatedList" call.
53425// Exactly one of *DiskAggregatedList or error will be non-nil. Any
53426// non-2xx status code is an error. Response headers are in either
53427// *DiskAggregatedList.ServerResponse.Header or (if a response was
53428// returned at all) in error.(*googleapi.Error).Header. Use
53429// googleapi.IsNotModified to check whether the returned error was
53430// because http.StatusNotModified was returned.
53431func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
53432	gensupport.SetOptions(c.urlParams_, opts...)
53433	res, err := c.doRequest("json")
53434	if res != nil && res.StatusCode == http.StatusNotModified {
53435		if res.Body != nil {
53436			res.Body.Close()
53437		}
53438		return nil, &googleapi.Error{
53439			Code:   res.StatusCode,
53440			Header: res.Header,
53441		}
53442	}
53443	if err != nil {
53444		return nil, err
53445	}
53446	defer googleapi.CloseBody(res)
53447	if err := googleapi.CheckResponse(res); err != nil {
53448		return nil, err
53449	}
53450	ret := &DiskAggregatedList{
53451		ServerResponse: googleapi.ServerResponse{
53452			Header:         res.Header,
53453			HTTPStatusCode: res.StatusCode,
53454		},
53455	}
53456	target := &ret
53457	if err := gensupport.DecodeResponse(target, res); err != nil {
53458		return nil, err
53459	}
53460	return ret, nil
53461	// {
53462	//   "description": "Retrieves an aggregated list of persistent disks.",
53463	//   "httpMethod": "GET",
53464	//   "id": "compute.disks.aggregatedList",
53465	//   "parameterOrder": [
53466	//     "project"
53467	//   ],
53468	//   "parameters": {
53469	//     "filter": {
53470	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
53471	//       "location": "query",
53472	//       "type": "string"
53473	//     },
53474	//     "includeAllScopes": {
53475	//       "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.",
53476	//       "location": "query",
53477	//       "type": "boolean"
53478	//     },
53479	//     "maxResults": {
53480	//       "default": "500",
53481	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53482	//       "format": "uint32",
53483	//       "location": "query",
53484	//       "minimum": "0",
53485	//       "type": "integer"
53486	//     },
53487	//     "orderBy": {
53488	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
53489	//       "location": "query",
53490	//       "type": "string"
53491	//     },
53492	//     "pageToken": {
53493	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53494	//       "location": "query",
53495	//       "type": "string"
53496	//     },
53497	//     "project": {
53498	//       "description": "Project ID for this request.",
53499	//       "location": "path",
53500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53501	//       "required": true,
53502	//       "type": "string"
53503	//     }
53504	//   },
53505	//   "path": "{project}/aggregated/disks",
53506	//   "response": {
53507	//     "$ref": "DiskAggregatedList"
53508	//   },
53509	//   "scopes": [
53510	//     "https://www.googleapis.com/auth/cloud-platform",
53511	//     "https://www.googleapis.com/auth/compute",
53512	//     "https://www.googleapis.com/auth/compute.readonly"
53513	//   ]
53514	// }
53515
53516}
53517
53518// Pages invokes f for each page of results.
53519// A non-nil error returned from f will halt the iteration.
53520// The provided context supersedes any context provided to the Context method.
53521func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
53522	c.ctx_ = ctx
53523	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53524	for {
53525		x, err := c.Do()
53526		if err != nil {
53527			return err
53528		}
53529		if err := f(x); err != nil {
53530			return err
53531		}
53532		if x.NextPageToken == "" {
53533			return nil
53534		}
53535		c.PageToken(x.NextPageToken)
53536	}
53537}
53538
53539// method id "compute.disks.createSnapshot":
53540
53541type DisksCreateSnapshotCall struct {
53542	s          *Service
53543	project    string
53544	zone       string
53545	disk       string
53546	snapshot   *Snapshot
53547	urlParams_ gensupport.URLParams
53548	ctx_       context.Context
53549	header_    http.Header
53550}
53551
53552// CreateSnapshot: Creates a snapshot of a specified persistent disk.
53553// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
53554func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
53555	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53556	c.project = project
53557	c.zone = zone
53558	c.disk = disk
53559	c.snapshot = snapshot
53560	return c
53561}
53562
53563// GuestFlush sets the optional parameter "guestFlush": [Input Only]
53564// Specifies to create an application consistent snapshot by informing
53565// the OS to prepare for the snapshot process. Currently only supported
53566// on Windows instances using the Volume Shadow Copy Service (VSS).
53567func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
53568	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
53569	return c
53570}
53571
53572// RequestId sets the optional parameter "requestId": An optional
53573// request ID to identify requests. Specify a unique request ID so that
53574// if you must retry your request, the server will know to ignore the
53575// request if it has already been completed.
53576//
53577// For example, consider a situation where you make an initial request
53578// and the request times out. If you make the request again with the
53579// same request ID, the server can check if original operation with the
53580// same request ID was received, and if so, will ignore the second
53581// request. This prevents clients from accidentally creating duplicate
53582// commitments.
53583//
53584// The request ID must be a valid UUID with the exception that zero UUID
53585// is not supported (00000000-0000-0000-0000-000000000000).
53586func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
53587	c.urlParams_.Set("requestId", requestId)
53588	return c
53589}
53590
53591// Fields allows partial responses to be retrieved. See
53592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53593// for more information.
53594func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
53595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53596	return c
53597}
53598
53599// Context sets the context to be used in this call's Do method. Any
53600// pending HTTP request will be aborted if the provided context is
53601// canceled.
53602func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
53603	c.ctx_ = ctx
53604	return c
53605}
53606
53607// Header returns an http.Header that can be modified by the caller to
53608// add HTTP headers to the request.
53609func (c *DisksCreateSnapshotCall) Header() http.Header {
53610	if c.header_ == nil {
53611		c.header_ = make(http.Header)
53612	}
53613	return c.header_
53614}
53615
53616func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
53617	reqHeaders := make(http.Header)
53618	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53619	for k, v := range c.header_ {
53620		reqHeaders[k] = v
53621	}
53622	reqHeaders.Set("User-Agent", c.s.userAgent())
53623	var body io.Reader = nil
53624	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
53625	if err != nil {
53626		return nil, err
53627	}
53628	reqHeaders.Set("Content-Type", "application/json")
53629	c.urlParams_.Set("alt", alt)
53630	c.urlParams_.Set("prettyPrint", "false")
53631	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
53632	urls += "?" + c.urlParams_.Encode()
53633	req, err := http.NewRequest("POST", urls, body)
53634	if err != nil {
53635		return nil, err
53636	}
53637	req.Header = reqHeaders
53638	googleapi.Expand(req.URL, map[string]string{
53639		"project": c.project,
53640		"zone":    c.zone,
53641		"disk":    c.disk,
53642	})
53643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53644}
53645
53646// Do executes the "compute.disks.createSnapshot" call.
53647// Exactly one of *Operation or error will be non-nil. Any non-2xx
53648// status code is an error. Response headers are in either
53649// *Operation.ServerResponse.Header or (if a response was returned at
53650// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53651// to check whether the returned error was because
53652// http.StatusNotModified was returned.
53653func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53654	gensupport.SetOptions(c.urlParams_, opts...)
53655	res, err := c.doRequest("json")
53656	if res != nil && res.StatusCode == http.StatusNotModified {
53657		if res.Body != nil {
53658			res.Body.Close()
53659		}
53660		return nil, &googleapi.Error{
53661			Code:   res.StatusCode,
53662			Header: res.Header,
53663		}
53664	}
53665	if err != nil {
53666		return nil, err
53667	}
53668	defer googleapi.CloseBody(res)
53669	if err := googleapi.CheckResponse(res); err != nil {
53670		return nil, err
53671	}
53672	ret := &Operation{
53673		ServerResponse: googleapi.ServerResponse{
53674			Header:         res.Header,
53675			HTTPStatusCode: res.StatusCode,
53676		},
53677	}
53678	target := &ret
53679	if err := gensupport.DecodeResponse(target, res); err != nil {
53680		return nil, err
53681	}
53682	return ret, nil
53683	// {
53684	//   "description": "Creates a snapshot of a specified persistent disk.",
53685	//   "httpMethod": "POST",
53686	//   "id": "compute.disks.createSnapshot",
53687	//   "parameterOrder": [
53688	//     "project",
53689	//     "zone",
53690	//     "disk"
53691	//   ],
53692	//   "parameters": {
53693	//     "disk": {
53694	//       "description": "Name of the persistent disk to snapshot.",
53695	//       "location": "path",
53696	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53697	//       "required": true,
53698	//       "type": "string"
53699	//     },
53700	//     "guestFlush": {
53701	//       "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).",
53702	//       "location": "query",
53703	//       "type": "boolean"
53704	//     },
53705	//     "project": {
53706	//       "description": "Project ID for this request.",
53707	//       "location": "path",
53708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53709	//       "required": true,
53710	//       "type": "string"
53711	//     },
53712	//     "requestId": {
53713	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53714	//       "location": "query",
53715	//       "type": "string"
53716	//     },
53717	//     "zone": {
53718	//       "description": "The name of the zone for this request.",
53719	//       "location": "path",
53720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53721	//       "required": true,
53722	//       "type": "string"
53723	//     }
53724	//   },
53725	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
53726	//   "request": {
53727	//     "$ref": "Snapshot"
53728	//   },
53729	//   "response": {
53730	//     "$ref": "Operation"
53731	//   },
53732	//   "scopes": [
53733	//     "https://www.googleapis.com/auth/cloud-platform",
53734	//     "https://www.googleapis.com/auth/compute"
53735	//   ]
53736	// }
53737
53738}
53739
53740// method id "compute.disks.delete":
53741
53742type DisksDeleteCall struct {
53743	s          *Service
53744	project    string
53745	zone       string
53746	disk       string
53747	urlParams_ gensupport.URLParams
53748	ctx_       context.Context
53749	header_    http.Header
53750}
53751
53752// Delete: Deletes the specified persistent disk. Deleting a disk
53753// removes its data permanently and is irreversible. However, deleting a
53754// disk does not delete any snapshots previously made from the disk. You
53755// must separately delete snapshots.
53756// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
53757func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
53758	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53759	c.project = project
53760	c.zone = zone
53761	c.disk = disk
53762	return c
53763}
53764
53765// RequestId sets the optional parameter "requestId": An optional
53766// request ID to identify requests. Specify a unique request ID so that
53767// if you must retry your request, the server will know to ignore the
53768// request if it has already been completed.
53769//
53770// For example, consider a situation where you make an initial request
53771// and the request times out. If you make the request again with the
53772// same request ID, the server can check if original operation with the
53773// same request ID was received, and if so, will ignore the second
53774// request. This prevents clients from accidentally creating duplicate
53775// commitments.
53776//
53777// The request ID must be a valid UUID with the exception that zero UUID
53778// is not supported (00000000-0000-0000-0000-000000000000).
53779func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
53780	c.urlParams_.Set("requestId", requestId)
53781	return c
53782}
53783
53784// Fields allows partial responses to be retrieved. See
53785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53786// for more information.
53787func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
53788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53789	return c
53790}
53791
53792// Context sets the context to be used in this call's Do method. Any
53793// pending HTTP request will be aborted if the provided context is
53794// canceled.
53795func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
53796	c.ctx_ = ctx
53797	return c
53798}
53799
53800// Header returns an http.Header that can be modified by the caller to
53801// add HTTP headers to the request.
53802func (c *DisksDeleteCall) Header() http.Header {
53803	if c.header_ == nil {
53804		c.header_ = make(http.Header)
53805	}
53806	return c.header_
53807}
53808
53809func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
53810	reqHeaders := make(http.Header)
53811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53812	for k, v := range c.header_ {
53813		reqHeaders[k] = v
53814	}
53815	reqHeaders.Set("User-Agent", c.s.userAgent())
53816	var body io.Reader = nil
53817	c.urlParams_.Set("alt", alt)
53818	c.urlParams_.Set("prettyPrint", "false")
53819	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
53820	urls += "?" + c.urlParams_.Encode()
53821	req, err := http.NewRequest("DELETE", urls, body)
53822	if err != nil {
53823		return nil, err
53824	}
53825	req.Header = reqHeaders
53826	googleapi.Expand(req.URL, map[string]string{
53827		"project": c.project,
53828		"zone":    c.zone,
53829		"disk":    c.disk,
53830	})
53831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53832}
53833
53834// Do executes the "compute.disks.delete" call.
53835// Exactly one of *Operation or error will be non-nil. Any non-2xx
53836// status code is an error. Response headers are in either
53837// *Operation.ServerResponse.Header or (if a response was returned at
53838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53839// to check whether the returned error was because
53840// http.StatusNotModified was returned.
53841func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53842	gensupport.SetOptions(c.urlParams_, opts...)
53843	res, err := c.doRequest("json")
53844	if res != nil && res.StatusCode == http.StatusNotModified {
53845		if res.Body != nil {
53846			res.Body.Close()
53847		}
53848		return nil, &googleapi.Error{
53849			Code:   res.StatusCode,
53850			Header: res.Header,
53851		}
53852	}
53853	if err != nil {
53854		return nil, err
53855	}
53856	defer googleapi.CloseBody(res)
53857	if err := googleapi.CheckResponse(res); err != nil {
53858		return nil, err
53859	}
53860	ret := &Operation{
53861		ServerResponse: googleapi.ServerResponse{
53862			Header:         res.Header,
53863			HTTPStatusCode: res.StatusCode,
53864		},
53865	}
53866	target := &ret
53867	if err := gensupport.DecodeResponse(target, res); err != nil {
53868		return nil, err
53869	}
53870	return ret, nil
53871	// {
53872	//   "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.",
53873	//   "httpMethod": "DELETE",
53874	//   "id": "compute.disks.delete",
53875	//   "parameterOrder": [
53876	//     "project",
53877	//     "zone",
53878	//     "disk"
53879	//   ],
53880	//   "parameters": {
53881	//     "disk": {
53882	//       "description": "Name of the persistent disk to delete.",
53883	//       "location": "path",
53884	//       "required": true,
53885	//       "type": "string"
53886	//     },
53887	//     "project": {
53888	//       "description": "Project ID for this request.",
53889	//       "location": "path",
53890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53891	//       "required": true,
53892	//       "type": "string"
53893	//     },
53894	//     "requestId": {
53895	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53896	//       "location": "query",
53897	//       "type": "string"
53898	//     },
53899	//     "zone": {
53900	//       "description": "The name of the zone for this request.",
53901	//       "location": "path",
53902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53903	//       "required": true,
53904	//       "type": "string"
53905	//     }
53906	//   },
53907	//   "path": "{project}/zones/{zone}/disks/{disk}",
53908	//   "response": {
53909	//     "$ref": "Operation"
53910	//   },
53911	//   "scopes": [
53912	//     "https://www.googleapis.com/auth/cloud-platform",
53913	//     "https://www.googleapis.com/auth/compute"
53914	//   ]
53915	// }
53916
53917}
53918
53919// method id "compute.disks.get":
53920
53921type DisksGetCall struct {
53922	s            *Service
53923	project      string
53924	zone         string
53925	disk         string
53926	urlParams_   gensupport.URLParams
53927	ifNoneMatch_ string
53928	ctx_         context.Context
53929	header_      http.Header
53930}
53931
53932// Get: Returns a specified persistent disk. Gets a list of available
53933// persistent disks by making a list() request.
53934// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
53935func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
53936	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53937	c.project = project
53938	c.zone = zone
53939	c.disk = disk
53940	return c
53941}
53942
53943// Fields allows partial responses to be retrieved. See
53944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53945// for more information.
53946func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
53947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53948	return c
53949}
53950
53951// IfNoneMatch sets the optional parameter which makes the operation
53952// fail if the object's ETag matches the given value. This is useful for
53953// getting updates only after the object has changed since the last
53954// request. Use googleapi.IsNotModified to check whether the response
53955// error from Do is the result of In-None-Match.
53956func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
53957	c.ifNoneMatch_ = entityTag
53958	return c
53959}
53960
53961// Context sets the context to be used in this call's Do method. Any
53962// pending HTTP request will be aborted if the provided context is
53963// canceled.
53964func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
53965	c.ctx_ = ctx
53966	return c
53967}
53968
53969// Header returns an http.Header that can be modified by the caller to
53970// add HTTP headers to the request.
53971func (c *DisksGetCall) Header() http.Header {
53972	if c.header_ == nil {
53973		c.header_ = make(http.Header)
53974	}
53975	return c.header_
53976}
53977
53978func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
53979	reqHeaders := make(http.Header)
53980	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
53981	for k, v := range c.header_ {
53982		reqHeaders[k] = v
53983	}
53984	reqHeaders.Set("User-Agent", c.s.userAgent())
53985	if c.ifNoneMatch_ != "" {
53986		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53987	}
53988	var body io.Reader = nil
53989	c.urlParams_.Set("alt", alt)
53990	c.urlParams_.Set("prettyPrint", "false")
53991	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
53992	urls += "?" + c.urlParams_.Encode()
53993	req, err := http.NewRequest("GET", urls, body)
53994	if err != nil {
53995		return nil, err
53996	}
53997	req.Header = reqHeaders
53998	googleapi.Expand(req.URL, map[string]string{
53999		"project": c.project,
54000		"zone":    c.zone,
54001		"disk":    c.disk,
54002	})
54003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54004}
54005
54006// Do executes the "compute.disks.get" call.
54007// Exactly one of *Disk or error will be non-nil. Any non-2xx status
54008// code is an error. Response headers are in either
54009// *Disk.ServerResponse.Header or (if a response was returned at all) in
54010// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
54011// whether the returned error was because http.StatusNotModified was
54012// returned.
54013func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
54014	gensupport.SetOptions(c.urlParams_, opts...)
54015	res, err := c.doRequest("json")
54016	if res != nil && res.StatusCode == http.StatusNotModified {
54017		if res.Body != nil {
54018			res.Body.Close()
54019		}
54020		return nil, &googleapi.Error{
54021			Code:   res.StatusCode,
54022			Header: res.Header,
54023		}
54024	}
54025	if err != nil {
54026		return nil, err
54027	}
54028	defer googleapi.CloseBody(res)
54029	if err := googleapi.CheckResponse(res); err != nil {
54030		return nil, err
54031	}
54032	ret := &Disk{
54033		ServerResponse: googleapi.ServerResponse{
54034			Header:         res.Header,
54035			HTTPStatusCode: res.StatusCode,
54036		},
54037	}
54038	target := &ret
54039	if err := gensupport.DecodeResponse(target, res); err != nil {
54040		return nil, err
54041	}
54042	return ret, nil
54043	// {
54044	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
54045	//   "httpMethod": "GET",
54046	//   "id": "compute.disks.get",
54047	//   "parameterOrder": [
54048	//     "project",
54049	//     "zone",
54050	//     "disk"
54051	//   ],
54052	//   "parameters": {
54053	//     "disk": {
54054	//       "description": "Name of the persistent disk to return.",
54055	//       "location": "path",
54056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54057	//       "required": true,
54058	//       "type": "string"
54059	//     },
54060	//     "project": {
54061	//       "description": "Project ID for this request.",
54062	//       "location": "path",
54063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54064	//       "required": true,
54065	//       "type": "string"
54066	//     },
54067	//     "zone": {
54068	//       "description": "The name of the zone for this request.",
54069	//       "location": "path",
54070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54071	//       "required": true,
54072	//       "type": "string"
54073	//     }
54074	//   },
54075	//   "path": "{project}/zones/{zone}/disks/{disk}",
54076	//   "response": {
54077	//     "$ref": "Disk"
54078	//   },
54079	//   "scopes": [
54080	//     "https://www.googleapis.com/auth/cloud-platform",
54081	//     "https://www.googleapis.com/auth/compute",
54082	//     "https://www.googleapis.com/auth/compute.readonly"
54083	//   ]
54084	// }
54085
54086}
54087
54088// method id "compute.disks.getIamPolicy":
54089
54090type DisksGetIamPolicyCall struct {
54091	s            *Service
54092	project      string
54093	zone         string
54094	resource     string
54095	urlParams_   gensupport.URLParams
54096	ifNoneMatch_ string
54097	ctx_         context.Context
54098	header_      http.Header
54099}
54100
54101// GetIamPolicy: Gets the access control policy for a resource. May be
54102// empty if no such policy or resource exists.
54103func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
54104	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54105	c.project = project
54106	c.zone = zone
54107	c.resource = resource
54108	return c
54109}
54110
54111// OptionsRequestedPolicyVersion sets the optional parameter
54112// "optionsRequestedPolicyVersion": Requested IAM Policy version.
54113func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
54114	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
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 *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
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 *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
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 *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
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 *DisksGetIamPolicyCall) Header() http.Header {
54147	if c.header_ == nil {
54148		c.header_ = make(http.Header)
54149	}
54150	return c.header_
54151}
54152
54153func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
54154	reqHeaders := make(http.Header)
54155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
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}/zones/{zone}/disks/{resource}/getIamPolicy")
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		"zone":     c.zone,
54176		"resource": c.resource,
54177	})
54178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54179}
54180
54181// Do executes the "compute.disks.getIamPolicy" call.
54182// Exactly one of *Policy or error will be non-nil. Any non-2xx status
54183// code is an error. Response headers are in either
54184// *Policy.ServerResponse.Header or (if a response was returned at all)
54185// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
54186// check whether the returned error was because http.StatusNotModified
54187// was returned.
54188func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
54189	gensupport.SetOptions(c.urlParams_, opts...)
54190	res, err := c.doRequest("json")
54191	if res != nil && res.StatusCode == http.StatusNotModified {
54192		if res.Body != nil {
54193			res.Body.Close()
54194		}
54195		return nil, &googleapi.Error{
54196			Code:   res.StatusCode,
54197			Header: res.Header,
54198		}
54199	}
54200	if err != nil {
54201		return nil, err
54202	}
54203	defer googleapi.CloseBody(res)
54204	if err := googleapi.CheckResponse(res); err != nil {
54205		return nil, err
54206	}
54207	ret := &Policy{
54208		ServerResponse: googleapi.ServerResponse{
54209			Header:         res.Header,
54210			HTTPStatusCode: res.StatusCode,
54211		},
54212	}
54213	target := &ret
54214	if err := gensupport.DecodeResponse(target, res); err != nil {
54215		return nil, err
54216	}
54217	return ret, nil
54218	// {
54219	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
54220	//   "httpMethod": "GET",
54221	//   "id": "compute.disks.getIamPolicy",
54222	//   "parameterOrder": [
54223	//     "project",
54224	//     "zone",
54225	//     "resource"
54226	//   ],
54227	//   "parameters": {
54228	//     "optionsRequestedPolicyVersion": {
54229	//       "description": "Requested IAM Policy version.",
54230	//       "format": "int32",
54231	//       "location": "query",
54232	//       "type": "integer"
54233	//     },
54234	//     "project": {
54235	//       "description": "Project ID for this request.",
54236	//       "location": "path",
54237	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54238	//       "required": true,
54239	//       "type": "string"
54240	//     },
54241	//     "resource": {
54242	//       "description": "Name or id of the resource for this request.",
54243	//       "location": "path",
54244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54245	//       "required": true,
54246	//       "type": "string"
54247	//     },
54248	//     "zone": {
54249	//       "description": "The name of the zone for this request.",
54250	//       "location": "path",
54251	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54252	//       "required": true,
54253	//       "type": "string"
54254	//     }
54255	//   },
54256	//   "path": "{project}/zones/{zone}/disks/{resource}/getIamPolicy",
54257	//   "response": {
54258	//     "$ref": "Policy"
54259	//   },
54260	//   "scopes": [
54261	//     "https://www.googleapis.com/auth/cloud-platform",
54262	//     "https://www.googleapis.com/auth/compute",
54263	//     "https://www.googleapis.com/auth/compute.readonly"
54264	//   ]
54265	// }
54266
54267}
54268
54269// method id "compute.disks.insert":
54270
54271type DisksInsertCall struct {
54272	s          *Service
54273	project    string
54274	zone       string
54275	disk       *Disk
54276	urlParams_ gensupport.URLParams
54277	ctx_       context.Context
54278	header_    http.Header
54279}
54280
54281// Insert: Creates a persistent disk in the specified project using the
54282// data in the request. You can create a disk with a sourceImage, a
54283// sourceSnapshot, or create an empty 500 GB data disk by omitting all
54284// properties. You can also create a disk that is larger than the
54285// default size by specifying the sizeGb property.
54286// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
54287func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
54288	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54289	c.project = project
54290	c.zone = zone
54291	c.disk = disk
54292	return c
54293}
54294
54295// RequestId sets the optional parameter "requestId": An optional
54296// request ID to identify requests. Specify a unique request ID so that
54297// if you must retry your request, the server will know to ignore the
54298// request if it has already been completed.
54299//
54300// For example, consider a situation where you make an initial request
54301// and the request times out. If you make the request again with the
54302// same request ID, the server can check if original operation with the
54303// same request ID was received, and if so, will ignore the second
54304// request. This prevents clients from accidentally creating duplicate
54305// commitments.
54306//
54307// The request ID must be a valid UUID with the exception that zero UUID
54308// is not supported (00000000-0000-0000-0000-000000000000).
54309func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
54310	c.urlParams_.Set("requestId", requestId)
54311	return c
54312}
54313
54314// SourceImage sets the optional parameter "sourceImage": Source image
54315// to restore onto a disk.
54316func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
54317	c.urlParams_.Set("sourceImage", sourceImage)
54318	return c
54319}
54320
54321// Fields allows partial responses to be retrieved. See
54322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54323// for more information.
54324func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
54325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54326	return c
54327}
54328
54329// Context sets the context to be used in this call's Do method. Any
54330// pending HTTP request will be aborted if the provided context is
54331// canceled.
54332func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
54333	c.ctx_ = ctx
54334	return c
54335}
54336
54337// Header returns an http.Header that can be modified by the caller to
54338// add HTTP headers to the request.
54339func (c *DisksInsertCall) Header() http.Header {
54340	if c.header_ == nil {
54341		c.header_ = make(http.Header)
54342	}
54343	return c.header_
54344}
54345
54346func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
54347	reqHeaders := make(http.Header)
54348	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54349	for k, v := range c.header_ {
54350		reqHeaders[k] = v
54351	}
54352	reqHeaders.Set("User-Agent", c.s.userAgent())
54353	var body io.Reader = nil
54354	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
54355	if err != nil {
54356		return nil, err
54357	}
54358	reqHeaders.Set("Content-Type", "application/json")
54359	c.urlParams_.Set("alt", alt)
54360	c.urlParams_.Set("prettyPrint", "false")
54361	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
54362	urls += "?" + c.urlParams_.Encode()
54363	req, err := http.NewRequest("POST", urls, body)
54364	if err != nil {
54365		return nil, err
54366	}
54367	req.Header = reqHeaders
54368	googleapi.Expand(req.URL, map[string]string{
54369		"project": c.project,
54370		"zone":    c.zone,
54371	})
54372	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54373}
54374
54375// Do executes the "compute.disks.insert" call.
54376// Exactly one of *Operation or error will be non-nil. Any non-2xx
54377// status code is an error. Response headers are in either
54378// *Operation.ServerResponse.Header or (if a response was returned at
54379// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54380// to check whether the returned error was because
54381// http.StatusNotModified was returned.
54382func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54383	gensupport.SetOptions(c.urlParams_, opts...)
54384	res, err := c.doRequest("json")
54385	if res != nil && res.StatusCode == http.StatusNotModified {
54386		if res.Body != nil {
54387			res.Body.Close()
54388		}
54389		return nil, &googleapi.Error{
54390			Code:   res.StatusCode,
54391			Header: res.Header,
54392		}
54393	}
54394	if err != nil {
54395		return nil, err
54396	}
54397	defer googleapi.CloseBody(res)
54398	if err := googleapi.CheckResponse(res); err != nil {
54399		return nil, err
54400	}
54401	ret := &Operation{
54402		ServerResponse: googleapi.ServerResponse{
54403			Header:         res.Header,
54404			HTTPStatusCode: res.StatusCode,
54405		},
54406	}
54407	target := &ret
54408	if err := gensupport.DecodeResponse(target, res); err != nil {
54409		return nil, err
54410	}
54411	return ret, nil
54412	// {
54413	//   "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.",
54414	//   "httpMethod": "POST",
54415	//   "id": "compute.disks.insert",
54416	//   "parameterOrder": [
54417	//     "project",
54418	//     "zone"
54419	//   ],
54420	//   "parameters": {
54421	//     "project": {
54422	//       "description": "Project ID for this request.",
54423	//       "location": "path",
54424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54425	//       "required": true,
54426	//       "type": "string"
54427	//     },
54428	//     "requestId": {
54429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54430	//       "location": "query",
54431	//       "type": "string"
54432	//     },
54433	//     "sourceImage": {
54434	//       "description": "Optional. Source image to restore onto a disk.",
54435	//       "location": "query",
54436	//       "type": "string"
54437	//     },
54438	//     "zone": {
54439	//       "description": "The name of the zone for this request.",
54440	//       "location": "path",
54441	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54442	//       "required": true,
54443	//       "type": "string"
54444	//     }
54445	//   },
54446	//   "path": "{project}/zones/{zone}/disks",
54447	//   "request": {
54448	//     "$ref": "Disk"
54449	//   },
54450	//   "response": {
54451	//     "$ref": "Operation"
54452	//   },
54453	//   "scopes": [
54454	//     "https://www.googleapis.com/auth/cloud-platform",
54455	//     "https://www.googleapis.com/auth/compute"
54456	//   ]
54457	// }
54458
54459}
54460
54461// method id "compute.disks.list":
54462
54463type DisksListCall struct {
54464	s            *Service
54465	project      string
54466	zone         string
54467	urlParams_   gensupport.URLParams
54468	ifNoneMatch_ string
54469	ctx_         context.Context
54470	header_      http.Header
54471}
54472
54473// List: Retrieves a list of persistent disks contained within the
54474// specified zone.
54475// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
54476func (r *DisksService) List(project string, zone string) *DisksListCall {
54477	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54478	c.project = project
54479	c.zone = zone
54480	return c
54481}
54482
54483// Filter sets the optional parameter "filter": A filter expression that
54484// filters resources listed in the response. The expression must specify
54485// the field name, a comparison operator, and the value that you want to
54486// use for filtering. The value must be a string, a number, or a
54487// boolean. The comparison operator must be either `=`, `!=`, `>`, or
54488// `<`.
54489//
54490// For example, if you are filtering Compute Engine instances, you can
54491// exclude instances named `example-instance` by specifying `name !=
54492// example-instance`.
54493//
54494// You can also filter nested fields. For example, you could specify
54495// `scheduling.automaticRestart = false` to include instances only if
54496// they are not scheduled for automatic restarts. You can use filtering
54497// on nested fields to filter based on resource labels.
54498//
54499// To filter on multiple expressions, provide each separate expression
54500// within parentheses. For example: ``` (scheduling.automaticRestart =
54501// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
54502// is an `AND` expression. However, you can include `AND` and `OR`
54503// expressions explicitly. For example: ``` (cpuPlatform = "Intel
54504// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
54505// (scheduling.automaticRestart = true) ```
54506func (c *DisksListCall) Filter(filter string) *DisksListCall {
54507	c.urlParams_.Set("filter", filter)
54508	return c
54509}
54510
54511// MaxResults sets the optional parameter "maxResults": The maximum
54512// number of results per page that should be returned. If the number of
54513// available results is larger than `maxResults`, Compute Engine returns
54514// a `nextPageToken` that can be used to get the next page of results in
54515// subsequent list requests. Acceptable values are `0` to `500`,
54516// inclusive. (Default: `500`)
54517func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
54518	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54519	return c
54520}
54521
54522// OrderBy sets the optional parameter "orderBy": Sorts list results by
54523// a certain order. By default, results are returned in alphanumerical
54524// order based on the resource name.
54525//
54526// You can also sort results in descending order based on the creation
54527// timestamp using `orderBy="creationTimestamp desc". This sorts
54528// results based on the `creationTimestamp` field in reverse
54529// chronological order (newest result first). Use this to sort resources
54530// like operations so that the newest operation is returned
54531// first.
54532//
54533// Currently, only sorting by `name` or `creationTimestamp desc` is
54534// supported.
54535func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
54536	c.urlParams_.Set("orderBy", orderBy)
54537	return c
54538}
54539
54540// PageToken sets the optional parameter "pageToken": Specifies a page
54541// token to use. Set `pageToken` to the `nextPageToken` returned by a
54542// previous list request to get the next page of results.
54543func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
54544	c.urlParams_.Set("pageToken", pageToken)
54545	return c
54546}
54547
54548// Fields allows partial responses to be retrieved. See
54549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54550// for more information.
54551func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
54552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54553	return c
54554}
54555
54556// IfNoneMatch sets the optional parameter which makes the operation
54557// fail if the object's ETag matches the given value. This is useful for
54558// getting updates only after the object has changed since the last
54559// request. Use googleapi.IsNotModified to check whether the response
54560// error from Do is the result of In-None-Match.
54561func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
54562	c.ifNoneMatch_ = entityTag
54563	return c
54564}
54565
54566// Context sets the context to be used in this call's Do method. Any
54567// pending HTTP request will be aborted if the provided context is
54568// canceled.
54569func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
54570	c.ctx_ = ctx
54571	return c
54572}
54573
54574// Header returns an http.Header that can be modified by the caller to
54575// add HTTP headers to the request.
54576func (c *DisksListCall) Header() http.Header {
54577	if c.header_ == nil {
54578		c.header_ = make(http.Header)
54579	}
54580	return c.header_
54581}
54582
54583func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
54584	reqHeaders := make(http.Header)
54585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54586	for k, v := range c.header_ {
54587		reqHeaders[k] = v
54588	}
54589	reqHeaders.Set("User-Agent", c.s.userAgent())
54590	if c.ifNoneMatch_ != "" {
54591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54592	}
54593	var body io.Reader = nil
54594	c.urlParams_.Set("alt", alt)
54595	c.urlParams_.Set("prettyPrint", "false")
54596	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
54597	urls += "?" + c.urlParams_.Encode()
54598	req, err := http.NewRequest("GET", urls, body)
54599	if err != nil {
54600		return nil, err
54601	}
54602	req.Header = reqHeaders
54603	googleapi.Expand(req.URL, map[string]string{
54604		"project": c.project,
54605		"zone":    c.zone,
54606	})
54607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54608}
54609
54610// Do executes the "compute.disks.list" call.
54611// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
54612// code is an error. Response headers are in either
54613// *DiskList.ServerResponse.Header or (if a response was returned at
54614// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54615// to check whether the returned error was because
54616// http.StatusNotModified was returned.
54617func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
54618	gensupport.SetOptions(c.urlParams_, opts...)
54619	res, err := c.doRequest("json")
54620	if res != nil && res.StatusCode == http.StatusNotModified {
54621		if res.Body != nil {
54622			res.Body.Close()
54623		}
54624		return nil, &googleapi.Error{
54625			Code:   res.StatusCode,
54626			Header: res.Header,
54627		}
54628	}
54629	if err != nil {
54630		return nil, err
54631	}
54632	defer googleapi.CloseBody(res)
54633	if err := googleapi.CheckResponse(res); err != nil {
54634		return nil, err
54635	}
54636	ret := &DiskList{
54637		ServerResponse: googleapi.ServerResponse{
54638			Header:         res.Header,
54639			HTTPStatusCode: res.StatusCode,
54640		},
54641	}
54642	target := &ret
54643	if err := gensupport.DecodeResponse(target, res); err != nil {
54644		return nil, err
54645	}
54646	return ret, nil
54647	// {
54648	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
54649	//   "httpMethod": "GET",
54650	//   "id": "compute.disks.list",
54651	//   "parameterOrder": [
54652	//     "project",
54653	//     "zone"
54654	//   ],
54655	//   "parameters": {
54656	//     "filter": {
54657	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
54658	//       "location": "query",
54659	//       "type": "string"
54660	//     },
54661	//     "maxResults": {
54662	//       "default": "500",
54663	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54664	//       "format": "uint32",
54665	//       "location": "query",
54666	//       "minimum": "0",
54667	//       "type": "integer"
54668	//     },
54669	//     "orderBy": {
54670	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
54671	//       "location": "query",
54672	//       "type": "string"
54673	//     },
54674	//     "pageToken": {
54675	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54676	//       "location": "query",
54677	//       "type": "string"
54678	//     },
54679	//     "project": {
54680	//       "description": "Project ID for this request.",
54681	//       "location": "path",
54682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54683	//       "required": true,
54684	//       "type": "string"
54685	//     },
54686	//     "zone": {
54687	//       "description": "The name of the zone for this request.",
54688	//       "location": "path",
54689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54690	//       "required": true,
54691	//       "type": "string"
54692	//     }
54693	//   },
54694	//   "path": "{project}/zones/{zone}/disks",
54695	//   "response": {
54696	//     "$ref": "DiskList"
54697	//   },
54698	//   "scopes": [
54699	//     "https://www.googleapis.com/auth/cloud-platform",
54700	//     "https://www.googleapis.com/auth/compute",
54701	//     "https://www.googleapis.com/auth/compute.readonly"
54702	//   ]
54703	// }
54704
54705}
54706
54707// Pages invokes f for each page of results.
54708// A non-nil error returned from f will halt the iteration.
54709// The provided context supersedes any context provided to the Context method.
54710func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
54711	c.ctx_ = ctx
54712	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54713	for {
54714		x, err := c.Do()
54715		if err != nil {
54716			return err
54717		}
54718		if err := f(x); err != nil {
54719			return err
54720		}
54721		if x.NextPageToken == "" {
54722			return nil
54723		}
54724		c.PageToken(x.NextPageToken)
54725	}
54726}
54727
54728// method id "compute.disks.removeResourcePolicies":
54729
54730type DisksRemoveResourcePoliciesCall struct {
54731	s                                  *Service
54732	project                            string
54733	zone                               string
54734	disk                               string
54735	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
54736	urlParams_                         gensupport.URLParams
54737	ctx_                               context.Context
54738	header_                            http.Header
54739}
54740
54741// RemoveResourcePolicies: Removes resource policies from a disk.
54742func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
54743	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54744	c.project = project
54745	c.zone = zone
54746	c.disk = disk
54747	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
54748	return c
54749}
54750
54751// RequestId sets the optional parameter "requestId": An optional
54752// request ID to identify requests. Specify a unique request ID so that
54753// if you must retry your request, the server will know to ignore the
54754// request if it has already been completed.
54755//
54756// For example, consider a situation where you make an initial request
54757// and the request times out. If you make the request again with the
54758// same request ID, the server can check if original operation with the
54759// same request ID was received, and if so, will ignore the second
54760// request. This prevents clients from accidentally creating duplicate
54761// commitments.
54762//
54763// The request ID must be a valid UUID with the exception that zero UUID
54764// is not supported (00000000-0000-0000-0000-000000000000).
54765func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
54766	c.urlParams_.Set("requestId", requestId)
54767	return c
54768}
54769
54770// Fields allows partial responses to be retrieved. See
54771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54772// for more information.
54773func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
54774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54775	return c
54776}
54777
54778// Context sets the context to be used in this call's Do method. Any
54779// pending HTTP request will be aborted if the provided context is
54780// canceled.
54781func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
54782	c.ctx_ = ctx
54783	return c
54784}
54785
54786// Header returns an http.Header that can be modified by the caller to
54787// add HTTP headers to the request.
54788func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
54789	if c.header_ == nil {
54790		c.header_ = make(http.Header)
54791	}
54792	return c.header_
54793}
54794
54795func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
54796	reqHeaders := make(http.Header)
54797	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54798	for k, v := range c.header_ {
54799		reqHeaders[k] = v
54800	}
54801	reqHeaders.Set("User-Agent", c.s.userAgent())
54802	var body io.Reader = nil
54803	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
54804	if err != nil {
54805		return nil, err
54806	}
54807	reqHeaders.Set("Content-Type", "application/json")
54808	c.urlParams_.Set("alt", alt)
54809	c.urlParams_.Set("prettyPrint", "false")
54810	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
54811	urls += "?" + c.urlParams_.Encode()
54812	req, err := http.NewRequest("POST", urls, body)
54813	if err != nil {
54814		return nil, err
54815	}
54816	req.Header = reqHeaders
54817	googleapi.Expand(req.URL, map[string]string{
54818		"project": c.project,
54819		"zone":    c.zone,
54820		"disk":    c.disk,
54821	})
54822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54823}
54824
54825// Do executes the "compute.disks.removeResourcePolicies" call.
54826// Exactly one of *Operation or error will be non-nil. Any non-2xx
54827// status code is an error. Response headers are in either
54828// *Operation.ServerResponse.Header or (if a response was returned at
54829// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54830// to check whether the returned error was because
54831// http.StatusNotModified was returned.
54832func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54833	gensupport.SetOptions(c.urlParams_, opts...)
54834	res, err := c.doRequest("json")
54835	if res != nil && res.StatusCode == http.StatusNotModified {
54836		if res.Body != nil {
54837			res.Body.Close()
54838		}
54839		return nil, &googleapi.Error{
54840			Code:   res.StatusCode,
54841			Header: res.Header,
54842		}
54843	}
54844	if err != nil {
54845		return nil, err
54846	}
54847	defer googleapi.CloseBody(res)
54848	if err := googleapi.CheckResponse(res); err != nil {
54849		return nil, err
54850	}
54851	ret := &Operation{
54852		ServerResponse: googleapi.ServerResponse{
54853			Header:         res.Header,
54854			HTTPStatusCode: res.StatusCode,
54855		},
54856	}
54857	target := &ret
54858	if err := gensupport.DecodeResponse(target, res); err != nil {
54859		return nil, err
54860	}
54861	return ret, nil
54862	// {
54863	//   "description": "Removes resource policies from a disk.",
54864	//   "httpMethod": "POST",
54865	//   "id": "compute.disks.removeResourcePolicies",
54866	//   "parameterOrder": [
54867	//     "project",
54868	//     "zone",
54869	//     "disk"
54870	//   ],
54871	//   "parameters": {
54872	//     "disk": {
54873	//       "description": "The disk name for this request.",
54874	//       "location": "path",
54875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54876	//       "required": true,
54877	//       "type": "string"
54878	//     },
54879	//     "project": {
54880	//       "description": "Project ID for this request.",
54881	//       "location": "path",
54882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54883	//       "required": true,
54884	//       "type": "string"
54885	//     },
54886	//     "requestId": {
54887	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54888	//       "location": "query",
54889	//       "type": "string"
54890	//     },
54891	//     "zone": {
54892	//       "description": "The name of the zone for this request.",
54893	//       "location": "path",
54894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54895	//       "required": true,
54896	//       "type": "string"
54897	//     }
54898	//   },
54899	//   "path": "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
54900	//   "request": {
54901	//     "$ref": "DisksRemoveResourcePoliciesRequest"
54902	//   },
54903	//   "response": {
54904	//     "$ref": "Operation"
54905	//   },
54906	//   "scopes": [
54907	//     "https://www.googleapis.com/auth/cloud-platform",
54908	//     "https://www.googleapis.com/auth/compute"
54909	//   ]
54910	// }
54911
54912}
54913
54914// method id "compute.disks.resize":
54915
54916type DisksResizeCall struct {
54917	s                  *Service
54918	project            string
54919	zone               string
54920	disk               string
54921	disksresizerequest *DisksResizeRequest
54922	urlParams_         gensupport.URLParams
54923	ctx_               context.Context
54924	header_            http.Header
54925}
54926
54927// Resize: Resizes the specified persistent disk. You can only increase
54928// the size of the disk.
54929func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
54930	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54931	c.project = project
54932	c.zone = zone
54933	c.disk = disk
54934	c.disksresizerequest = disksresizerequest
54935	return c
54936}
54937
54938// RequestId sets the optional parameter "requestId": An optional
54939// request ID to identify requests. Specify a unique request ID so that
54940// if you must retry your request, the server will know to ignore the
54941// request if it has already been completed.
54942//
54943// For example, consider a situation where you make an initial request
54944// and the request times out. If you make the request again with the
54945// same request ID, the server can check if original operation with the
54946// same request ID was received, and if so, will ignore the second
54947// request. This prevents clients from accidentally creating duplicate
54948// commitments.
54949//
54950// The request ID must be a valid UUID with the exception that zero UUID
54951// is not supported (00000000-0000-0000-0000-000000000000).
54952func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
54953	c.urlParams_.Set("requestId", requestId)
54954	return c
54955}
54956
54957// Fields allows partial responses to be retrieved. See
54958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54959// for more information.
54960func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
54961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54962	return c
54963}
54964
54965// Context sets the context to be used in this call's Do method. Any
54966// pending HTTP request will be aborted if the provided context is
54967// canceled.
54968func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
54969	c.ctx_ = ctx
54970	return c
54971}
54972
54973// Header returns an http.Header that can be modified by the caller to
54974// add HTTP headers to the request.
54975func (c *DisksResizeCall) Header() http.Header {
54976	if c.header_ == nil {
54977		c.header_ = make(http.Header)
54978	}
54979	return c.header_
54980}
54981
54982func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
54983	reqHeaders := make(http.Header)
54984	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
54985	for k, v := range c.header_ {
54986		reqHeaders[k] = v
54987	}
54988	reqHeaders.Set("User-Agent", c.s.userAgent())
54989	var body io.Reader = nil
54990	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
54991	if err != nil {
54992		return nil, err
54993	}
54994	reqHeaders.Set("Content-Type", "application/json")
54995	c.urlParams_.Set("alt", alt)
54996	c.urlParams_.Set("prettyPrint", "false")
54997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
54998	urls += "?" + c.urlParams_.Encode()
54999	req, err := http.NewRequest("POST", urls, body)
55000	if err != nil {
55001		return nil, err
55002	}
55003	req.Header = reqHeaders
55004	googleapi.Expand(req.URL, map[string]string{
55005		"project": c.project,
55006		"zone":    c.zone,
55007		"disk":    c.disk,
55008	})
55009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55010}
55011
55012// Do executes the "compute.disks.resize" call.
55013// Exactly one of *Operation or error will be non-nil. Any non-2xx
55014// status code is an error. Response headers are in either
55015// *Operation.ServerResponse.Header or (if a response was returned at
55016// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55017// to check whether the returned error was because
55018// http.StatusNotModified was returned.
55019func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55020	gensupport.SetOptions(c.urlParams_, opts...)
55021	res, err := c.doRequest("json")
55022	if res != nil && res.StatusCode == http.StatusNotModified {
55023		if res.Body != nil {
55024			res.Body.Close()
55025		}
55026		return nil, &googleapi.Error{
55027			Code:   res.StatusCode,
55028			Header: res.Header,
55029		}
55030	}
55031	if err != nil {
55032		return nil, err
55033	}
55034	defer googleapi.CloseBody(res)
55035	if err := googleapi.CheckResponse(res); err != nil {
55036		return nil, err
55037	}
55038	ret := &Operation{
55039		ServerResponse: googleapi.ServerResponse{
55040			Header:         res.Header,
55041			HTTPStatusCode: res.StatusCode,
55042		},
55043	}
55044	target := &ret
55045	if err := gensupport.DecodeResponse(target, res); err != nil {
55046		return nil, err
55047	}
55048	return ret, nil
55049	// {
55050	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
55051	//   "httpMethod": "POST",
55052	//   "id": "compute.disks.resize",
55053	//   "parameterOrder": [
55054	//     "project",
55055	//     "zone",
55056	//     "disk"
55057	//   ],
55058	//   "parameters": {
55059	//     "disk": {
55060	//       "description": "The name of the persistent disk.",
55061	//       "location": "path",
55062	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55063	//       "required": true,
55064	//       "type": "string"
55065	//     },
55066	//     "project": {
55067	//       "description": "Project ID for this request.",
55068	//       "location": "path",
55069	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55070	//       "required": true,
55071	//       "type": "string"
55072	//     },
55073	//     "requestId": {
55074	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55075	//       "location": "query",
55076	//       "type": "string"
55077	//     },
55078	//     "zone": {
55079	//       "description": "The name of the zone for this request.",
55080	//       "location": "path",
55081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55082	//       "required": true,
55083	//       "type": "string"
55084	//     }
55085	//   },
55086	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
55087	//   "request": {
55088	//     "$ref": "DisksResizeRequest"
55089	//   },
55090	//   "response": {
55091	//     "$ref": "Operation"
55092	//   },
55093	//   "scopes": [
55094	//     "https://www.googleapis.com/auth/cloud-platform",
55095	//     "https://www.googleapis.com/auth/compute"
55096	//   ]
55097	// }
55098
55099}
55100
55101// method id "compute.disks.setIamPolicy":
55102
55103type DisksSetIamPolicyCall struct {
55104	s                    *Service
55105	project              string
55106	zone                 string
55107	resource             string
55108	zonesetpolicyrequest *ZoneSetPolicyRequest
55109	urlParams_           gensupport.URLParams
55110	ctx_                 context.Context
55111	header_              http.Header
55112}
55113
55114// SetIamPolicy: Sets the access control policy on the specified
55115// resource. Replaces any existing policy.
55116func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
55117	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55118	c.project = project
55119	c.zone = zone
55120	c.resource = resource
55121	c.zonesetpolicyrequest = zonesetpolicyrequest
55122	return c
55123}
55124
55125// Fields allows partial responses to be retrieved. See
55126// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55127// for more information.
55128func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
55129	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55130	return c
55131}
55132
55133// Context sets the context to be used in this call's Do method. Any
55134// pending HTTP request will be aborted if the provided context is
55135// canceled.
55136func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
55137	c.ctx_ = ctx
55138	return c
55139}
55140
55141// Header returns an http.Header that can be modified by the caller to
55142// add HTTP headers to the request.
55143func (c *DisksSetIamPolicyCall) Header() http.Header {
55144	if c.header_ == nil {
55145		c.header_ = make(http.Header)
55146	}
55147	return c.header_
55148}
55149
55150func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
55151	reqHeaders := make(http.Header)
55152	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55153	for k, v := range c.header_ {
55154		reqHeaders[k] = v
55155	}
55156	reqHeaders.Set("User-Agent", c.s.userAgent())
55157	var body io.Reader = nil
55158	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
55159	if err != nil {
55160		return nil, err
55161	}
55162	reqHeaders.Set("Content-Type", "application/json")
55163	c.urlParams_.Set("alt", alt)
55164	c.urlParams_.Set("prettyPrint", "false")
55165	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setIamPolicy")
55166	urls += "?" + c.urlParams_.Encode()
55167	req, err := http.NewRequest("POST", urls, body)
55168	if err != nil {
55169		return nil, err
55170	}
55171	req.Header = reqHeaders
55172	googleapi.Expand(req.URL, map[string]string{
55173		"project":  c.project,
55174		"zone":     c.zone,
55175		"resource": c.resource,
55176	})
55177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55178}
55179
55180// Do executes the "compute.disks.setIamPolicy" call.
55181// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55182// code is an error. Response headers are in either
55183// *Policy.ServerResponse.Header or (if a response was returned at all)
55184// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55185// check whether the returned error was because http.StatusNotModified
55186// was returned.
55187func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55188	gensupport.SetOptions(c.urlParams_, opts...)
55189	res, err := c.doRequest("json")
55190	if res != nil && res.StatusCode == http.StatusNotModified {
55191		if res.Body != nil {
55192			res.Body.Close()
55193		}
55194		return nil, &googleapi.Error{
55195			Code:   res.StatusCode,
55196			Header: res.Header,
55197		}
55198	}
55199	if err != nil {
55200		return nil, err
55201	}
55202	defer googleapi.CloseBody(res)
55203	if err := googleapi.CheckResponse(res); err != nil {
55204		return nil, err
55205	}
55206	ret := &Policy{
55207		ServerResponse: googleapi.ServerResponse{
55208			Header:         res.Header,
55209			HTTPStatusCode: res.StatusCode,
55210		},
55211	}
55212	target := &ret
55213	if err := gensupport.DecodeResponse(target, res); err != nil {
55214		return nil, err
55215	}
55216	return ret, nil
55217	// {
55218	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
55219	//   "httpMethod": "POST",
55220	//   "id": "compute.disks.setIamPolicy",
55221	//   "parameterOrder": [
55222	//     "project",
55223	//     "zone",
55224	//     "resource"
55225	//   ],
55226	//   "parameters": {
55227	//     "project": {
55228	//       "description": "Project ID for this request.",
55229	//       "location": "path",
55230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55231	//       "required": true,
55232	//       "type": "string"
55233	//     },
55234	//     "resource": {
55235	//       "description": "Name or id of the resource for this request.",
55236	//       "location": "path",
55237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55238	//       "required": true,
55239	//       "type": "string"
55240	//     },
55241	//     "zone": {
55242	//       "description": "The name of the zone for this request.",
55243	//       "location": "path",
55244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55245	//       "required": true,
55246	//       "type": "string"
55247	//     }
55248	//   },
55249	//   "path": "{project}/zones/{zone}/disks/{resource}/setIamPolicy",
55250	//   "request": {
55251	//     "$ref": "ZoneSetPolicyRequest"
55252	//   },
55253	//   "response": {
55254	//     "$ref": "Policy"
55255	//   },
55256	//   "scopes": [
55257	//     "https://www.googleapis.com/auth/cloud-platform",
55258	//     "https://www.googleapis.com/auth/compute"
55259	//   ]
55260	// }
55261
55262}
55263
55264// method id "compute.disks.setLabels":
55265
55266type DisksSetLabelsCall struct {
55267	s                    *Service
55268	project              string
55269	zone                 string
55270	resource             string
55271	zonesetlabelsrequest *ZoneSetLabelsRequest
55272	urlParams_           gensupport.URLParams
55273	ctx_                 context.Context
55274	header_              http.Header
55275}
55276
55277// SetLabels: Sets the labels on a disk. To learn more about labels,
55278// read the Labeling Resources documentation.
55279func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
55280	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55281	c.project = project
55282	c.zone = zone
55283	c.resource = resource
55284	c.zonesetlabelsrequest = zonesetlabelsrequest
55285	return c
55286}
55287
55288// RequestId sets the optional parameter "requestId": An optional
55289// request ID to identify requests. Specify a unique request ID so that
55290// if you must retry your request, the server will know to ignore the
55291// request if it has already been completed.
55292//
55293// For example, consider a situation where you make an initial request
55294// and the request times out. If you make the request again with the
55295// same request ID, the server can check if original operation with the
55296// same request ID was received, and if so, will ignore the second
55297// request. This prevents clients from accidentally creating duplicate
55298// commitments.
55299//
55300// The request ID must be a valid UUID with the exception that zero UUID
55301// is not supported (00000000-0000-0000-0000-000000000000).
55302func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
55303	c.urlParams_.Set("requestId", requestId)
55304	return c
55305}
55306
55307// Fields allows partial responses to be retrieved. See
55308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55309// for more information.
55310func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
55311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55312	return c
55313}
55314
55315// Context sets the context to be used in this call's Do method. Any
55316// pending HTTP request will be aborted if the provided context is
55317// canceled.
55318func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
55319	c.ctx_ = ctx
55320	return c
55321}
55322
55323// Header returns an http.Header that can be modified by the caller to
55324// add HTTP headers to the request.
55325func (c *DisksSetLabelsCall) Header() http.Header {
55326	if c.header_ == nil {
55327		c.header_ = make(http.Header)
55328	}
55329	return c.header_
55330}
55331
55332func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
55333	reqHeaders := make(http.Header)
55334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55335	for k, v := range c.header_ {
55336		reqHeaders[k] = v
55337	}
55338	reqHeaders.Set("User-Agent", c.s.userAgent())
55339	var body io.Reader = nil
55340	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
55341	if err != nil {
55342		return nil, err
55343	}
55344	reqHeaders.Set("Content-Type", "application/json")
55345	c.urlParams_.Set("alt", alt)
55346	c.urlParams_.Set("prettyPrint", "false")
55347	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
55348	urls += "?" + c.urlParams_.Encode()
55349	req, err := http.NewRequest("POST", urls, body)
55350	if err != nil {
55351		return nil, err
55352	}
55353	req.Header = reqHeaders
55354	googleapi.Expand(req.URL, map[string]string{
55355		"project":  c.project,
55356		"zone":     c.zone,
55357		"resource": c.resource,
55358	})
55359	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55360}
55361
55362// Do executes the "compute.disks.setLabels" call.
55363// Exactly one of *Operation or error will be non-nil. Any non-2xx
55364// status code is an error. Response headers are in either
55365// *Operation.ServerResponse.Header or (if a response was returned at
55366// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55367// to check whether the returned error was because
55368// http.StatusNotModified was returned.
55369func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55370	gensupport.SetOptions(c.urlParams_, opts...)
55371	res, err := c.doRequest("json")
55372	if res != nil && res.StatusCode == http.StatusNotModified {
55373		if res.Body != nil {
55374			res.Body.Close()
55375		}
55376		return nil, &googleapi.Error{
55377			Code:   res.StatusCode,
55378			Header: res.Header,
55379		}
55380	}
55381	if err != nil {
55382		return nil, err
55383	}
55384	defer googleapi.CloseBody(res)
55385	if err := googleapi.CheckResponse(res); err != nil {
55386		return nil, err
55387	}
55388	ret := &Operation{
55389		ServerResponse: googleapi.ServerResponse{
55390			Header:         res.Header,
55391			HTTPStatusCode: res.StatusCode,
55392		},
55393	}
55394	target := &ret
55395	if err := gensupport.DecodeResponse(target, res); err != nil {
55396		return nil, err
55397	}
55398	return ret, nil
55399	// {
55400	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
55401	//   "httpMethod": "POST",
55402	//   "id": "compute.disks.setLabels",
55403	//   "parameterOrder": [
55404	//     "project",
55405	//     "zone",
55406	//     "resource"
55407	//   ],
55408	//   "parameters": {
55409	//     "project": {
55410	//       "description": "Project ID for this request.",
55411	//       "location": "path",
55412	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55413	//       "required": true,
55414	//       "type": "string"
55415	//     },
55416	//     "requestId": {
55417	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55418	//       "location": "query",
55419	//       "type": "string"
55420	//     },
55421	//     "resource": {
55422	//       "description": "Name or id of the resource for this request.",
55423	//       "location": "path",
55424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55425	//       "required": true,
55426	//       "type": "string"
55427	//     },
55428	//     "zone": {
55429	//       "description": "The name of the zone for this request.",
55430	//       "location": "path",
55431	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55432	//       "required": true,
55433	//       "type": "string"
55434	//     }
55435	//   },
55436	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
55437	//   "request": {
55438	//     "$ref": "ZoneSetLabelsRequest"
55439	//   },
55440	//   "response": {
55441	//     "$ref": "Operation"
55442	//   },
55443	//   "scopes": [
55444	//     "https://www.googleapis.com/auth/cloud-platform",
55445	//     "https://www.googleapis.com/auth/compute"
55446	//   ]
55447	// }
55448
55449}
55450
55451// method id "compute.disks.testIamPermissions":
55452
55453type DisksTestIamPermissionsCall struct {
55454	s                      *Service
55455	project                string
55456	zone                   string
55457	resource               string
55458	testpermissionsrequest *TestPermissionsRequest
55459	urlParams_             gensupport.URLParams
55460	ctx_                   context.Context
55461	header_                http.Header
55462}
55463
55464// TestIamPermissions: Returns permissions that a caller has on the
55465// specified resource.
55466func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
55467	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55468	c.project = project
55469	c.zone = zone
55470	c.resource = resource
55471	c.testpermissionsrequest = testpermissionsrequest
55472	return c
55473}
55474
55475// Fields allows partial responses to be retrieved. See
55476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55477// for more information.
55478func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
55479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55480	return c
55481}
55482
55483// Context sets the context to be used in this call's Do method. Any
55484// pending HTTP request will be aborted if the provided context is
55485// canceled.
55486func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
55487	c.ctx_ = ctx
55488	return c
55489}
55490
55491// Header returns an http.Header that can be modified by the caller to
55492// add HTTP headers to the request.
55493func (c *DisksTestIamPermissionsCall) Header() http.Header {
55494	if c.header_ == nil {
55495		c.header_ = make(http.Header)
55496	}
55497	return c.header_
55498}
55499
55500func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
55501	reqHeaders := make(http.Header)
55502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55503	for k, v := range c.header_ {
55504		reqHeaders[k] = v
55505	}
55506	reqHeaders.Set("User-Agent", c.s.userAgent())
55507	var body io.Reader = nil
55508	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
55509	if err != nil {
55510		return nil, err
55511	}
55512	reqHeaders.Set("Content-Type", "application/json")
55513	c.urlParams_.Set("alt", alt)
55514	c.urlParams_.Set("prettyPrint", "false")
55515	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/testIamPermissions")
55516	urls += "?" + c.urlParams_.Encode()
55517	req, err := http.NewRequest("POST", urls, body)
55518	if err != nil {
55519		return nil, err
55520	}
55521	req.Header = reqHeaders
55522	googleapi.Expand(req.URL, map[string]string{
55523		"project":  c.project,
55524		"zone":     c.zone,
55525		"resource": c.resource,
55526	})
55527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55528}
55529
55530// Do executes the "compute.disks.testIamPermissions" call.
55531// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
55532// non-2xx status code is an error. Response headers are in either
55533// *TestPermissionsResponse.ServerResponse.Header or (if a response was
55534// returned at all) in error.(*googleapi.Error).Header. Use
55535// googleapi.IsNotModified to check whether the returned error was
55536// because http.StatusNotModified was returned.
55537func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
55538	gensupport.SetOptions(c.urlParams_, opts...)
55539	res, err := c.doRequest("json")
55540	if res != nil && res.StatusCode == http.StatusNotModified {
55541		if res.Body != nil {
55542			res.Body.Close()
55543		}
55544		return nil, &googleapi.Error{
55545			Code:   res.StatusCode,
55546			Header: res.Header,
55547		}
55548	}
55549	if err != nil {
55550		return nil, err
55551	}
55552	defer googleapi.CloseBody(res)
55553	if err := googleapi.CheckResponse(res); err != nil {
55554		return nil, err
55555	}
55556	ret := &TestPermissionsResponse{
55557		ServerResponse: googleapi.ServerResponse{
55558			Header:         res.Header,
55559			HTTPStatusCode: res.StatusCode,
55560		},
55561	}
55562	target := &ret
55563	if err := gensupport.DecodeResponse(target, res); err != nil {
55564		return nil, err
55565	}
55566	return ret, nil
55567	// {
55568	//   "description": "Returns permissions that a caller has on the specified resource.",
55569	//   "httpMethod": "POST",
55570	//   "id": "compute.disks.testIamPermissions",
55571	//   "parameterOrder": [
55572	//     "project",
55573	//     "zone",
55574	//     "resource"
55575	//   ],
55576	//   "parameters": {
55577	//     "project": {
55578	//       "description": "Project ID for this request.",
55579	//       "location": "path",
55580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55581	//       "required": true,
55582	//       "type": "string"
55583	//     },
55584	//     "resource": {
55585	//       "description": "Name or id of the resource for this request.",
55586	//       "location": "path",
55587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55588	//       "required": true,
55589	//       "type": "string"
55590	//     },
55591	//     "zone": {
55592	//       "description": "The name of the zone for this request.",
55593	//       "location": "path",
55594	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55595	//       "required": true,
55596	//       "type": "string"
55597	//     }
55598	//   },
55599	//   "path": "{project}/zones/{zone}/disks/{resource}/testIamPermissions",
55600	//   "request": {
55601	//     "$ref": "TestPermissionsRequest"
55602	//   },
55603	//   "response": {
55604	//     "$ref": "TestPermissionsResponse"
55605	//   },
55606	//   "scopes": [
55607	//     "https://www.googleapis.com/auth/cloud-platform",
55608	//     "https://www.googleapis.com/auth/compute",
55609	//     "https://www.googleapis.com/auth/compute.readonly"
55610	//   ]
55611	// }
55612
55613}
55614
55615// method id "compute.externalVpnGateways.delete":
55616
55617type ExternalVpnGatewaysDeleteCall struct {
55618	s                  *Service
55619	project            string
55620	externalVpnGateway string
55621	urlParams_         gensupport.URLParams
55622	ctx_               context.Context
55623	header_            http.Header
55624}
55625
55626// Delete: Deletes the specified externalVpnGateway.
55627func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
55628	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55629	c.project = project
55630	c.externalVpnGateway = externalVpnGateway
55631	return c
55632}
55633
55634// RequestId sets the optional parameter "requestId": An optional
55635// request ID to identify requests. Specify a unique request ID so that
55636// if you must retry your request, the server will know to ignore the
55637// request if it has already been completed.
55638//
55639// For example, consider a situation where you make an initial request
55640// and the request times out. If you make the request again with the
55641// same request ID, the server can check if original operation with the
55642// same request ID was received, and if so, will ignore the second
55643// request. This prevents clients from accidentally creating duplicate
55644// commitments.
55645//
55646// The request ID must be a valid UUID with the exception that zero UUID
55647// is not supported (00000000-0000-0000-0000-000000000000).
55648func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
55649	c.urlParams_.Set("requestId", requestId)
55650	return c
55651}
55652
55653// Fields allows partial responses to be retrieved. See
55654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55655// for more information.
55656func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
55657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55658	return c
55659}
55660
55661// Context sets the context to be used in this call's Do method. Any
55662// pending HTTP request will be aborted if the provided context is
55663// canceled.
55664func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
55665	c.ctx_ = ctx
55666	return c
55667}
55668
55669// Header returns an http.Header that can be modified by the caller to
55670// add HTTP headers to the request.
55671func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
55672	if c.header_ == nil {
55673		c.header_ = make(http.Header)
55674	}
55675	return c.header_
55676}
55677
55678func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
55679	reqHeaders := make(http.Header)
55680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55681	for k, v := range c.header_ {
55682		reqHeaders[k] = v
55683	}
55684	reqHeaders.Set("User-Agent", c.s.userAgent())
55685	var body io.Reader = nil
55686	c.urlParams_.Set("alt", alt)
55687	c.urlParams_.Set("prettyPrint", "false")
55688	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
55689	urls += "?" + c.urlParams_.Encode()
55690	req, err := http.NewRequest("DELETE", urls, body)
55691	if err != nil {
55692		return nil, err
55693	}
55694	req.Header = reqHeaders
55695	googleapi.Expand(req.URL, map[string]string{
55696		"project":            c.project,
55697		"externalVpnGateway": c.externalVpnGateway,
55698	})
55699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55700}
55701
55702// Do executes the "compute.externalVpnGateways.delete" call.
55703// Exactly one of *Operation or error will be non-nil. Any non-2xx
55704// status code is an error. Response headers are in either
55705// *Operation.ServerResponse.Header or (if a response was returned at
55706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55707// to check whether the returned error was because
55708// http.StatusNotModified was returned.
55709func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55710	gensupport.SetOptions(c.urlParams_, opts...)
55711	res, err := c.doRequest("json")
55712	if res != nil && res.StatusCode == http.StatusNotModified {
55713		if res.Body != nil {
55714			res.Body.Close()
55715		}
55716		return nil, &googleapi.Error{
55717			Code:   res.StatusCode,
55718			Header: res.Header,
55719		}
55720	}
55721	if err != nil {
55722		return nil, err
55723	}
55724	defer googleapi.CloseBody(res)
55725	if err := googleapi.CheckResponse(res); err != nil {
55726		return nil, err
55727	}
55728	ret := &Operation{
55729		ServerResponse: googleapi.ServerResponse{
55730			Header:         res.Header,
55731			HTTPStatusCode: res.StatusCode,
55732		},
55733	}
55734	target := &ret
55735	if err := gensupport.DecodeResponse(target, res); err != nil {
55736		return nil, err
55737	}
55738	return ret, nil
55739	// {
55740	//   "description": "Deletes the specified externalVpnGateway.",
55741	//   "httpMethod": "DELETE",
55742	//   "id": "compute.externalVpnGateways.delete",
55743	//   "parameterOrder": [
55744	//     "project",
55745	//     "externalVpnGateway"
55746	//   ],
55747	//   "parameters": {
55748	//     "externalVpnGateway": {
55749	//       "description": "Name of the externalVpnGateways to delete.",
55750	//       "location": "path",
55751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55752	//       "required": true,
55753	//       "type": "string"
55754	//     },
55755	//     "project": {
55756	//       "description": "Project ID for this request.",
55757	//       "location": "path",
55758	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55759	//       "required": true,
55760	//       "type": "string"
55761	//     },
55762	//     "requestId": {
55763	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55764	//       "location": "query",
55765	//       "type": "string"
55766	//     }
55767	//   },
55768	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
55769	//   "response": {
55770	//     "$ref": "Operation"
55771	//   },
55772	//   "scopes": [
55773	//     "https://www.googleapis.com/auth/cloud-platform",
55774	//     "https://www.googleapis.com/auth/compute"
55775	//   ]
55776	// }
55777
55778}
55779
55780// method id "compute.externalVpnGateways.get":
55781
55782type ExternalVpnGatewaysGetCall struct {
55783	s                  *Service
55784	project            string
55785	externalVpnGateway string
55786	urlParams_         gensupport.URLParams
55787	ifNoneMatch_       string
55788	ctx_               context.Context
55789	header_            http.Header
55790}
55791
55792// Get: Returns the specified externalVpnGateway. Get a list of
55793// available externalVpnGateways by making a list() request.
55794func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
55795	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55796	c.project = project
55797	c.externalVpnGateway = externalVpnGateway
55798	return c
55799}
55800
55801// Fields allows partial responses to be retrieved. See
55802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55803// for more information.
55804func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
55805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55806	return c
55807}
55808
55809// IfNoneMatch sets the optional parameter which makes the operation
55810// fail if the object's ETag matches the given value. This is useful for
55811// getting updates only after the object has changed since the last
55812// request. Use googleapi.IsNotModified to check whether the response
55813// error from Do is the result of In-None-Match.
55814func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
55815	c.ifNoneMatch_ = entityTag
55816	return c
55817}
55818
55819// Context sets the context to be used in this call's Do method. Any
55820// pending HTTP request will be aborted if the provided context is
55821// canceled.
55822func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
55823	c.ctx_ = ctx
55824	return c
55825}
55826
55827// Header returns an http.Header that can be modified by the caller to
55828// add HTTP headers to the request.
55829func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
55830	if c.header_ == nil {
55831		c.header_ = make(http.Header)
55832	}
55833	return c.header_
55834}
55835
55836func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
55837	reqHeaders := make(http.Header)
55838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
55839	for k, v := range c.header_ {
55840		reqHeaders[k] = v
55841	}
55842	reqHeaders.Set("User-Agent", c.s.userAgent())
55843	if c.ifNoneMatch_ != "" {
55844		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55845	}
55846	var body io.Reader = nil
55847	c.urlParams_.Set("alt", alt)
55848	c.urlParams_.Set("prettyPrint", "false")
55849	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
55850	urls += "?" + c.urlParams_.Encode()
55851	req, err := http.NewRequest("GET", urls, body)
55852	if err != nil {
55853		return nil, err
55854	}
55855	req.Header = reqHeaders
55856	googleapi.Expand(req.URL, map[string]string{
55857		"project":            c.project,
55858		"externalVpnGateway": c.externalVpnGateway,
55859	})
55860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55861}
55862
55863// Do executes the "compute.externalVpnGateways.get" call.
55864// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
55865// non-2xx status code is an error. Response headers are in either
55866// *ExternalVpnGateway.ServerResponse.Header or (if a response was
55867// returned at all) in error.(*googleapi.Error).Header. Use
55868// googleapi.IsNotModified to check whether the returned error was
55869// because http.StatusNotModified was returned.
55870func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
55871	gensupport.SetOptions(c.urlParams_, opts...)
55872	res, err := c.doRequest("json")
55873	if res != nil && res.StatusCode == http.StatusNotModified {
55874		if res.Body != nil {
55875			res.Body.Close()
55876		}
55877		return nil, &googleapi.Error{
55878			Code:   res.StatusCode,
55879			Header: res.Header,
55880		}
55881	}
55882	if err != nil {
55883		return nil, err
55884	}
55885	defer googleapi.CloseBody(res)
55886	if err := googleapi.CheckResponse(res); err != nil {
55887		return nil, err
55888	}
55889	ret := &ExternalVpnGateway{
55890		ServerResponse: googleapi.ServerResponse{
55891			Header:         res.Header,
55892			HTTPStatusCode: res.StatusCode,
55893		},
55894	}
55895	target := &ret
55896	if err := gensupport.DecodeResponse(target, res); err != nil {
55897		return nil, err
55898	}
55899	return ret, nil
55900	// {
55901	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
55902	//   "httpMethod": "GET",
55903	//   "id": "compute.externalVpnGateways.get",
55904	//   "parameterOrder": [
55905	//     "project",
55906	//     "externalVpnGateway"
55907	//   ],
55908	//   "parameters": {
55909	//     "externalVpnGateway": {
55910	//       "description": "Name of the externalVpnGateway to return.",
55911	//       "location": "path",
55912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55913	//       "required": true,
55914	//       "type": "string"
55915	//     },
55916	//     "project": {
55917	//       "description": "Project ID for this request.",
55918	//       "location": "path",
55919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55920	//       "required": true,
55921	//       "type": "string"
55922	//     }
55923	//   },
55924	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
55925	//   "response": {
55926	//     "$ref": "ExternalVpnGateway"
55927	//   },
55928	//   "scopes": [
55929	//     "https://www.googleapis.com/auth/cloud-platform",
55930	//     "https://www.googleapis.com/auth/compute",
55931	//     "https://www.googleapis.com/auth/compute.readonly"
55932	//   ]
55933	// }
55934
55935}
55936
55937// method id "compute.externalVpnGateways.insert":
55938
55939type ExternalVpnGatewaysInsertCall struct {
55940	s                  *Service
55941	project            string
55942	externalvpngateway *ExternalVpnGateway
55943	urlParams_         gensupport.URLParams
55944	ctx_               context.Context
55945	header_            http.Header
55946}
55947
55948// Insert: Creates a ExternalVpnGateway in the specified project using
55949// the data included in the request.
55950func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
55951	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55952	c.project = project
55953	c.externalvpngateway = externalvpngateway
55954	return c
55955}
55956
55957// RequestId sets the optional parameter "requestId": An optional
55958// request ID to identify requests. Specify a unique request ID so that
55959// if you must retry your request, the server will know to ignore the
55960// request if it has already been completed.
55961//
55962// For example, consider a situation where you make an initial request
55963// and the request times out. If you make the request again with the
55964// same request ID, the server can check if original operation with the
55965// same request ID was received, and if so, will ignore the second
55966// request. This prevents clients from accidentally creating duplicate
55967// commitments.
55968//
55969// The request ID must be a valid UUID with the exception that zero UUID
55970// is not supported (00000000-0000-0000-0000-000000000000).
55971func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
55972	c.urlParams_.Set("requestId", requestId)
55973	return c
55974}
55975
55976// Fields allows partial responses to be retrieved. See
55977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55978// for more information.
55979func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
55980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55981	return c
55982}
55983
55984// Context sets the context to be used in this call's Do method. Any
55985// pending HTTP request will be aborted if the provided context is
55986// canceled.
55987func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
55988	c.ctx_ = ctx
55989	return c
55990}
55991
55992// Header returns an http.Header that can be modified by the caller to
55993// add HTTP headers to the request.
55994func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
55995	if c.header_ == nil {
55996		c.header_ = make(http.Header)
55997	}
55998	return c.header_
55999}
56000
56001func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
56002	reqHeaders := make(http.Header)
56003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56004	for k, v := range c.header_ {
56005		reqHeaders[k] = v
56006	}
56007	reqHeaders.Set("User-Agent", c.s.userAgent())
56008	var body io.Reader = nil
56009	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
56010	if err != nil {
56011		return nil, err
56012	}
56013	reqHeaders.Set("Content-Type", "application/json")
56014	c.urlParams_.Set("alt", alt)
56015	c.urlParams_.Set("prettyPrint", "false")
56016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
56017	urls += "?" + c.urlParams_.Encode()
56018	req, err := http.NewRequest("POST", urls, body)
56019	if err != nil {
56020		return nil, err
56021	}
56022	req.Header = reqHeaders
56023	googleapi.Expand(req.URL, map[string]string{
56024		"project": c.project,
56025	})
56026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56027}
56028
56029// Do executes the "compute.externalVpnGateways.insert" call.
56030// Exactly one of *Operation or error will be non-nil. Any non-2xx
56031// status code is an error. Response headers are in either
56032// *Operation.ServerResponse.Header or (if a response was returned at
56033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56034// to check whether the returned error was because
56035// http.StatusNotModified was returned.
56036func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56037	gensupport.SetOptions(c.urlParams_, opts...)
56038	res, err := c.doRequest("json")
56039	if res != nil && res.StatusCode == http.StatusNotModified {
56040		if res.Body != nil {
56041			res.Body.Close()
56042		}
56043		return nil, &googleapi.Error{
56044			Code:   res.StatusCode,
56045			Header: res.Header,
56046		}
56047	}
56048	if err != nil {
56049		return nil, err
56050	}
56051	defer googleapi.CloseBody(res)
56052	if err := googleapi.CheckResponse(res); err != nil {
56053		return nil, err
56054	}
56055	ret := &Operation{
56056		ServerResponse: googleapi.ServerResponse{
56057			Header:         res.Header,
56058			HTTPStatusCode: res.StatusCode,
56059		},
56060	}
56061	target := &ret
56062	if err := gensupport.DecodeResponse(target, res); err != nil {
56063		return nil, err
56064	}
56065	return ret, nil
56066	// {
56067	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
56068	//   "httpMethod": "POST",
56069	//   "id": "compute.externalVpnGateways.insert",
56070	//   "parameterOrder": [
56071	//     "project"
56072	//   ],
56073	//   "parameters": {
56074	//     "project": {
56075	//       "description": "Project ID for this request.",
56076	//       "location": "path",
56077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56078	//       "required": true,
56079	//       "type": "string"
56080	//     },
56081	//     "requestId": {
56082	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56083	//       "location": "query",
56084	//       "type": "string"
56085	//     }
56086	//   },
56087	//   "path": "{project}/global/externalVpnGateways",
56088	//   "request": {
56089	//     "$ref": "ExternalVpnGateway"
56090	//   },
56091	//   "response": {
56092	//     "$ref": "Operation"
56093	//   },
56094	//   "scopes": [
56095	//     "https://www.googleapis.com/auth/cloud-platform",
56096	//     "https://www.googleapis.com/auth/compute"
56097	//   ]
56098	// }
56099
56100}
56101
56102// method id "compute.externalVpnGateways.list":
56103
56104type ExternalVpnGatewaysListCall struct {
56105	s            *Service
56106	project      string
56107	urlParams_   gensupport.URLParams
56108	ifNoneMatch_ string
56109	ctx_         context.Context
56110	header_      http.Header
56111}
56112
56113// List: Retrieves the list of ExternalVpnGateway available to the
56114// specified project.
56115func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
56116	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56117	c.project = project
56118	return c
56119}
56120
56121// Filter sets the optional parameter "filter": A filter expression that
56122// filters resources listed in the response. The expression must specify
56123// the field name, a comparison operator, and the value that you want to
56124// use for filtering. The value must be a string, a number, or a
56125// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56126// `<`.
56127//
56128// For example, if you are filtering Compute Engine instances, you can
56129// exclude instances named `example-instance` by specifying `name !=
56130// example-instance`.
56131//
56132// You can also filter nested fields. For example, you could specify
56133// `scheduling.automaticRestart = false` to include instances only if
56134// they are not scheduled for automatic restarts. You can use filtering
56135// on nested fields to filter based on resource labels.
56136//
56137// To filter on multiple expressions, provide each separate expression
56138// within parentheses. For example: ``` (scheduling.automaticRestart =
56139// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
56140// is an `AND` expression. However, you can include `AND` and `OR`
56141// expressions explicitly. For example: ``` (cpuPlatform = "Intel
56142// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
56143// (scheduling.automaticRestart = true) ```
56144func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
56145	c.urlParams_.Set("filter", filter)
56146	return c
56147}
56148
56149// MaxResults sets the optional parameter "maxResults": The maximum
56150// number of results per page that should be returned. If the number of
56151// available results is larger than `maxResults`, Compute Engine returns
56152// a `nextPageToken` that can be used to get the next page of results in
56153// subsequent list requests. Acceptable values are `0` to `500`,
56154// inclusive. (Default: `500`)
56155func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
56156	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56157	return c
56158}
56159
56160// OrderBy sets the optional parameter "orderBy": Sorts list results by
56161// a certain order. By default, results are returned in alphanumerical
56162// order based on the resource name.
56163//
56164// You can also sort results in descending order based on the creation
56165// timestamp using `orderBy="creationTimestamp desc". This sorts
56166// results based on the `creationTimestamp` field in reverse
56167// chronological order (newest result first). Use this to sort resources
56168// like operations so that the newest operation is returned
56169// first.
56170//
56171// Currently, only sorting by `name` or `creationTimestamp desc` is
56172// supported.
56173func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
56174	c.urlParams_.Set("orderBy", orderBy)
56175	return c
56176}
56177
56178// PageToken sets the optional parameter "pageToken": Specifies a page
56179// token to use. Set `pageToken` to the `nextPageToken` returned by a
56180// previous list request to get the next page of results.
56181func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
56182	c.urlParams_.Set("pageToken", pageToken)
56183	return c
56184}
56185
56186// Fields allows partial responses to be retrieved. See
56187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56188// for more information.
56189func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
56190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56191	return c
56192}
56193
56194// IfNoneMatch sets the optional parameter which makes the operation
56195// fail if the object's ETag matches the given value. This is useful for
56196// getting updates only after the object has changed since the last
56197// request. Use googleapi.IsNotModified to check whether the response
56198// error from Do is the result of In-None-Match.
56199func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
56200	c.ifNoneMatch_ = entityTag
56201	return c
56202}
56203
56204// Context sets the context to be used in this call's Do method. Any
56205// pending HTTP request will be aborted if the provided context is
56206// canceled.
56207func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
56208	c.ctx_ = ctx
56209	return c
56210}
56211
56212// Header returns an http.Header that can be modified by the caller to
56213// add HTTP headers to the request.
56214func (c *ExternalVpnGatewaysListCall) Header() http.Header {
56215	if c.header_ == nil {
56216		c.header_ = make(http.Header)
56217	}
56218	return c.header_
56219}
56220
56221func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
56222	reqHeaders := make(http.Header)
56223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56224	for k, v := range c.header_ {
56225		reqHeaders[k] = v
56226	}
56227	reqHeaders.Set("User-Agent", c.s.userAgent())
56228	if c.ifNoneMatch_ != "" {
56229		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56230	}
56231	var body io.Reader = nil
56232	c.urlParams_.Set("alt", alt)
56233	c.urlParams_.Set("prettyPrint", "false")
56234	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
56235	urls += "?" + c.urlParams_.Encode()
56236	req, err := http.NewRequest("GET", urls, body)
56237	if err != nil {
56238		return nil, err
56239	}
56240	req.Header = reqHeaders
56241	googleapi.Expand(req.URL, map[string]string{
56242		"project": c.project,
56243	})
56244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56245}
56246
56247// Do executes the "compute.externalVpnGateways.list" call.
56248// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
56249// non-2xx status code is an error. Response headers are in either
56250// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
56251// returned at all) in error.(*googleapi.Error).Header. Use
56252// googleapi.IsNotModified to check whether the returned error was
56253// because http.StatusNotModified was returned.
56254func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
56255	gensupport.SetOptions(c.urlParams_, opts...)
56256	res, err := c.doRequest("json")
56257	if res != nil && res.StatusCode == http.StatusNotModified {
56258		if res.Body != nil {
56259			res.Body.Close()
56260		}
56261		return nil, &googleapi.Error{
56262			Code:   res.StatusCode,
56263			Header: res.Header,
56264		}
56265	}
56266	if err != nil {
56267		return nil, err
56268	}
56269	defer googleapi.CloseBody(res)
56270	if err := googleapi.CheckResponse(res); err != nil {
56271		return nil, err
56272	}
56273	ret := &ExternalVpnGatewayList{
56274		ServerResponse: googleapi.ServerResponse{
56275			Header:         res.Header,
56276			HTTPStatusCode: res.StatusCode,
56277		},
56278	}
56279	target := &ret
56280	if err := gensupport.DecodeResponse(target, res); err != nil {
56281		return nil, err
56282	}
56283	return ret, nil
56284	// {
56285	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
56286	//   "httpMethod": "GET",
56287	//   "id": "compute.externalVpnGateways.list",
56288	//   "parameterOrder": [
56289	//     "project"
56290	//   ],
56291	//   "parameters": {
56292	//     "filter": {
56293	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
56294	//       "location": "query",
56295	//       "type": "string"
56296	//     },
56297	//     "maxResults": {
56298	//       "default": "500",
56299	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
56300	//       "format": "uint32",
56301	//       "location": "query",
56302	//       "minimum": "0",
56303	//       "type": "integer"
56304	//     },
56305	//     "orderBy": {
56306	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
56307	//       "location": "query",
56308	//       "type": "string"
56309	//     },
56310	//     "pageToken": {
56311	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
56312	//       "location": "query",
56313	//       "type": "string"
56314	//     },
56315	//     "project": {
56316	//       "description": "Project ID for this request.",
56317	//       "location": "path",
56318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56319	//       "required": true,
56320	//       "type": "string"
56321	//     }
56322	//   },
56323	//   "path": "{project}/global/externalVpnGateways",
56324	//   "response": {
56325	//     "$ref": "ExternalVpnGatewayList"
56326	//   },
56327	//   "scopes": [
56328	//     "https://www.googleapis.com/auth/cloud-platform",
56329	//     "https://www.googleapis.com/auth/compute",
56330	//     "https://www.googleapis.com/auth/compute.readonly"
56331	//   ]
56332	// }
56333
56334}
56335
56336// Pages invokes f for each page of results.
56337// A non-nil error returned from f will halt the iteration.
56338// The provided context supersedes any context provided to the Context method.
56339func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
56340	c.ctx_ = ctx
56341	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56342	for {
56343		x, err := c.Do()
56344		if err != nil {
56345			return err
56346		}
56347		if err := f(x); err != nil {
56348			return err
56349		}
56350		if x.NextPageToken == "" {
56351			return nil
56352		}
56353		c.PageToken(x.NextPageToken)
56354	}
56355}
56356
56357// method id "compute.externalVpnGateways.setLabels":
56358
56359type ExternalVpnGatewaysSetLabelsCall struct {
56360	s                      *Service
56361	project                string
56362	resource               string
56363	globalsetlabelsrequest *GlobalSetLabelsRequest
56364	urlParams_             gensupport.URLParams
56365	ctx_                   context.Context
56366	header_                http.Header
56367}
56368
56369// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
56370// about labels, read the Labeling Resources documentation.
56371func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
56372	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56373	c.project = project
56374	c.resource = resource
56375	c.globalsetlabelsrequest = globalsetlabelsrequest
56376	return c
56377}
56378
56379// Fields allows partial responses to be retrieved. See
56380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56381// for more information.
56382func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
56383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56384	return c
56385}
56386
56387// Context sets the context to be used in this call's Do method. Any
56388// pending HTTP request will be aborted if the provided context is
56389// canceled.
56390func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
56391	c.ctx_ = ctx
56392	return c
56393}
56394
56395// Header returns an http.Header that can be modified by the caller to
56396// add HTTP headers to the request.
56397func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
56398	if c.header_ == nil {
56399		c.header_ = make(http.Header)
56400	}
56401	return c.header_
56402}
56403
56404func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
56405	reqHeaders := make(http.Header)
56406	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56407	for k, v := range c.header_ {
56408		reqHeaders[k] = v
56409	}
56410	reqHeaders.Set("User-Agent", c.s.userAgent())
56411	var body io.Reader = nil
56412	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
56413	if err != nil {
56414		return nil, err
56415	}
56416	reqHeaders.Set("Content-Type", "application/json")
56417	c.urlParams_.Set("alt", alt)
56418	c.urlParams_.Set("prettyPrint", "false")
56419	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/setLabels")
56420	urls += "?" + c.urlParams_.Encode()
56421	req, err := http.NewRequest("POST", urls, body)
56422	if err != nil {
56423		return nil, err
56424	}
56425	req.Header = reqHeaders
56426	googleapi.Expand(req.URL, map[string]string{
56427		"project":  c.project,
56428		"resource": c.resource,
56429	})
56430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56431}
56432
56433// Do executes the "compute.externalVpnGateways.setLabels" call.
56434// Exactly one of *Operation or error will be non-nil. Any non-2xx
56435// status code is an error. Response headers are in either
56436// *Operation.ServerResponse.Header or (if a response was returned at
56437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56438// to check whether the returned error was because
56439// http.StatusNotModified was returned.
56440func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56441	gensupport.SetOptions(c.urlParams_, opts...)
56442	res, err := c.doRequest("json")
56443	if res != nil && res.StatusCode == http.StatusNotModified {
56444		if res.Body != nil {
56445			res.Body.Close()
56446		}
56447		return nil, &googleapi.Error{
56448			Code:   res.StatusCode,
56449			Header: res.Header,
56450		}
56451	}
56452	if err != nil {
56453		return nil, err
56454	}
56455	defer googleapi.CloseBody(res)
56456	if err := googleapi.CheckResponse(res); err != nil {
56457		return nil, err
56458	}
56459	ret := &Operation{
56460		ServerResponse: googleapi.ServerResponse{
56461			Header:         res.Header,
56462			HTTPStatusCode: res.StatusCode,
56463		},
56464	}
56465	target := &ret
56466	if err := gensupport.DecodeResponse(target, res); err != nil {
56467		return nil, err
56468	}
56469	return ret, nil
56470	// {
56471	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
56472	//   "httpMethod": "POST",
56473	//   "id": "compute.externalVpnGateways.setLabels",
56474	//   "parameterOrder": [
56475	//     "project",
56476	//     "resource"
56477	//   ],
56478	//   "parameters": {
56479	//     "project": {
56480	//       "description": "Project ID for this request.",
56481	//       "location": "path",
56482	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56483	//       "required": true,
56484	//       "type": "string"
56485	//     },
56486	//     "resource": {
56487	//       "description": "Name or id of the resource for this request.",
56488	//       "location": "path",
56489	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56490	//       "required": true,
56491	//       "type": "string"
56492	//     }
56493	//   },
56494	//   "path": "{project}/global/externalVpnGateways/{resource}/setLabels",
56495	//   "request": {
56496	//     "$ref": "GlobalSetLabelsRequest"
56497	//   },
56498	//   "response": {
56499	//     "$ref": "Operation"
56500	//   },
56501	//   "scopes": [
56502	//     "https://www.googleapis.com/auth/cloud-platform",
56503	//     "https://www.googleapis.com/auth/compute"
56504	//   ]
56505	// }
56506
56507}
56508
56509// method id "compute.externalVpnGateways.testIamPermissions":
56510
56511type ExternalVpnGatewaysTestIamPermissionsCall struct {
56512	s                      *Service
56513	project                string
56514	resource               string
56515	testpermissionsrequest *TestPermissionsRequest
56516	urlParams_             gensupport.URLParams
56517	ctx_                   context.Context
56518	header_                http.Header
56519}
56520
56521// TestIamPermissions: Returns permissions that a caller has on the
56522// specified resource.
56523func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
56524	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56525	c.project = project
56526	c.resource = resource
56527	c.testpermissionsrequest = testpermissionsrequest
56528	return c
56529}
56530
56531// Fields allows partial responses to be retrieved. See
56532// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56533// for more information.
56534func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
56535	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56536	return c
56537}
56538
56539// Context sets the context to be used in this call's Do method. Any
56540// pending HTTP request will be aborted if the provided context is
56541// canceled.
56542func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
56543	c.ctx_ = ctx
56544	return c
56545}
56546
56547// Header returns an http.Header that can be modified by the caller to
56548// add HTTP headers to the request.
56549func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
56550	if c.header_ == nil {
56551		c.header_ = make(http.Header)
56552	}
56553	return c.header_
56554}
56555
56556func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
56557	reqHeaders := make(http.Header)
56558	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56559	for k, v := range c.header_ {
56560		reqHeaders[k] = v
56561	}
56562	reqHeaders.Set("User-Agent", c.s.userAgent())
56563	var body io.Reader = nil
56564	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
56565	if err != nil {
56566		return nil, err
56567	}
56568	reqHeaders.Set("Content-Type", "application/json")
56569	c.urlParams_.Set("alt", alt)
56570	c.urlParams_.Set("prettyPrint", "false")
56571	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/testIamPermissions")
56572	urls += "?" + c.urlParams_.Encode()
56573	req, err := http.NewRequest("POST", urls, body)
56574	if err != nil {
56575		return nil, err
56576	}
56577	req.Header = reqHeaders
56578	googleapi.Expand(req.URL, map[string]string{
56579		"project":  c.project,
56580		"resource": c.resource,
56581	})
56582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56583}
56584
56585// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
56586// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
56587// non-2xx status code is an error. Response headers are in either
56588// *TestPermissionsResponse.ServerResponse.Header or (if a response was
56589// returned at all) in error.(*googleapi.Error).Header. Use
56590// googleapi.IsNotModified to check whether the returned error was
56591// because http.StatusNotModified was returned.
56592func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
56593	gensupport.SetOptions(c.urlParams_, opts...)
56594	res, err := c.doRequest("json")
56595	if res != nil && res.StatusCode == http.StatusNotModified {
56596		if res.Body != nil {
56597			res.Body.Close()
56598		}
56599		return nil, &googleapi.Error{
56600			Code:   res.StatusCode,
56601			Header: res.Header,
56602		}
56603	}
56604	if err != nil {
56605		return nil, err
56606	}
56607	defer googleapi.CloseBody(res)
56608	if err := googleapi.CheckResponse(res); err != nil {
56609		return nil, err
56610	}
56611	ret := &TestPermissionsResponse{
56612		ServerResponse: googleapi.ServerResponse{
56613			Header:         res.Header,
56614			HTTPStatusCode: res.StatusCode,
56615		},
56616	}
56617	target := &ret
56618	if err := gensupport.DecodeResponse(target, res); err != nil {
56619		return nil, err
56620	}
56621	return ret, nil
56622	// {
56623	//   "description": "Returns permissions that a caller has on the specified resource.",
56624	//   "httpMethod": "POST",
56625	//   "id": "compute.externalVpnGateways.testIamPermissions",
56626	//   "parameterOrder": [
56627	//     "project",
56628	//     "resource"
56629	//   ],
56630	//   "parameters": {
56631	//     "project": {
56632	//       "description": "Project ID for this request.",
56633	//       "location": "path",
56634	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56635	//       "required": true,
56636	//       "type": "string"
56637	//     },
56638	//     "resource": {
56639	//       "description": "Name or id of the resource for this request.",
56640	//       "location": "path",
56641	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56642	//       "required": true,
56643	//       "type": "string"
56644	//     }
56645	//   },
56646	//   "path": "{project}/global/externalVpnGateways/{resource}/testIamPermissions",
56647	//   "request": {
56648	//     "$ref": "TestPermissionsRequest"
56649	//   },
56650	//   "response": {
56651	//     "$ref": "TestPermissionsResponse"
56652	//   },
56653	//   "scopes": [
56654	//     "https://www.googleapis.com/auth/cloud-platform",
56655	//     "https://www.googleapis.com/auth/compute",
56656	//     "https://www.googleapis.com/auth/compute.readonly"
56657	//   ]
56658	// }
56659
56660}
56661
56662// method id "compute.firewalls.delete":
56663
56664type FirewallsDeleteCall struct {
56665	s          *Service
56666	project    string
56667	firewall   string
56668	urlParams_ gensupport.URLParams
56669	ctx_       context.Context
56670	header_    http.Header
56671}
56672
56673// Delete: Deletes the specified firewall.
56674// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
56675func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
56676	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56677	c.project = project
56678	c.firewall = firewall
56679	return c
56680}
56681
56682// RequestId sets the optional parameter "requestId": An optional
56683// request ID to identify requests. Specify a unique request ID so that
56684// if you must retry your request, the server will know to ignore the
56685// request if it has already been completed.
56686//
56687// For example, consider a situation where you make an initial request
56688// and the request times out. If you make the request again with the
56689// same request ID, the server can check if original operation with the
56690// same request ID was received, and if so, will ignore the second
56691// request. This prevents clients from accidentally creating duplicate
56692// commitments.
56693//
56694// The request ID must be a valid UUID with the exception that zero UUID
56695// is not supported (00000000-0000-0000-0000-000000000000).
56696func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
56697	c.urlParams_.Set("requestId", requestId)
56698	return c
56699}
56700
56701// Fields allows partial responses to be retrieved. See
56702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56703// for more information.
56704func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
56705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56706	return c
56707}
56708
56709// Context sets the context to be used in this call's Do method. Any
56710// pending HTTP request will be aborted if the provided context is
56711// canceled.
56712func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
56713	c.ctx_ = ctx
56714	return c
56715}
56716
56717// Header returns an http.Header that can be modified by the caller to
56718// add HTTP headers to the request.
56719func (c *FirewallsDeleteCall) Header() http.Header {
56720	if c.header_ == nil {
56721		c.header_ = make(http.Header)
56722	}
56723	return c.header_
56724}
56725
56726func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
56727	reqHeaders := make(http.Header)
56728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56729	for k, v := range c.header_ {
56730		reqHeaders[k] = v
56731	}
56732	reqHeaders.Set("User-Agent", c.s.userAgent())
56733	var body io.Reader = nil
56734	c.urlParams_.Set("alt", alt)
56735	c.urlParams_.Set("prettyPrint", "false")
56736	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
56737	urls += "?" + c.urlParams_.Encode()
56738	req, err := http.NewRequest("DELETE", urls, body)
56739	if err != nil {
56740		return nil, err
56741	}
56742	req.Header = reqHeaders
56743	googleapi.Expand(req.URL, map[string]string{
56744		"project":  c.project,
56745		"firewall": c.firewall,
56746	})
56747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56748}
56749
56750// Do executes the "compute.firewalls.delete" call.
56751// Exactly one of *Operation or error will be non-nil. Any non-2xx
56752// status code is an error. Response headers are in either
56753// *Operation.ServerResponse.Header or (if a response was returned at
56754// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56755// to check whether the returned error was because
56756// http.StatusNotModified was returned.
56757func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56758	gensupport.SetOptions(c.urlParams_, opts...)
56759	res, err := c.doRequest("json")
56760	if res != nil && res.StatusCode == http.StatusNotModified {
56761		if res.Body != nil {
56762			res.Body.Close()
56763		}
56764		return nil, &googleapi.Error{
56765			Code:   res.StatusCode,
56766			Header: res.Header,
56767		}
56768	}
56769	if err != nil {
56770		return nil, err
56771	}
56772	defer googleapi.CloseBody(res)
56773	if err := googleapi.CheckResponse(res); err != nil {
56774		return nil, err
56775	}
56776	ret := &Operation{
56777		ServerResponse: googleapi.ServerResponse{
56778			Header:         res.Header,
56779			HTTPStatusCode: res.StatusCode,
56780		},
56781	}
56782	target := &ret
56783	if err := gensupport.DecodeResponse(target, res); err != nil {
56784		return nil, err
56785	}
56786	return ret, nil
56787	// {
56788	//   "description": "Deletes the specified firewall.",
56789	//   "httpMethod": "DELETE",
56790	//   "id": "compute.firewalls.delete",
56791	//   "parameterOrder": [
56792	//     "project",
56793	//     "firewall"
56794	//   ],
56795	//   "parameters": {
56796	//     "firewall": {
56797	//       "description": "Name of the firewall rule to delete.",
56798	//       "location": "path",
56799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56800	//       "required": true,
56801	//       "type": "string"
56802	//     },
56803	//     "project": {
56804	//       "description": "Project ID for this request.",
56805	//       "location": "path",
56806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56807	//       "required": true,
56808	//       "type": "string"
56809	//     },
56810	//     "requestId": {
56811	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56812	//       "location": "query",
56813	//       "type": "string"
56814	//     }
56815	//   },
56816	//   "path": "{project}/global/firewalls/{firewall}",
56817	//   "response": {
56818	//     "$ref": "Operation"
56819	//   },
56820	//   "scopes": [
56821	//     "https://www.googleapis.com/auth/cloud-platform",
56822	//     "https://www.googleapis.com/auth/compute"
56823	//   ]
56824	// }
56825
56826}
56827
56828// method id "compute.firewalls.get":
56829
56830type FirewallsGetCall struct {
56831	s            *Service
56832	project      string
56833	firewall     string
56834	urlParams_   gensupport.URLParams
56835	ifNoneMatch_ string
56836	ctx_         context.Context
56837	header_      http.Header
56838}
56839
56840// Get: Returns the specified firewall.
56841// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
56842func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
56843	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56844	c.project = project
56845	c.firewall = firewall
56846	return c
56847}
56848
56849// Fields allows partial responses to be retrieved. See
56850// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56851// for more information.
56852func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
56853	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56854	return c
56855}
56856
56857// IfNoneMatch sets the optional parameter which makes the operation
56858// fail if the object's ETag matches the given value. This is useful for
56859// getting updates only after the object has changed since the last
56860// request. Use googleapi.IsNotModified to check whether the response
56861// error from Do is the result of In-None-Match.
56862func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
56863	c.ifNoneMatch_ = entityTag
56864	return c
56865}
56866
56867// Context sets the context to be used in this call's Do method. Any
56868// pending HTTP request will be aborted if the provided context is
56869// canceled.
56870func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
56871	c.ctx_ = ctx
56872	return c
56873}
56874
56875// Header returns an http.Header that can be modified by the caller to
56876// add HTTP headers to the request.
56877func (c *FirewallsGetCall) Header() http.Header {
56878	if c.header_ == nil {
56879		c.header_ = make(http.Header)
56880	}
56881	return c.header_
56882}
56883
56884func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
56885	reqHeaders := make(http.Header)
56886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
56887	for k, v := range c.header_ {
56888		reqHeaders[k] = v
56889	}
56890	reqHeaders.Set("User-Agent", c.s.userAgent())
56891	if c.ifNoneMatch_ != "" {
56892		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56893	}
56894	var body io.Reader = nil
56895	c.urlParams_.Set("alt", alt)
56896	c.urlParams_.Set("prettyPrint", "false")
56897	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
56898	urls += "?" + c.urlParams_.Encode()
56899	req, err := http.NewRequest("GET", urls, body)
56900	if err != nil {
56901		return nil, err
56902	}
56903	req.Header = reqHeaders
56904	googleapi.Expand(req.URL, map[string]string{
56905		"project":  c.project,
56906		"firewall": c.firewall,
56907	})
56908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56909}
56910
56911// Do executes the "compute.firewalls.get" call.
56912// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
56913// code is an error. Response headers are in either
56914// *Firewall.ServerResponse.Header or (if a response was returned at
56915// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56916// to check whether the returned error was because
56917// http.StatusNotModified was returned.
56918func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
56919	gensupport.SetOptions(c.urlParams_, opts...)
56920	res, err := c.doRequest("json")
56921	if res != nil && res.StatusCode == http.StatusNotModified {
56922		if res.Body != nil {
56923			res.Body.Close()
56924		}
56925		return nil, &googleapi.Error{
56926			Code:   res.StatusCode,
56927			Header: res.Header,
56928		}
56929	}
56930	if err != nil {
56931		return nil, err
56932	}
56933	defer googleapi.CloseBody(res)
56934	if err := googleapi.CheckResponse(res); err != nil {
56935		return nil, err
56936	}
56937	ret := &Firewall{
56938		ServerResponse: googleapi.ServerResponse{
56939			Header:         res.Header,
56940			HTTPStatusCode: res.StatusCode,
56941		},
56942	}
56943	target := &ret
56944	if err := gensupport.DecodeResponse(target, res); err != nil {
56945		return nil, err
56946	}
56947	return ret, nil
56948	// {
56949	//   "description": "Returns the specified firewall.",
56950	//   "httpMethod": "GET",
56951	//   "id": "compute.firewalls.get",
56952	//   "parameterOrder": [
56953	//     "project",
56954	//     "firewall"
56955	//   ],
56956	//   "parameters": {
56957	//     "firewall": {
56958	//       "description": "Name of the firewall rule to return.",
56959	//       "location": "path",
56960	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56961	//       "required": true,
56962	//       "type": "string"
56963	//     },
56964	//     "project": {
56965	//       "description": "Project ID for this request.",
56966	//       "location": "path",
56967	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56968	//       "required": true,
56969	//       "type": "string"
56970	//     }
56971	//   },
56972	//   "path": "{project}/global/firewalls/{firewall}",
56973	//   "response": {
56974	//     "$ref": "Firewall"
56975	//   },
56976	//   "scopes": [
56977	//     "https://www.googleapis.com/auth/cloud-platform",
56978	//     "https://www.googleapis.com/auth/compute",
56979	//     "https://www.googleapis.com/auth/compute.readonly"
56980	//   ]
56981	// }
56982
56983}
56984
56985// method id "compute.firewalls.insert":
56986
56987type FirewallsInsertCall struct {
56988	s          *Service
56989	project    string
56990	firewall   *Firewall
56991	urlParams_ gensupport.URLParams
56992	ctx_       context.Context
56993	header_    http.Header
56994}
56995
56996// Insert: Creates a firewall rule in the specified project using the
56997// data included in the request.
56998// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
56999func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
57000	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57001	c.project = project
57002	c.firewall = firewall
57003	return c
57004}
57005
57006// RequestId sets the optional parameter "requestId": An optional
57007// request ID to identify requests. Specify a unique request ID so that
57008// if you must retry your request, the server will know to ignore the
57009// request if it has already been completed.
57010//
57011// For example, consider a situation where you make an initial request
57012// and the request times out. If you make the request again with the
57013// same request ID, the server can check if original operation with the
57014// same request ID was received, and if so, will ignore the second
57015// request. This prevents clients from accidentally creating duplicate
57016// commitments.
57017//
57018// The request ID must be a valid UUID with the exception that zero UUID
57019// is not supported (00000000-0000-0000-0000-000000000000).
57020func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
57021	c.urlParams_.Set("requestId", requestId)
57022	return c
57023}
57024
57025// Fields allows partial responses to be retrieved. See
57026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57027// for more information.
57028func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
57029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57030	return c
57031}
57032
57033// Context sets the context to be used in this call's Do method. Any
57034// pending HTTP request will be aborted if the provided context is
57035// canceled.
57036func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
57037	c.ctx_ = ctx
57038	return c
57039}
57040
57041// Header returns an http.Header that can be modified by the caller to
57042// add HTTP headers to the request.
57043func (c *FirewallsInsertCall) Header() http.Header {
57044	if c.header_ == nil {
57045		c.header_ = make(http.Header)
57046	}
57047	return c.header_
57048}
57049
57050func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
57051	reqHeaders := make(http.Header)
57052	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57053	for k, v := range c.header_ {
57054		reqHeaders[k] = v
57055	}
57056	reqHeaders.Set("User-Agent", c.s.userAgent())
57057	var body io.Reader = nil
57058	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
57059	if err != nil {
57060		return nil, err
57061	}
57062	reqHeaders.Set("Content-Type", "application/json")
57063	c.urlParams_.Set("alt", alt)
57064	c.urlParams_.Set("prettyPrint", "false")
57065	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
57066	urls += "?" + c.urlParams_.Encode()
57067	req, err := http.NewRequest("POST", urls, body)
57068	if err != nil {
57069		return nil, err
57070	}
57071	req.Header = reqHeaders
57072	googleapi.Expand(req.URL, map[string]string{
57073		"project": c.project,
57074	})
57075	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57076}
57077
57078// Do executes the "compute.firewalls.insert" call.
57079// Exactly one of *Operation or error will be non-nil. Any non-2xx
57080// status code is an error. Response headers are in either
57081// *Operation.ServerResponse.Header or (if a response was returned at
57082// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57083// to check whether the returned error was because
57084// http.StatusNotModified was returned.
57085func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57086	gensupport.SetOptions(c.urlParams_, opts...)
57087	res, err := c.doRequest("json")
57088	if res != nil && res.StatusCode == http.StatusNotModified {
57089		if res.Body != nil {
57090			res.Body.Close()
57091		}
57092		return nil, &googleapi.Error{
57093			Code:   res.StatusCode,
57094			Header: res.Header,
57095		}
57096	}
57097	if err != nil {
57098		return nil, err
57099	}
57100	defer googleapi.CloseBody(res)
57101	if err := googleapi.CheckResponse(res); err != nil {
57102		return nil, err
57103	}
57104	ret := &Operation{
57105		ServerResponse: googleapi.ServerResponse{
57106			Header:         res.Header,
57107			HTTPStatusCode: res.StatusCode,
57108		},
57109	}
57110	target := &ret
57111	if err := gensupport.DecodeResponse(target, res); err != nil {
57112		return nil, err
57113	}
57114	return ret, nil
57115	// {
57116	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
57117	//   "httpMethod": "POST",
57118	//   "id": "compute.firewalls.insert",
57119	//   "parameterOrder": [
57120	//     "project"
57121	//   ],
57122	//   "parameters": {
57123	//     "project": {
57124	//       "description": "Project ID for this request.",
57125	//       "location": "path",
57126	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57127	//       "required": true,
57128	//       "type": "string"
57129	//     },
57130	//     "requestId": {
57131	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57132	//       "location": "query",
57133	//       "type": "string"
57134	//     }
57135	//   },
57136	//   "path": "{project}/global/firewalls",
57137	//   "request": {
57138	//     "$ref": "Firewall"
57139	//   },
57140	//   "response": {
57141	//     "$ref": "Operation"
57142	//   },
57143	//   "scopes": [
57144	//     "https://www.googleapis.com/auth/cloud-platform",
57145	//     "https://www.googleapis.com/auth/compute"
57146	//   ]
57147	// }
57148
57149}
57150
57151// method id "compute.firewalls.list":
57152
57153type FirewallsListCall struct {
57154	s            *Service
57155	project      string
57156	urlParams_   gensupport.URLParams
57157	ifNoneMatch_ string
57158	ctx_         context.Context
57159	header_      http.Header
57160}
57161
57162// List: Retrieves the list of firewall rules available to the specified
57163// project.
57164// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
57165func (r *FirewallsService) List(project string) *FirewallsListCall {
57166	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57167	c.project = project
57168	return c
57169}
57170
57171// Filter sets the optional parameter "filter": A filter expression that
57172// filters resources listed in the response. The expression must specify
57173// the field name, a comparison operator, and the value that you want to
57174// use for filtering. The value must be a string, a number, or a
57175// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57176// `<`.
57177//
57178// For example, if you are filtering Compute Engine instances, you can
57179// exclude instances named `example-instance` by specifying `name !=
57180// example-instance`.
57181//
57182// You can also filter nested fields. For example, you could specify
57183// `scheduling.automaticRestart = false` to include instances only if
57184// they are not scheduled for automatic restarts. You can use filtering
57185// on nested fields to filter based on resource labels.
57186//
57187// To filter on multiple expressions, provide each separate expression
57188// within parentheses. For example: ``` (scheduling.automaticRestart =
57189// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
57190// is an `AND` expression. However, you can include `AND` and `OR`
57191// expressions explicitly. For example: ``` (cpuPlatform = "Intel
57192// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
57193// (scheduling.automaticRestart = true) ```
57194func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
57195	c.urlParams_.Set("filter", filter)
57196	return c
57197}
57198
57199// MaxResults sets the optional parameter "maxResults": The maximum
57200// number of results per page that should be returned. If the number of
57201// available results is larger than `maxResults`, Compute Engine returns
57202// a `nextPageToken` that can be used to get the next page of results in
57203// subsequent list requests. Acceptable values are `0` to `500`,
57204// inclusive. (Default: `500`)
57205func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
57206	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57207	return c
57208}
57209
57210// OrderBy sets the optional parameter "orderBy": Sorts list results by
57211// a certain order. By default, results are returned in alphanumerical
57212// order based on the resource name.
57213//
57214// You can also sort results in descending order based on the creation
57215// timestamp using `orderBy="creationTimestamp desc". This sorts
57216// results based on the `creationTimestamp` field in reverse
57217// chronological order (newest result first). Use this to sort resources
57218// like operations so that the newest operation is returned
57219// first.
57220//
57221// Currently, only sorting by `name` or `creationTimestamp desc` is
57222// supported.
57223func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
57224	c.urlParams_.Set("orderBy", orderBy)
57225	return c
57226}
57227
57228// PageToken sets the optional parameter "pageToken": Specifies a page
57229// token to use. Set `pageToken` to the `nextPageToken` returned by a
57230// previous list request to get the next page of results.
57231func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
57232	c.urlParams_.Set("pageToken", pageToken)
57233	return c
57234}
57235
57236// Fields allows partial responses to be retrieved. See
57237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57238// for more information.
57239func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
57240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57241	return c
57242}
57243
57244// IfNoneMatch sets the optional parameter which makes the operation
57245// fail if the object's ETag matches the given value. This is useful for
57246// getting updates only after the object has changed since the last
57247// request. Use googleapi.IsNotModified to check whether the response
57248// error from Do is the result of In-None-Match.
57249func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
57250	c.ifNoneMatch_ = entityTag
57251	return c
57252}
57253
57254// Context sets the context to be used in this call's Do method. Any
57255// pending HTTP request will be aborted if the provided context is
57256// canceled.
57257func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
57258	c.ctx_ = ctx
57259	return c
57260}
57261
57262// Header returns an http.Header that can be modified by the caller to
57263// add HTTP headers to the request.
57264func (c *FirewallsListCall) Header() http.Header {
57265	if c.header_ == nil {
57266		c.header_ = make(http.Header)
57267	}
57268	return c.header_
57269}
57270
57271func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
57272	reqHeaders := make(http.Header)
57273	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57274	for k, v := range c.header_ {
57275		reqHeaders[k] = v
57276	}
57277	reqHeaders.Set("User-Agent", c.s.userAgent())
57278	if c.ifNoneMatch_ != "" {
57279		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57280	}
57281	var body io.Reader = nil
57282	c.urlParams_.Set("alt", alt)
57283	c.urlParams_.Set("prettyPrint", "false")
57284	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
57285	urls += "?" + c.urlParams_.Encode()
57286	req, err := http.NewRequest("GET", urls, body)
57287	if err != nil {
57288		return nil, err
57289	}
57290	req.Header = reqHeaders
57291	googleapi.Expand(req.URL, map[string]string{
57292		"project": c.project,
57293	})
57294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57295}
57296
57297// Do executes the "compute.firewalls.list" call.
57298// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
57299// status code is an error. Response headers are in either
57300// *FirewallList.ServerResponse.Header or (if a response was returned at
57301// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57302// to check whether the returned error was because
57303// http.StatusNotModified was returned.
57304func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
57305	gensupport.SetOptions(c.urlParams_, opts...)
57306	res, err := c.doRequest("json")
57307	if res != nil && res.StatusCode == http.StatusNotModified {
57308		if res.Body != nil {
57309			res.Body.Close()
57310		}
57311		return nil, &googleapi.Error{
57312			Code:   res.StatusCode,
57313			Header: res.Header,
57314		}
57315	}
57316	if err != nil {
57317		return nil, err
57318	}
57319	defer googleapi.CloseBody(res)
57320	if err := googleapi.CheckResponse(res); err != nil {
57321		return nil, err
57322	}
57323	ret := &FirewallList{
57324		ServerResponse: googleapi.ServerResponse{
57325			Header:         res.Header,
57326			HTTPStatusCode: res.StatusCode,
57327		},
57328	}
57329	target := &ret
57330	if err := gensupport.DecodeResponse(target, res); err != nil {
57331		return nil, err
57332	}
57333	return ret, nil
57334	// {
57335	//   "description": "Retrieves the list of firewall rules available to the specified project.",
57336	//   "httpMethod": "GET",
57337	//   "id": "compute.firewalls.list",
57338	//   "parameterOrder": [
57339	//     "project"
57340	//   ],
57341	//   "parameters": {
57342	//     "filter": {
57343	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
57344	//       "location": "query",
57345	//       "type": "string"
57346	//     },
57347	//     "maxResults": {
57348	//       "default": "500",
57349	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
57350	//       "format": "uint32",
57351	//       "location": "query",
57352	//       "minimum": "0",
57353	//       "type": "integer"
57354	//     },
57355	//     "orderBy": {
57356	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
57357	//       "location": "query",
57358	//       "type": "string"
57359	//     },
57360	//     "pageToken": {
57361	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
57362	//       "location": "query",
57363	//       "type": "string"
57364	//     },
57365	//     "project": {
57366	//       "description": "Project ID for this request.",
57367	//       "location": "path",
57368	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57369	//       "required": true,
57370	//       "type": "string"
57371	//     }
57372	//   },
57373	//   "path": "{project}/global/firewalls",
57374	//   "response": {
57375	//     "$ref": "FirewallList"
57376	//   },
57377	//   "scopes": [
57378	//     "https://www.googleapis.com/auth/cloud-platform",
57379	//     "https://www.googleapis.com/auth/compute",
57380	//     "https://www.googleapis.com/auth/compute.readonly"
57381	//   ]
57382	// }
57383
57384}
57385
57386// Pages invokes f for each page of results.
57387// A non-nil error returned from f will halt the iteration.
57388// The provided context supersedes any context provided to the Context method.
57389func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
57390	c.ctx_ = ctx
57391	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57392	for {
57393		x, err := c.Do()
57394		if err != nil {
57395			return err
57396		}
57397		if err := f(x); err != nil {
57398			return err
57399		}
57400		if x.NextPageToken == "" {
57401			return nil
57402		}
57403		c.PageToken(x.NextPageToken)
57404	}
57405}
57406
57407// method id "compute.firewalls.patch":
57408
57409type FirewallsPatchCall struct {
57410	s          *Service
57411	project    string
57412	firewall   string
57413	firewall2  *Firewall
57414	urlParams_ gensupport.URLParams
57415	ctx_       context.Context
57416	header_    http.Header
57417}
57418
57419// Patch: Updates the specified firewall rule with the data included in
57420// the request. This method supports PATCH semantics and uses the JSON
57421// merge patch format and processing rules.
57422// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
57423func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
57424	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57425	c.project = project
57426	c.firewall = firewall
57427	c.firewall2 = firewall2
57428	return c
57429}
57430
57431// RequestId sets the optional parameter "requestId": An optional
57432// request ID to identify requests. Specify a unique request ID so that
57433// if you must retry your request, the server will know to ignore the
57434// request if it has already been completed.
57435//
57436// For example, consider a situation where you make an initial request
57437// and the request times out. If you make the request again with the
57438// same request ID, the server can check if original operation with the
57439// same request ID was received, and if so, will ignore the second
57440// request. This prevents clients from accidentally creating duplicate
57441// commitments.
57442//
57443// The request ID must be a valid UUID with the exception that zero UUID
57444// is not supported (00000000-0000-0000-0000-000000000000).
57445func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
57446	c.urlParams_.Set("requestId", requestId)
57447	return c
57448}
57449
57450// Fields allows partial responses to be retrieved. See
57451// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57452// for more information.
57453func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
57454	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57455	return c
57456}
57457
57458// Context sets the context to be used in this call's Do method. Any
57459// pending HTTP request will be aborted if the provided context is
57460// canceled.
57461func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
57462	c.ctx_ = ctx
57463	return c
57464}
57465
57466// Header returns an http.Header that can be modified by the caller to
57467// add HTTP headers to the request.
57468func (c *FirewallsPatchCall) Header() http.Header {
57469	if c.header_ == nil {
57470		c.header_ = make(http.Header)
57471	}
57472	return c.header_
57473}
57474
57475func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
57476	reqHeaders := make(http.Header)
57477	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57478	for k, v := range c.header_ {
57479		reqHeaders[k] = v
57480	}
57481	reqHeaders.Set("User-Agent", c.s.userAgent())
57482	var body io.Reader = nil
57483	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
57484	if err != nil {
57485		return nil, err
57486	}
57487	reqHeaders.Set("Content-Type", "application/json")
57488	c.urlParams_.Set("alt", alt)
57489	c.urlParams_.Set("prettyPrint", "false")
57490	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
57491	urls += "?" + c.urlParams_.Encode()
57492	req, err := http.NewRequest("PATCH", urls, body)
57493	if err != nil {
57494		return nil, err
57495	}
57496	req.Header = reqHeaders
57497	googleapi.Expand(req.URL, map[string]string{
57498		"project":  c.project,
57499		"firewall": c.firewall,
57500	})
57501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57502}
57503
57504// Do executes the "compute.firewalls.patch" call.
57505// Exactly one of *Operation or error will be non-nil. Any non-2xx
57506// status code is an error. Response headers are in either
57507// *Operation.ServerResponse.Header or (if a response was returned at
57508// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57509// to check whether the returned error was because
57510// http.StatusNotModified was returned.
57511func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57512	gensupport.SetOptions(c.urlParams_, opts...)
57513	res, err := c.doRequest("json")
57514	if res != nil && res.StatusCode == http.StatusNotModified {
57515		if res.Body != nil {
57516			res.Body.Close()
57517		}
57518		return nil, &googleapi.Error{
57519			Code:   res.StatusCode,
57520			Header: res.Header,
57521		}
57522	}
57523	if err != nil {
57524		return nil, err
57525	}
57526	defer googleapi.CloseBody(res)
57527	if err := googleapi.CheckResponse(res); err != nil {
57528		return nil, err
57529	}
57530	ret := &Operation{
57531		ServerResponse: googleapi.ServerResponse{
57532			Header:         res.Header,
57533			HTTPStatusCode: res.StatusCode,
57534		},
57535	}
57536	target := &ret
57537	if err := gensupport.DecodeResponse(target, res); err != nil {
57538		return nil, err
57539	}
57540	return ret, nil
57541	// {
57542	//   "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.",
57543	//   "httpMethod": "PATCH",
57544	//   "id": "compute.firewalls.patch",
57545	//   "parameterOrder": [
57546	//     "project",
57547	//     "firewall"
57548	//   ],
57549	//   "parameters": {
57550	//     "firewall": {
57551	//       "description": "Name of the firewall rule to patch.",
57552	//       "location": "path",
57553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57554	//       "required": true,
57555	//       "type": "string"
57556	//     },
57557	//     "project": {
57558	//       "description": "Project ID for this request.",
57559	//       "location": "path",
57560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57561	//       "required": true,
57562	//       "type": "string"
57563	//     },
57564	//     "requestId": {
57565	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57566	//       "location": "query",
57567	//       "type": "string"
57568	//     }
57569	//   },
57570	//   "path": "{project}/global/firewalls/{firewall}",
57571	//   "request": {
57572	//     "$ref": "Firewall"
57573	//   },
57574	//   "response": {
57575	//     "$ref": "Operation"
57576	//   },
57577	//   "scopes": [
57578	//     "https://www.googleapis.com/auth/cloud-platform",
57579	//     "https://www.googleapis.com/auth/compute"
57580	//   ]
57581	// }
57582
57583}
57584
57585// method id "compute.firewalls.testIamPermissions":
57586
57587type FirewallsTestIamPermissionsCall struct {
57588	s                      *Service
57589	project                string
57590	resource               string
57591	testpermissionsrequest *TestPermissionsRequest
57592	urlParams_             gensupport.URLParams
57593	ctx_                   context.Context
57594	header_                http.Header
57595}
57596
57597// TestIamPermissions: Returns permissions that a caller has on the
57598// specified resource.
57599func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall {
57600	c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57601	c.project = project
57602	c.resource = resource
57603	c.testpermissionsrequest = testpermissionsrequest
57604	return c
57605}
57606
57607// Fields allows partial responses to be retrieved. See
57608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57609// for more information.
57610func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall {
57611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57612	return c
57613}
57614
57615// Context sets the context to be used in this call's Do method. Any
57616// pending HTTP request will be aborted if the provided context is
57617// canceled.
57618func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall {
57619	c.ctx_ = ctx
57620	return c
57621}
57622
57623// Header returns an http.Header that can be modified by the caller to
57624// add HTTP headers to the request.
57625func (c *FirewallsTestIamPermissionsCall) Header() http.Header {
57626	if c.header_ == nil {
57627		c.header_ = make(http.Header)
57628	}
57629	return c.header_
57630}
57631
57632func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
57633	reqHeaders := make(http.Header)
57634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57635	for k, v := range c.header_ {
57636		reqHeaders[k] = v
57637	}
57638	reqHeaders.Set("User-Agent", c.s.userAgent())
57639	var body io.Reader = nil
57640	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
57641	if err != nil {
57642		return nil, err
57643	}
57644	reqHeaders.Set("Content-Type", "application/json")
57645	c.urlParams_.Set("alt", alt)
57646	c.urlParams_.Set("prettyPrint", "false")
57647	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{resource}/testIamPermissions")
57648	urls += "?" + c.urlParams_.Encode()
57649	req, err := http.NewRequest("POST", urls, body)
57650	if err != nil {
57651		return nil, err
57652	}
57653	req.Header = reqHeaders
57654	googleapi.Expand(req.URL, map[string]string{
57655		"project":  c.project,
57656		"resource": c.resource,
57657	})
57658	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57659}
57660
57661// Do executes the "compute.firewalls.testIamPermissions" call.
57662// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
57663// non-2xx status code is an error. Response headers are in either
57664// *TestPermissionsResponse.ServerResponse.Header or (if a response was
57665// returned at all) in error.(*googleapi.Error).Header. Use
57666// googleapi.IsNotModified to check whether the returned error was
57667// because http.StatusNotModified was returned.
57668func (c *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
57669	gensupport.SetOptions(c.urlParams_, opts...)
57670	res, err := c.doRequest("json")
57671	if res != nil && res.StatusCode == http.StatusNotModified {
57672		if res.Body != nil {
57673			res.Body.Close()
57674		}
57675		return nil, &googleapi.Error{
57676			Code:   res.StatusCode,
57677			Header: res.Header,
57678		}
57679	}
57680	if err != nil {
57681		return nil, err
57682	}
57683	defer googleapi.CloseBody(res)
57684	if err := googleapi.CheckResponse(res); err != nil {
57685		return nil, err
57686	}
57687	ret := &TestPermissionsResponse{
57688		ServerResponse: googleapi.ServerResponse{
57689			Header:         res.Header,
57690			HTTPStatusCode: res.StatusCode,
57691		},
57692	}
57693	target := &ret
57694	if err := gensupport.DecodeResponse(target, res); err != nil {
57695		return nil, err
57696	}
57697	return ret, nil
57698	// {
57699	//   "description": "Returns permissions that a caller has on the specified resource.",
57700	//   "httpMethod": "POST",
57701	//   "id": "compute.firewalls.testIamPermissions",
57702	//   "parameterOrder": [
57703	//     "project",
57704	//     "resource"
57705	//   ],
57706	//   "parameters": {
57707	//     "project": {
57708	//       "description": "Project ID for this request.",
57709	//       "location": "path",
57710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57711	//       "required": true,
57712	//       "type": "string"
57713	//     },
57714	//     "resource": {
57715	//       "description": "Name or id of the resource for this request.",
57716	//       "location": "path",
57717	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57718	//       "required": true,
57719	//       "type": "string"
57720	//     }
57721	//   },
57722	//   "path": "{project}/global/firewalls/{resource}/testIamPermissions",
57723	//   "request": {
57724	//     "$ref": "TestPermissionsRequest"
57725	//   },
57726	//   "response": {
57727	//     "$ref": "TestPermissionsResponse"
57728	//   },
57729	//   "scopes": [
57730	//     "https://www.googleapis.com/auth/cloud-platform",
57731	//     "https://www.googleapis.com/auth/compute",
57732	//     "https://www.googleapis.com/auth/compute.readonly"
57733	//   ]
57734	// }
57735
57736}
57737
57738// method id "compute.firewalls.update":
57739
57740type FirewallsUpdateCall struct {
57741	s          *Service
57742	project    string
57743	firewall   string
57744	firewall2  *Firewall
57745	urlParams_ gensupport.URLParams
57746	ctx_       context.Context
57747	header_    http.Header
57748}
57749
57750// Update: Updates the specified firewall rule with the data included in
57751// the request. Note that all fields will be updated if using PUT, even
57752// fields that are not specified. To update individual fields, please
57753// use PATCH instead.
57754// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
57755func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
57756	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57757	c.project = project
57758	c.firewall = firewall
57759	c.firewall2 = firewall2
57760	return c
57761}
57762
57763// RequestId sets the optional parameter "requestId": An optional
57764// request ID to identify requests. Specify a unique request ID so that
57765// if you must retry your request, the server will know to ignore the
57766// request if it has already been completed.
57767//
57768// For example, consider a situation where you make an initial request
57769// and the request times out. If you make the request again with the
57770// same request ID, the server can check if original operation with the
57771// same request ID was received, and if so, will ignore the second
57772// request. This prevents clients from accidentally creating duplicate
57773// commitments.
57774//
57775// The request ID must be a valid UUID with the exception that zero UUID
57776// is not supported (00000000-0000-0000-0000-000000000000).
57777func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
57778	c.urlParams_.Set("requestId", requestId)
57779	return c
57780}
57781
57782// Fields allows partial responses to be retrieved. See
57783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57784// for more information.
57785func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
57786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57787	return c
57788}
57789
57790// Context sets the context to be used in this call's Do method. Any
57791// pending HTTP request will be aborted if the provided context is
57792// canceled.
57793func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
57794	c.ctx_ = ctx
57795	return c
57796}
57797
57798// Header returns an http.Header that can be modified by the caller to
57799// add HTTP headers to the request.
57800func (c *FirewallsUpdateCall) Header() http.Header {
57801	if c.header_ == nil {
57802		c.header_ = make(http.Header)
57803	}
57804	return c.header_
57805}
57806
57807func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
57808	reqHeaders := make(http.Header)
57809	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
57810	for k, v := range c.header_ {
57811		reqHeaders[k] = v
57812	}
57813	reqHeaders.Set("User-Agent", c.s.userAgent())
57814	var body io.Reader = nil
57815	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
57816	if err != nil {
57817		return nil, err
57818	}
57819	reqHeaders.Set("Content-Type", "application/json")
57820	c.urlParams_.Set("alt", alt)
57821	c.urlParams_.Set("prettyPrint", "false")
57822	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
57823	urls += "?" + c.urlParams_.Encode()
57824	req, err := http.NewRequest("PUT", urls, body)
57825	if err != nil {
57826		return nil, err
57827	}
57828	req.Header = reqHeaders
57829	googleapi.Expand(req.URL, map[string]string{
57830		"project":  c.project,
57831		"firewall": c.firewall,
57832	})
57833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57834}
57835
57836// Do executes the "compute.firewalls.update" call.
57837// Exactly one of *Operation or error will be non-nil. Any non-2xx
57838// status code is an error. Response headers are in either
57839// *Operation.ServerResponse.Header or (if a response was returned at
57840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57841// to check whether the returned error was because
57842// http.StatusNotModified was returned.
57843func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57844	gensupport.SetOptions(c.urlParams_, opts...)
57845	res, err := c.doRequest("json")
57846	if res != nil && res.StatusCode == http.StatusNotModified {
57847		if res.Body != nil {
57848			res.Body.Close()
57849		}
57850		return nil, &googleapi.Error{
57851			Code:   res.StatusCode,
57852			Header: res.Header,
57853		}
57854	}
57855	if err != nil {
57856		return nil, err
57857	}
57858	defer googleapi.CloseBody(res)
57859	if err := googleapi.CheckResponse(res); err != nil {
57860		return nil, err
57861	}
57862	ret := &Operation{
57863		ServerResponse: googleapi.ServerResponse{
57864			Header:         res.Header,
57865			HTTPStatusCode: res.StatusCode,
57866		},
57867	}
57868	target := &ret
57869	if err := gensupport.DecodeResponse(target, res); err != nil {
57870		return nil, err
57871	}
57872	return ret, nil
57873	// {
57874	//   "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.",
57875	//   "httpMethod": "PUT",
57876	//   "id": "compute.firewalls.update",
57877	//   "parameterOrder": [
57878	//     "project",
57879	//     "firewall"
57880	//   ],
57881	//   "parameters": {
57882	//     "firewall": {
57883	//       "description": "Name of the firewall rule to update.",
57884	//       "location": "path",
57885	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57886	//       "required": true,
57887	//       "type": "string"
57888	//     },
57889	//     "project": {
57890	//       "description": "Project ID for this request.",
57891	//       "location": "path",
57892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57893	//       "required": true,
57894	//       "type": "string"
57895	//     },
57896	//     "requestId": {
57897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57898	//       "location": "query",
57899	//       "type": "string"
57900	//     }
57901	//   },
57902	//   "path": "{project}/global/firewalls/{firewall}",
57903	//   "request": {
57904	//     "$ref": "Firewall"
57905	//   },
57906	//   "response": {
57907	//     "$ref": "Operation"
57908	//   },
57909	//   "scopes": [
57910	//     "https://www.googleapis.com/auth/cloud-platform",
57911	//     "https://www.googleapis.com/auth/compute"
57912	//   ]
57913	// }
57914
57915}
57916
57917// method id "compute.forwardingRules.aggregatedList":
57918
57919type ForwardingRulesAggregatedListCall struct {
57920	s            *Service
57921	project      string
57922	urlParams_   gensupport.URLParams
57923	ifNoneMatch_ string
57924	ctx_         context.Context
57925	header_      http.Header
57926}
57927
57928// AggregatedList: Retrieves an aggregated list of forwarding rules.
57929// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
57930func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
57931	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57932	c.project = project
57933	return c
57934}
57935
57936// Filter sets the optional parameter "filter": A filter expression that
57937// filters resources listed in the response. The expression must specify
57938// the field name, a comparison operator, and the value that you want to
57939// use for filtering. The value must be a string, a number, or a
57940// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57941// `<`.
57942//
57943// For example, if you are filtering Compute Engine instances, you can
57944// exclude instances named `example-instance` by specifying `name !=
57945// example-instance`.
57946//
57947// You can also filter nested fields. For example, you could specify
57948// `scheduling.automaticRestart = false` to include instances only if
57949// they are not scheduled for automatic restarts. You can use filtering
57950// on nested fields to filter based on resource labels.
57951//
57952// To filter on multiple expressions, provide each separate expression
57953// within parentheses. For example: ``` (scheduling.automaticRestart =
57954// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
57955// is an `AND` expression. However, you can include `AND` and `OR`
57956// expressions explicitly. For example: ``` (cpuPlatform = "Intel
57957// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
57958// (scheduling.automaticRestart = true) ```
57959func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
57960	c.urlParams_.Set("filter", filter)
57961	return c
57962}
57963
57964// IncludeAllScopes sets the optional parameter "includeAllScopes":
57965// Indicates whether every visible scope for each scope type (zone,
57966// region, global) should be included in the response. For new resource
57967// types added after this field, the flag has no effect as new resource
57968// types will always include every visible scope for each scope type in
57969// response. For resource types which predate this field, if this flag
57970// is omitted or false, only scopes of the scope types where the
57971// resource type is expected to be found will be included.
57972func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
57973	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
57974	return c
57975}
57976
57977// MaxResults sets the optional parameter "maxResults": The maximum
57978// number of results per page that should be returned. If the number of
57979// available results is larger than `maxResults`, Compute Engine returns
57980// a `nextPageToken` that can be used to get the next page of results in
57981// subsequent list requests. Acceptable values are `0` to `500`,
57982// inclusive. (Default: `500`)
57983func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
57984	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57985	return c
57986}
57987
57988// OrderBy sets the optional parameter "orderBy": Sorts list results by
57989// a certain order. By default, results are returned in alphanumerical
57990// order based on the resource name.
57991//
57992// You can also sort results in descending order based on the creation
57993// timestamp using `orderBy="creationTimestamp desc". This sorts
57994// results based on the `creationTimestamp` field in reverse
57995// chronological order (newest result first). Use this to sort resources
57996// like operations so that the newest operation is returned
57997// first.
57998//
57999// Currently, only sorting by `name` or `creationTimestamp desc` is
58000// supported.
58001func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
58002	c.urlParams_.Set("orderBy", orderBy)
58003	return c
58004}
58005
58006// PageToken sets the optional parameter "pageToken": Specifies a page
58007// token to use. Set `pageToken` to the `nextPageToken` returned by a
58008// previous list request to get the next page of results.
58009func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
58010	c.urlParams_.Set("pageToken", pageToken)
58011	return c
58012}
58013
58014// Fields allows partial responses to be retrieved. See
58015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58016// for more information.
58017func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
58018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58019	return c
58020}
58021
58022// IfNoneMatch sets the optional parameter which makes the operation
58023// fail if the object's ETag matches the given value. This is useful for
58024// getting updates only after the object has changed since the last
58025// request. Use googleapi.IsNotModified to check whether the response
58026// error from Do is the result of In-None-Match.
58027func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
58028	c.ifNoneMatch_ = entityTag
58029	return c
58030}
58031
58032// Context sets the context to be used in this call's Do method. Any
58033// pending HTTP request will be aborted if the provided context is
58034// canceled.
58035func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
58036	c.ctx_ = ctx
58037	return c
58038}
58039
58040// Header returns an http.Header that can be modified by the caller to
58041// add HTTP headers to the request.
58042func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
58043	if c.header_ == nil {
58044		c.header_ = make(http.Header)
58045	}
58046	return c.header_
58047}
58048
58049func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
58050	reqHeaders := make(http.Header)
58051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58052	for k, v := range c.header_ {
58053		reqHeaders[k] = v
58054	}
58055	reqHeaders.Set("User-Agent", c.s.userAgent())
58056	if c.ifNoneMatch_ != "" {
58057		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58058	}
58059	var body io.Reader = nil
58060	c.urlParams_.Set("alt", alt)
58061	c.urlParams_.Set("prettyPrint", "false")
58062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
58063	urls += "?" + c.urlParams_.Encode()
58064	req, err := http.NewRequest("GET", urls, body)
58065	if err != nil {
58066		return nil, err
58067	}
58068	req.Header = reqHeaders
58069	googleapi.Expand(req.URL, map[string]string{
58070		"project": c.project,
58071	})
58072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58073}
58074
58075// Do executes the "compute.forwardingRules.aggregatedList" call.
58076// Exactly one of *ForwardingRuleAggregatedList or error will be
58077// non-nil. Any non-2xx status code is an error. Response headers are in
58078// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
58079// response was returned at all) in error.(*googleapi.Error).Header. Use
58080// googleapi.IsNotModified to check whether the returned error was
58081// because http.StatusNotModified was returned.
58082func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
58083	gensupport.SetOptions(c.urlParams_, opts...)
58084	res, err := c.doRequest("json")
58085	if res != nil && res.StatusCode == http.StatusNotModified {
58086		if res.Body != nil {
58087			res.Body.Close()
58088		}
58089		return nil, &googleapi.Error{
58090			Code:   res.StatusCode,
58091			Header: res.Header,
58092		}
58093	}
58094	if err != nil {
58095		return nil, err
58096	}
58097	defer googleapi.CloseBody(res)
58098	if err := googleapi.CheckResponse(res); err != nil {
58099		return nil, err
58100	}
58101	ret := &ForwardingRuleAggregatedList{
58102		ServerResponse: googleapi.ServerResponse{
58103			Header:         res.Header,
58104			HTTPStatusCode: res.StatusCode,
58105		},
58106	}
58107	target := &ret
58108	if err := gensupport.DecodeResponse(target, res); err != nil {
58109		return nil, err
58110	}
58111	return ret, nil
58112	// {
58113	//   "description": "Retrieves an aggregated list of forwarding rules.",
58114	//   "httpMethod": "GET",
58115	//   "id": "compute.forwardingRules.aggregatedList",
58116	//   "parameterOrder": [
58117	//     "project"
58118	//   ],
58119	//   "parameters": {
58120	//     "filter": {
58121	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58122	//       "location": "query",
58123	//       "type": "string"
58124	//     },
58125	//     "includeAllScopes": {
58126	//       "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.",
58127	//       "location": "query",
58128	//       "type": "boolean"
58129	//     },
58130	//     "maxResults": {
58131	//       "default": "500",
58132	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58133	//       "format": "uint32",
58134	//       "location": "query",
58135	//       "minimum": "0",
58136	//       "type": "integer"
58137	//     },
58138	//     "orderBy": {
58139	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58140	//       "location": "query",
58141	//       "type": "string"
58142	//     },
58143	//     "pageToken": {
58144	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58145	//       "location": "query",
58146	//       "type": "string"
58147	//     },
58148	//     "project": {
58149	//       "description": "Project ID for this request.",
58150	//       "location": "path",
58151	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58152	//       "required": true,
58153	//       "type": "string"
58154	//     }
58155	//   },
58156	//   "path": "{project}/aggregated/forwardingRules",
58157	//   "response": {
58158	//     "$ref": "ForwardingRuleAggregatedList"
58159	//   },
58160	//   "scopes": [
58161	//     "https://www.googleapis.com/auth/cloud-platform",
58162	//     "https://www.googleapis.com/auth/compute",
58163	//     "https://www.googleapis.com/auth/compute.readonly"
58164	//   ]
58165	// }
58166
58167}
58168
58169// Pages invokes f for each page of results.
58170// A non-nil error returned from f will halt the iteration.
58171// The provided context supersedes any context provided to the Context method.
58172func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
58173	c.ctx_ = ctx
58174	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58175	for {
58176		x, err := c.Do()
58177		if err != nil {
58178			return err
58179		}
58180		if err := f(x); err != nil {
58181			return err
58182		}
58183		if x.NextPageToken == "" {
58184			return nil
58185		}
58186		c.PageToken(x.NextPageToken)
58187	}
58188}
58189
58190// method id "compute.forwardingRules.delete":
58191
58192type ForwardingRulesDeleteCall struct {
58193	s              *Service
58194	project        string
58195	region         string
58196	forwardingRule string
58197	urlParams_     gensupport.URLParams
58198	ctx_           context.Context
58199	header_        http.Header
58200}
58201
58202// Delete: Deletes the specified ForwardingRule resource.
58203// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
58204func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
58205	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58206	c.project = project
58207	c.region = region
58208	c.forwardingRule = forwardingRule
58209	return c
58210}
58211
58212// RequestId sets the optional parameter "requestId": An optional
58213// request ID to identify requests. Specify a unique request ID so that
58214// if you must retry your request, the server will know to ignore the
58215// request if it has already been completed.
58216//
58217// For example, consider a situation where you make an initial request
58218// and the request times out. If you make the request again with the
58219// same request ID, the server can check if original operation with the
58220// same request ID was received, and if so, will ignore the second
58221// request. This prevents clients from accidentally creating duplicate
58222// commitments.
58223//
58224// The request ID must be a valid UUID with the exception that zero UUID
58225// is not supported (00000000-0000-0000-0000-000000000000).
58226func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
58227	c.urlParams_.Set("requestId", requestId)
58228	return c
58229}
58230
58231// Fields allows partial responses to be retrieved. See
58232// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58233// for more information.
58234func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
58235	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58236	return c
58237}
58238
58239// Context sets the context to be used in this call's Do method. Any
58240// pending HTTP request will be aborted if the provided context is
58241// canceled.
58242func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
58243	c.ctx_ = ctx
58244	return c
58245}
58246
58247// Header returns an http.Header that can be modified by the caller to
58248// add HTTP headers to the request.
58249func (c *ForwardingRulesDeleteCall) Header() http.Header {
58250	if c.header_ == nil {
58251		c.header_ = make(http.Header)
58252	}
58253	return c.header_
58254}
58255
58256func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
58257	reqHeaders := make(http.Header)
58258	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58259	for k, v := range c.header_ {
58260		reqHeaders[k] = v
58261	}
58262	reqHeaders.Set("User-Agent", c.s.userAgent())
58263	var body io.Reader = nil
58264	c.urlParams_.Set("alt", alt)
58265	c.urlParams_.Set("prettyPrint", "false")
58266	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
58267	urls += "?" + c.urlParams_.Encode()
58268	req, err := http.NewRequest("DELETE", urls, body)
58269	if err != nil {
58270		return nil, err
58271	}
58272	req.Header = reqHeaders
58273	googleapi.Expand(req.URL, map[string]string{
58274		"project":        c.project,
58275		"region":         c.region,
58276		"forwardingRule": c.forwardingRule,
58277	})
58278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58279}
58280
58281// Do executes the "compute.forwardingRules.delete" call.
58282// Exactly one of *Operation or error will be non-nil. Any non-2xx
58283// status code is an error. Response headers are in either
58284// *Operation.ServerResponse.Header or (if a response was returned at
58285// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58286// to check whether the returned error was because
58287// http.StatusNotModified was returned.
58288func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58289	gensupport.SetOptions(c.urlParams_, opts...)
58290	res, err := c.doRequest("json")
58291	if res != nil && res.StatusCode == http.StatusNotModified {
58292		if res.Body != nil {
58293			res.Body.Close()
58294		}
58295		return nil, &googleapi.Error{
58296			Code:   res.StatusCode,
58297			Header: res.Header,
58298		}
58299	}
58300	if err != nil {
58301		return nil, err
58302	}
58303	defer googleapi.CloseBody(res)
58304	if err := googleapi.CheckResponse(res); err != nil {
58305		return nil, err
58306	}
58307	ret := &Operation{
58308		ServerResponse: googleapi.ServerResponse{
58309			Header:         res.Header,
58310			HTTPStatusCode: res.StatusCode,
58311		},
58312	}
58313	target := &ret
58314	if err := gensupport.DecodeResponse(target, res); err != nil {
58315		return nil, err
58316	}
58317	return ret, nil
58318	// {
58319	//   "description": "Deletes the specified ForwardingRule resource.",
58320	//   "httpMethod": "DELETE",
58321	//   "id": "compute.forwardingRules.delete",
58322	//   "parameterOrder": [
58323	//     "project",
58324	//     "region",
58325	//     "forwardingRule"
58326	//   ],
58327	//   "parameters": {
58328	//     "forwardingRule": {
58329	//       "description": "Name of the ForwardingRule resource to delete.",
58330	//       "location": "path",
58331	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58332	//       "required": true,
58333	//       "type": "string"
58334	//     },
58335	//     "project": {
58336	//       "description": "Project ID for this request.",
58337	//       "location": "path",
58338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58339	//       "required": true,
58340	//       "type": "string"
58341	//     },
58342	//     "region": {
58343	//       "description": "Name of the region scoping this request.",
58344	//       "location": "path",
58345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58346	//       "required": true,
58347	//       "type": "string"
58348	//     },
58349	//     "requestId": {
58350	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58351	//       "location": "query",
58352	//       "type": "string"
58353	//     }
58354	//   },
58355	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
58356	//   "response": {
58357	//     "$ref": "Operation"
58358	//   },
58359	//   "scopes": [
58360	//     "https://www.googleapis.com/auth/cloud-platform",
58361	//     "https://www.googleapis.com/auth/compute"
58362	//   ]
58363	// }
58364
58365}
58366
58367// method id "compute.forwardingRules.get":
58368
58369type ForwardingRulesGetCall struct {
58370	s              *Service
58371	project        string
58372	region         string
58373	forwardingRule string
58374	urlParams_     gensupport.URLParams
58375	ifNoneMatch_   string
58376	ctx_           context.Context
58377	header_        http.Header
58378}
58379
58380// Get: Returns the specified ForwardingRule resource.
58381// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
58382func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
58383	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58384	c.project = project
58385	c.region = region
58386	c.forwardingRule = forwardingRule
58387	return c
58388}
58389
58390// Fields allows partial responses to be retrieved. See
58391// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58392// for more information.
58393func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
58394	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58395	return c
58396}
58397
58398// IfNoneMatch sets the optional parameter which makes the operation
58399// fail if the object's ETag matches the given value. This is useful for
58400// getting updates only after the object has changed since the last
58401// request. Use googleapi.IsNotModified to check whether the response
58402// error from Do is the result of In-None-Match.
58403func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
58404	c.ifNoneMatch_ = entityTag
58405	return c
58406}
58407
58408// Context sets the context to be used in this call's Do method. Any
58409// pending HTTP request will be aborted if the provided context is
58410// canceled.
58411func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
58412	c.ctx_ = ctx
58413	return c
58414}
58415
58416// Header returns an http.Header that can be modified by the caller to
58417// add HTTP headers to the request.
58418func (c *ForwardingRulesGetCall) Header() http.Header {
58419	if c.header_ == nil {
58420		c.header_ = make(http.Header)
58421	}
58422	return c.header_
58423}
58424
58425func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
58426	reqHeaders := make(http.Header)
58427	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58428	for k, v := range c.header_ {
58429		reqHeaders[k] = v
58430	}
58431	reqHeaders.Set("User-Agent", c.s.userAgent())
58432	if c.ifNoneMatch_ != "" {
58433		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58434	}
58435	var body io.Reader = nil
58436	c.urlParams_.Set("alt", alt)
58437	c.urlParams_.Set("prettyPrint", "false")
58438	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
58439	urls += "?" + c.urlParams_.Encode()
58440	req, err := http.NewRequest("GET", urls, body)
58441	if err != nil {
58442		return nil, err
58443	}
58444	req.Header = reqHeaders
58445	googleapi.Expand(req.URL, map[string]string{
58446		"project":        c.project,
58447		"region":         c.region,
58448		"forwardingRule": c.forwardingRule,
58449	})
58450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58451}
58452
58453// Do executes the "compute.forwardingRules.get" call.
58454// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
58455// status code is an error. Response headers are in either
58456// *ForwardingRule.ServerResponse.Header or (if a response was returned
58457// at all) in error.(*googleapi.Error).Header. Use
58458// googleapi.IsNotModified to check whether the returned error was
58459// because http.StatusNotModified was returned.
58460func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
58461	gensupport.SetOptions(c.urlParams_, opts...)
58462	res, err := c.doRequest("json")
58463	if res != nil && res.StatusCode == http.StatusNotModified {
58464		if res.Body != nil {
58465			res.Body.Close()
58466		}
58467		return nil, &googleapi.Error{
58468			Code:   res.StatusCode,
58469			Header: res.Header,
58470		}
58471	}
58472	if err != nil {
58473		return nil, err
58474	}
58475	defer googleapi.CloseBody(res)
58476	if err := googleapi.CheckResponse(res); err != nil {
58477		return nil, err
58478	}
58479	ret := &ForwardingRule{
58480		ServerResponse: googleapi.ServerResponse{
58481			Header:         res.Header,
58482			HTTPStatusCode: res.StatusCode,
58483		},
58484	}
58485	target := &ret
58486	if err := gensupport.DecodeResponse(target, res); err != nil {
58487		return nil, err
58488	}
58489	return ret, nil
58490	// {
58491	//   "description": "Returns the specified ForwardingRule resource.",
58492	//   "httpMethod": "GET",
58493	//   "id": "compute.forwardingRules.get",
58494	//   "parameterOrder": [
58495	//     "project",
58496	//     "region",
58497	//     "forwardingRule"
58498	//   ],
58499	//   "parameters": {
58500	//     "forwardingRule": {
58501	//       "description": "Name of the ForwardingRule resource to return.",
58502	//       "location": "path",
58503	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58504	//       "required": true,
58505	//       "type": "string"
58506	//     },
58507	//     "project": {
58508	//       "description": "Project ID for this request.",
58509	//       "location": "path",
58510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58511	//       "required": true,
58512	//       "type": "string"
58513	//     },
58514	//     "region": {
58515	//       "description": "Name of the region scoping this request.",
58516	//       "location": "path",
58517	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58518	//       "required": true,
58519	//       "type": "string"
58520	//     }
58521	//   },
58522	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
58523	//   "response": {
58524	//     "$ref": "ForwardingRule"
58525	//   },
58526	//   "scopes": [
58527	//     "https://www.googleapis.com/auth/cloud-platform",
58528	//     "https://www.googleapis.com/auth/compute",
58529	//     "https://www.googleapis.com/auth/compute.readonly"
58530	//   ]
58531	// }
58532
58533}
58534
58535// method id "compute.forwardingRules.insert":
58536
58537type ForwardingRulesInsertCall struct {
58538	s              *Service
58539	project        string
58540	region         string
58541	forwardingrule *ForwardingRule
58542	urlParams_     gensupport.URLParams
58543	ctx_           context.Context
58544	header_        http.Header
58545}
58546
58547// Insert: Creates a ForwardingRule resource in the specified project
58548// and region using the data included in the request.
58549// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
58550func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
58551	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58552	c.project = project
58553	c.region = region
58554	c.forwardingrule = forwardingrule
58555	return c
58556}
58557
58558// RequestId sets the optional parameter "requestId": An optional
58559// request ID to identify requests. Specify a unique request ID so that
58560// if you must retry your request, the server will know to ignore the
58561// request if it has already been completed.
58562//
58563// For example, consider a situation where you make an initial request
58564// and the request times out. If you make the request again with the
58565// same request ID, the server can check if original operation with the
58566// same request ID was received, and if so, will ignore the second
58567// request. This prevents clients from accidentally creating duplicate
58568// commitments.
58569//
58570// The request ID must be a valid UUID with the exception that zero UUID
58571// is not supported (00000000-0000-0000-0000-000000000000).
58572func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
58573	c.urlParams_.Set("requestId", requestId)
58574	return c
58575}
58576
58577// Fields allows partial responses to be retrieved. See
58578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58579// for more information.
58580func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
58581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58582	return c
58583}
58584
58585// Context sets the context to be used in this call's Do method. Any
58586// pending HTTP request will be aborted if the provided context is
58587// canceled.
58588func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
58589	c.ctx_ = ctx
58590	return c
58591}
58592
58593// Header returns an http.Header that can be modified by the caller to
58594// add HTTP headers to the request.
58595func (c *ForwardingRulesInsertCall) Header() http.Header {
58596	if c.header_ == nil {
58597		c.header_ = make(http.Header)
58598	}
58599	return c.header_
58600}
58601
58602func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
58603	reqHeaders := make(http.Header)
58604	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58605	for k, v := range c.header_ {
58606		reqHeaders[k] = v
58607	}
58608	reqHeaders.Set("User-Agent", c.s.userAgent())
58609	var body io.Reader = nil
58610	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
58611	if err != nil {
58612		return nil, err
58613	}
58614	reqHeaders.Set("Content-Type", "application/json")
58615	c.urlParams_.Set("alt", alt)
58616	c.urlParams_.Set("prettyPrint", "false")
58617	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
58618	urls += "?" + c.urlParams_.Encode()
58619	req, err := http.NewRequest("POST", urls, body)
58620	if err != nil {
58621		return nil, err
58622	}
58623	req.Header = reqHeaders
58624	googleapi.Expand(req.URL, map[string]string{
58625		"project": c.project,
58626		"region":  c.region,
58627	})
58628	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58629}
58630
58631// Do executes the "compute.forwardingRules.insert" call.
58632// Exactly one of *Operation or error will be non-nil. Any non-2xx
58633// status code is an error. Response headers are in either
58634// *Operation.ServerResponse.Header or (if a response was returned at
58635// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58636// to check whether the returned error was because
58637// http.StatusNotModified was returned.
58638func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58639	gensupport.SetOptions(c.urlParams_, opts...)
58640	res, err := c.doRequest("json")
58641	if res != nil && res.StatusCode == http.StatusNotModified {
58642		if res.Body != nil {
58643			res.Body.Close()
58644		}
58645		return nil, &googleapi.Error{
58646			Code:   res.StatusCode,
58647			Header: res.Header,
58648		}
58649	}
58650	if err != nil {
58651		return nil, err
58652	}
58653	defer googleapi.CloseBody(res)
58654	if err := googleapi.CheckResponse(res); err != nil {
58655		return nil, err
58656	}
58657	ret := &Operation{
58658		ServerResponse: googleapi.ServerResponse{
58659			Header:         res.Header,
58660			HTTPStatusCode: res.StatusCode,
58661		},
58662	}
58663	target := &ret
58664	if err := gensupport.DecodeResponse(target, res); err != nil {
58665		return nil, err
58666	}
58667	return ret, nil
58668	// {
58669	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
58670	//   "httpMethod": "POST",
58671	//   "id": "compute.forwardingRules.insert",
58672	//   "parameterOrder": [
58673	//     "project",
58674	//     "region"
58675	//   ],
58676	//   "parameters": {
58677	//     "project": {
58678	//       "description": "Project ID for this request.",
58679	//       "location": "path",
58680	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58681	//       "required": true,
58682	//       "type": "string"
58683	//     },
58684	//     "region": {
58685	//       "description": "Name of the region scoping this request.",
58686	//       "location": "path",
58687	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58688	//       "required": true,
58689	//       "type": "string"
58690	//     },
58691	//     "requestId": {
58692	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58693	//       "location": "query",
58694	//       "type": "string"
58695	//     }
58696	//   },
58697	//   "path": "{project}/regions/{region}/forwardingRules",
58698	//   "request": {
58699	//     "$ref": "ForwardingRule"
58700	//   },
58701	//   "response": {
58702	//     "$ref": "Operation"
58703	//   },
58704	//   "scopes": [
58705	//     "https://www.googleapis.com/auth/cloud-platform",
58706	//     "https://www.googleapis.com/auth/compute"
58707	//   ]
58708	// }
58709
58710}
58711
58712// method id "compute.forwardingRules.list":
58713
58714type ForwardingRulesListCall struct {
58715	s            *Service
58716	project      string
58717	region       string
58718	urlParams_   gensupport.URLParams
58719	ifNoneMatch_ string
58720	ctx_         context.Context
58721	header_      http.Header
58722}
58723
58724// List: Retrieves a list of ForwardingRule resources available to the
58725// specified project and region.
58726// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
58727func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
58728	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58729	c.project = project
58730	c.region = region
58731	return c
58732}
58733
58734// Filter sets the optional parameter "filter": A filter expression that
58735// filters resources listed in the response. The expression must specify
58736// the field name, a comparison operator, and the value that you want to
58737// use for filtering. The value must be a string, a number, or a
58738// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58739// `<`.
58740//
58741// For example, if you are filtering Compute Engine instances, you can
58742// exclude instances named `example-instance` by specifying `name !=
58743// example-instance`.
58744//
58745// You can also filter nested fields. For example, you could specify
58746// `scheduling.automaticRestart = false` to include instances only if
58747// they are not scheduled for automatic restarts. You can use filtering
58748// on nested fields to filter based on resource labels.
58749//
58750// To filter on multiple expressions, provide each separate expression
58751// within parentheses. For example: ``` (scheduling.automaticRestart =
58752// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58753// is an `AND` expression. However, you can include `AND` and `OR`
58754// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58755// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58756// (scheduling.automaticRestart = true) ```
58757func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
58758	c.urlParams_.Set("filter", filter)
58759	return c
58760}
58761
58762// MaxResults sets the optional parameter "maxResults": The maximum
58763// number of results per page that should be returned. If the number of
58764// available results is larger than `maxResults`, Compute Engine returns
58765// a `nextPageToken` that can be used to get the next page of results in
58766// subsequent list requests. Acceptable values are `0` to `500`,
58767// inclusive. (Default: `500`)
58768func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
58769	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58770	return c
58771}
58772
58773// OrderBy sets the optional parameter "orderBy": Sorts list results by
58774// a certain order. By default, results are returned in alphanumerical
58775// order based on the resource name.
58776//
58777// You can also sort results in descending order based on the creation
58778// timestamp using `orderBy="creationTimestamp desc". This sorts
58779// results based on the `creationTimestamp` field in reverse
58780// chronological order (newest result first). Use this to sort resources
58781// like operations so that the newest operation is returned
58782// first.
58783//
58784// Currently, only sorting by `name` or `creationTimestamp desc` is
58785// supported.
58786func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
58787	c.urlParams_.Set("orderBy", orderBy)
58788	return c
58789}
58790
58791// PageToken sets the optional parameter "pageToken": Specifies a page
58792// token to use. Set `pageToken` to the `nextPageToken` returned by a
58793// previous list request to get the next page of results.
58794func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
58795	c.urlParams_.Set("pageToken", pageToken)
58796	return c
58797}
58798
58799// Fields allows partial responses to be retrieved. See
58800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58801// for more information.
58802func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
58803	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58804	return c
58805}
58806
58807// IfNoneMatch sets the optional parameter which makes the operation
58808// fail if the object's ETag matches the given value. This is useful for
58809// getting updates only after the object has changed since the last
58810// request. Use googleapi.IsNotModified to check whether the response
58811// error from Do is the result of In-None-Match.
58812func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
58813	c.ifNoneMatch_ = entityTag
58814	return c
58815}
58816
58817// Context sets the context to be used in this call's Do method. Any
58818// pending HTTP request will be aborted if the provided context is
58819// canceled.
58820func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
58821	c.ctx_ = ctx
58822	return c
58823}
58824
58825// Header returns an http.Header that can be modified by the caller to
58826// add HTTP headers to the request.
58827func (c *ForwardingRulesListCall) Header() http.Header {
58828	if c.header_ == nil {
58829		c.header_ = make(http.Header)
58830	}
58831	return c.header_
58832}
58833
58834func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
58835	reqHeaders := make(http.Header)
58836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
58837	for k, v := range c.header_ {
58838		reqHeaders[k] = v
58839	}
58840	reqHeaders.Set("User-Agent", c.s.userAgent())
58841	if c.ifNoneMatch_ != "" {
58842		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58843	}
58844	var body io.Reader = nil
58845	c.urlParams_.Set("alt", alt)
58846	c.urlParams_.Set("prettyPrint", "false")
58847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
58848	urls += "?" + c.urlParams_.Encode()
58849	req, err := http.NewRequest("GET", urls, body)
58850	if err != nil {
58851		return nil, err
58852	}
58853	req.Header = reqHeaders
58854	googleapi.Expand(req.URL, map[string]string{
58855		"project": c.project,
58856		"region":  c.region,
58857	})
58858	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58859}
58860
58861// Do executes the "compute.forwardingRules.list" call.
58862// Exactly one of *ForwardingRuleList or error will be non-nil. Any
58863// non-2xx status code is an error. Response headers are in either
58864// *ForwardingRuleList.ServerResponse.Header or (if a response was
58865// returned at all) in error.(*googleapi.Error).Header. Use
58866// googleapi.IsNotModified to check whether the returned error was
58867// because http.StatusNotModified was returned.
58868func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
58869	gensupport.SetOptions(c.urlParams_, opts...)
58870	res, err := c.doRequest("json")
58871	if res != nil && res.StatusCode == http.StatusNotModified {
58872		if res.Body != nil {
58873			res.Body.Close()
58874		}
58875		return nil, &googleapi.Error{
58876			Code:   res.StatusCode,
58877			Header: res.Header,
58878		}
58879	}
58880	if err != nil {
58881		return nil, err
58882	}
58883	defer googleapi.CloseBody(res)
58884	if err := googleapi.CheckResponse(res); err != nil {
58885		return nil, err
58886	}
58887	ret := &ForwardingRuleList{
58888		ServerResponse: googleapi.ServerResponse{
58889			Header:         res.Header,
58890			HTTPStatusCode: res.StatusCode,
58891		},
58892	}
58893	target := &ret
58894	if err := gensupport.DecodeResponse(target, res); err != nil {
58895		return nil, err
58896	}
58897	return ret, nil
58898	// {
58899	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
58900	//   "httpMethod": "GET",
58901	//   "id": "compute.forwardingRules.list",
58902	//   "parameterOrder": [
58903	//     "project",
58904	//     "region"
58905	//   ],
58906	//   "parameters": {
58907	//     "filter": {
58908	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58909	//       "location": "query",
58910	//       "type": "string"
58911	//     },
58912	//     "maxResults": {
58913	//       "default": "500",
58914	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58915	//       "format": "uint32",
58916	//       "location": "query",
58917	//       "minimum": "0",
58918	//       "type": "integer"
58919	//     },
58920	//     "orderBy": {
58921	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58922	//       "location": "query",
58923	//       "type": "string"
58924	//     },
58925	//     "pageToken": {
58926	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58927	//       "location": "query",
58928	//       "type": "string"
58929	//     },
58930	//     "project": {
58931	//       "description": "Project ID for this request.",
58932	//       "location": "path",
58933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58934	//       "required": true,
58935	//       "type": "string"
58936	//     },
58937	//     "region": {
58938	//       "description": "Name of the region scoping this request.",
58939	//       "location": "path",
58940	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58941	//       "required": true,
58942	//       "type": "string"
58943	//     }
58944	//   },
58945	//   "path": "{project}/regions/{region}/forwardingRules",
58946	//   "response": {
58947	//     "$ref": "ForwardingRuleList"
58948	//   },
58949	//   "scopes": [
58950	//     "https://www.googleapis.com/auth/cloud-platform",
58951	//     "https://www.googleapis.com/auth/compute",
58952	//     "https://www.googleapis.com/auth/compute.readonly"
58953	//   ]
58954	// }
58955
58956}
58957
58958// Pages invokes f for each page of results.
58959// A non-nil error returned from f will halt the iteration.
58960// The provided context supersedes any context provided to the Context method.
58961func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
58962	c.ctx_ = ctx
58963	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58964	for {
58965		x, err := c.Do()
58966		if err != nil {
58967			return err
58968		}
58969		if err := f(x); err != nil {
58970			return err
58971		}
58972		if x.NextPageToken == "" {
58973			return nil
58974		}
58975		c.PageToken(x.NextPageToken)
58976	}
58977}
58978
58979// method id "compute.forwardingRules.patch":
58980
58981type ForwardingRulesPatchCall struct {
58982	s              *Service
58983	project        string
58984	region         string
58985	forwardingRule string
58986	forwardingrule *ForwardingRule
58987	urlParams_     gensupport.URLParams
58988	ctx_           context.Context
58989	header_        http.Header
58990}
58991
58992// Patch: Updates the specified forwarding rule with the data included
58993// in the request. This method supports PATCH semantics and uses the
58994// JSON merge patch format and processing rules. Currently, you can only
58995// patch the network_tier field.
58996func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
58997	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58998	c.project = project
58999	c.region = region
59000	c.forwardingRule = forwardingRule
59001	c.forwardingrule = forwardingrule
59002	return c
59003}
59004
59005// RequestId sets the optional parameter "requestId": An optional
59006// request ID to identify requests. Specify a unique request ID so that
59007// if you must retry your request, the server will know to ignore the
59008// request if it has already been completed.
59009//
59010// For example, consider a situation where you make an initial request
59011// and the request times out. If you make the request again with the
59012// same request ID, the server can check if original operation with the
59013// same request ID was received, and if so, will ignore the second
59014// request. This prevents clients from accidentally creating duplicate
59015// commitments.
59016//
59017// The request ID must be a valid UUID with the exception that zero UUID
59018// is not supported (00000000-0000-0000-0000-000000000000).
59019func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
59020	c.urlParams_.Set("requestId", requestId)
59021	return c
59022}
59023
59024// Fields allows partial responses to be retrieved. See
59025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59026// for more information.
59027func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
59028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59029	return c
59030}
59031
59032// Context sets the context to be used in this call's Do method. Any
59033// pending HTTP request will be aborted if the provided context is
59034// canceled.
59035func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
59036	c.ctx_ = ctx
59037	return c
59038}
59039
59040// Header returns an http.Header that can be modified by the caller to
59041// add HTTP headers to the request.
59042func (c *ForwardingRulesPatchCall) Header() http.Header {
59043	if c.header_ == nil {
59044		c.header_ = make(http.Header)
59045	}
59046	return c.header_
59047}
59048
59049func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
59050	reqHeaders := make(http.Header)
59051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59052	for k, v := range c.header_ {
59053		reqHeaders[k] = v
59054	}
59055	reqHeaders.Set("User-Agent", c.s.userAgent())
59056	var body io.Reader = nil
59057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
59058	if err != nil {
59059		return nil, err
59060	}
59061	reqHeaders.Set("Content-Type", "application/json")
59062	c.urlParams_.Set("alt", alt)
59063	c.urlParams_.Set("prettyPrint", "false")
59064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
59065	urls += "?" + c.urlParams_.Encode()
59066	req, err := http.NewRequest("PATCH", urls, body)
59067	if err != nil {
59068		return nil, err
59069	}
59070	req.Header = reqHeaders
59071	googleapi.Expand(req.URL, map[string]string{
59072		"project":        c.project,
59073		"region":         c.region,
59074		"forwardingRule": c.forwardingRule,
59075	})
59076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59077}
59078
59079// Do executes the "compute.forwardingRules.patch" call.
59080// Exactly one of *Operation or error will be non-nil. Any non-2xx
59081// status code is an error. Response headers are in either
59082// *Operation.ServerResponse.Header or (if a response was returned at
59083// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59084// to check whether the returned error was because
59085// http.StatusNotModified was returned.
59086func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59087	gensupport.SetOptions(c.urlParams_, opts...)
59088	res, err := c.doRequest("json")
59089	if res != nil && res.StatusCode == http.StatusNotModified {
59090		if res.Body != nil {
59091			res.Body.Close()
59092		}
59093		return nil, &googleapi.Error{
59094			Code:   res.StatusCode,
59095			Header: res.Header,
59096		}
59097	}
59098	if err != nil {
59099		return nil, err
59100	}
59101	defer googleapi.CloseBody(res)
59102	if err := googleapi.CheckResponse(res); err != nil {
59103		return nil, err
59104	}
59105	ret := &Operation{
59106		ServerResponse: googleapi.ServerResponse{
59107			Header:         res.Header,
59108			HTTPStatusCode: res.StatusCode,
59109		},
59110	}
59111	target := &ret
59112	if err := gensupport.DecodeResponse(target, res); err != nil {
59113		return nil, err
59114	}
59115	return ret, nil
59116	// {
59117	//   "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.",
59118	//   "httpMethod": "PATCH",
59119	//   "id": "compute.forwardingRules.patch",
59120	//   "parameterOrder": [
59121	//     "project",
59122	//     "region",
59123	//     "forwardingRule"
59124	//   ],
59125	//   "parameters": {
59126	//     "forwardingRule": {
59127	//       "description": "Name of the ForwardingRule resource to patch.",
59128	//       "location": "path",
59129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59130	//       "required": true,
59131	//       "type": "string"
59132	//     },
59133	//     "project": {
59134	//       "description": "Project ID for this request.",
59135	//       "location": "path",
59136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59137	//       "required": true,
59138	//       "type": "string"
59139	//     },
59140	//     "region": {
59141	//       "description": "Name of the region scoping this request.",
59142	//       "location": "path",
59143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59144	//       "required": true,
59145	//       "type": "string"
59146	//     },
59147	//     "requestId": {
59148	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59149	//       "location": "query",
59150	//       "type": "string"
59151	//     }
59152	//   },
59153	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
59154	//   "request": {
59155	//     "$ref": "ForwardingRule"
59156	//   },
59157	//   "response": {
59158	//     "$ref": "Operation"
59159	//   },
59160	//   "scopes": [
59161	//     "https://www.googleapis.com/auth/cloud-platform",
59162	//     "https://www.googleapis.com/auth/compute"
59163	//   ]
59164	// }
59165
59166}
59167
59168// method id "compute.forwardingRules.setLabels":
59169
59170type ForwardingRulesSetLabelsCall struct {
59171	s                      *Service
59172	project                string
59173	region                 string
59174	resource               string
59175	regionsetlabelsrequest *RegionSetLabelsRequest
59176	urlParams_             gensupport.URLParams
59177	ctx_                   context.Context
59178	header_                http.Header
59179}
59180
59181// SetLabels: Sets the labels on the specified resource. To learn more
59182// about labels, read the Labeling Resources documentation.
59183func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
59184	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59185	c.project = project
59186	c.region = region
59187	c.resource = resource
59188	c.regionsetlabelsrequest = regionsetlabelsrequest
59189	return c
59190}
59191
59192// RequestId sets the optional parameter "requestId": An optional
59193// request ID to identify requests. Specify a unique request ID so that
59194// if you must retry your request, the server will know to ignore the
59195// request if it has already been completed.
59196//
59197// For example, consider a situation where you make an initial request
59198// and the request times out. If you make the request again with the
59199// same request ID, the server can check if original operation with the
59200// same request ID was received, and if so, will ignore the second
59201// request. This prevents clients from accidentally creating duplicate
59202// commitments.
59203//
59204// The request ID must be a valid UUID with the exception that zero UUID
59205// is not supported (00000000-0000-0000-0000-000000000000).
59206func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
59207	c.urlParams_.Set("requestId", requestId)
59208	return c
59209}
59210
59211// Fields allows partial responses to be retrieved. See
59212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59213// for more information.
59214func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
59215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59216	return c
59217}
59218
59219// Context sets the context to be used in this call's Do method. Any
59220// pending HTTP request will be aborted if the provided context is
59221// canceled.
59222func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
59223	c.ctx_ = ctx
59224	return c
59225}
59226
59227// Header returns an http.Header that can be modified by the caller to
59228// add HTTP headers to the request.
59229func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
59230	if c.header_ == nil {
59231		c.header_ = make(http.Header)
59232	}
59233	return c.header_
59234}
59235
59236func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
59237	reqHeaders := make(http.Header)
59238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59239	for k, v := range c.header_ {
59240		reqHeaders[k] = v
59241	}
59242	reqHeaders.Set("User-Agent", c.s.userAgent())
59243	var body io.Reader = nil
59244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
59245	if err != nil {
59246		return nil, err
59247	}
59248	reqHeaders.Set("Content-Type", "application/json")
59249	c.urlParams_.Set("alt", alt)
59250	c.urlParams_.Set("prettyPrint", "false")
59251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/setLabels")
59252	urls += "?" + c.urlParams_.Encode()
59253	req, err := http.NewRequest("POST", urls, body)
59254	if err != nil {
59255		return nil, err
59256	}
59257	req.Header = reqHeaders
59258	googleapi.Expand(req.URL, map[string]string{
59259		"project":  c.project,
59260		"region":   c.region,
59261		"resource": c.resource,
59262	})
59263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59264}
59265
59266// Do executes the "compute.forwardingRules.setLabels" call.
59267// Exactly one of *Operation or error will be non-nil. Any non-2xx
59268// status code is an error. Response headers are in either
59269// *Operation.ServerResponse.Header or (if a response was returned at
59270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59271// to check whether the returned error was because
59272// http.StatusNotModified was returned.
59273func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59274	gensupport.SetOptions(c.urlParams_, opts...)
59275	res, err := c.doRequest("json")
59276	if res != nil && res.StatusCode == http.StatusNotModified {
59277		if res.Body != nil {
59278			res.Body.Close()
59279		}
59280		return nil, &googleapi.Error{
59281			Code:   res.StatusCode,
59282			Header: res.Header,
59283		}
59284	}
59285	if err != nil {
59286		return nil, err
59287	}
59288	defer googleapi.CloseBody(res)
59289	if err := googleapi.CheckResponse(res); err != nil {
59290		return nil, err
59291	}
59292	ret := &Operation{
59293		ServerResponse: googleapi.ServerResponse{
59294			Header:         res.Header,
59295			HTTPStatusCode: res.StatusCode,
59296		},
59297	}
59298	target := &ret
59299	if err := gensupport.DecodeResponse(target, res); err != nil {
59300		return nil, err
59301	}
59302	return ret, nil
59303	// {
59304	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
59305	//   "httpMethod": "POST",
59306	//   "id": "compute.forwardingRules.setLabels",
59307	//   "parameterOrder": [
59308	//     "project",
59309	//     "region",
59310	//     "resource"
59311	//   ],
59312	//   "parameters": {
59313	//     "project": {
59314	//       "description": "Project ID for this request.",
59315	//       "location": "path",
59316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59317	//       "required": true,
59318	//       "type": "string"
59319	//     },
59320	//     "region": {
59321	//       "description": "The region for this request.",
59322	//       "location": "path",
59323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59324	//       "required": true,
59325	//       "type": "string"
59326	//     },
59327	//     "requestId": {
59328	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59329	//       "location": "query",
59330	//       "type": "string"
59331	//     },
59332	//     "resource": {
59333	//       "description": "Name or id of the resource for this request.",
59334	//       "location": "path",
59335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59336	//       "required": true,
59337	//       "type": "string"
59338	//     }
59339	//   },
59340	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/setLabels",
59341	//   "request": {
59342	//     "$ref": "RegionSetLabelsRequest"
59343	//   },
59344	//   "response": {
59345	//     "$ref": "Operation"
59346	//   },
59347	//   "scopes": [
59348	//     "https://www.googleapis.com/auth/cloud-platform",
59349	//     "https://www.googleapis.com/auth/compute"
59350	//   ]
59351	// }
59352
59353}
59354
59355// method id "compute.forwardingRules.setTarget":
59356
59357type ForwardingRulesSetTargetCall struct {
59358	s               *Service
59359	project         string
59360	region          string
59361	forwardingRule  string
59362	targetreference *TargetReference
59363	urlParams_      gensupport.URLParams
59364	ctx_            context.Context
59365	header_         http.Header
59366}
59367
59368// SetTarget: Changes target URL for forwarding rule. The new target
59369// should be of the same type as the old target.
59370// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
59371func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
59372	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59373	c.project = project
59374	c.region = region
59375	c.forwardingRule = forwardingRule
59376	c.targetreference = targetreference
59377	return c
59378}
59379
59380// RequestId sets the optional parameter "requestId": An optional
59381// request ID to identify requests. Specify a unique request ID so that
59382// if you must retry your request, the server will know to ignore the
59383// request if it has already been completed.
59384//
59385// For example, consider a situation where you make an initial request
59386// and the request times out. If you make the request again with the
59387// same request ID, the server can check if original operation with the
59388// same request ID was received, and if so, will ignore the second
59389// request. This prevents clients from accidentally creating duplicate
59390// commitments.
59391//
59392// The request ID must be a valid UUID with the exception that zero UUID
59393// is not supported (00000000-0000-0000-0000-000000000000).
59394func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
59395	c.urlParams_.Set("requestId", requestId)
59396	return c
59397}
59398
59399// Fields allows partial responses to be retrieved. See
59400// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59401// for more information.
59402func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
59403	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59404	return c
59405}
59406
59407// Context sets the context to be used in this call's Do method. Any
59408// pending HTTP request will be aborted if the provided context is
59409// canceled.
59410func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
59411	c.ctx_ = ctx
59412	return c
59413}
59414
59415// Header returns an http.Header that can be modified by the caller to
59416// add HTTP headers to the request.
59417func (c *ForwardingRulesSetTargetCall) Header() http.Header {
59418	if c.header_ == nil {
59419		c.header_ = make(http.Header)
59420	}
59421	return c.header_
59422}
59423
59424func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
59425	reqHeaders := make(http.Header)
59426	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59427	for k, v := range c.header_ {
59428		reqHeaders[k] = v
59429	}
59430	reqHeaders.Set("User-Agent", c.s.userAgent())
59431	var body io.Reader = nil
59432	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
59433	if err != nil {
59434		return nil, err
59435	}
59436	reqHeaders.Set("Content-Type", "application/json")
59437	c.urlParams_.Set("alt", alt)
59438	c.urlParams_.Set("prettyPrint", "false")
59439	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
59440	urls += "?" + c.urlParams_.Encode()
59441	req, err := http.NewRequest("POST", urls, body)
59442	if err != nil {
59443		return nil, err
59444	}
59445	req.Header = reqHeaders
59446	googleapi.Expand(req.URL, map[string]string{
59447		"project":        c.project,
59448		"region":         c.region,
59449		"forwardingRule": c.forwardingRule,
59450	})
59451	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59452}
59453
59454// Do executes the "compute.forwardingRules.setTarget" call.
59455// Exactly one of *Operation or error will be non-nil. Any non-2xx
59456// status code is an error. Response headers are in either
59457// *Operation.ServerResponse.Header or (if a response was returned at
59458// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59459// to check whether the returned error was because
59460// http.StatusNotModified was returned.
59461func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59462	gensupport.SetOptions(c.urlParams_, opts...)
59463	res, err := c.doRequest("json")
59464	if res != nil && res.StatusCode == http.StatusNotModified {
59465		if res.Body != nil {
59466			res.Body.Close()
59467		}
59468		return nil, &googleapi.Error{
59469			Code:   res.StatusCode,
59470			Header: res.Header,
59471		}
59472	}
59473	if err != nil {
59474		return nil, err
59475	}
59476	defer googleapi.CloseBody(res)
59477	if err := googleapi.CheckResponse(res); err != nil {
59478		return nil, err
59479	}
59480	ret := &Operation{
59481		ServerResponse: googleapi.ServerResponse{
59482			Header:         res.Header,
59483			HTTPStatusCode: res.StatusCode,
59484		},
59485	}
59486	target := &ret
59487	if err := gensupport.DecodeResponse(target, res); err != nil {
59488		return nil, err
59489	}
59490	return ret, nil
59491	// {
59492	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
59493	//   "httpMethod": "POST",
59494	//   "id": "compute.forwardingRules.setTarget",
59495	//   "parameterOrder": [
59496	//     "project",
59497	//     "region",
59498	//     "forwardingRule"
59499	//   ],
59500	//   "parameters": {
59501	//     "forwardingRule": {
59502	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
59503	//       "location": "path",
59504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59505	//       "required": true,
59506	//       "type": "string"
59507	//     },
59508	//     "project": {
59509	//       "description": "Project ID for this request.",
59510	//       "location": "path",
59511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59512	//       "required": true,
59513	//       "type": "string"
59514	//     },
59515	//     "region": {
59516	//       "description": "Name of the region scoping this request.",
59517	//       "location": "path",
59518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59519	//       "required": true,
59520	//       "type": "string"
59521	//     },
59522	//     "requestId": {
59523	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59524	//       "location": "query",
59525	//       "type": "string"
59526	//     }
59527	//   },
59528	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
59529	//   "request": {
59530	//     "$ref": "TargetReference"
59531	//   },
59532	//   "response": {
59533	//     "$ref": "Operation"
59534	//   },
59535	//   "scopes": [
59536	//     "https://www.googleapis.com/auth/cloud-platform",
59537	//     "https://www.googleapis.com/auth/compute"
59538	//   ]
59539	// }
59540
59541}
59542
59543// method id "compute.forwardingRules.testIamPermissions":
59544
59545type ForwardingRulesTestIamPermissionsCall struct {
59546	s                      *Service
59547	project                string
59548	region                 string
59549	resource               string
59550	testpermissionsrequest *TestPermissionsRequest
59551	urlParams_             gensupport.URLParams
59552	ctx_                   context.Context
59553	header_                http.Header
59554}
59555
59556// TestIamPermissions: Returns permissions that a caller has on the
59557// specified resource.
59558func (r *ForwardingRulesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ForwardingRulesTestIamPermissionsCall {
59559	c := &ForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59560	c.project = project
59561	c.region = region
59562	c.resource = resource
59563	c.testpermissionsrequest = testpermissionsrequest
59564	return c
59565}
59566
59567// Fields allows partial responses to be retrieved. See
59568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59569// for more information.
59570func (c *ForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ForwardingRulesTestIamPermissionsCall {
59571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59572	return c
59573}
59574
59575// Context sets the context to be used in this call's Do method. Any
59576// pending HTTP request will be aborted if the provided context is
59577// canceled.
59578func (c *ForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *ForwardingRulesTestIamPermissionsCall {
59579	c.ctx_ = ctx
59580	return c
59581}
59582
59583// Header returns an http.Header that can be modified by the caller to
59584// add HTTP headers to the request.
59585func (c *ForwardingRulesTestIamPermissionsCall) Header() http.Header {
59586	if c.header_ == nil {
59587		c.header_ = make(http.Header)
59588	}
59589	return c.header_
59590}
59591
59592func (c *ForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
59593	reqHeaders := make(http.Header)
59594	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59595	for k, v := range c.header_ {
59596		reqHeaders[k] = v
59597	}
59598	reqHeaders.Set("User-Agent", c.s.userAgent())
59599	var body io.Reader = nil
59600	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
59601	if err != nil {
59602		return nil, err
59603	}
59604	reqHeaders.Set("Content-Type", "application/json")
59605	c.urlParams_.Set("alt", alt)
59606	c.urlParams_.Set("prettyPrint", "false")
59607	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions")
59608	urls += "?" + c.urlParams_.Encode()
59609	req, err := http.NewRequest("POST", urls, body)
59610	if err != nil {
59611		return nil, err
59612	}
59613	req.Header = reqHeaders
59614	googleapi.Expand(req.URL, map[string]string{
59615		"project":  c.project,
59616		"region":   c.region,
59617		"resource": c.resource,
59618	})
59619	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59620}
59621
59622// Do executes the "compute.forwardingRules.testIamPermissions" call.
59623// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
59624// non-2xx status code is an error. Response headers are in either
59625// *TestPermissionsResponse.ServerResponse.Header or (if a response was
59626// returned at all) in error.(*googleapi.Error).Header. Use
59627// googleapi.IsNotModified to check whether the returned error was
59628// because http.StatusNotModified was returned.
59629func (c *ForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
59630	gensupport.SetOptions(c.urlParams_, opts...)
59631	res, err := c.doRequest("json")
59632	if res != nil && res.StatusCode == http.StatusNotModified {
59633		if res.Body != nil {
59634			res.Body.Close()
59635		}
59636		return nil, &googleapi.Error{
59637			Code:   res.StatusCode,
59638			Header: res.Header,
59639		}
59640	}
59641	if err != nil {
59642		return nil, err
59643	}
59644	defer googleapi.CloseBody(res)
59645	if err := googleapi.CheckResponse(res); err != nil {
59646		return nil, err
59647	}
59648	ret := &TestPermissionsResponse{
59649		ServerResponse: googleapi.ServerResponse{
59650			Header:         res.Header,
59651			HTTPStatusCode: res.StatusCode,
59652		},
59653	}
59654	target := &ret
59655	if err := gensupport.DecodeResponse(target, res); err != nil {
59656		return nil, err
59657	}
59658	return ret, nil
59659	// {
59660	//   "description": "Returns permissions that a caller has on the specified resource.",
59661	//   "httpMethod": "POST",
59662	//   "id": "compute.forwardingRules.testIamPermissions",
59663	//   "parameterOrder": [
59664	//     "project",
59665	//     "region",
59666	//     "resource"
59667	//   ],
59668	//   "parameters": {
59669	//     "project": {
59670	//       "description": "Project ID for this request.",
59671	//       "location": "path",
59672	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59673	//       "required": true,
59674	//       "type": "string"
59675	//     },
59676	//     "region": {
59677	//       "description": "The name of the region for this request.",
59678	//       "location": "path",
59679	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59680	//       "required": true,
59681	//       "type": "string"
59682	//     },
59683	//     "resource": {
59684	//       "description": "Name or id of the resource for this request.",
59685	//       "location": "path",
59686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59687	//       "required": true,
59688	//       "type": "string"
59689	//     }
59690	//   },
59691	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions",
59692	//   "request": {
59693	//     "$ref": "TestPermissionsRequest"
59694	//   },
59695	//   "response": {
59696	//     "$ref": "TestPermissionsResponse"
59697	//   },
59698	//   "scopes": [
59699	//     "https://www.googleapis.com/auth/cloud-platform",
59700	//     "https://www.googleapis.com/auth/compute",
59701	//     "https://www.googleapis.com/auth/compute.readonly"
59702	//   ]
59703	// }
59704
59705}
59706
59707// method id "compute.globalAddresses.delete":
59708
59709type GlobalAddressesDeleteCall struct {
59710	s          *Service
59711	project    string
59712	address    string
59713	urlParams_ gensupport.URLParams
59714	ctx_       context.Context
59715	header_    http.Header
59716}
59717
59718// Delete: Deletes the specified address resource.
59719// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
59720func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
59721	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59722	c.project = project
59723	c.address = address
59724	return c
59725}
59726
59727// RequestId sets the optional parameter "requestId": An optional
59728// request ID to identify requests. Specify a unique request ID so that
59729// if you must retry your request, the server will know to ignore the
59730// request if it has already been completed.
59731//
59732// For example, consider a situation where you make an initial request
59733// and the request times out. If you make the request again with the
59734// same request ID, the server can check if original operation with the
59735// same request ID was received, and if so, will ignore the second
59736// request. This prevents clients from accidentally creating duplicate
59737// commitments.
59738//
59739// The request ID must be a valid UUID with the exception that zero UUID
59740// is not supported (00000000-0000-0000-0000-000000000000).
59741func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
59742	c.urlParams_.Set("requestId", requestId)
59743	return c
59744}
59745
59746// Fields allows partial responses to be retrieved. See
59747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59748// for more information.
59749func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
59750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59751	return c
59752}
59753
59754// Context sets the context to be used in this call's Do method. Any
59755// pending HTTP request will be aborted if the provided context is
59756// canceled.
59757func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
59758	c.ctx_ = ctx
59759	return c
59760}
59761
59762// Header returns an http.Header that can be modified by the caller to
59763// add HTTP headers to the request.
59764func (c *GlobalAddressesDeleteCall) Header() http.Header {
59765	if c.header_ == nil {
59766		c.header_ = make(http.Header)
59767	}
59768	return c.header_
59769}
59770
59771func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
59772	reqHeaders := make(http.Header)
59773	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59774	for k, v := range c.header_ {
59775		reqHeaders[k] = v
59776	}
59777	reqHeaders.Set("User-Agent", c.s.userAgent())
59778	var body io.Reader = nil
59779	c.urlParams_.Set("alt", alt)
59780	c.urlParams_.Set("prettyPrint", "false")
59781	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
59782	urls += "?" + c.urlParams_.Encode()
59783	req, err := http.NewRequest("DELETE", urls, body)
59784	if err != nil {
59785		return nil, err
59786	}
59787	req.Header = reqHeaders
59788	googleapi.Expand(req.URL, map[string]string{
59789		"project": c.project,
59790		"address": c.address,
59791	})
59792	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59793}
59794
59795// Do executes the "compute.globalAddresses.delete" call.
59796// Exactly one of *Operation or error will be non-nil. Any non-2xx
59797// status code is an error. Response headers are in either
59798// *Operation.ServerResponse.Header or (if a response was returned at
59799// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59800// to check whether the returned error was because
59801// http.StatusNotModified was returned.
59802func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59803	gensupport.SetOptions(c.urlParams_, opts...)
59804	res, err := c.doRequest("json")
59805	if res != nil && res.StatusCode == http.StatusNotModified {
59806		if res.Body != nil {
59807			res.Body.Close()
59808		}
59809		return nil, &googleapi.Error{
59810			Code:   res.StatusCode,
59811			Header: res.Header,
59812		}
59813	}
59814	if err != nil {
59815		return nil, err
59816	}
59817	defer googleapi.CloseBody(res)
59818	if err := googleapi.CheckResponse(res); err != nil {
59819		return nil, err
59820	}
59821	ret := &Operation{
59822		ServerResponse: googleapi.ServerResponse{
59823			Header:         res.Header,
59824			HTTPStatusCode: res.StatusCode,
59825		},
59826	}
59827	target := &ret
59828	if err := gensupport.DecodeResponse(target, res); err != nil {
59829		return nil, err
59830	}
59831	return ret, nil
59832	// {
59833	//   "description": "Deletes the specified address resource.",
59834	//   "httpMethod": "DELETE",
59835	//   "id": "compute.globalAddresses.delete",
59836	//   "parameterOrder": [
59837	//     "project",
59838	//     "address"
59839	//   ],
59840	//   "parameters": {
59841	//     "address": {
59842	//       "description": "Name of the address resource to delete.",
59843	//       "location": "path",
59844	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59845	//       "required": true,
59846	//       "type": "string"
59847	//     },
59848	//     "project": {
59849	//       "description": "Project ID for this request.",
59850	//       "location": "path",
59851	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59852	//       "required": true,
59853	//       "type": "string"
59854	//     },
59855	//     "requestId": {
59856	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59857	//       "location": "query",
59858	//       "type": "string"
59859	//     }
59860	//   },
59861	//   "path": "{project}/global/addresses/{address}",
59862	//   "response": {
59863	//     "$ref": "Operation"
59864	//   },
59865	//   "scopes": [
59866	//     "https://www.googleapis.com/auth/cloud-platform",
59867	//     "https://www.googleapis.com/auth/compute"
59868	//   ]
59869	// }
59870
59871}
59872
59873// method id "compute.globalAddresses.get":
59874
59875type GlobalAddressesGetCall struct {
59876	s            *Service
59877	project      string
59878	address      string
59879	urlParams_   gensupport.URLParams
59880	ifNoneMatch_ string
59881	ctx_         context.Context
59882	header_      http.Header
59883}
59884
59885// Get: Returns the specified address resource. Gets a list of available
59886// addresses by making a list() request.
59887// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
59888func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
59889	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59890	c.project = project
59891	c.address = address
59892	return c
59893}
59894
59895// Fields allows partial responses to be retrieved. See
59896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59897// for more information.
59898func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
59899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59900	return c
59901}
59902
59903// IfNoneMatch sets the optional parameter which makes the operation
59904// fail if the object's ETag matches the given value. This is useful for
59905// getting updates only after the object has changed since the last
59906// request. Use googleapi.IsNotModified to check whether the response
59907// error from Do is the result of In-None-Match.
59908func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
59909	c.ifNoneMatch_ = entityTag
59910	return c
59911}
59912
59913// Context sets the context to be used in this call's Do method. Any
59914// pending HTTP request will be aborted if the provided context is
59915// canceled.
59916func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
59917	c.ctx_ = ctx
59918	return c
59919}
59920
59921// Header returns an http.Header that can be modified by the caller to
59922// add HTTP headers to the request.
59923func (c *GlobalAddressesGetCall) Header() http.Header {
59924	if c.header_ == nil {
59925		c.header_ = make(http.Header)
59926	}
59927	return c.header_
59928}
59929
59930func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
59931	reqHeaders := make(http.Header)
59932	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
59933	for k, v := range c.header_ {
59934		reqHeaders[k] = v
59935	}
59936	reqHeaders.Set("User-Agent", c.s.userAgent())
59937	if c.ifNoneMatch_ != "" {
59938		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59939	}
59940	var body io.Reader = nil
59941	c.urlParams_.Set("alt", alt)
59942	c.urlParams_.Set("prettyPrint", "false")
59943	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
59944	urls += "?" + c.urlParams_.Encode()
59945	req, err := http.NewRequest("GET", urls, body)
59946	if err != nil {
59947		return nil, err
59948	}
59949	req.Header = reqHeaders
59950	googleapi.Expand(req.URL, map[string]string{
59951		"project": c.project,
59952		"address": c.address,
59953	})
59954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59955}
59956
59957// Do executes the "compute.globalAddresses.get" call.
59958// Exactly one of *Address or error will be non-nil. Any non-2xx status
59959// code is an error. Response headers are in either
59960// *Address.ServerResponse.Header or (if a response was returned at all)
59961// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
59962// check whether the returned error was because http.StatusNotModified
59963// was returned.
59964func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
59965	gensupport.SetOptions(c.urlParams_, opts...)
59966	res, err := c.doRequest("json")
59967	if res != nil && res.StatusCode == http.StatusNotModified {
59968		if res.Body != nil {
59969			res.Body.Close()
59970		}
59971		return nil, &googleapi.Error{
59972			Code:   res.StatusCode,
59973			Header: res.Header,
59974		}
59975	}
59976	if err != nil {
59977		return nil, err
59978	}
59979	defer googleapi.CloseBody(res)
59980	if err := googleapi.CheckResponse(res); err != nil {
59981		return nil, err
59982	}
59983	ret := &Address{
59984		ServerResponse: googleapi.ServerResponse{
59985			Header:         res.Header,
59986			HTTPStatusCode: res.StatusCode,
59987		},
59988	}
59989	target := &ret
59990	if err := gensupport.DecodeResponse(target, res); err != nil {
59991		return nil, err
59992	}
59993	return ret, nil
59994	// {
59995	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
59996	//   "httpMethod": "GET",
59997	//   "id": "compute.globalAddresses.get",
59998	//   "parameterOrder": [
59999	//     "project",
60000	//     "address"
60001	//   ],
60002	//   "parameters": {
60003	//     "address": {
60004	//       "description": "Name of the address resource to return.",
60005	//       "location": "path",
60006	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60007	//       "required": true,
60008	//       "type": "string"
60009	//     },
60010	//     "project": {
60011	//       "description": "Project ID for this request.",
60012	//       "location": "path",
60013	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60014	//       "required": true,
60015	//       "type": "string"
60016	//     }
60017	//   },
60018	//   "path": "{project}/global/addresses/{address}",
60019	//   "response": {
60020	//     "$ref": "Address"
60021	//   },
60022	//   "scopes": [
60023	//     "https://www.googleapis.com/auth/cloud-platform",
60024	//     "https://www.googleapis.com/auth/compute",
60025	//     "https://www.googleapis.com/auth/compute.readonly"
60026	//   ]
60027	// }
60028
60029}
60030
60031// method id "compute.globalAddresses.insert":
60032
60033type GlobalAddressesInsertCall struct {
60034	s          *Service
60035	project    string
60036	address    *Address
60037	urlParams_ gensupport.URLParams
60038	ctx_       context.Context
60039	header_    http.Header
60040}
60041
60042// Insert: Creates an address resource in the specified project by using
60043// the data included in the request.
60044// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
60045func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
60046	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60047	c.project = project
60048	c.address = address
60049	return c
60050}
60051
60052// RequestId sets the optional parameter "requestId": An optional
60053// request ID to identify requests. Specify a unique request ID so that
60054// if you must retry your request, the server will know to ignore the
60055// request if it has already been completed.
60056//
60057// For example, consider a situation where you make an initial request
60058// and the request times out. If you make the request again with the
60059// same request ID, the server can check if original operation with the
60060// same request ID was received, and if so, will ignore the second
60061// request. This prevents clients from accidentally creating duplicate
60062// commitments.
60063//
60064// The request ID must be a valid UUID with the exception that zero UUID
60065// is not supported (00000000-0000-0000-0000-000000000000).
60066func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
60067	c.urlParams_.Set("requestId", requestId)
60068	return c
60069}
60070
60071// Fields allows partial responses to be retrieved. See
60072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60073// for more information.
60074func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
60075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60076	return c
60077}
60078
60079// Context sets the context to be used in this call's Do method. Any
60080// pending HTTP request will be aborted if the provided context is
60081// canceled.
60082func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
60083	c.ctx_ = ctx
60084	return c
60085}
60086
60087// Header returns an http.Header that can be modified by the caller to
60088// add HTTP headers to the request.
60089func (c *GlobalAddressesInsertCall) Header() http.Header {
60090	if c.header_ == nil {
60091		c.header_ = make(http.Header)
60092	}
60093	return c.header_
60094}
60095
60096func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
60097	reqHeaders := make(http.Header)
60098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60099	for k, v := range c.header_ {
60100		reqHeaders[k] = v
60101	}
60102	reqHeaders.Set("User-Agent", c.s.userAgent())
60103	var body io.Reader = nil
60104	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
60105	if err != nil {
60106		return nil, err
60107	}
60108	reqHeaders.Set("Content-Type", "application/json")
60109	c.urlParams_.Set("alt", alt)
60110	c.urlParams_.Set("prettyPrint", "false")
60111	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
60112	urls += "?" + c.urlParams_.Encode()
60113	req, err := http.NewRequest("POST", urls, body)
60114	if err != nil {
60115		return nil, err
60116	}
60117	req.Header = reqHeaders
60118	googleapi.Expand(req.URL, map[string]string{
60119		"project": c.project,
60120	})
60121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60122}
60123
60124// Do executes the "compute.globalAddresses.insert" call.
60125// Exactly one of *Operation or error will be non-nil. Any non-2xx
60126// status code is an error. Response headers are in either
60127// *Operation.ServerResponse.Header or (if a response was returned at
60128// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60129// to check whether the returned error was because
60130// http.StatusNotModified was returned.
60131func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60132	gensupport.SetOptions(c.urlParams_, opts...)
60133	res, err := c.doRequest("json")
60134	if res != nil && res.StatusCode == http.StatusNotModified {
60135		if res.Body != nil {
60136			res.Body.Close()
60137		}
60138		return nil, &googleapi.Error{
60139			Code:   res.StatusCode,
60140			Header: res.Header,
60141		}
60142	}
60143	if err != nil {
60144		return nil, err
60145	}
60146	defer googleapi.CloseBody(res)
60147	if err := googleapi.CheckResponse(res); err != nil {
60148		return nil, err
60149	}
60150	ret := &Operation{
60151		ServerResponse: googleapi.ServerResponse{
60152			Header:         res.Header,
60153			HTTPStatusCode: res.StatusCode,
60154		},
60155	}
60156	target := &ret
60157	if err := gensupport.DecodeResponse(target, res); err != nil {
60158		return nil, err
60159	}
60160	return ret, nil
60161	// {
60162	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
60163	//   "httpMethod": "POST",
60164	//   "id": "compute.globalAddresses.insert",
60165	//   "parameterOrder": [
60166	//     "project"
60167	//   ],
60168	//   "parameters": {
60169	//     "project": {
60170	//       "description": "Project ID for this request.",
60171	//       "location": "path",
60172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60173	//       "required": true,
60174	//       "type": "string"
60175	//     },
60176	//     "requestId": {
60177	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60178	//       "location": "query",
60179	//       "type": "string"
60180	//     }
60181	//   },
60182	//   "path": "{project}/global/addresses",
60183	//   "request": {
60184	//     "$ref": "Address"
60185	//   },
60186	//   "response": {
60187	//     "$ref": "Operation"
60188	//   },
60189	//   "scopes": [
60190	//     "https://www.googleapis.com/auth/cloud-platform",
60191	//     "https://www.googleapis.com/auth/compute"
60192	//   ]
60193	// }
60194
60195}
60196
60197// method id "compute.globalAddresses.list":
60198
60199type GlobalAddressesListCall struct {
60200	s            *Service
60201	project      string
60202	urlParams_   gensupport.URLParams
60203	ifNoneMatch_ string
60204	ctx_         context.Context
60205	header_      http.Header
60206}
60207
60208// List: Retrieves a list of global addresses.
60209// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
60210func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
60211	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60212	c.project = project
60213	return c
60214}
60215
60216// Filter sets the optional parameter "filter": A filter expression that
60217// filters resources listed in the response. The expression must specify
60218// the field name, a comparison operator, and the value that you want to
60219// use for filtering. The value must be a string, a number, or a
60220// boolean. The comparison operator must be either `=`, `!=`, `>`, or
60221// `<`.
60222//
60223// For example, if you are filtering Compute Engine instances, you can
60224// exclude instances named `example-instance` by specifying `name !=
60225// example-instance`.
60226//
60227// You can also filter nested fields. For example, you could specify
60228// `scheduling.automaticRestart = false` to include instances only if
60229// they are not scheduled for automatic restarts. You can use filtering
60230// on nested fields to filter based on resource labels.
60231//
60232// To filter on multiple expressions, provide each separate expression
60233// within parentheses. For example: ``` (scheduling.automaticRestart =
60234// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
60235// is an `AND` expression. However, you can include `AND` and `OR`
60236// expressions explicitly. For example: ``` (cpuPlatform = "Intel
60237// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
60238// (scheduling.automaticRestart = true) ```
60239func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
60240	c.urlParams_.Set("filter", filter)
60241	return c
60242}
60243
60244// MaxResults sets the optional parameter "maxResults": The maximum
60245// number of results per page that should be returned. If the number of
60246// available results is larger than `maxResults`, Compute Engine returns
60247// a `nextPageToken` that can be used to get the next page of results in
60248// subsequent list requests. Acceptable values are `0` to `500`,
60249// inclusive. (Default: `500`)
60250func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
60251	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60252	return c
60253}
60254
60255// OrderBy sets the optional parameter "orderBy": Sorts list results by
60256// a certain order. By default, results are returned in alphanumerical
60257// order based on the resource name.
60258//
60259// You can also sort results in descending order based on the creation
60260// timestamp using `orderBy="creationTimestamp desc". This sorts
60261// results based on the `creationTimestamp` field in reverse
60262// chronological order (newest result first). Use this to sort resources
60263// like operations so that the newest operation is returned
60264// first.
60265//
60266// Currently, only sorting by `name` or `creationTimestamp desc` is
60267// supported.
60268func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
60269	c.urlParams_.Set("orderBy", orderBy)
60270	return c
60271}
60272
60273// PageToken sets the optional parameter "pageToken": Specifies a page
60274// token to use. Set `pageToken` to the `nextPageToken` returned by a
60275// previous list request to get the next page of results.
60276func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
60277	c.urlParams_.Set("pageToken", pageToken)
60278	return c
60279}
60280
60281// Fields allows partial responses to be retrieved. See
60282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60283// for more information.
60284func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
60285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60286	return c
60287}
60288
60289// IfNoneMatch sets the optional parameter which makes the operation
60290// fail if the object's ETag matches the given value. This is useful for
60291// getting updates only after the object has changed since the last
60292// request. Use googleapi.IsNotModified to check whether the response
60293// error from Do is the result of In-None-Match.
60294func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
60295	c.ifNoneMatch_ = entityTag
60296	return c
60297}
60298
60299// Context sets the context to be used in this call's Do method. Any
60300// pending HTTP request will be aborted if the provided context is
60301// canceled.
60302func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
60303	c.ctx_ = ctx
60304	return c
60305}
60306
60307// Header returns an http.Header that can be modified by the caller to
60308// add HTTP headers to the request.
60309func (c *GlobalAddressesListCall) Header() http.Header {
60310	if c.header_ == nil {
60311		c.header_ = make(http.Header)
60312	}
60313	return c.header_
60314}
60315
60316func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
60317	reqHeaders := make(http.Header)
60318	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60319	for k, v := range c.header_ {
60320		reqHeaders[k] = v
60321	}
60322	reqHeaders.Set("User-Agent", c.s.userAgent())
60323	if c.ifNoneMatch_ != "" {
60324		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60325	}
60326	var body io.Reader = nil
60327	c.urlParams_.Set("alt", alt)
60328	c.urlParams_.Set("prettyPrint", "false")
60329	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
60330	urls += "?" + c.urlParams_.Encode()
60331	req, err := http.NewRequest("GET", urls, body)
60332	if err != nil {
60333		return nil, err
60334	}
60335	req.Header = reqHeaders
60336	googleapi.Expand(req.URL, map[string]string{
60337		"project": c.project,
60338	})
60339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60340}
60341
60342// Do executes the "compute.globalAddresses.list" call.
60343// Exactly one of *AddressList or error will be non-nil. Any non-2xx
60344// status code is an error. Response headers are in either
60345// *AddressList.ServerResponse.Header or (if a response was returned at
60346// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60347// to check whether the returned error was because
60348// http.StatusNotModified was returned.
60349func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
60350	gensupport.SetOptions(c.urlParams_, opts...)
60351	res, err := c.doRequest("json")
60352	if res != nil && res.StatusCode == http.StatusNotModified {
60353		if res.Body != nil {
60354			res.Body.Close()
60355		}
60356		return nil, &googleapi.Error{
60357			Code:   res.StatusCode,
60358			Header: res.Header,
60359		}
60360	}
60361	if err != nil {
60362		return nil, err
60363	}
60364	defer googleapi.CloseBody(res)
60365	if err := googleapi.CheckResponse(res); err != nil {
60366		return nil, err
60367	}
60368	ret := &AddressList{
60369		ServerResponse: googleapi.ServerResponse{
60370			Header:         res.Header,
60371			HTTPStatusCode: res.StatusCode,
60372		},
60373	}
60374	target := &ret
60375	if err := gensupport.DecodeResponse(target, res); err != nil {
60376		return nil, err
60377	}
60378	return ret, nil
60379	// {
60380	//   "description": "Retrieves a list of global addresses.",
60381	//   "httpMethod": "GET",
60382	//   "id": "compute.globalAddresses.list",
60383	//   "parameterOrder": [
60384	//     "project"
60385	//   ],
60386	//   "parameters": {
60387	//     "filter": {
60388	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
60389	//       "location": "query",
60390	//       "type": "string"
60391	//     },
60392	//     "maxResults": {
60393	//       "default": "500",
60394	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
60395	//       "format": "uint32",
60396	//       "location": "query",
60397	//       "minimum": "0",
60398	//       "type": "integer"
60399	//     },
60400	//     "orderBy": {
60401	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
60402	//       "location": "query",
60403	//       "type": "string"
60404	//     },
60405	//     "pageToken": {
60406	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
60407	//       "location": "query",
60408	//       "type": "string"
60409	//     },
60410	//     "project": {
60411	//       "description": "Project ID for this request.",
60412	//       "location": "path",
60413	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60414	//       "required": true,
60415	//       "type": "string"
60416	//     }
60417	//   },
60418	//   "path": "{project}/global/addresses",
60419	//   "response": {
60420	//     "$ref": "AddressList"
60421	//   },
60422	//   "scopes": [
60423	//     "https://www.googleapis.com/auth/cloud-platform",
60424	//     "https://www.googleapis.com/auth/compute",
60425	//     "https://www.googleapis.com/auth/compute.readonly"
60426	//   ]
60427	// }
60428
60429}
60430
60431// Pages invokes f for each page of results.
60432// A non-nil error returned from f will halt the iteration.
60433// The provided context supersedes any context provided to the Context method.
60434func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
60435	c.ctx_ = ctx
60436	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60437	for {
60438		x, err := c.Do()
60439		if err != nil {
60440			return err
60441		}
60442		if err := f(x); err != nil {
60443			return err
60444		}
60445		if x.NextPageToken == "" {
60446			return nil
60447		}
60448		c.PageToken(x.NextPageToken)
60449	}
60450}
60451
60452// method id "compute.globalAddresses.setLabels":
60453
60454type GlobalAddressesSetLabelsCall struct {
60455	s                      *Service
60456	project                string
60457	resource               string
60458	globalsetlabelsrequest *GlobalSetLabelsRequest
60459	urlParams_             gensupport.URLParams
60460	ctx_                   context.Context
60461	header_                http.Header
60462}
60463
60464// SetLabels: Sets the labels on a GlobalAddress. To learn more about
60465// labels, read the Labeling Resources documentation.
60466func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall {
60467	c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60468	c.project = project
60469	c.resource = resource
60470	c.globalsetlabelsrequest = globalsetlabelsrequest
60471	return c
60472}
60473
60474// Fields allows partial responses to be retrieved. See
60475// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60476// for more information.
60477func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall {
60478	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60479	return c
60480}
60481
60482// Context sets the context to be used in this call's Do method. Any
60483// pending HTTP request will be aborted if the provided context is
60484// canceled.
60485func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall {
60486	c.ctx_ = ctx
60487	return c
60488}
60489
60490// Header returns an http.Header that can be modified by the caller to
60491// add HTTP headers to the request.
60492func (c *GlobalAddressesSetLabelsCall) Header() http.Header {
60493	if c.header_ == nil {
60494		c.header_ = make(http.Header)
60495	}
60496	return c.header_
60497}
60498
60499func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
60500	reqHeaders := make(http.Header)
60501	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60502	for k, v := range c.header_ {
60503		reqHeaders[k] = v
60504	}
60505	reqHeaders.Set("User-Agent", c.s.userAgent())
60506	var body io.Reader = nil
60507	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
60508	if err != nil {
60509		return nil, err
60510	}
60511	reqHeaders.Set("Content-Type", "application/json")
60512	c.urlParams_.Set("alt", alt)
60513	c.urlParams_.Set("prettyPrint", "false")
60514	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/setLabels")
60515	urls += "?" + c.urlParams_.Encode()
60516	req, err := http.NewRequest("POST", urls, body)
60517	if err != nil {
60518		return nil, err
60519	}
60520	req.Header = reqHeaders
60521	googleapi.Expand(req.URL, map[string]string{
60522		"project":  c.project,
60523		"resource": c.resource,
60524	})
60525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60526}
60527
60528// Do executes the "compute.globalAddresses.setLabels" call.
60529// Exactly one of *Operation or error will be non-nil. Any non-2xx
60530// status code is an error. Response headers are in either
60531// *Operation.ServerResponse.Header or (if a response was returned at
60532// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60533// to check whether the returned error was because
60534// http.StatusNotModified was returned.
60535func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60536	gensupport.SetOptions(c.urlParams_, opts...)
60537	res, err := c.doRequest("json")
60538	if res != nil && res.StatusCode == http.StatusNotModified {
60539		if res.Body != nil {
60540			res.Body.Close()
60541		}
60542		return nil, &googleapi.Error{
60543			Code:   res.StatusCode,
60544			Header: res.Header,
60545		}
60546	}
60547	if err != nil {
60548		return nil, err
60549	}
60550	defer googleapi.CloseBody(res)
60551	if err := googleapi.CheckResponse(res); err != nil {
60552		return nil, err
60553	}
60554	ret := &Operation{
60555		ServerResponse: googleapi.ServerResponse{
60556			Header:         res.Header,
60557			HTTPStatusCode: res.StatusCode,
60558		},
60559	}
60560	target := &ret
60561	if err := gensupport.DecodeResponse(target, res); err != nil {
60562		return nil, err
60563	}
60564	return ret, nil
60565	// {
60566	//   "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.",
60567	//   "httpMethod": "POST",
60568	//   "id": "compute.globalAddresses.setLabels",
60569	//   "parameterOrder": [
60570	//     "project",
60571	//     "resource"
60572	//   ],
60573	//   "parameters": {
60574	//     "project": {
60575	//       "description": "Project ID for this request.",
60576	//       "location": "path",
60577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60578	//       "required": true,
60579	//       "type": "string"
60580	//     },
60581	//     "resource": {
60582	//       "description": "Name or id of the resource for this request.",
60583	//       "location": "path",
60584	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60585	//       "required": true,
60586	//       "type": "string"
60587	//     }
60588	//   },
60589	//   "path": "{project}/global/addresses/{resource}/setLabels",
60590	//   "request": {
60591	//     "$ref": "GlobalSetLabelsRequest"
60592	//   },
60593	//   "response": {
60594	//     "$ref": "Operation"
60595	//   },
60596	//   "scopes": [
60597	//     "https://www.googleapis.com/auth/cloud-platform",
60598	//     "https://www.googleapis.com/auth/compute"
60599	//   ]
60600	// }
60601
60602}
60603
60604// method id "compute.globalAddresses.testIamPermissions":
60605
60606type GlobalAddressesTestIamPermissionsCall struct {
60607	s                      *Service
60608	project                string
60609	resource               string
60610	testpermissionsrequest *TestPermissionsRequest
60611	urlParams_             gensupport.URLParams
60612	ctx_                   context.Context
60613	header_                http.Header
60614}
60615
60616// TestIamPermissions: Returns permissions that a caller has on the
60617// specified resource.
60618func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall {
60619	c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60620	c.project = project
60621	c.resource = resource
60622	c.testpermissionsrequest = testpermissionsrequest
60623	return c
60624}
60625
60626// Fields allows partial responses to be retrieved. See
60627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60628// for more information.
60629func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall {
60630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60631	return c
60632}
60633
60634// Context sets the context to be used in this call's Do method. Any
60635// pending HTTP request will be aborted if the provided context is
60636// canceled.
60637func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall {
60638	c.ctx_ = ctx
60639	return c
60640}
60641
60642// Header returns an http.Header that can be modified by the caller to
60643// add HTTP headers to the request.
60644func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header {
60645	if c.header_ == nil {
60646		c.header_ = make(http.Header)
60647	}
60648	return c.header_
60649}
60650
60651func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
60652	reqHeaders := make(http.Header)
60653	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60654	for k, v := range c.header_ {
60655		reqHeaders[k] = v
60656	}
60657	reqHeaders.Set("User-Agent", c.s.userAgent())
60658	var body io.Reader = nil
60659	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
60660	if err != nil {
60661		return nil, err
60662	}
60663	reqHeaders.Set("Content-Type", "application/json")
60664	c.urlParams_.Set("alt", alt)
60665	c.urlParams_.Set("prettyPrint", "false")
60666	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/testIamPermissions")
60667	urls += "?" + c.urlParams_.Encode()
60668	req, err := http.NewRequest("POST", urls, body)
60669	if err != nil {
60670		return nil, err
60671	}
60672	req.Header = reqHeaders
60673	googleapi.Expand(req.URL, map[string]string{
60674		"project":  c.project,
60675		"resource": c.resource,
60676	})
60677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60678}
60679
60680// Do executes the "compute.globalAddresses.testIamPermissions" call.
60681// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
60682// non-2xx status code is an error. Response headers are in either
60683// *TestPermissionsResponse.ServerResponse.Header or (if a response was
60684// returned at all) in error.(*googleapi.Error).Header. Use
60685// googleapi.IsNotModified to check whether the returned error was
60686// because http.StatusNotModified was returned.
60687func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
60688	gensupport.SetOptions(c.urlParams_, opts...)
60689	res, err := c.doRequest("json")
60690	if res != nil && res.StatusCode == http.StatusNotModified {
60691		if res.Body != nil {
60692			res.Body.Close()
60693		}
60694		return nil, &googleapi.Error{
60695			Code:   res.StatusCode,
60696			Header: res.Header,
60697		}
60698	}
60699	if err != nil {
60700		return nil, err
60701	}
60702	defer googleapi.CloseBody(res)
60703	if err := googleapi.CheckResponse(res); err != nil {
60704		return nil, err
60705	}
60706	ret := &TestPermissionsResponse{
60707		ServerResponse: googleapi.ServerResponse{
60708			Header:         res.Header,
60709			HTTPStatusCode: res.StatusCode,
60710		},
60711	}
60712	target := &ret
60713	if err := gensupport.DecodeResponse(target, res); err != nil {
60714		return nil, err
60715	}
60716	return ret, nil
60717	// {
60718	//   "description": "Returns permissions that a caller has on the specified resource.",
60719	//   "httpMethod": "POST",
60720	//   "id": "compute.globalAddresses.testIamPermissions",
60721	//   "parameterOrder": [
60722	//     "project",
60723	//     "resource"
60724	//   ],
60725	//   "parameters": {
60726	//     "project": {
60727	//       "description": "Project ID for this request.",
60728	//       "location": "path",
60729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60730	//       "required": true,
60731	//       "type": "string"
60732	//     },
60733	//     "resource": {
60734	//       "description": "Name or id of the resource for this request.",
60735	//       "location": "path",
60736	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60737	//       "required": true,
60738	//       "type": "string"
60739	//     }
60740	//   },
60741	//   "path": "{project}/global/addresses/{resource}/testIamPermissions",
60742	//   "request": {
60743	//     "$ref": "TestPermissionsRequest"
60744	//   },
60745	//   "response": {
60746	//     "$ref": "TestPermissionsResponse"
60747	//   },
60748	//   "scopes": [
60749	//     "https://www.googleapis.com/auth/cloud-platform",
60750	//     "https://www.googleapis.com/auth/compute",
60751	//     "https://www.googleapis.com/auth/compute.readonly"
60752	//   ]
60753	// }
60754
60755}
60756
60757// method id "compute.globalForwardingRules.delete":
60758
60759type GlobalForwardingRulesDeleteCall struct {
60760	s              *Service
60761	project        string
60762	forwardingRule string
60763	urlParams_     gensupport.URLParams
60764	ctx_           context.Context
60765	header_        http.Header
60766}
60767
60768// Delete: Deletes the specified GlobalForwardingRule resource.
60769// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
60770func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
60771	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60772	c.project = project
60773	c.forwardingRule = forwardingRule
60774	return c
60775}
60776
60777// RequestId sets the optional parameter "requestId": An optional
60778// request ID to identify requests. Specify a unique request ID so that
60779// if you must retry your request, the server will know to ignore the
60780// request if it has already been completed.
60781//
60782// For example, consider a situation where you make an initial request
60783// and the request times out. If you make the request again with the
60784// same request ID, the server can check if original operation with the
60785// same request ID was received, and if so, will ignore the second
60786// request. This prevents clients from accidentally creating duplicate
60787// commitments.
60788//
60789// The request ID must be a valid UUID with the exception that zero UUID
60790// is not supported (00000000-0000-0000-0000-000000000000).
60791func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
60792	c.urlParams_.Set("requestId", requestId)
60793	return c
60794}
60795
60796// Fields allows partial responses to be retrieved. See
60797// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60798// for more information.
60799func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
60800	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60801	return c
60802}
60803
60804// Context sets the context to be used in this call's Do method. Any
60805// pending HTTP request will be aborted if the provided context is
60806// canceled.
60807func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
60808	c.ctx_ = ctx
60809	return c
60810}
60811
60812// Header returns an http.Header that can be modified by the caller to
60813// add HTTP headers to the request.
60814func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
60815	if c.header_ == nil {
60816		c.header_ = make(http.Header)
60817	}
60818	return c.header_
60819}
60820
60821func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
60822	reqHeaders := make(http.Header)
60823	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60824	for k, v := range c.header_ {
60825		reqHeaders[k] = v
60826	}
60827	reqHeaders.Set("User-Agent", c.s.userAgent())
60828	var body io.Reader = nil
60829	c.urlParams_.Set("alt", alt)
60830	c.urlParams_.Set("prettyPrint", "false")
60831	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
60832	urls += "?" + c.urlParams_.Encode()
60833	req, err := http.NewRequest("DELETE", urls, body)
60834	if err != nil {
60835		return nil, err
60836	}
60837	req.Header = reqHeaders
60838	googleapi.Expand(req.URL, map[string]string{
60839		"project":        c.project,
60840		"forwardingRule": c.forwardingRule,
60841	})
60842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60843}
60844
60845// Do executes the "compute.globalForwardingRules.delete" call.
60846// Exactly one of *Operation or error will be non-nil. Any non-2xx
60847// status code is an error. Response headers are in either
60848// *Operation.ServerResponse.Header or (if a response was returned at
60849// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60850// to check whether the returned error was because
60851// http.StatusNotModified was returned.
60852func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60853	gensupport.SetOptions(c.urlParams_, opts...)
60854	res, err := c.doRequest("json")
60855	if res != nil && res.StatusCode == http.StatusNotModified {
60856		if res.Body != nil {
60857			res.Body.Close()
60858		}
60859		return nil, &googleapi.Error{
60860			Code:   res.StatusCode,
60861			Header: res.Header,
60862		}
60863	}
60864	if err != nil {
60865		return nil, err
60866	}
60867	defer googleapi.CloseBody(res)
60868	if err := googleapi.CheckResponse(res); err != nil {
60869		return nil, err
60870	}
60871	ret := &Operation{
60872		ServerResponse: googleapi.ServerResponse{
60873			Header:         res.Header,
60874			HTTPStatusCode: res.StatusCode,
60875		},
60876	}
60877	target := &ret
60878	if err := gensupport.DecodeResponse(target, res); err != nil {
60879		return nil, err
60880	}
60881	return ret, nil
60882	// {
60883	//   "description": "Deletes the specified GlobalForwardingRule resource.",
60884	//   "httpMethod": "DELETE",
60885	//   "id": "compute.globalForwardingRules.delete",
60886	//   "parameterOrder": [
60887	//     "project",
60888	//     "forwardingRule"
60889	//   ],
60890	//   "parameters": {
60891	//     "forwardingRule": {
60892	//       "description": "Name of the ForwardingRule resource to delete.",
60893	//       "location": "path",
60894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60895	//       "required": true,
60896	//       "type": "string"
60897	//     },
60898	//     "project": {
60899	//       "description": "Project ID for this request.",
60900	//       "location": "path",
60901	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60902	//       "required": true,
60903	//       "type": "string"
60904	//     },
60905	//     "requestId": {
60906	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60907	//       "location": "query",
60908	//       "type": "string"
60909	//     }
60910	//   },
60911	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
60912	//   "response": {
60913	//     "$ref": "Operation"
60914	//   },
60915	//   "scopes": [
60916	//     "https://www.googleapis.com/auth/cloud-platform",
60917	//     "https://www.googleapis.com/auth/compute"
60918	//   ]
60919	// }
60920
60921}
60922
60923// method id "compute.globalForwardingRules.get":
60924
60925type GlobalForwardingRulesGetCall struct {
60926	s              *Service
60927	project        string
60928	forwardingRule string
60929	urlParams_     gensupport.URLParams
60930	ifNoneMatch_   string
60931	ctx_           context.Context
60932	header_        http.Header
60933}
60934
60935// Get: Returns the specified GlobalForwardingRule resource. Gets a list
60936// of available forwarding rules by making a list() request.
60937// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
60938func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
60939	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60940	c.project = project
60941	c.forwardingRule = forwardingRule
60942	return c
60943}
60944
60945// Fields allows partial responses to be retrieved. See
60946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60947// for more information.
60948func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
60949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60950	return c
60951}
60952
60953// IfNoneMatch sets the optional parameter which makes the operation
60954// fail if the object's ETag matches the given value. This is useful for
60955// getting updates only after the object has changed since the last
60956// request. Use googleapi.IsNotModified to check whether the response
60957// error from Do is the result of In-None-Match.
60958func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
60959	c.ifNoneMatch_ = entityTag
60960	return c
60961}
60962
60963// Context sets the context to be used in this call's Do method. Any
60964// pending HTTP request will be aborted if the provided context is
60965// canceled.
60966func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
60967	c.ctx_ = ctx
60968	return c
60969}
60970
60971// Header returns an http.Header that can be modified by the caller to
60972// add HTTP headers to the request.
60973func (c *GlobalForwardingRulesGetCall) Header() http.Header {
60974	if c.header_ == nil {
60975		c.header_ = make(http.Header)
60976	}
60977	return c.header_
60978}
60979
60980func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
60981	reqHeaders := make(http.Header)
60982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
60983	for k, v := range c.header_ {
60984		reqHeaders[k] = v
60985	}
60986	reqHeaders.Set("User-Agent", c.s.userAgent())
60987	if c.ifNoneMatch_ != "" {
60988		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60989	}
60990	var body io.Reader = nil
60991	c.urlParams_.Set("alt", alt)
60992	c.urlParams_.Set("prettyPrint", "false")
60993	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
60994	urls += "?" + c.urlParams_.Encode()
60995	req, err := http.NewRequest("GET", urls, body)
60996	if err != nil {
60997		return nil, err
60998	}
60999	req.Header = reqHeaders
61000	googleapi.Expand(req.URL, map[string]string{
61001		"project":        c.project,
61002		"forwardingRule": c.forwardingRule,
61003	})
61004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61005}
61006
61007// Do executes the "compute.globalForwardingRules.get" call.
61008// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
61009// status code is an error. Response headers are in either
61010// *ForwardingRule.ServerResponse.Header or (if a response was returned
61011// at all) in error.(*googleapi.Error).Header. Use
61012// googleapi.IsNotModified to check whether the returned error was
61013// because http.StatusNotModified was returned.
61014func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
61015	gensupport.SetOptions(c.urlParams_, opts...)
61016	res, err := c.doRequest("json")
61017	if res != nil && res.StatusCode == http.StatusNotModified {
61018		if res.Body != nil {
61019			res.Body.Close()
61020		}
61021		return nil, &googleapi.Error{
61022			Code:   res.StatusCode,
61023			Header: res.Header,
61024		}
61025	}
61026	if err != nil {
61027		return nil, err
61028	}
61029	defer googleapi.CloseBody(res)
61030	if err := googleapi.CheckResponse(res); err != nil {
61031		return nil, err
61032	}
61033	ret := &ForwardingRule{
61034		ServerResponse: googleapi.ServerResponse{
61035			Header:         res.Header,
61036			HTTPStatusCode: res.StatusCode,
61037		},
61038	}
61039	target := &ret
61040	if err := gensupport.DecodeResponse(target, res); err != nil {
61041		return nil, err
61042	}
61043	return ret, nil
61044	// {
61045	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
61046	//   "httpMethod": "GET",
61047	//   "id": "compute.globalForwardingRules.get",
61048	//   "parameterOrder": [
61049	//     "project",
61050	//     "forwardingRule"
61051	//   ],
61052	//   "parameters": {
61053	//     "forwardingRule": {
61054	//       "description": "Name of the ForwardingRule resource to return.",
61055	//       "location": "path",
61056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61057	//       "required": true,
61058	//       "type": "string"
61059	//     },
61060	//     "project": {
61061	//       "description": "Project ID for this request.",
61062	//       "location": "path",
61063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61064	//       "required": true,
61065	//       "type": "string"
61066	//     }
61067	//   },
61068	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
61069	//   "response": {
61070	//     "$ref": "ForwardingRule"
61071	//   },
61072	//   "scopes": [
61073	//     "https://www.googleapis.com/auth/cloud-platform",
61074	//     "https://www.googleapis.com/auth/compute",
61075	//     "https://www.googleapis.com/auth/compute.readonly"
61076	//   ]
61077	// }
61078
61079}
61080
61081// method id "compute.globalForwardingRules.insert":
61082
61083type GlobalForwardingRulesInsertCall struct {
61084	s              *Service
61085	project        string
61086	forwardingrule *ForwardingRule
61087	urlParams_     gensupport.URLParams
61088	ctx_           context.Context
61089	header_        http.Header
61090}
61091
61092// Insert: Creates a GlobalForwardingRule resource in the specified
61093// project using the data included in the request.
61094// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
61095func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
61096	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61097	c.project = project
61098	c.forwardingrule = forwardingrule
61099	return c
61100}
61101
61102// RequestId sets the optional parameter "requestId": An optional
61103// request ID to identify requests. Specify a unique request ID so that
61104// if you must retry your request, the server will know to ignore the
61105// request if it has already been completed.
61106//
61107// For example, consider a situation where you make an initial request
61108// and the request times out. If you make the request again with the
61109// same request ID, the server can check if original operation with the
61110// same request ID was received, and if so, will ignore the second
61111// request. This prevents clients from accidentally creating duplicate
61112// commitments.
61113//
61114// The request ID must be a valid UUID with the exception that zero UUID
61115// is not supported (00000000-0000-0000-0000-000000000000).
61116func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
61117	c.urlParams_.Set("requestId", requestId)
61118	return c
61119}
61120
61121// Fields allows partial responses to be retrieved. See
61122// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61123// for more information.
61124func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
61125	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61126	return c
61127}
61128
61129// Context sets the context to be used in this call's Do method. Any
61130// pending HTTP request will be aborted if the provided context is
61131// canceled.
61132func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
61133	c.ctx_ = ctx
61134	return c
61135}
61136
61137// Header returns an http.Header that can be modified by the caller to
61138// add HTTP headers to the request.
61139func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
61140	if c.header_ == nil {
61141		c.header_ = make(http.Header)
61142	}
61143	return c.header_
61144}
61145
61146func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
61147	reqHeaders := make(http.Header)
61148	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61149	for k, v := range c.header_ {
61150		reqHeaders[k] = v
61151	}
61152	reqHeaders.Set("User-Agent", c.s.userAgent())
61153	var body io.Reader = nil
61154	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
61155	if err != nil {
61156		return nil, err
61157	}
61158	reqHeaders.Set("Content-Type", "application/json")
61159	c.urlParams_.Set("alt", alt)
61160	c.urlParams_.Set("prettyPrint", "false")
61161	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
61162	urls += "?" + c.urlParams_.Encode()
61163	req, err := http.NewRequest("POST", urls, body)
61164	if err != nil {
61165		return nil, err
61166	}
61167	req.Header = reqHeaders
61168	googleapi.Expand(req.URL, map[string]string{
61169		"project": c.project,
61170	})
61171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61172}
61173
61174// Do executes the "compute.globalForwardingRules.insert" call.
61175// Exactly one of *Operation or error will be non-nil. Any non-2xx
61176// status code is an error. Response headers are in either
61177// *Operation.ServerResponse.Header or (if a response was returned at
61178// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61179// to check whether the returned error was because
61180// http.StatusNotModified was returned.
61181func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61182	gensupport.SetOptions(c.urlParams_, opts...)
61183	res, err := c.doRequest("json")
61184	if res != nil && res.StatusCode == http.StatusNotModified {
61185		if res.Body != nil {
61186			res.Body.Close()
61187		}
61188		return nil, &googleapi.Error{
61189			Code:   res.StatusCode,
61190			Header: res.Header,
61191		}
61192	}
61193	if err != nil {
61194		return nil, err
61195	}
61196	defer googleapi.CloseBody(res)
61197	if err := googleapi.CheckResponse(res); err != nil {
61198		return nil, err
61199	}
61200	ret := &Operation{
61201		ServerResponse: googleapi.ServerResponse{
61202			Header:         res.Header,
61203			HTTPStatusCode: res.StatusCode,
61204		},
61205	}
61206	target := &ret
61207	if err := gensupport.DecodeResponse(target, res); err != nil {
61208		return nil, err
61209	}
61210	return ret, nil
61211	// {
61212	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
61213	//   "httpMethod": "POST",
61214	//   "id": "compute.globalForwardingRules.insert",
61215	//   "parameterOrder": [
61216	//     "project"
61217	//   ],
61218	//   "parameters": {
61219	//     "project": {
61220	//       "description": "Project ID for this request.",
61221	//       "location": "path",
61222	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61223	//       "required": true,
61224	//       "type": "string"
61225	//     },
61226	//     "requestId": {
61227	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61228	//       "location": "query",
61229	//       "type": "string"
61230	//     }
61231	//   },
61232	//   "path": "{project}/global/forwardingRules",
61233	//   "request": {
61234	//     "$ref": "ForwardingRule"
61235	//   },
61236	//   "response": {
61237	//     "$ref": "Operation"
61238	//   },
61239	//   "scopes": [
61240	//     "https://www.googleapis.com/auth/cloud-platform",
61241	//     "https://www.googleapis.com/auth/compute"
61242	//   ]
61243	// }
61244
61245}
61246
61247// method id "compute.globalForwardingRules.list":
61248
61249type GlobalForwardingRulesListCall struct {
61250	s            *Service
61251	project      string
61252	urlParams_   gensupport.URLParams
61253	ifNoneMatch_ string
61254	ctx_         context.Context
61255	header_      http.Header
61256}
61257
61258// List: Retrieves a list of GlobalForwardingRule resources available to
61259// the specified project.
61260// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
61261func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
61262	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61263	c.project = project
61264	return c
61265}
61266
61267// Filter sets the optional parameter "filter": A filter expression that
61268// filters resources listed in the response. The expression must specify
61269// the field name, a comparison operator, and the value that you want to
61270// use for filtering. The value must be a string, a number, or a
61271// boolean. The comparison operator must be either `=`, `!=`, `>`, or
61272// `<`.
61273//
61274// For example, if you are filtering Compute Engine instances, you can
61275// exclude instances named `example-instance` by specifying `name !=
61276// example-instance`.
61277//
61278// You can also filter nested fields. For example, you could specify
61279// `scheduling.automaticRestart = false` to include instances only if
61280// they are not scheduled for automatic restarts. You can use filtering
61281// on nested fields to filter based on resource labels.
61282//
61283// To filter on multiple expressions, provide each separate expression
61284// within parentheses. For example: ``` (scheduling.automaticRestart =
61285// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
61286// is an `AND` expression. However, you can include `AND` and `OR`
61287// expressions explicitly. For example: ``` (cpuPlatform = "Intel
61288// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
61289// (scheduling.automaticRestart = true) ```
61290func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
61291	c.urlParams_.Set("filter", filter)
61292	return c
61293}
61294
61295// MaxResults sets the optional parameter "maxResults": The maximum
61296// number of results per page that should be returned. If the number of
61297// available results is larger than `maxResults`, Compute Engine returns
61298// a `nextPageToken` that can be used to get the next page of results in
61299// subsequent list requests. Acceptable values are `0` to `500`,
61300// inclusive. (Default: `500`)
61301func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
61302	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61303	return c
61304}
61305
61306// OrderBy sets the optional parameter "orderBy": Sorts list results by
61307// a certain order. By default, results are returned in alphanumerical
61308// order based on the resource name.
61309//
61310// You can also sort results in descending order based on the creation
61311// timestamp using `orderBy="creationTimestamp desc". This sorts
61312// results based on the `creationTimestamp` field in reverse
61313// chronological order (newest result first). Use this to sort resources
61314// like operations so that the newest operation is returned
61315// first.
61316//
61317// Currently, only sorting by `name` or `creationTimestamp desc` is
61318// supported.
61319func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
61320	c.urlParams_.Set("orderBy", orderBy)
61321	return c
61322}
61323
61324// PageToken sets the optional parameter "pageToken": Specifies a page
61325// token to use. Set `pageToken` to the `nextPageToken` returned by a
61326// previous list request to get the next page of results.
61327func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
61328	c.urlParams_.Set("pageToken", pageToken)
61329	return c
61330}
61331
61332// Fields allows partial responses to be retrieved. See
61333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61334// for more information.
61335func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
61336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61337	return c
61338}
61339
61340// IfNoneMatch sets the optional parameter which makes the operation
61341// fail if the object's ETag matches the given value. This is useful for
61342// getting updates only after the object has changed since the last
61343// request. Use googleapi.IsNotModified to check whether the response
61344// error from Do is the result of In-None-Match.
61345func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
61346	c.ifNoneMatch_ = entityTag
61347	return c
61348}
61349
61350// Context sets the context to be used in this call's Do method. Any
61351// pending HTTP request will be aborted if the provided context is
61352// canceled.
61353func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
61354	c.ctx_ = ctx
61355	return c
61356}
61357
61358// Header returns an http.Header that can be modified by the caller to
61359// add HTTP headers to the request.
61360func (c *GlobalForwardingRulesListCall) Header() http.Header {
61361	if c.header_ == nil {
61362		c.header_ = make(http.Header)
61363	}
61364	return c.header_
61365}
61366
61367func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
61368	reqHeaders := make(http.Header)
61369	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61370	for k, v := range c.header_ {
61371		reqHeaders[k] = v
61372	}
61373	reqHeaders.Set("User-Agent", c.s.userAgent())
61374	if c.ifNoneMatch_ != "" {
61375		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61376	}
61377	var body io.Reader = nil
61378	c.urlParams_.Set("alt", alt)
61379	c.urlParams_.Set("prettyPrint", "false")
61380	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
61381	urls += "?" + c.urlParams_.Encode()
61382	req, err := http.NewRequest("GET", urls, body)
61383	if err != nil {
61384		return nil, err
61385	}
61386	req.Header = reqHeaders
61387	googleapi.Expand(req.URL, map[string]string{
61388		"project": c.project,
61389	})
61390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61391}
61392
61393// Do executes the "compute.globalForwardingRules.list" call.
61394// Exactly one of *ForwardingRuleList or error will be non-nil. Any
61395// non-2xx status code is an error. Response headers are in either
61396// *ForwardingRuleList.ServerResponse.Header or (if a response was
61397// returned at all) in error.(*googleapi.Error).Header. Use
61398// googleapi.IsNotModified to check whether the returned error was
61399// because http.StatusNotModified was returned.
61400func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
61401	gensupport.SetOptions(c.urlParams_, opts...)
61402	res, err := c.doRequest("json")
61403	if res != nil && res.StatusCode == http.StatusNotModified {
61404		if res.Body != nil {
61405			res.Body.Close()
61406		}
61407		return nil, &googleapi.Error{
61408			Code:   res.StatusCode,
61409			Header: res.Header,
61410		}
61411	}
61412	if err != nil {
61413		return nil, err
61414	}
61415	defer googleapi.CloseBody(res)
61416	if err := googleapi.CheckResponse(res); err != nil {
61417		return nil, err
61418	}
61419	ret := &ForwardingRuleList{
61420		ServerResponse: googleapi.ServerResponse{
61421			Header:         res.Header,
61422			HTTPStatusCode: res.StatusCode,
61423		},
61424	}
61425	target := &ret
61426	if err := gensupport.DecodeResponse(target, res); err != nil {
61427		return nil, err
61428	}
61429	return ret, nil
61430	// {
61431	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
61432	//   "httpMethod": "GET",
61433	//   "id": "compute.globalForwardingRules.list",
61434	//   "parameterOrder": [
61435	//     "project"
61436	//   ],
61437	//   "parameters": {
61438	//     "filter": {
61439	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
61440	//       "location": "query",
61441	//       "type": "string"
61442	//     },
61443	//     "maxResults": {
61444	//       "default": "500",
61445	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
61446	//       "format": "uint32",
61447	//       "location": "query",
61448	//       "minimum": "0",
61449	//       "type": "integer"
61450	//     },
61451	//     "orderBy": {
61452	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
61453	//       "location": "query",
61454	//       "type": "string"
61455	//     },
61456	//     "pageToken": {
61457	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
61458	//       "location": "query",
61459	//       "type": "string"
61460	//     },
61461	//     "project": {
61462	//       "description": "Project ID for this request.",
61463	//       "location": "path",
61464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61465	//       "required": true,
61466	//       "type": "string"
61467	//     }
61468	//   },
61469	//   "path": "{project}/global/forwardingRules",
61470	//   "response": {
61471	//     "$ref": "ForwardingRuleList"
61472	//   },
61473	//   "scopes": [
61474	//     "https://www.googleapis.com/auth/cloud-platform",
61475	//     "https://www.googleapis.com/auth/compute",
61476	//     "https://www.googleapis.com/auth/compute.readonly"
61477	//   ]
61478	// }
61479
61480}
61481
61482// Pages invokes f for each page of results.
61483// A non-nil error returned from f will halt the iteration.
61484// The provided context supersedes any context provided to the Context method.
61485func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
61486	c.ctx_ = ctx
61487	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61488	for {
61489		x, err := c.Do()
61490		if err != nil {
61491			return err
61492		}
61493		if err := f(x); err != nil {
61494			return err
61495		}
61496		if x.NextPageToken == "" {
61497			return nil
61498		}
61499		c.PageToken(x.NextPageToken)
61500	}
61501}
61502
61503// method id "compute.globalForwardingRules.patch":
61504
61505type GlobalForwardingRulesPatchCall struct {
61506	s              *Service
61507	project        string
61508	forwardingRule string
61509	forwardingrule *ForwardingRule
61510	urlParams_     gensupport.URLParams
61511	ctx_           context.Context
61512	header_        http.Header
61513}
61514
61515// Patch: Updates the specified forwarding rule with the data included
61516// in the request. This method supports PATCH semantics and uses the
61517// JSON merge patch format and processing rules. Currently, you can only
61518// patch the network_tier field.
61519func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
61520	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61521	c.project = project
61522	c.forwardingRule = forwardingRule
61523	c.forwardingrule = forwardingrule
61524	return c
61525}
61526
61527// RequestId sets the optional parameter "requestId": An optional
61528// request ID to identify requests. Specify a unique request ID so that
61529// if you must retry your request, the server will know to ignore the
61530// request if it has already been completed.
61531//
61532// For example, consider a situation where you make an initial request
61533// and the request times out. If you make the request again with the
61534// same request ID, the server can check if original operation with the
61535// same request ID was received, and if so, will ignore the second
61536// request. This prevents clients from accidentally creating duplicate
61537// commitments.
61538//
61539// The request ID must be a valid UUID with the exception that zero UUID
61540// is not supported (00000000-0000-0000-0000-000000000000).
61541func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
61542	c.urlParams_.Set("requestId", requestId)
61543	return c
61544}
61545
61546// Fields allows partial responses to be retrieved. See
61547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61548// for more information.
61549func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
61550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61551	return c
61552}
61553
61554// Context sets the context to be used in this call's Do method. Any
61555// pending HTTP request will be aborted if the provided context is
61556// canceled.
61557func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
61558	c.ctx_ = ctx
61559	return c
61560}
61561
61562// Header returns an http.Header that can be modified by the caller to
61563// add HTTP headers to the request.
61564func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
61565	if c.header_ == nil {
61566		c.header_ = make(http.Header)
61567	}
61568	return c.header_
61569}
61570
61571func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
61572	reqHeaders := make(http.Header)
61573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61574	for k, v := range c.header_ {
61575		reqHeaders[k] = v
61576	}
61577	reqHeaders.Set("User-Agent", c.s.userAgent())
61578	var body io.Reader = nil
61579	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
61580	if err != nil {
61581		return nil, err
61582	}
61583	reqHeaders.Set("Content-Type", "application/json")
61584	c.urlParams_.Set("alt", alt)
61585	c.urlParams_.Set("prettyPrint", "false")
61586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
61587	urls += "?" + c.urlParams_.Encode()
61588	req, err := http.NewRequest("PATCH", urls, body)
61589	if err != nil {
61590		return nil, err
61591	}
61592	req.Header = reqHeaders
61593	googleapi.Expand(req.URL, map[string]string{
61594		"project":        c.project,
61595		"forwardingRule": c.forwardingRule,
61596	})
61597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61598}
61599
61600// Do executes the "compute.globalForwardingRules.patch" call.
61601// Exactly one of *Operation or error will be non-nil. Any non-2xx
61602// status code is an error. Response headers are in either
61603// *Operation.ServerResponse.Header or (if a response was returned at
61604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61605// to check whether the returned error was because
61606// http.StatusNotModified was returned.
61607func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61608	gensupport.SetOptions(c.urlParams_, opts...)
61609	res, err := c.doRequest("json")
61610	if res != nil && res.StatusCode == http.StatusNotModified {
61611		if res.Body != nil {
61612			res.Body.Close()
61613		}
61614		return nil, &googleapi.Error{
61615			Code:   res.StatusCode,
61616			Header: res.Header,
61617		}
61618	}
61619	if err != nil {
61620		return nil, err
61621	}
61622	defer googleapi.CloseBody(res)
61623	if err := googleapi.CheckResponse(res); err != nil {
61624		return nil, err
61625	}
61626	ret := &Operation{
61627		ServerResponse: googleapi.ServerResponse{
61628			Header:         res.Header,
61629			HTTPStatusCode: res.StatusCode,
61630		},
61631	}
61632	target := &ret
61633	if err := gensupport.DecodeResponse(target, res); err != nil {
61634		return nil, err
61635	}
61636	return ret, nil
61637	// {
61638	//   "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.",
61639	//   "httpMethod": "PATCH",
61640	//   "id": "compute.globalForwardingRules.patch",
61641	//   "parameterOrder": [
61642	//     "project",
61643	//     "forwardingRule"
61644	//   ],
61645	//   "parameters": {
61646	//     "forwardingRule": {
61647	//       "description": "Name of the ForwardingRule resource to patch.",
61648	//       "location": "path",
61649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61650	//       "required": true,
61651	//       "type": "string"
61652	//     },
61653	//     "project": {
61654	//       "description": "Project ID for this request.",
61655	//       "location": "path",
61656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61657	//       "required": true,
61658	//       "type": "string"
61659	//     },
61660	//     "requestId": {
61661	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61662	//       "location": "query",
61663	//       "type": "string"
61664	//     }
61665	//   },
61666	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
61667	//   "request": {
61668	//     "$ref": "ForwardingRule"
61669	//   },
61670	//   "response": {
61671	//     "$ref": "Operation"
61672	//   },
61673	//   "scopes": [
61674	//     "https://www.googleapis.com/auth/cloud-platform",
61675	//     "https://www.googleapis.com/auth/compute"
61676	//   ]
61677	// }
61678
61679}
61680
61681// method id "compute.globalForwardingRules.setLabels":
61682
61683type GlobalForwardingRulesSetLabelsCall struct {
61684	s                      *Service
61685	project                string
61686	resource               string
61687	globalsetlabelsrequest *GlobalSetLabelsRequest
61688	urlParams_             gensupport.URLParams
61689	ctx_                   context.Context
61690	header_                http.Header
61691}
61692
61693// SetLabels: Sets the labels on the specified resource. To learn more
61694// about labels, read the Labeling Resources documentation.
61695func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
61696	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61697	c.project = project
61698	c.resource = resource
61699	c.globalsetlabelsrequest = globalsetlabelsrequest
61700	return c
61701}
61702
61703// Fields allows partial responses to be retrieved. See
61704// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61705// for more information.
61706func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
61707	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61708	return c
61709}
61710
61711// Context sets the context to be used in this call's Do method. Any
61712// pending HTTP request will be aborted if the provided context is
61713// canceled.
61714func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
61715	c.ctx_ = ctx
61716	return c
61717}
61718
61719// Header returns an http.Header that can be modified by the caller to
61720// add HTTP headers to the request.
61721func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
61722	if c.header_ == nil {
61723		c.header_ = make(http.Header)
61724	}
61725	return c.header_
61726}
61727
61728func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
61729	reqHeaders := make(http.Header)
61730	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61731	for k, v := range c.header_ {
61732		reqHeaders[k] = v
61733	}
61734	reqHeaders.Set("User-Agent", c.s.userAgent())
61735	var body io.Reader = nil
61736	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
61737	if err != nil {
61738		return nil, err
61739	}
61740	reqHeaders.Set("Content-Type", "application/json")
61741	c.urlParams_.Set("alt", alt)
61742	c.urlParams_.Set("prettyPrint", "false")
61743	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/setLabels")
61744	urls += "?" + c.urlParams_.Encode()
61745	req, err := http.NewRequest("POST", urls, body)
61746	if err != nil {
61747		return nil, err
61748	}
61749	req.Header = reqHeaders
61750	googleapi.Expand(req.URL, map[string]string{
61751		"project":  c.project,
61752		"resource": c.resource,
61753	})
61754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61755}
61756
61757// Do executes the "compute.globalForwardingRules.setLabels" call.
61758// Exactly one of *Operation or error will be non-nil. Any non-2xx
61759// status code is an error. Response headers are in either
61760// *Operation.ServerResponse.Header or (if a response was returned at
61761// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61762// to check whether the returned error was because
61763// http.StatusNotModified was returned.
61764func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61765	gensupport.SetOptions(c.urlParams_, opts...)
61766	res, err := c.doRequest("json")
61767	if res != nil && res.StatusCode == http.StatusNotModified {
61768		if res.Body != nil {
61769			res.Body.Close()
61770		}
61771		return nil, &googleapi.Error{
61772			Code:   res.StatusCode,
61773			Header: res.Header,
61774		}
61775	}
61776	if err != nil {
61777		return nil, err
61778	}
61779	defer googleapi.CloseBody(res)
61780	if err := googleapi.CheckResponse(res); err != nil {
61781		return nil, err
61782	}
61783	ret := &Operation{
61784		ServerResponse: googleapi.ServerResponse{
61785			Header:         res.Header,
61786			HTTPStatusCode: res.StatusCode,
61787		},
61788	}
61789	target := &ret
61790	if err := gensupport.DecodeResponse(target, res); err != nil {
61791		return nil, err
61792	}
61793	return ret, nil
61794	// {
61795	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
61796	//   "httpMethod": "POST",
61797	//   "id": "compute.globalForwardingRules.setLabels",
61798	//   "parameterOrder": [
61799	//     "project",
61800	//     "resource"
61801	//   ],
61802	//   "parameters": {
61803	//     "project": {
61804	//       "description": "Project ID for this request.",
61805	//       "location": "path",
61806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61807	//       "required": true,
61808	//       "type": "string"
61809	//     },
61810	//     "resource": {
61811	//       "description": "Name or id of the resource for this request.",
61812	//       "location": "path",
61813	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61814	//       "required": true,
61815	//       "type": "string"
61816	//     }
61817	//   },
61818	//   "path": "{project}/global/forwardingRules/{resource}/setLabels",
61819	//   "request": {
61820	//     "$ref": "GlobalSetLabelsRequest"
61821	//   },
61822	//   "response": {
61823	//     "$ref": "Operation"
61824	//   },
61825	//   "scopes": [
61826	//     "https://www.googleapis.com/auth/cloud-platform",
61827	//     "https://www.googleapis.com/auth/compute"
61828	//   ]
61829	// }
61830
61831}
61832
61833// method id "compute.globalForwardingRules.setTarget":
61834
61835type GlobalForwardingRulesSetTargetCall struct {
61836	s               *Service
61837	project         string
61838	forwardingRule  string
61839	targetreference *TargetReference
61840	urlParams_      gensupport.URLParams
61841	ctx_            context.Context
61842	header_         http.Header
61843}
61844
61845// SetTarget: Changes target URL for the GlobalForwardingRule resource.
61846// The new target should be of the same type as the old target.
61847// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
61848func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
61849	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61850	c.project = project
61851	c.forwardingRule = forwardingRule
61852	c.targetreference = targetreference
61853	return c
61854}
61855
61856// RequestId sets the optional parameter "requestId": An optional
61857// request ID to identify requests. Specify a unique request ID so that
61858// if you must retry your request, the server will know to ignore the
61859// request if it has already been completed.
61860//
61861// For example, consider a situation where you make an initial request
61862// and the request times out. If you make the request again with the
61863// same request ID, the server can check if original operation with the
61864// same request ID was received, and if so, will ignore the second
61865// request. This prevents clients from accidentally creating duplicate
61866// commitments.
61867//
61868// The request ID must be a valid UUID with the exception that zero UUID
61869// is not supported (00000000-0000-0000-0000-000000000000).
61870func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
61871	c.urlParams_.Set("requestId", requestId)
61872	return c
61873}
61874
61875// Fields allows partial responses to be retrieved. See
61876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61877// for more information.
61878func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
61879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61880	return c
61881}
61882
61883// Context sets the context to be used in this call's Do method. Any
61884// pending HTTP request will be aborted if the provided context is
61885// canceled.
61886func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
61887	c.ctx_ = ctx
61888	return c
61889}
61890
61891// Header returns an http.Header that can be modified by the caller to
61892// add HTTP headers to the request.
61893func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
61894	if c.header_ == nil {
61895		c.header_ = make(http.Header)
61896	}
61897	return c.header_
61898}
61899
61900func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
61901	reqHeaders := make(http.Header)
61902	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
61903	for k, v := range c.header_ {
61904		reqHeaders[k] = v
61905	}
61906	reqHeaders.Set("User-Agent", c.s.userAgent())
61907	var body io.Reader = nil
61908	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
61909	if err != nil {
61910		return nil, err
61911	}
61912	reqHeaders.Set("Content-Type", "application/json")
61913	c.urlParams_.Set("alt", alt)
61914	c.urlParams_.Set("prettyPrint", "false")
61915	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
61916	urls += "?" + c.urlParams_.Encode()
61917	req, err := http.NewRequest("POST", urls, body)
61918	if err != nil {
61919		return nil, err
61920	}
61921	req.Header = reqHeaders
61922	googleapi.Expand(req.URL, map[string]string{
61923		"project":        c.project,
61924		"forwardingRule": c.forwardingRule,
61925	})
61926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61927}
61928
61929// Do executes the "compute.globalForwardingRules.setTarget" call.
61930// Exactly one of *Operation or error will be non-nil. Any non-2xx
61931// status code is an error. Response headers are in either
61932// *Operation.ServerResponse.Header or (if a response was returned at
61933// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61934// to check whether the returned error was because
61935// http.StatusNotModified was returned.
61936func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61937	gensupport.SetOptions(c.urlParams_, opts...)
61938	res, err := c.doRequest("json")
61939	if res != nil && res.StatusCode == http.StatusNotModified {
61940		if res.Body != nil {
61941			res.Body.Close()
61942		}
61943		return nil, &googleapi.Error{
61944			Code:   res.StatusCode,
61945			Header: res.Header,
61946		}
61947	}
61948	if err != nil {
61949		return nil, err
61950	}
61951	defer googleapi.CloseBody(res)
61952	if err := googleapi.CheckResponse(res); err != nil {
61953		return nil, err
61954	}
61955	ret := &Operation{
61956		ServerResponse: googleapi.ServerResponse{
61957			Header:         res.Header,
61958			HTTPStatusCode: res.StatusCode,
61959		},
61960	}
61961	target := &ret
61962	if err := gensupport.DecodeResponse(target, res); err != nil {
61963		return nil, err
61964	}
61965	return ret, nil
61966	// {
61967	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
61968	//   "httpMethod": "POST",
61969	//   "id": "compute.globalForwardingRules.setTarget",
61970	//   "parameterOrder": [
61971	//     "project",
61972	//     "forwardingRule"
61973	//   ],
61974	//   "parameters": {
61975	//     "forwardingRule": {
61976	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
61977	//       "location": "path",
61978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61979	//       "required": true,
61980	//       "type": "string"
61981	//     },
61982	//     "project": {
61983	//       "description": "Project ID for this request.",
61984	//       "location": "path",
61985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61986	//       "required": true,
61987	//       "type": "string"
61988	//     },
61989	//     "requestId": {
61990	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61991	//       "location": "query",
61992	//       "type": "string"
61993	//     }
61994	//   },
61995	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
61996	//   "request": {
61997	//     "$ref": "TargetReference"
61998	//   },
61999	//   "response": {
62000	//     "$ref": "Operation"
62001	//   },
62002	//   "scopes": [
62003	//     "https://www.googleapis.com/auth/cloud-platform",
62004	//     "https://www.googleapis.com/auth/compute"
62005	//   ]
62006	// }
62007
62008}
62009
62010// method id "compute.globalForwardingRules.testIamPermissions":
62011
62012type GlobalForwardingRulesTestIamPermissionsCall struct {
62013	s                      *Service
62014	project                string
62015	resource               string
62016	testpermissionsrequest *TestPermissionsRequest
62017	urlParams_             gensupport.URLParams
62018	ctx_                   context.Context
62019	header_                http.Header
62020}
62021
62022// TestIamPermissions: Returns permissions that a caller has on the
62023// specified resource.
62024func (r *GlobalForwardingRulesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalForwardingRulesTestIamPermissionsCall {
62025	c := &GlobalForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62026	c.project = project
62027	c.resource = resource
62028	c.testpermissionsrequest = testpermissionsrequest
62029	return c
62030}
62031
62032// Fields allows partial responses to be retrieved. See
62033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62034// for more information.
62035func (c *GlobalForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesTestIamPermissionsCall {
62036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62037	return c
62038}
62039
62040// Context sets the context to be used in this call's Do method. Any
62041// pending HTTP request will be aborted if the provided context is
62042// canceled.
62043func (c *GlobalForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *GlobalForwardingRulesTestIamPermissionsCall {
62044	c.ctx_ = ctx
62045	return c
62046}
62047
62048// Header returns an http.Header that can be modified by the caller to
62049// add HTTP headers to the request.
62050func (c *GlobalForwardingRulesTestIamPermissionsCall) Header() http.Header {
62051	if c.header_ == nil {
62052		c.header_ = make(http.Header)
62053	}
62054	return c.header_
62055}
62056
62057func (c *GlobalForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
62058	reqHeaders := make(http.Header)
62059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62060	for k, v := range c.header_ {
62061		reqHeaders[k] = v
62062	}
62063	reqHeaders.Set("User-Agent", c.s.userAgent())
62064	var body io.Reader = nil
62065	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
62066	if err != nil {
62067		return nil, err
62068	}
62069	reqHeaders.Set("Content-Type", "application/json")
62070	c.urlParams_.Set("alt", alt)
62071	c.urlParams_.Set("prettyPrint", "false")
62072	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/testIamPermissions")
62073	urls += "?" + c.urlParams_.Encode()
62074	req, err := http.NewRequest("POST", urls, body)
62075	if err != nil {
62076		return nil, err
62077	}
62078	req.Header = reqHeaders
62079	googleapi.Expand(req.URL, map[string]string{
62080		"project":  c.project,
62081		"resource": c.resource,
62082	})
62083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62084}
62085
62086// Do executes the "compute.globalForwardingRules.testIamPermissions" call.
62087// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
62088// non-2xx status code is an error. Response headers are in either
62089// *TestPermissionsResponse.ServerResponse.Header or (if a response was
62090// returned at all) in error.(*googleapi.Error).Header. Use
62091// googleapi.IsNotModified to check whether the returned error was
62092// because http.StatusNotModified was returned.
62093func (c *GlobalForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
62094	gensupport.SetOptions(c.urlParams_, opts...)
62095	res, err := c.doRequest("json")
62096	if res != nil && res.StatusCode == http.StatusNotModified {
62097		if res.Body != nil {
62098			res.Body.Close()
62099		}
62100		return nil, &googleapi.Error{
62101			Code:   res.StatusCode,
62102			Header: res.Header,
62103		}
62104	}
62105	if err != nil {
62106		return nil, err
62107	}
62108	defer googleapi.CloseBody(res)
62109	if err := googleapi.CheckResponse(res); err != nil {
62110		return nil, err
62111	}
62112	ret := &TestPermissionsResponse{
62113		ServerResponse: googleapi.ServerResponse{
62114			Header:         res.Header,
62115			HTTPStatusCode: res.StatusCode,
62116		},
62117	}
62118	target := &ret
62119	if err := gensupport.DecodeResponse(target, res); err != nil {
62120		return nil, err
62121	}
62122	return ret, nil
62123	// {
62124	//   "description": "Returns permissions that a caller has on the specified resource.",
62125	//   "httpMethod": "POST",
62126	//   "id": "compute.globalForwardingRules.testIamPermissions",
62127	//   "parameterOrder": [
62128	//     "project",
62129	//     "resource"
62130	//   ],
62131	//   "parameters": {
62132	//     "project": {
62133	//       "description": "Project ID for this request.",
62134	//       "location": "path",
62135	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62136	//       "required": true,
62137	//       "type": "string"
62138	//     },
62139	//     "resource": {
62140	//       "description": "Name or id of the resource for this request.",
62141	//       "location": "path",
62142	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62143	//       "required": true,
62144	//       "type": "string"
62145	//     }
62146	//   },
62147	//   "path": "{project}/global/forwardingRules/{resource}/testIamPermissions",
62148	//   "request": {
62149	//     "$ref": "TestPermissionsRequest"
62150	//   },
62151	//   "response": {
62152	//     "$ref": "TestPermissionsResponse"
62153	//   },
62154	//   "scopes": [
62155	//     "https://www.googleapis.com/auth/cloud-platform",
62156	//     "https://www.googleapis.com/auth/compute",
62157	//     "https://www.googleapis.com/auth/compute.readonly"
62158	//   ]
62159	// }
62160
62161}
62162
62163// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
62164
62165type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
62166	s                                                 *Service
62167	project                                           string
62168	networkEndpointGroup                              string
62169	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
62170	urlParams_                                        gensupport.URLParams
62171	ctx_                                              context.Context
62172	header_                                           http.Header
62173}
62174
62175// AttachNetworkEndpoints: Attach a network endpoint to the specified
62176// network endpoint group.
62177func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
62178	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62179	c.project = project
62180	c.networkEndpointGroup = networkEndpointGroup
62181	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
62182	return c
62183}
62184
62185// RequestId sets the optional parameter "requestId": An optional
62186// request ID to identify requests. Specify a unique request ID so that
62187// if you must retry your request, the server will know to ignore the
62188// request if it has already been completed.
62189//
62190// For example, consider a situation where you make an initial request
62191// and the request times out. If you make the request again with the
62192// same request ID, the server can check if original operation with the
62193// same request ID was received, and if so, will ignore the second
62194// request. This prevents clients from accidentally creating duplicate
62195// commitments.
62196//
62197// The request ID must be a valid UUID with the exception that zero UUID
62198// is not supported (00000000-0000-0000-0000-000000000000).
62199func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
62200	c.urlParams_.Set("requestId", requestId)
62201	return c
62202}
62203
62204// Fields allows partial responses to be retrieved. See
62205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62206// for more information.
62207func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
62208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62209	return c
62210}
62211
62212// Context sets the context to be used in this call's Do method. Any
62213// pending HTTP request will be aborted if the provided context is
62214// canceled.
62215func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
62216	c.ctx_ = ctx
62217	return c
62218}
62219
62220// Header returns an http.Header that can be modified by the caller to
62221// add HTTP headers to the request.
62222func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
62223	if c.header_ == nil {
62224		c.header_ = make(http.Header)
62225	}
62226	return c.header_
62227}
62228
62229func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
62230	reqHeaders := make(http.Header)
62231	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62232	for k, v := range c.header_ {
62233		reqHeaders[k] = v
62234	}
62235	reqHeaders.Set("User-Agent", c.s.userAgent())
62236	var body io.Reader = nil
62237	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
62238	if err != nil {
62239		return nil, err
62240	}
62241	reqHeaders.Set("Content-Type", "application/json")
62242	c.urlParams_.Set("alt", alt)
62243	c.urlParams_.Set("prettyPrint", "false")
62244	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
62245	urls += "?" + c.urlParams_.Encode()
62246	req, err := http.NewRequest("POST", urls, body)
62247	if err != nil {
62248		return nil, err
62249	}
62250	req.Header = reqHeaders
62251	googleapi.Expand(req.URL, map[string]string{
62252		"project":              c.project,
62253		"networkEndpointGroup": c.networkEndpointGroup,
62254	})
62255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62256}
62257
62258// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
62259// Exactly one of *Operation or error will be non-nil. Any non-2xx
62260// status code is an error. Response headers are in either
62261// *Operation.ServerResponse.Header or (if a response was returned at
62262// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62263// to check whether the returned error was because
62264// http.StatusNotModified was returned.
62265func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62266	gensupport.SetOptions(c.urlParams_, opts...)
62267	res, err := c.doRequest("json")
62268	if res != nil && res.StatusCode == http.StatusNotModified {
62269		if res.Body != nil {
62270			res.Body.Close()
62271		}
62272		return nil, &googleapi.Error{
62273			Code:   res.StatusCode,
62274			Header: res.Header,
62275		}
62276	}
62277	if err != nil {
62278		return nil, err
62279	}
62280	defer googleapi.CloseBody(res)
62281	if err := googleapi.CheckResponse(res); err != nil {
62282		return nil, err
62283	}
62284	ret := &Operation{
62285		ServerResponse: googleapi.ServerResponse{
62286			Header:         res.Header,
62287			HTTPStatusCode: res.StatusCode,
62288		},
62289	}
62290	target := &ret
62291	if err := gensupport.DecodeResponse(target, res); err != nil {
62292		return nil, err
62293	}
62294	return ret, nil
62295	// {
62296	//   "description": "Attach a network endpoint to the specified network endpoint group.",
62297	//   "httpMethod": "POST",
62298	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
62299	//   "parameterOrder": [
62300	//     "project",
62301	//     "networkEndpointGroup"
62302	//   ],
62303	//   "parameters": {
62304	//     "networkEndpointGroup": {
62305	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
62306	//       "location": "path",
62307	//       "required": true,
62308	//       "type": "string"
62309	//     },
62310	//     "project": {
62311	//       "description": "Project ID for this request.",
62312	//       "location": "path",
62313	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62314	//       "required": true,
62315	//       "type": "string"
62316	//     },
62317	//     "requestId": {
62318	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62319	//       "location": "query",
62320	//       "type": "string"
62321	//     }
62322	//   },
62323	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
62324	//   "request": {
62325	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
62326	//   },
62327	//   "response": {
62328	//     "$ref": "Operation"
62329	//   },
62330	//   "scopes": [
62331	//     "https://www.googleapis.com/auth/cloud-platform",
62332	//     "https://www.googleapis.com/auth/compute"
62333	//   ]
62334	// }
62335
62336}
62337
62338// method id "compute.globalNetworkEndpointGroups.delete":
62339
62340type GlobalNetworkEndpointGroupsDeleteCall struct {
62341	s                    *Service
62342	project              string
62343	networkEndpointGroup string
62344	urlParams_           gensupport.URLParams
62345	ctx_                 context.Context
62346	header_              http.Header
62347}
62348
62349// Delete: Deletes the specified network endpoint group.Note that the
62350// NEG cannot be deleted if there are backend services referencing it.
62351func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
62352	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62353	c.project = project
62354	c.networkEndpointGroup = networkEndpointGroup
62355	return c
62356}
62357
62358// RequestId sets the optional parameter "requestId": An optional
62359// request ID to identify requests. Specify a unique request ID so that
62360// if you must retry your request, the server will know to ignore the
62361// request if it has already been completed.
62362//
62363// For example, consider a situation where you make an initial request
62364// and the request times out. If you make the request again with the
62365// same request ID, the server can check if original operation with the
62366// same request ID was received, and if so, will ignore the second
62367// request. This prevents clients from accidentally creating duplicate
62368// commitments.
62369//
62370// The request ID must be a valid UUID with the exception that zero UUID
62371// is not supported (00000000-0000-0000-0000-000000000000).
62372func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
62373	c.urlParams_.Set("requestId", requestId)
62374	return c
62375}
62376
62377// Fields allows partial responses to be retrieved. See
62378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62379// for more information.
62380func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
62381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62382	return c
62383}
62384
62385// Context sets the context to be used in this call's Do method. Any
62386// pending HTTP request will be aborted if the provided context is
62387// canceled.
62388func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
62389	c.ctx_ = ctx
62390	return c
62391}
62392
62393// Header returns an http.Header that can be modified by the caller to
62394// add HTTP headers to the request.
62395func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
62396	if c.header_ == nil {
62397		c.header_ = make(http.Header)
62398	}
62399	return c.header_
62400}
62401
62402func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
62403	reqHeaders := make(http.Header)
62404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62405	for k, v := range c.header_ {
62406		reqHeaders[k] = v
62407	}
62408	reqHeaders.Set("User-Agent", c.s.userAgent())
62409	var body io.Reader = nil
62410	c.urlParams_.Set("alt", alt)
62411	c.urlParams_.Set("prettyPrint", "false")
62412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
62413	urls += "?" + c.urlParams_.Encode()
62414	req, err := http.NewRequest("DELETE", urls, body)
62415	if err != nil {
62416		return nil, err
62417	}
62418	req.Header = reqHeaders
62419	googleapi.Expand(req.URL, map[string]string{
62420		"project":              c.project,
62421		"networkEndpointGroup": c.networkEndpointGroup,
62422	})
62423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62424}
62425
62426// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
62427// Exactly one of *Operation or error will be non-nil. Any non-2xx
62428// status code is an error. Response headers are in either
62429// *Operation.ServerResponse.Header or (if a response was returned at
62430// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62431// to check whether the returned error was because
62432// http.StatusNotModified was returned.
62433func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62434	gensupport.SetOptions(c.urlParams_, opts...)
62435	res, err := c.doRequest("json")
62436	if res != nil && res.StatusCode == http.StatusNotModified {
62437		if res.Body != nil {
62438			res.Body.Close()
62439		}
62440		return nil, &googleapi.Error{
62441			Code:   res.StatusCode,
62442			Header: res.Header,
62443		}
62444	}
62445	if err != nil {
62446		return nil, err
62447	}
62448	defer googleapi.CloseBody(res)
62449	if err := googleapi.CheckResponse(res); err != nil {
62450		return nil, err
62451	}
62452	ret := &Operation{
62453		ServerResponse: googleapi.ServerResponse{
62454			Header:         res.Header,
62455			HTTPStatusCode: res.StatusCode,
62456		},
62457	}
62458	target := &ret
62459	if err := gensupport.DecodeResponse(target, res); err != nil {
62460		return nil, err
62461	}
62462	return ret, nil
62463	// {
62464	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
62465	//   "httpMethod": "DELETE",
62466	//   "id": "compute.globalNetworkEndpointGroups.delete",
62467	//   "parameterOrder": [
62468	//     "project",
62469	//     "networkEndpointGroup"
62470	//   ],
62471	//   "parameters": {
62472	//     "networkEndpointGroup": {
62473	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
62474	//       "location": "path",
62475	//       "required": true,
62476	//       "type": "string"
62477	//     },
62478	//     "project": {
62479	//       "description": "Project ID for this request.",
62480	//       "location": "path",
62481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62482	//       "required": true,
62483	//       "type": "string"
62484	//     },
62485	//     "requestId": {
62486	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62487	//       "location": "query",
62488	//       "type": "string"
62489	//     }
62490	//   },
62491	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
62492	//   "response": {
62493	//     "$ref": "Operation"
62494	//   },
62495	//   "scopes": [
62496	//     "https://www.googleapis.com/auth/cloud-platform",
62497	//     "https://www.googleapis.com/auth/compute"
62498	//   ]
62499	// }
62500
62501}
62502
62503// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
62504
62505type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
62506	s                                                 *Service
62507	project                                           string
62508	networkEndpointGroup                              string
62509	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
62510	urlParams_                                        gensupport.URLParams
62511	ctx_                                              context.Context
62512	header_                                           http.Header
62513}
62514
62515// DetachNetworkEndpoints: Detach the network endpoint from the
62516// specified network endpoint group.
62517func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
62518	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62519	c.project = project
62520	c.networkEndpointGroup = networkEndpointGroup
62521	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
62522	return c
62523}
62524
62525// RequestId sets the optional parameter "requestId": An optional
62526// request ID to identify requests. Specify a unique request ID so that
62527// if you must retry your request, the server will know to ignore the
62528// request if it has already been completed.
62529//
62530// For example, consider a situation where you make an initial request
62531// and the request times out. If you make the request again with the
62532// same request ID, the server can check if original operation with the
62533// same request ID was received, and if so, will ignore the second
62534// request. This prevents clients from accidentally creating duplicate
62535// commitments.
62536//
62537// The request ID must be a valid UUID with the exception that zero UUID
62538// is not supported (00000000-0000-0000-0000-000000000000).
62539func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
62540	c.urlParams_.Set("requestId", requestId)
62541	return c
62542}
62543
62544// Fields allows partial responses to be retrieved. See
62545// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62546// for more information.
62547func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
62548	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62549	return c
62550}
62551
62552// Context sets the context to be used in this call's Do method. Any
62553// pending HTTP request will be aborted if the provided context is
62554// canceled.
62555func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
62556	c.ctx_ = ctx
62557	return c
62558}
62559
62560// Header returns an http.Header that can be modified by the caller to
62561// add HTTP headers to the request.
62562func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
62563	if c.header_ == nil {
62564		c.header_ = make(http.Header)
62565	}
62566	return c.header_
62567}
62568
62569func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
62570	reqHeaders := make(http.Header)
62571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62572	for k, v := range c.header_ {
62573		reqHeaders[k] = v
62574	}
62575	reqHeaders.Set("User-Agent", c.s.userAgent())
62576	var body io.Reader = nil
62577	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
62578	if err != nil {
62579		return nil, err
62580	}
62581	reqHeaders.Set("Content-Type", "application/json")
62582	c.urlParams_.Set("alt", alt)
62583	c.urlParams_.Set("prettyPrint", "false")
62584	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
62585	urls += "?" + c.urlParams_.Encode()
62586	req, err := http.NewRequest("POST", urls, body)
62587	if err != nil {
62588		return nil, err
62589	}
62590	req.Header = reqHeaders
62591	googleapi.Expand(req.URL, map[string]string{
62592		"project":              c.project,
62593		"networkEndpointGroup": c.networkEndpointGroup,
62594	})
62595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62596}
62597
62598// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
62599// Exactly one of *Operation or error will be non-nil. Any non-2xx
62600// status code is an error. Response headers are in either
62601// *Operation.ServerResponse.Header or (if a response was returned at
62602// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62603// to check whether the returned error was because
62604// http.StatusNotModified was returned.
62605func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62606	gensupport.SetOptions(c.urlParams_, opts...)
62607	res, err := c.doRequest("json")
62608	if res != nil && res.StatusCode == http.StatusNotModified {
62609		if res.Body != nil {
62610			res.Body.Close()
62611		}
62612		return nil, &googleapi.Error{
62613			Code:   res.StatusCode,
62614			Header: res.Header,
62615		}
62616	}
62617	if err != nil {
62618		return nil, err
62619	}
62620	defer googleapi.CloseBody(res)
62621	if err := googleapi.CheckResponse(res); err != nil {
62622		return nil, err
62623	}
62624	ret := &Operation{
62625		ServerResponse: googleapi.ServerResponse{
62626			Header:         res.Header,
62627			HTTPStatusCode: res.StatusCode,
62628		},
62629	}
62630	target := &ret
62631	if err := gensupport.DecodeResponse(target, res); err != nil {
62632		return nil, err
62633	}
62634	return ret, nil
62635	// {
62636	//   "description": "Detach the network endpoint from the specified network endpoint group.",
62637	//   "httpMethod": "POST",
62638	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
62639	//   "parameterOrder": [
62640	//     "project",
62641	//     "networkEndpointGroup"
62642	//   ],
62643	//   "parameters": {
62644	//     "networkEndpointGroup": {
62645	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
62646	//       "location": "path",
62647	//       "required": true,
62648	//       "type": "string"
62649	//     },
62650	//     "project": {
62651	//       "description": "Project ID for this request.",
62652	//       "location": "path",
62653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62654	//       "required": true,
62655	//       "type": "string"
62656	//     },
62657	//     "requestId": {
62658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62659	//       "location": "query",
62660	//       "type": "string"
62661	//     }
62662	//   },
62663	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
62664	//   "request": {
62665	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
62666	//   },
62667	//   "response": {
62668	//     "$ref": "Operation"
62669	//   },
62670	//   "scopes": [
62671	//     "https://www.googleapis.com/auth/cloud-platform",
62672	//     "https://www.googleapis.com/auth/compute"
62673	//   ]
62674	// }
62675
62676}
62677
62678// method id "compute.globalNetworkEndpointGroups.get":
62679
62680type GlobalNetworkEndpointGroupsGetCall struct {
62681	s                    *Service
62682	project              string
62683	networkEndpointGroup string
62684	urlParams_           gensupport.URLParams
62685	ifNoneMatch_         string
62686	ctx_                 context.Context
62687	header_              http.Header
62688}
62689
62690// Get: Returns the specified network endpoint group. Gets a list of
62691// available network endpoint groups by making a list() request.
62692func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
62693	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62694	c.project = project
62695	c.networkEndpointGroup = networkEndpointGroup
62696	return c
62697}
62698
62699// Fields allows partial responses to be retrieved. See
62700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62701// for more information.
62702func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
62703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62704	return c
62705}
62706
62707// IfNoneMatch sets the optional parameter which makes the operation
62708// fail if the object's ETag matches the given value. This is useful for
62709// getting updates only after the object has changed since the last
62710// request. Use googleapi.IsNotModified to check whether the response
62711// error from Do is the result of In-None-Match.
62712func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
62713	c.ifNoneMatch_ = entityTag
62714	return c
62715}
62716
62717// Context sets the context to be used in this call's Do method. Any
62718// pending HTTP request will be aborted if the provided context is
62719// canceled.
62720func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
62721	c.ctx_ = ctx
62722	return c
62723}
62724
62725// Header returns an http.Header that can be modified by the caller to
62726// add HTTP headers to the request.
62727func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
62728	if c.header_ == nil {
62729		c.header_ = make(http.Header)
62730	}
62731	return c.header_
62732}
62733
62734func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
62735	reqHeaders := make(http.Header)
62736	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62737	for k, v := range c.header_ {
62738		reqHeaders[k] = v
62739	}
62740	reqHeaders.Set("User-Agent", c.s.userAgent())
62741	if c.ifNoneMatch_ != "" {
62742		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62743	}
62744	var body io.Reader = nil
62745	c.urlParams_.Set("alt", alt)
62746	c.urlParams_.Set("prettyPrint", "false")
62747	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
62748	urls += "?" + c.urlParams_.Encode()
62749	req, err := http.NewRequest("GET", urls, body)
62750	if err != nil {
62751		return nil, err
62752	}
62753	req.Header = reqHeaders
62754	googleapi.Expand(req.URL, map[string]string{
62755		"project":              c.project,
62756		"networkEndpointGroup": c.networkEndpointGroup,
62757	})
62758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62759}
62760
62761// Do executes the "compute.globalNetworkEndpointGroups.get" call.
62762// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
62763// non-2xx status code is an error. Response headers are in either
62764// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
62765// returned at all) in error.(*googleapi.Error).Header. Use
62766// googleapi.IsNotModified to check whether the returned error was
62767// because http.StatusNotModified was returned.
62768func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
62769	gensupport.SetOptions(c.urlParams_, opts...)
62770	res, err := c.doRequest("json")
62771	if res != nil && res.StatusCode == http.StatusNotModified {
62772		if res.Body != nil {
62773			res.Body.Close()
62774		}
62775		return nil, &googleapi.Error{
62776			Code:   res.StatusCode,
62777			Header: res.Header,
62778		}
62779	}
62780	if err != nil {
62781		return nil, err
62782	}
62783	defer googleapi.CloseBody(res)
62784	if err := googleapi.CheckResponse(res); err != nil {
62785		return nil, err
62786	}
62787	ret := &NetworkEndpointGroup{
62788		ServerResponse: googleapi.ServerResponse{
62789			Header:         res.Header,
62790			HTTPStatusCode: res.StatusCode,
62791		},
62792	}
62793	target := &ret
62794	if err := gensupport.DecodeResponse(target, res); err != nil {
62795		return nil, err
62796	}
62797	return ret, nil
62798	// {
62799	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
62800	//   "httpMethod": "GET",
62801	//   "id": "compute.globalNetworkEndpointGroups.get",
62802	//   "parameterOrder": [
62803	//     "project",
62804	//     "networkEndpointGroup"
62805	//   ],
62806	//   "parameters": {
62807	//     "networkEndpointGroup": {
62808	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
62809	//       "location": "path",
62810	//       "required": true,
62811	//       "type": "string"
62812	//     },
62813	//     "project": {
62814	//       "description": "Project ID for this request.",
62815	//       "location": "path",
62816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62817	//       "required": true,
62818	//       "type": "string"
62819	//     }
62820	//   },
62821	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
62822	//   "response": {
62823	//     "$ref": "NetworkEndpointGroup"
62824	//   },
62825	//   "scopes": [
62826	//     "https://www.googleapis.com/auth/cloud-platform",
62827	//     "https://www.googleapis.com/auth/compute",
62828	//     "https://www.googleapis.com/auth/compute.readonly"
62829	//   ]
62830	// }
62831
62832}
62833
62834// method id "compute.globalNetworkEndpointGroups.insert":
62835
62836type GlobalNetworkEndpointGroupsInsertCall struct {
62837	s                    *Service
62838	project              string
62839	networkendpointgroup *NetworkEndpointGroup
62840	urlParams_           gensupport.URLParams
62841	ctx_                 context.Context
62842	header_              http.Header
62843}
62844
62845// Insert: Creates a network endpoint group in the specified project
62846// using the parameters that are included in the request.
62847func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
62848	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62849	c.project = project
62850	c.networkendpointgroup = networkendpointgroup
62851	return c
62852}
62853
62854// RequestId sets the optional parameter "requestId": An optional
62855// request ID to identify requests. Specify a unique request ID so that
62856// if you must retry your request, the server will know to ignore the
62857// request if it has already been completed.
62858//
62859// For example, consider a situation where you make an initial request
62860// and the request times out. If you make the request again with the
62861// same request ID, the server can check if original operation with the
62862// same request ID was received, and if so, will ignore the second
62863// request. This prevents clients from accidentally creating duplicate
62864// commitments.
62865//
62866// The request ID must be a valid UUID with the exception that zero UUID
62867// is not supported (00000000-0000-0000-0000-000000000000).
62868func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
62869	c.urlParams_.Set("requestId", requestId)
62870	return c
62871}
62872
62873// Fields allows partial responses to be retrieved. See
62874// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62875// for more information.
62876func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
62877	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62878	return c
62879}
62880
62881// Context sets the context to be used in this call's Do method. Any
62882// pending HTTP request will be aborted if the provided context is
62883// canceled.
62884func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
62885	c.ctx_ = ctx
62886	return c
62887}
62888
62889// Header returns an http.Header that can be modified by the caller to
62890// add HTTP headers to the request.
62891func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
62892	if c.header_ == nil {
62893		c.header_ = make(http.Header)
62894	}
62895	return c.header_
62896}
62897
62898func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
62899	reqHeaders := make(http.Header)
62900	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
62901	for k, v := range c.header_ {
62902		reqHeaders[k] = v
62903	}
62904	reqHeaders.Set("User-Agent", c.s.userAgent())
62905	var body io.Reader = nil
62906	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
62907	if err != nil {
62908		return nil, err
62909	}
62910	reqHeaders.Set("Content-Type", "application/json")
62911	c.urlParams_.Set("alt", alt)
62912	c.urlParams_.Set("prettyPrint", "false")
62913	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
62914	urls += "?" + c.urlParams_.Encode()
62915	req, err := http.NewRequest("POST", urls, body)
62916	if err != nil {
62917		return nil, err
62918	}
62919	req.Header = reqHeaders
62920	googleapi.Expand(req.URL, map[string]string{
62921		"project": c.project,
62922	})
62923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62924}
62925
62926// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
62927// Exactly one of *Operation or error will be non-nil. Any non-2xx
62928// status code is an error. Response headers are in either
62929// *Operation.ServerResponse.Header or (if a response was returned at
62930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62931// to check whether the returned error was because
62932// http.StatusNotModified was returned.
62933func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62934	gensupport.SetOptions(c.urlParams_, opts...)
62935	res, err := c.doRequest("json")
62936	if res != nil && res.StatusCode == http.StatusNotModified {
62937		if res.Body != nil {
62938			res.Body.Close()
62939		}
62940		return nil, &googleapi.Error{
62941			Code:   res.StatusCode,
62942			Header: res.Header,
62943		}
62944	}
62945	if err != nil {
62946		return nil, err
62947	}
62948	defer googleapi.CloseBody(res)
62949	if err := googleapi.CheckResponse(res); err != nil {
62950		return nil, err
62951	}
62952	ret := &Operation{
62953		ServerResponse: googleapi.ServerResponse{
62954			Header:         res.Header,
62955			HTTPStatusCode: res.StatusCode,
62956		},
62957	}
62958	target := &ret
62959	if err := gensupport.DecodeResponse(target, res); err != nil {
62960		return nil, err
62961	}
62962	return ret, nil
62963	// {
62964	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
62965	//   "httpMethod": "POST",
62966	//   "id": "compute.globalNetworkEndpointGroups.insert",
62967	//   "parameterOrder": [
62968	//     "project"
62969	//   ],
62970	//   "parameters": {
62971	//     "project": {
62972	//       "description": "Project ID for this request.",
62973	//       "location": "path",
62974	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62975	//       "required": true,
62976	//       "type": "string"
62977	//     },
62978	//     "requestId": {
62979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62980	//       "location": "query",
62981	//       "type": "string"
62982	//     }
62983	//   },
62984	//   "path": "{project}/global/networkEndpointGroups",
62985	//   "request": {
62986	//     "$ref": "NetworkEndpointGroup"
62987	//   },
62988	//   "response": {
62989	//     "$ref": "Operation"
62990	//   },
62991	//   "scopes": [
62992	//     "https://www.googleapis.com/auth/cloud-platform",
62993	//     "https://www.googleapis.com/auth/compute"
62994	//   ]
62995	// }
62996
62997}
62998
62999// method id "compute.globalNetworkEndpointGroups.list":
63000
63001type GlobalNetworkEndpointGroupsListCall struct {
63002	s            *Service
63003	project      string
63004	urlParams_   gensupport.URLParams
63005	ifNoneMatch_ string
63006	ctx_         context.Context
63007	header_      http.Header
63008}
63009
63010// List: Retrieves the list of network endpoint groups that are located
63011// in the specified project.
63012func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
63013	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63014	c.project = project
63015	return c
63016}
63017
63018// Filter sets the optional parameter "filter": A filter expression that
63019// filters resources listed in the response. The expression must specify
63020// the field name, a comparison operator, and the value that you want to
63021// use for filtering. The value must be a string, a number, or a
63022// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63023// `<`.
63024//
63025// For example, if you are filtering Compute Engine instances, you can
63026// exclude instances named `example-instance` by specifying `name !=
63027// example-instance`.
63028//
63029// You can also filter nested fields. For example, you could specify
63030// `scheduling.automaticRestart = false` to include instances only if
63031// they are not scheduled for automatic restarts. You can use filtering
63032// on nested fields to filter based on resource labels.
63033//
63034// To filter on multiple expressions, provide each separate expression
63035// within parentheses. For example: ``` (scheduling.automaticRestart =
63036// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63037// is an `AND` expression. However, you can include `AND` and `OR`
63038// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63039// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63040// (scheduling.automaticRestart = true) ```
63041func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
63042	c.urlParams_.Set("filter", filter)
63043	return c
63044}
63045
63046// MaxResults sets the optional parameter "maxResults": The maximum
63047// number of results per page that should be returned. If the number of
63048// available results is larger than `maxResults`, Compute Engine returns
63049// a `nextPageToken` that can be used to get the next page of results in
63050// subsequent list requests. Acceptable values are `0` to `500`,
63051// inclusive. (Default: `500`)
63052func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
63053	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63054	return c
63055}
63056
63057// OrderBy sets the optional parameter "orderBy": Sorts list results by
63058// a certain order. By default, results are returned in alphanumerical
63059// order based on the resource name.
63060//
63061// You can also sort results in descending order based on the creation
63062// timestamp using `orderBy="creationTimestamp desc". This sorts
63063// results based on the `creationTimestamp` field in reverse
63064// chronological order (newest result first). Use this to sort resources
63065// like operations so that the newest operation is returned
63066// first.
63067//
63068// Currently, only sorting by `name` or `creationTimestamp desc` is
63069// supported.
63070func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
63071	c.urlParams_.Set("orderBy", orderBy)
63072	return c
63073}
63074
63075// PageToken sets the optional parameter "pageToken": Specifies a page
63076// token to use. Set `pageToken` to the `nextPageToken` returned by a
63077// previous list request to get the next page of results.
63078func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
63079	c.urlParams_.Set("pageToken", pageToken)
63080	return c
63081}
63082
63083// Fields allows partial responses to be retrieved. See
63084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63085// for more information.
63086func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
63087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63088	return c
63089}
63090
63091// IfNoneMatch sets the optional parameter which makes the operation
63092// fail if the object's ETag matches the given value. This is useful for
63093// getting updates only after the object has changed since the last
63094// request. Use googleapi.IsNotModified to check whether the response
63095// error from Do is the result of In-None-Match.
63096func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
63097	c.ifNoneMatch_ = entityTag
63098	return c
63099}
63100
63101// Context sets the context to be used in this call's Do method. Any
63102// pending HTTP request will be aborted if the provided context is
63103// canceled.
63104func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
63105	c.ctx_ = ctx
63106	return c
63107}
63108
63109// Header returns an http.Header that can be modified by the caller to
63110// add HTTP headers to the request.
63111func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
63112	if c.header_ == nil {
63113		c.header_ = make(http.Header)
63114	}
63115	return c.header_
63116}
63117
63118func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
63119	reqHeaders := make(http.Header)
63120	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63121	for k, v := range c.header_ {
63122		reqHeaders[k] = v
63123	}
63124	reqHeaders.Set("User-Agent", c.s.userAgent())
63125	if c.ifNoneMatch_ != "" {
63126		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63127	}
63128	var body io.Reader = nil
63129	c.urlParams_.Set("alt", alt)
63130	c.urlParams_.Set("prettyPrint", "false")
63131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
63132	urls += "?" + c.urlParams_.Encode()
63133	req, err := http.NewRequest("GET", urls, body)
63134	if err != nil {
63135		return nil, err
63136	}
63137	req.Header = reqHeaders
63138	googleapi.Expand(req.URL, map[string]string{
63139		"project": c.project,
63140	})
63141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63142}
63143
63144// Do executes the "compute.globalNetworkEndpointGroups.list" call.
63145// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
63146// Any non-2xx status code is an error. Response headers are in either
63147// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
63148// returned at all) in error.(*googleapi.Error).Header. Use
63149// googleapi.IsNotModified to check whether the returned error was
63150// because http.StatusNotModified was returned.
63151func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
63152	gensupport.SetOptions(c.urlParams_, opts...)
63153	res, err := c.doRequest("json")
63154	if res != nil && res.StatusCode == http.StatusNotModified {
63155		if res.Body != nil {
63156			res.Body.Close()
63157		}
63158		return nil, &googleapi.Error{
63159			Code:   res.StatusCode,
63160			Header: res.Header,
63161		}
63162	}
63163	if err != nil {
63164		return nil, err
63165	}
63166	defer googleapi.CloseBody(res)
63167	if err := googleapi.CheckResponse(res); err != nil {
63168		return nil, err
63169	}
63170	ret := &NetworkEndpointGroupList{
63171		ServerResponse: googleapi.ServerResponse{
63172			Header:         res.Header,
63173			HTTPStatusCode: res.StatusCode,
63174		},
63175	}
63176	target := &ret
63177	if err := gensupport.DecodeResponse(target, res); err != nil {
63178		return nil, err
63179	}
63180	return ret, nil
63181	// {
63182	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
63183	//   "httpMethod": "GET",
63184	//   "id": "compute.globalNetworkEndpointGroups.list",
63185	//   "parameterOrder": [
63186	//     "project"
63187	//   ],
63188	//   "parameters": {
63189	//     "filter": {
63190	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
63191	//       "location": "query",
63192	//       "type": "string"
63193	//     },
63194	//     "maxResults": {
63195	//       "default": "500",
63196	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
63197	//       "format": "uint32",
63198	//       "location": "query",
63199	//       "minimum": "0",
63200	//       "type": "integer"
63201	//     },
63202	//     "orderBy": {
63203	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
63204	//       "location": "query",
63205	//       "type": "string"
63206	//     },
63207	//     "pageToken": {
63208	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
63209	//       "location": "query",
63210	//       "type": "string"
63211	//     },
63212	//     "project": {
63213	//       "description": "Project ID for this request.",
63214	//       "location": "path",
63215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63216	//       "required": true,
63217	//       "type": "string"
63218	//     }
63219	//   },
63220	//   "path": "{project}/global/networkEndpointGroups",
63221	//   "response": {
63222	//     "$ref": "NetworkEndpointGroupList"
63223	//   },
63224	//   "scopes": [
63225	//     "https://www.googleapis.com/auth/cloud-platform",
63226	//     "https://www.googleapis.com/auth/compute",
63227	//     "https://www.googleapis.com/auth/compute.readonly"
63228	//   ]
63229	// }
63230
63231}
63232
63233// Pages invokes f for each page of results.
63234// A non-nil error returned from f will halt the iteration.
63235// The provided context supersedes any context provided to the Context method.
63236func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
63237	c.ctx_ = ctx
63238	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63239	for {
63240		x, err := c.Do()
63241		if err != nil {
63242			return err
63243		}
63244		if err := f(x); err != nil {
63245			return err
63246		}
63247		if x.NextPageToken == "" {
63248			return nil
63249		}
63250		c.PageToken(x.NextPageToken)
63251	}
63252}
63253
63254// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
63255
63256type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
63257	s                    *Service
63258	project              string
63259	networkEndpointGroup string
63260	urlParams_           gensupport.URLParams
63261	ctx_                 context.Context
63262	header_              http.Header
63263}
63264
63265// ListNetworkEndpoints: Lists the network endpoints in the specified
63266// network endpoint group.
63267func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
63268	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63269	c.project = project
63270	c.networkEndpointGroup = networkEndpointGroup
63271	return c
63272}
63273
63274// Filter sets the optional parameter "filter": A filter expression that
63275// filters resources listed in the response. The expression must specify
63276// the field name, a comparison operator, and the value that you want to
63277// use for filtering. The value must be a string, a number, or a
63278// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63279// `<`.
63280//
63281// For example, if you are filtering Compute Engine instances, you can
63282// exclude instances named `example-instance` by specifying `name !=
63283// example-instance`.
63284//
63285// You can also filter nested fields. For example, you could specify
63286// `scheduling.automaticRestart = false` to include instances only if
63287// they are not scheduled for automatic restarts. You can use filtering
63288// on nested fields to filter based on resource labels.
63289//
63290// To filter on multiple expressions, provide each separate expression
63291// within parentheses. For example: ``` (scheduling.automaticRestart =
63292// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63293// is an `AND` expression. However, you can include `AND` and `OR`
63294// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63295// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63296// (scheduling.automaticRestart = true) ```
63297func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
63298	c.urlParams_.Set("filter", filter)
63299	return c
63300}
63301
63302// MaxResults sets the optional parameter "maxResults": The maximum
63303// number of results per page that should be returned. If the number of
63304// available results is larger than `maxResults`, Compute Engine returns
63305// a `nextPageToken` that can be used to get the next page of results in
63306// subsequent list requests. Acceptable values are `0` to `500`,
63307// inclusive. (Default: `500`)
63308func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
63309	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63310	return c
63311}
63312
63313// OrderBy sets the optional parameter "orderBy": Sorts list results by
63314// a certain order. By default, results are returned in alphanumerical
63315// order based on the resource name.
63316//
63317// You can also sort results in descending order based on the creation
63318// timestamp using `orderBy="creationTimestamp desc". This sorts
63319// results based on the `creationTimestamp` field in reverse
63320// chronological order (newest result first). Use this to sort resources
63321// like operations so that the newest operation is returned
63322// first.
63323//
63324// Currently, only sorting by `name` or `creationTimestamp desc` is
63325// supported.
63326func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
63327	c.urlParams_.Set("orderBy", orderBy)
63328	return c
63329}
63330
63331// PageToken sets the optional parameter "pageToken": Specifies a page
63332// token to use. Set `pageToken` to the `nextPageToken` returned by a
63333// previous list request to get the next page of results.
63334func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
63335	c.urlParams_.Set("pageToken", pageToken)
63336	return c
63337}
63338
63339// Fields allows partial responses to be retrieved. See
63340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63341// for more information.
63342func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
63343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63344	return c
63345}
63346
63347// Context sets the context to be used in this call's Do method. Any
63348// pending HTTP request will be aborted if the provided context is
63349// canceled.
63350func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
63351	c.ctx_ = ctx
63352	return c
63353}
63354
63355// Header returns an http.Header that can be modified by the caller to
63356// add HTTP headers to the request.
63357func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
63358	if c.header_ == nil {
63359		c.header_ = make(http.Header)
63360	}
63361	return c.header_
63362}
63363
63364func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
63365	reqHeaders := make(http.Header)
63366	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63367	for k, v := range c.header_ {
63368		reqHeaders[k] = v
63369	}
63370	reqHeaders.Set("User-Agent", c.s.userAgent())
63371	var body io.Reader = nil
63372	c.urlParams_.Set("alt", alt)
63373	c.urlParams_.Set("prettyPrint", "false")
63374	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
63375	urls += "?" + c.urlParams_.Encode()
63376	req, err := http.NewRequest("POST", urls, body)
63377	if err != nil {
63378		return nil, err
63379	}
63380	req.Header = reqHeaders
63381	googleapi.Expand(req.URL, map[string]string{
63382		"project":              c.project,
63383		"networkEndpointGroup": c.networkEndpointGroup,
63384	})
63385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63386}
63387
63388// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
63389// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
63390// will be non-nil. Any non-2xx status code is an error. Response
63391// headers are in either
63392// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
63393// (if a response was returned at all) in
63394// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
63395// whether the returned error was because http.StatusNotModified was
63396// returned.
63397func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
63398	gensupport.SetOptions(c.urlParams_, opts...)
63399	res, err := c.doRequest("json")
63400	if res != nil && res.StatusCode == http.StatusNotModified {
63401		if res.Body != nil {
63402			res.Body.Close()
63403		}
63404		return nil, &googleapi.Error{
63405			Code:   res.StatusCode,
63406			Header: res.Header,
63407		}
63408	}
63409	if err != nil {
63410		return nil, err
63411	}
63412	defer googleapi.CloseBody(res)
63413	if err := googleapi.CheckResponse(res); err != nil {
63414		return nil, err
63415	}
63416	ret := &NetworkEndpointGroupsListNetworkEndpoints{
63417		ServerResponse: googleapi.ServerResponse{
63418			Header:         res.Header,
63419			HTTPStatusCode: res.StatusCode,
63420		},
63421	}
63422	target := &ret
63423	if err := gensupport.DecodeResponse(target, res); err != nil {
63424		return nil, err
63425	}
63426	return ret, nil
63427	// {
63428	//   "description": "Lists the network endpoints in the specified network endpoint group.",
63429	//   "httpMethod": "POST",
63430	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
63431	//   "parameterOrder": [
63432	//     "project",
63433	//     "networkEndpointGroup"
63434	//   ],
63435	//   "parameters": {
63436	//     "filter": {
63437	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
63438	//       "location": "query",
63439	//       "type": "string"
63440	//     },
63441	//     "maxResults": {
63442	//       "default": "500",
63443	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
63444	//       "format": "uint32",
63445	//       "location": "query",
63446	//       "minimum": "0",
63447	//       "type": "integer"
63448	//     },
63449	//     "networkEndpointGroup": {
63450	//       "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.",
63451	//       "location": "path",
63452	//       "required": true,
63453	//       "type": "string"
63454	//     },
63455	//     "orderBy": {
63456	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
63457	//       "location": "query",
63458	//       "type": "string"
63459	//     },
63460	//     "pageToken": {
63461	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
63462	//       "location": "query",
63463	//       "type": "string"
63464	//     },
63465	//     "project": {
63466	//       "description": "Project ID for this request.",
63467	//       "location": "path",
63468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63469	//       "required": true,
63470	//       "type": "string"
63471	//     }
63472	//   },
63473	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
63474	//   "response": {
63475	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
63476	//   },
63477	//   "scopes": [
63478	//     "https://www.googleapis.com/auth/cloud-platform",
63479	//     "https://www.googleapis.com/auth/compute",
63480	//     "https://www.googleapis.com/auth/compute.readonly"
63481	//   ]
63482	// }
63483
63484}
63485
63486// Pages invokes f for each page of results.
63487// A non-nil error returned from f will halt the iteration.
63488// The provided context supersedes any context provided to the Context method.
63489func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
63490	c.ctx_ = ctx
63491	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63492	for {
63493		x, err := c.Do()
63494		if err != nil {
63495			return err
63496		}
63497		if err := f(x); err != nil {
63498			return err
63499		}
63500		if x.NextPageToken == "" {
63501			return nil
63502		}
63503		c.PageToken(x.NextPageToken)
63504	}
63505}
63506
63507// method id "compute.globalOperations.aggregatedList":
63508
63509type GlobalOperationsAggregatedListCall struct {
63510	s            *Service
63511	project      string
63512	urlParams_   gensupport.URLParams
63513	ifNoneMatch_ string
63514	ctx_         context.Context
63515	header_      http.Header
63516}
63517
63518// AggregatedList: Retrieves an aggregated list of all operations.
63519// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
63520func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
63521	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63522	c.project = project
63523	return c
63524}
63525
63526// Filter sets the optional parameter "filter": A filter expression that
63527// filters resources listed in the response. The expression must specify
63528// the field name, a comparison operator, and the value that you want to
63529// use for filtering. The value must be a string, a number, or a
63530// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63531// `<`.
63532//
63533// For example, if you are filtering Compute Engine instances, you can
63534// exclude instances named `example-instance` by specifying `name !=
63535// example-instance`.
63536//
63537// You can also filter nested fields. For example, you could specify
63538// `scheduling.automaticRestart = false` to include instances only if
63539// they are not scheduled for automatic restarts. You can use filtering
63540// on nested fields to filter based on resource labels.
63541//
63542// To filter on multiple expressions, provide each separate expression
63543// within parentheses. For example: ``` (scheduling.automaticRestart =
63544// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63545// is an `AND` expression. However, you can include `AND` and `OR`
63546// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63547// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63548// (scheduling.automaticRestart = true) ```
63549func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
63550	c.urlParams_.Set("filter", filter)
63551	return c
63552}
63553
63554// IncludeAllScopes sets the optional parameter "includeAllScopes":
63555// Indicates whether every visible scope for each scope type (zone,
63556// region, global) should be included in the response. For new resource
63557// types added after this field, the flag has no effect as new resource
63558// types will always include every visible scope for each scope type in
63559// response. For resource types which predate this field, if this flag
63560// is omitted or false, only scopes of the scope types where the
63561// resource type is expected to be found will be included.
63562func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
63563	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
63564	return c
63565}
63566
63567// MaxResults sets the optional parameter "maxResults": The maximum
63568// number of results per page that should be returned. If the number of
63569// available results is larger than `maxResults`, Compute Engine returns
63570// a `nextPageToken` that can be used to get the next page of results in
63571// subsequent list requests. Acceptable values are `0` to `500`,
63572// inclusive. (Default: `500`)
63573func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
63574	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63575	return c
63576}
63577
63578// OrderBy sets the optional parameter "orderBy": Sorts list results by
63579// a certain order. By default, results are returned in alphanumerical
63580// order based on the resource name.
63581//
63582// You can also sort results in descending order based on the creation
63583// timestamp using `orderBy="creationTimestamp desc". This sorts
63584// results based on the `creationTimestamp` field in reverse
63585// chronological order (newest result first). Use this to sort resources
63586// like operations so that the newest operation is returned
63587// first.
63588//
63589// Currently, only sorting by `name` or `creationTimestamp desc` is
63590// supported.
63591func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
63592	c.urlParams_.Set("orderBy", orderBy)
63593	return c
63594}
63595
63596// PageToken sets the optional parameter "pageToken": Specifies a page
63597// token to use. Set `pageToken` to the `nextPageToken` returned by a
63598// previous list request to get the next page of results.
63599func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
63600	c.urlParams_.Set("pageToken", pageToken)
63601	return c
63602}
63603
63604// Fields allows partial responses to be retrieved. See
63605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63606// for more information.
63607func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
63608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63609	return c
63610}
63611
63612// IfNoneMatch sets the optional parameter which makes the operation
63613// fail if the object's ETag matches the given value. This is useful for
63614// getting updates only after the object has changed since the last
63615// request. Use googleapi.IsNotModified to check whether the response
63616// error from Do is the result of In-None-Match.
63617func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
63618	c.ifNoneMatch_ = entityTag
63619	return c
63620}
63621
63622// Context sets the context to be used in this call's Do method. Any
63623// pending HTTP request will be aborted if the provided context is
63624// canceled.
63625func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
63626	c.ctx_ = ctx
63627	return c
63628}
63629
63630// Header returns an http.Header that can be modified by the caller to
63631// add HTTP headers to the request.
63632func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
63633	if c.header_ == nil {
63634		c.header_ = make(http.Header)
63635	}
63636	return c.header_
63637}
63638
63639func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
63640	reqHeaders := make(http.Header)
63641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63642	for k, v := range c.header_ {
63643		reqHeaders[k] = v
63644	}
63645	reqHeaders.Set("User-Agent", c.s.userAgent())
63646	if c.ifNoneMatch_ != "" {
63647		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63648	}
63649	var body io.Reader = nil
63650	c.urlParams_.Set("alt", alt)
63651	c.urlParams_.Set("prettyPrint", "false")
63652	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
63653	urls += "?" + c.urlParams_.Encode()
63654	req, err := http.NewRequest("GET", urls, body)
63655	if err != nil {
63656		return nil, err
63657	}
63658	req.Header = reqHeaders
63659	googleapi.Expand(req.URL, map[string]string{
63660		"project": c.project,
63661	})
63662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63663}
63664
63665// Do executes the "compute.globalOperations.aggregatedList" call.
63666// Exactly one of *OperationAggregatedList or error will be non-nil. Any
63667// non-2xx status code is an error. Response headers are in either
63668// *OperationAggregatedList.ServerResponse.Header or (if a response was
63669// returned at all) in error.(*googleapi.Error).Header. Use
63670// googleapi.IsNotModified to check whether the returned error was
63671// because http.StatusNotModified was returned.
63672func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
63673	gensupport.SetOptions(c.urlParams_, opts...)
63674	res, err := c.doRequest("json")
63675	if res != nil && res.StatusCode == http.StatusNotModified {
63676		if res.Body != nil {
63677			res.Body.Close()
63678		}
63679		return nil, &googleapi.Error{
63680			Code:   res.StatusCode,
63681			Header: res.Header,
63682		}
63683	}
63684	if err != nil {
63685		return nil, err
63686	}
63687	defer googleapi.CloseBody(res)
63688	if err := googleapi.CheckResponse(res); err != nil {
63689		return nil, err
63690	}
63691	ret := &OperationAggregatedList{
63692		ServerResponse: googleapi.ServerResponse{
63693			Header:         res.Header,
63694			HTTPStatusCode: res.StatusCode,
63695		},
63696	}
63697	target := &ret
63698	if err := gensupport.DecodeResponse(target, res); err != nil {
63699		return nil, err
63700	}
63701	return ret, nil
63702	// {
63703	//   "description": "Retrieves an aggregated list of all operations.",
63704	//   "httpMethod": "GET",
63705	//   "id": "compute.globalOperations.aggregatedList",
63706	//   "parameterOrder": [
63707	//     "project"
63708	//   ],
63709	//   "parameters": {
63710	//     "filter": {
63711	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
63712	//       "location": "query",
63713	//       "type": "string"
63714	//     },
63715	//     "includeAllScopes": {
63716	//       "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.",
63717	//       "location": "query",
63718	//       "type": "boolean"
63719	//     },
63720	//     "maxResults": {
63721	//       "default": "500",
63722	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
63723	//       "format": "uint32",
63724	//       "location": "query",
63725	//       "minimum": "0",
63726	//       "type": "integer"
63727	//     },
63728	//     "orderBy": {
63729	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
63730	//       "location": "query",
63731	//       "type": "string"
63732	//     },
63733	//     "pageToken": {
63734	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
63735	//       "location": "query",
63736	//       "type": "string"
63737	//     },
63738	//     "project": {
63739	//       "description": "Project ID for this request.",
63740	//       "location": "path",
63741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63742	//       "required": true,
63743	//       "type": "string"
63744	//     }
63745	//   },
63746	//   "path": "{project}/aggregated/operations",
63747	//   "response": {
63748	//     "$ref": "OperationAggregatedList"
63749	//   },
63750	//   "scopes": [
63751	//     "https://www.googleapis.com/auth/cloud-platform",
63752	//     "https://www.googleapis.com/auth/compute",
63753	//     "https://www.googleapis.com/auth/compute.readonly"
63754	//   ]
63755	// }
63756
63757}
63758
63759// Pages invokes f for each page of results.
63760// A non-nil error returned from f will halt the iteration.
63761// The provided context supersedes any context provided to the Context method.
63762func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
63763	c.ctx_ = ctx
63764	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63765	for {
63766		x, err := c.Do()
63767		if err != nil {
63768			return err
63769		}
63770		if err := f(x); err != nil {
63771			return err
63772		}
63773		if x.NextPageToken == "" {
63774			return nil
63775		}
63776		c.PageToken(x.NextPageToken)
63777	}
63778}
63779
63780// method id "compute.globalOperations.delete":
63781
63782type GlobalOperationsDeleteCall struct {
63783	s          *Service
63784	project    string
63785	operation  string
63786	urlParams_ gensupport.URLParams
63787	ctx_       context.Context
63788	header_    http.Header
63789}
63790
63791// Delete: Deletes the specified Operations resource.
63792// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
63793func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
63794	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63795	c.project = project
63796	c.operation = operation
63797	return c
63798}
63799
63800// Fields allows partial responses to be retrieved. See
63801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63802// for more information.
63803func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
63804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63805	return c
63806}
63807
63808// Context sets the context to be used in this call's Do method. Any
63809// pending HTTP request will be aborted if the provided context is
63810// canceled.
63811func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
63812	c.ctx_ = ctx
63813	return c
63814}
63815
63816// Header returns an http.Header that can be modified by the caller to
63817// add HTTP headers to the request.
63818func (c *GlobalOperationsDeleteCall) Header() http.Header {
63819	if c.header_ == nil {
63820		c.header_ = make(http.Header)
63821	}
63822	return c.header_
63823}
63824
63825func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
63826	reqHeaders := make(http.Header)
63827	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63828	for k, v := range c.header_ {
63829		reqHeaders[k] = v
63830	}
63831	reqHeaders.Set("User-Agent", c.s.userAgent())
63832	var body io.Reader = nil
63833	c.urlParams_.Set("alt", alt)
63834	c.urlParams_.Set("prettyPrint", "false")
63835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
63836	urls += "?" + c.urlParams_.Encode()
63837	req, err := http.NewRequest("DELETE", urls, body)
63838	if err != nil {
63839		return nil, err
63840	}
63841	req.Header = reqHeaders
63842	googleapi.Expand(req.URL, map[string]string{
63843		"project":   c.project,
63844		"operation": c.operation,
63845	})
63846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63847}
63848
63849// Do executes the "compute.globalOperations.delete" call.
63850func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
63851	gensupport.SetOptions(c.urlParams_, opts...)
63852	res, err := c.doRequest("json")
63853	if err != nil {
63854		return err
63855	}
63856	defer googleapi.CloseBody(res)
63857	if err := googleapi.CheckResponse(res); err != nil {
63858		return err
63859	}
63860	return nil
63861	// {
63862	//   "description": "Deletes the specified Operations resource.",
63863	//   "httpMethod": "DELETE",
63864	//   "id": "compute.globalOperations.delete",
63865	//   "parameterOrder": [
63866	//     "project",
63867	//     "operation"
63868	//   ],
63869	//   "parameters": {
63870	//     "operation": {
63871	//       "description": "Name of the Operations resource to delete.",
63872	//       "location": "path",
63873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63874	//       "required": true,
63875	//       "type": "string"
63876	//     },
63877	//     "project": {
63878	//       "description": "Project ID for this request.",
63879	//       "location": "path",
63880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63881	//       "required": true,
63882	//       "type": "string"
63883	//     }
63884	//   },
63885	//   "path": "{project}/global/operations/{operation}",
63886	//   "scopes": [
63887	//     "https://www.googleapis.com/auth/cloud-platform",
63888	//     "https://www.googleapis.com/auth/compute"
63889	//   ]
63890	// }
63891
63892}
63893
63894// method id "compute.globalOperations.get":
63895
63896type GlobalOperationsGetCall struct {
63897	s            *Service
63898	project      string
63899	operation    string
63900	urlParams_   gensupport.URLParams
63901	ifNoneMatch_ string
63902	ctx_         context.Context
63903	header_      http.Header
63904}
63905
63906// Get: Retrieves the specified Operations resource. Gets a list of
63907// operations by making a `list()` request.
63908// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
63909func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
63910	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63911	c.project = project
63912	c.operation = operation
63913	return c
63914}
63915
63916// Fields allows partial responses to be retrieved. See
63917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63918// for more information.
63919func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
63920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63921	return c
63922}
63923
63924// IfNoneMatch sets the optional parameter which makes the operation
63925// fail if the object's ETag matches the given value. This is useful for
63926// getting updates only after the object has changed since the last
63927// request. Use googleapi.IsNotModified to check whether the response
63928// error from Do is the result of In-None-Match.
63929func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
63930	c.ifNoneMatch_ = entityTag
63931	return c
63932}
63933
63934// Context sets the context to be used in this call's Do method. Any
63935// pending HTTP request will be aborted if the provided context is
63936// canceled.
63937func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
63938	c.ctx_ = ctx
63939	return c
63940}
63941
63942// Header returns an http.Header that can be modified by the caller to
63943// add HTTP headers to the request.
63944func (c *GlobalOperationsGetCall) Header() http.Header {
63945	if c.header_ == nil {
63946		c.header_ = make(http.Header)
63947	}
63948	return c.header_
63949}
63950
63951func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
63952	reqHeaders := make(http.Header)
63953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
63954	for k, v := range c.header_ {
63955		reqHeaders[k] = v
63956	}
63957	reqHeaders.Set("User-Agent", c.s.userAgent())
63958	if c.ifNoneMatch_ != "" {
63959		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63960	}
63961	var body io.Reader = nil
63962	c.urlParams_.Set("alt", alt)
63963	c.urlParams_.Set("prettyPrint", "false")
63964	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
63965	urls += "?" + c.urlParams_.Encode()
63966	req, err := http.NewRequest("GET", urls, body)
63967	if err != nil {
63968		return nil, err
63969	}
63970	req.Header = reqHeaders
63971	googleapi.Expand(req.URL, map[string]string{
63972		"project":   c.project,
63973		"operation": c.operation,
63974	})
63975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63976}
63977
63978// Do executes the "compute.globalOperations.get" call.
63979// Exactly one of *Operation or error will be non-nil. Any non-2xx
63980// status code is an error. Response headers are in either
63981// *Operation.ServerResponse.Header or (if a response was returned at
63982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63983// to check whether the returned error was because
63984// http.StatusNotModified was returned.
63985func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63986	gensupport.SetOptions(c.urlParams_, opts...)
63987	res, err := c.doRequest("json")
63988	if res != nil && res.StatusCode == http.StatusNotModified {
63989		if res.Body != nil {
63990			res.Body.Close()
63991		}
63992		return nil, &googleapi.Error{
63993			Code:   res.StatusCode,
63994			Header: res.Header,
63995		}
63996	}
63997	if err != nil {
63998		return nil, err
63999	}
64000	defer googleapi.CloseBody(res)
64001	if err := googleapi.CheckResponse(res); err != nil {
64002		return nil, err
64003	}
64004	ret := &Operation{
64005		ServerResponse: googleapi.ServerResponse{
64006			Header:         res.Header,
64007			HTTPStatusCode: res.StatusCode,
64008		},
64009	}
64010	target := &ret
64011	if err := gensupport.DecodeResponse(target, res); err != nil {
64012		return nil, err
64013	}
64014	return ret, nil
64015	// {
64016	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
64017	//   "httpMethod": "GET",
64018	//   "id": "compute.globalOperations.get",
64019	//   "parameterOrder": [
64020	//     "project",
64021	//     "operation"
64022	//   ],
64023	//   "parameters": {
64024	//     "operation": {
64025	//       "description": "Name of the Operations resource to return.",
64026	//       "location": "path",
64027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64028	//       "required": true,
64029	//       "type": "string"
64030	//     },
64031	//     "project": {
64032	//       "description": "Project ID for this request.",
64033	//       "location": "path",
64034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64035	//       "required": true,
64036	//       "type": "string"
64037	//     }
64038	//   },
64039	//   "path": "{project}/global/operations/{operation}",
64040	//   "response": {
64041	//     "$ref": "Operation"
64042	//   },
64043	//   "scopes": [
64044	//     "https://www.googleapis.com/auth/cloud-platform",
64045	//     "https://www.googleapis.com/auth/compute",
64046	//     "https://www.googleapis.com/auth/compute.readonly"
64047	//   ]
64048	// }
64049
64050}
64051
64052// method id "compute.globalOperations.list":
64053
64054type GlobalOperationsListCall struct {
64055	s            *Service
64056	project      string
64057	urlParams_   gensupport.URLParams
64058	ifNoneMatch_ string
64059	ctx_         context.Context
64060	header_      http.Header
64061}
64062
64063// List: Retrieves a list of Operation resources contained within the
64064// specified project.
64065// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
64066func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
64067	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64068	c.project = project
64069	return c
64070}
64071
64072// Filter sets the optional parameter "filter": A filter expression that
64073// filters resources listed in the response. The expression must specify
64074// the field name, a comparison operator, and the value that you want to
64075// use for filtering. The value must be a string, a number, or a
64076// boolean. The comparison operator must be either `=`, `!=`, `>`, or
64077// `<`.
64078//
64079// For example, if you are filtering Compute Engine instances, you can
64080// exclude instances named `example-instance` by specifying `name !=
64081// example-instance`.
64082//
64083// You can also filter nested fields. For example, you could specify
64084// `scheduling.automaticRestart = false` to include instances only if
64085// they are not scheduled for automatic restarts. You can use filtering
64086// on nested fields to filter based on resource labels.
64087//
64088// To filter on multiple expressions, provide each separate expression
64089// within parentheses. For example: ``` (scheduling.automaticRestart =
64090// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
64091// is an `AND` expression. However, you can include `AND` and `OR`
64092// expressions explicitly. For example: ``` (cpuPlatform = "Intel
64093// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
64094// (scheduling.automaticRestart = true) ```
64095func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
64096	c.urlParams_.Set("filter", filter)
64097	return c
64098}
64099
64100// MaxResults sets the optional parameter "maxResults": The maximum
64101// number of results per page that should be returned. If the number of
64102// available results is larger than `maxResults`, Compute Engine returns
64103// a `nextPageToken` that can be used to get the next page of results in
64104// subsequent list requests. Acceptable values are `0` to `500`,
64105// inclusive. (Default: `500`)
64106func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
64107	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64108	return c
64109}
64110
64111// OrderBy sets the optional parameter "orderBy": Sorts list results by
64112// a certain order. By default, results are returned in alphanumerical
64113// order based on the resource name.
64114//
64115// You can also sort results in descending order based on the creation
64116// timestamp using `orderBy="creationTimestamp desc". This sorts
64117// results based on the `creationTimestamp` field in reverse
64118// chronological order (newest result first). Use this to sort resources
64119// like operations so that the newest operation is returned
64120// first.
64121//
64122// Currently, only sorting by `name` or `creationTimestamp desc` is
64123// supported.
64124func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
64125	c.urlParams_.Set("orderBy", orderBy)
64126	return c
64127}
64128
64129// PageToken sets the optional parameter "pageToken": Specifies a page
64130// token to use. Set `pageToken` to the `nextPageToken` returned by a
64131// previous list request to get the next page of results.
64132func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
64133	c.urlParams_.Set("pageToken", pageToken)
64134	return c
64135}
64136
64137// Fields allows partial responses to be retrieved. See
64138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64139// for more information.
64140func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
64141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64142	return c
64143}
64144
64145// IfNoneMatch sets the optional parameter which makes the operation
64146// fail if the object's ETag matches the given value. This is useful for
64147// getting updates only after the object has changed since the last
64148// request. Use googleapi.IsNotModified to check whether the response
64149// error from Do is the result of In-None-Match.
64150func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
64151	c.ifNoneMatch_ = entityTag
64152	return c
64153}
64154
64155// Context sets the context to be used in this call's Do method. Any
64156// pending HTTP request will be aborted if the provided context is
64157// canceled.
64158func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
64159	c.ctx_ = ctx
64160	return c
64161}
64162
64163// Header returns an http.Header that can be modified by the caller to
64164// add HTTP headers to the request.
64165func (c *GlobalOperationsListCall) Header() http.Header {
64166	if c.header_ == nil {
64167		c.header_ = make(http.Header)
64168	}
64169	return c.header_
64170}
64171
64172func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
64173	reqHeaders := make(http.Header)
64174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64175	for k, v := range c.header_ {
64176		reqHeaders[k] = v
64177	}
64178	reqHeaders.Set("User-Agent", c.s.userAgent())
64179	if c.ifNoneMatch_ != "" {
64180		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64181	}
64182	var body io.Reader = nil
64183	c.urlParams_.Set("alt", alt)
64184	c.urlParams_.Set("prettyPrint", "false")
64185	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
64186	urls += "?" + c.urlParams_.Encode()
64187	req, err := http.NewRequest("GET", urls, body)
64188	if err != nil {
64189		return nil, err
64190	}
64191	req.Header = reqHeaders
64192	googleapi.Expand(req.URL, map[string]string{
64193		"project": c.project,
64194	})
64195	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64196}
64197
64198// Do executes the "compute.globalOperations.list" call.
64199// Exactly one of *OperationList or error will be non-nil. Any non-2xx
64200// status code is an error. Response headers are in either
64201// *OperationList.ServerResponse.Header or (if a response was returned
64202// at all) in error.(*googleapi.Error).Header. Use
64203// googleapi.IsNotModified to check whether the returned error was
64204// because http.StatusNotModified was returned.
64205func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
64206	gensupport.SetOptions(c.urlParams_, opts...)
64207	res, err := c.doRequest("json")
64208	if res != nil && res.StatusCode == http.StatusNotModified {
64209		if res.Body != nil {
64210			res.Body.Close()
64211		}
64212		return nil, &googleapi.Error{
64213			Code:   res.StatusCode,
64214			Header: res.Header,
64215		}
64216	}
64217	if err != nil {
64218		return nil, err
64219	}
64220	defer googleapi.CloseBody(res)
64221	if err := googleapi.CheckResponse(res); err != nil {
64222		return nil, err
64223	}
64224	ret := &OperationList{
64225		ServerResponse: googleapi.ServerResponse{
64226			Header:         res.Header,
64227			HTTPStatusCode: res.StatusCode,
64228		},
64229	}
64230	target := &ret
64231	if err := gensupport.DecodeResponse(target, res); err != nil {
64232		return nil, err
64233	}
64234	return ret, nil
64235	// {
64236	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
64237	//   "httpMethod": "GET",
64238	//   "id": "compute.globalOperations.list",
64239	//   "parameterOrder": [
64240	//     "project"
64241	//   ],
64242	//   "parameters": {
64243	//     "filter": {
64244	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
64245	//       "location": "query",
64246	//       "type": "string"
64247	//     },
64248	//     "maxResults": {
64249	//       "default": "500",
64250	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64251	//       "format": "uint32",
64252	//       "location": "query",
64253	//       "minimum": "0",
64254	//       "type": "integer"
64255	//     },
64256	//     "orderBy": {
64257	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
64258	//       "location": "query",
64259	//       "type": "string"
64260	//     },
64261	//     "pageToken": {
64262	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64263	//       "location": "query",
64264	//       "type": "string"
64265	//     },
64266	//     "project": {
64267	//       "description": "Project ID for this request.",
64268	//       "location": "path",
64269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64270	//       "required": true,
64271	//       "type": "string"
64272	//     }
64273	//   },
64274	//   "path": "{project}/global/operations",
64275	//   "response": {
64276	//     "$ref": "OperationList"
64277	//   },
64278	//   "scopes": [
64279	//     "https://www.googleapis.com/auth/cloud-platform",
64280	//     "https://www.googleapis.com/auth/compute",
64281	//     "https://www.googleapis.com/auth/compute.readonly"
64282	//   ]
64283	// }
64284
64285}
64286
64287// Pages invokes f for each page of results.
64288// A non-nil error returned from f will halt the iteration.
64289// The provided context supersedes any context provided to the Context method.
64290func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
64291	c.ctx_ = ctx
64292	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64293	for {
64294		x, err := c.Do()
64295		if err != nil {
64296			return err
64297		}
64298		if err := f(x); err != nil {
64299			return err
64300		}
64301		if x.NextPageToken == "" {
64302			return nil
64303		}
64304		c.PageToken(x.NextPageToken)
64305	}
64306}
64307
64308// method id "compute.globalOperations.wait":
64309
64310type GlobalOperationsWaitCall struct {
64311	s          *Service
64312	project    string
64313	operation  string
64314	urlParams_ gensupport.URLParams
64315	ctx_       context.Context
64316	header_    http.Header
64317}
64318
64319// Wait: Waits for the specified Operation resource to return as `DONE`
64320// or for the request to approach the 2 minute deadline, and retrieves
64321// the specified Operation resource. This method differs from the `GET`
64322// method in that it waits for no more than the default deadline (2
64323// minutes) and then returns the current state of the operation, which
64324// might be `DONE` or still in progress.
64325//
64326// This method is called on a best-effort basis. Specifically:
64327// - In uncommon cases, when the server is overloaded, the request might
64328// return before the default deadline is reached, or might return after
64329// zero seconds.
64330// - If the default deadline is reached, there is no guarantee that the
64331// operation is actually done when the method returns. Be prepared to
64332// retry if the operation is not `DONE`.
64333func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
64334	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64335	c.project = project
64336	c.operation = operation
64337	return c
64338}
64339
64340// Fields allows partial responses to be retrieved. See
64341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64342// for more information.
64343func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
64344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64345	return c
64346}
64347
64348// Context sets the context to be used in this call's Do method. Any
64349// pending HTTP request will be aborted if the provided context is
64350// canceled.
64351func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
64352	c.ctx_ = ctx
64353	return c
64354}
64355
64356// Header returns an http.Header that can be modified by the caller to
64357// add HTTP headers to the request.
64358func (c *GlobalOperationsWaitCall) Header() http.Header {
64359	if c.header_ == nil {
64360		c.header_ = make(http.Header)
64361	}
64362	return c.header_
64363}
64364
64365func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
64366	reqHeaders := make(http.Header)
64367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64368	for k, v := range c.header_ {
64369		reqHeaders[k] = v
64370	}
64371	reqHeaders.Set("User-Agent", c.s.userAgent())
64372	var body io.Reader = nil
64373	c.urlParams_.Set("alt", alt)
64374	c.urlParams_.Set("prettyPrint", "false")
64375	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}/wait")
64376	urls += "?" + c.urlParams_.Encode()
64377	req, err := http.NewRequest("POST", urls, body)
64378	if err != nil {
64379		return nil, err
64380	}
64381	req.Header = reqHeaders
64382	googleapi.Expand(req.URL, map[string]string{
64383		"project":   c.project,
64384		"operation": c.operation,
64385	})
64386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64387}
64388
64389// Do executes the "compute.globalOperations.wait" call.
64390// Exactly one of *Operation or error will be non-nil. Any non-2xx
64391// status code is an error. Response headers are in either
64392// *Operation.ServerResponse.Header or (if a response was returned at
64393// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64394// to check whether the returned error was because
64395// http.StatusNotModified was returned.
64396func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64397	gensupport.SetOptions(c.urlParams_, opts...)
64398	res, err := c.doRequest("json")
64399	if res != nil && res.StatusCode == http.StatusNotModified {
64400		if res.Body != nil {
64401			res.Body.Close()
64402		}
64403		return nil, &googleapi.Error{
64404			Code:   res.StatusCode,
64405			Header: res.Header,
64406		}
64407	}
64408	if err != nil {
64409		return nil, err
64410	}
64411	defer googleapi.CloseBody(res)
64412	if err := googleapi.CheckResponse(res); err != nil {
64413		return nil, err
64414	}
64415	ret := &Operation{
64416		ServerResponse: googleapi.ServerResponse{
64417			Header:         res.Header,
64418			HTTPStatusCode: res.StatusCode,
64419		},
64420	}
64421	target := &ret
64422	if err := gensupport.DecodeResponse(target, res); err != nil {
64423		return nil, err
64424	}
64425	return ret, nil
64426	// {
64427	//   "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`.",
64428	//   "httpMethod": "POST",
64429	//   "id": "compute.globalOperations.wait",
64430	//   "parameterOrder": [
64431	//     "project",
64432	//     "operation"
64433	//   ],
64434	//   "parameters": {
64435	//     "operation": {
64436	//       "description": "Name of the Operations resource to return.",
64437	//       "location": "path",
64438	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64439	//       "required": true,
64440	//       "type": "string"
64441	//     },
64442	//     "project": {
64443	//       "description": "Project ID for this request.",
64444	//       "location": "path",
64445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64446	//       "required": true,
64447	//       "type": "string"
64448	//     }
64449	//   },
64450	//   "path": "{project}/global/operations/{operation}/wait",
64451	//   "response": {
64452	//     "$ref": "Operation"
64453	//   },
64454	//   "scopes": [
64455	//     "https://www.googleapis.com/auth/cloud-platform",
64456	//     "https://www.googleapis.com/auth/compute",
64457	//     "https://www.googleapis.com/auth/compute.readonly"
64458	//   ]
64459	// }
64460
64461}
64462
64463// method id "compute.globalOrganizationOperations.delete":
64464
64465type GlobalOrganizationOperationsDeleteCall struct {
64466	s          *Service
64467	operation  string
64468	urlParams_ gensupport.URLParams
64469	ctx_       context.Context
64470	header_    http.Header
64471}
64472
64473// Delete: Deletes the specified Operations resource.
64474func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
64475	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64476	c.operation = operation
64477	return c
64478}
64479
64480// ParentId sets the optional parameter "parentId": Parent ID for this
64481// request.
64482func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
64483	c.urlParams_.Set("parentId", parentId)
64484	return c
64485}
64486
64487// Fields allows partial responses to be retrieved. See
64488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64489// for more information.
64490func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
64491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64492	return c
64493}
64494
64495// Context sets the context to be used in this call's Do method. Any
64496// pending HTTP request will be aborted if the provided context is
64497// canceled.
64498func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
64499	c.ctx_ = ctx
64500	return c
64501}
64502
64503// Header returns an http.Header that can be modified by the caller to
64504// add HTTP headers to the request.
64505func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
64506	if c.header_ == nil {
64507		c.header_ = make(http.Header)
64508	}
64509	return c.header_
64510}
64511
64512func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
64513	reqHeaders := make(http.Header)
64514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64515	for k, v := range c.header_ {
64516		reqHeaders[k] = v
64517	}
64518	reqHeaders.Set("User-Agent", c.s.userAgent())
64519	var body io.Reader = nil
64520	c.urlParams_.Set("alt", alt)
64521	c.urlParams_.Set("prettyPrint", "false")
64522	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
64523	urls += "?" + c.urlParams_.Encode()
64524	req, err := http.NewRequest("DELETE", urls, body)
64525	if err != nil {
64526		return nil, err
64527	}
64528	req.Header = reqHeaders
64529	googleapi.Expand(req.URL, map[string]string{
64530		"operation": c.operation,
64531	})
64532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64533}
64534
64535// Do executes the "compute.globalOrganizationOperations.delete" call.
64536func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
64537	gensupport.SetOptions(c.urlParams_, opts...)
64538	res, err := c.doRequest("json")
64539	if err != nil {
64540		return err
64541	}
64542	defer googleapi.CloseBody(res)
64543	if err := googleapi.CheckResponse(res); err != nil {
64544		return err
64545	}
64546	return nil
64547	// {
64548	//   "description": "Deletes the specified Operations resource.",
64549	//   "httpMethod": "DELETE",
64550	//   "id": "compute.globalOrganizationOperations.delete",
64551	//   "parameterOrder": [
64552	//     "operation"
64553	//   ],
64554	//   "parameters": {
64555	//     "operation": {
64556	//       "description": "Name of the Operations resource to delete.",
64557	//       "location": "path",
64558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64559	//       "required": true,
64560	//       "type": "string"
64561	//     },
64562	//     "parentId": {
64563	//       "description": "Parent ID for this request.",
64564	//       "location": "query",
64565	//       "type": "string"
64566	//     }
64567	//   },
64568	//   "path": "locations/global/operations/{operation}",
64569	//   "scopes": [
64570	//     "https://www.googleapis.com/auth/cloud-platform",
64571	//     "https://www.googleapis.com/auth/compute"
64572	//   ]
64573	// }
64574
64575}
64576
64577// method id "compute.globalOrganizationOperations.get":
64578
64579type GlobalOrganizationOperationsGetCall struct {
64580	s            *Service
64581	operation    string
64582	urlParams_   gensupport.URLParams
64583	ifNoneMatch_ string
64584	ctx_         context.Context
64585	header_      http.Header
64586}
64587
64588// Get: Retrieves the specified Operations resource. Gets a list of
64589// operations by making a `list()` request.
64590func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
64591	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64592	c.operation = operation
64593	return c
64594}
64595
64596// ParentId sets the optional parameter "parentId": Parent ID for this
64597// request.
64598func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
64599	c.urlParams_.Set("parentId", parentId)
64600	return c
64601}
64602
64603// Fields allows partial responses to be retrieved. See
64604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64605// for more information.
64606func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
64607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64608	return c
64609}
64610
64611// IfNoneMatch sets the optional parameter which makes the operation
64612// fail if the object's ETag matches the given value. This is useful for
64613// getting updates only after the object has changed since the last
64614// request. Use googleapi.IsNotModified to check whether the response
64615// error from Do is the result of In-None-Match.
64616func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
64617	c.ifNoneMatch_ = entityTag
64618	return c
64619}
64620
64621// Context sets the context to be used in this call's Do method. Any
64622// pending HTTP request will be aborted if the provided context is
64623// canceled.
64624func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
64625	c.ctx_ = ctx
64626	return c
64627}
64628
64629// Header returns an http.Header that can be modified by the caller to
64630// add HTTP headers to the request.
64631func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
64632	if c.header_ == nil {
64633		c.header_ = make(http.Header)
64634	}
64635	return c.header_
64636}
64637
64638func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
64639	reqHeaders := make(http.Header)
64640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64641	for k, v := range c.header_ {
64642		reqHeaders[k] = v
64643	}
64644	reqHeaders.Set("User-Agent", c.s.userAgent())
64645	if c.ifNoneMatch_ != "" {
64646		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64647	}
64648	var body io.Reader = nil
64649	c.urlParams_.Set("alt", alt)
64650	c.urlParams_.Set("prettyPrint", "false")
64651	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
64652	urls += "?" + c.urlParams_.Encode()
64653	req, err := http.NewRequest("GET", urls, body)
64654	if err != nil {
64655		return nil, err
64656	}
64657	req.Header = reqHeaders
64658	googleapi.Expand(req.URL, map[string]string{
64659		"operation": c.operation,
64660	})
64661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64662}
64663
64664// Do executes the "compute.globalOrganizationOperations.get" call.
64665// Exactly one of *Operation or error will be non-nil. Any non-2xx
64666// status code is an error. Response headers are in either
64667// *Operation.ServerResponse.Header or (if a response was returned at
64668// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64669// to check whether the returned error was because
64670// http.StatusNotModified was returned.
64671func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64672	gensupport.SetOptions(c.urlParams_, opts...)
64673	res, err := c.doRequest("json")
64674	if res != nil && res.StatusCode == http.StatusNotModified {
64675		if res.Body != nil {
64676			res.Body.Close()
64677		}
64678		return nil, &googleapi.Error{
64679			Code:   res.StatusCode,
64680			Header: res.Header,
64681		}
64682	}
64683	if err != nil {
64684		return nil, err
64685	}
64686	defer googleapi.CloseBody(res)
64687	if err := googleapi.CheckResponse(res); err != nil {
64688		return nil, err
64689	}
64690	ret := &Operation{
64691		ServerResponse: googleapi.ServerResponse{
64692			Header:         res.Header,
64693			HTTPStatusCode: res.StatusCode,
64694		},
64695	}
64696	target := &ret
64697	if err := gensupport.DecodeResponse(target, res); err != nil {
64698		return nil, err
64699	}
64700	return ret, nil
64701	// {
64702	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
64703	//   "httpMethod": "GET",
64704	//   "id": "compute.globalOrganizationOperations.get",
64705	//   "parameterOrder": [
64706	//     "operation"
64707	//   ],
64708	//   "parameters": {
64709	//     "operation": {
64710	//       "description": "Name of the Operations resource to return.",
64711	//       "location": "path",
64712	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64713	//       "required": true,
64714	//       "type": "string"
64715	//     },
64716	//     "parentId": {
64717	//       "description": "Parent ID for this request.",
64718	//       "location": "query",
64719	//       "type": "string"
64720	//     }
64721	//   },
64722	//   "path": "locations/global/operations/{operation}",
64723	//   "response": {
64724	//     "$ref": "Operation"
64725	//   },
64726	//   "scopes": [
64727	//     "https://www.googleapis.com/auth/cloud-platform",
64728	//     "https://www.googleapis.com/auth/compute",
64729	//     "https://www.googleapis.com/auth/compute.readonly"
64730	//   ]
64731	// }
64732
64733}
64734
64735// method id "compute.globalOrganizationOperations.list":
64736
64737type GlobalOrganizationOperationsListCall struct {
64738	s            *Service
64739	urlParams_   gensupport.URLParams
64740	ifNoneMatch_ string
64741	ctx_         context.Context
64742	header_      http.Header
64743}
64744
64745// List: Retrieves a list of Operation resources contained within the
64746// specified organization.
64747func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
64748	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64749	return c
64750}
64751
64752// Filter sets the optional parameter "filter": A filter expression that
64753// filters resources listed in the response. The expression must specify
64754// the field name, a comparison operator, and the value that you want to
64755// use for filtering. The value must be a string, a number, or a
64756// boolean. The comparison operator must be either `=`, `!=`, `>`, or
64757// `<`.
64758//
64759// For example, if you are filtering Compute Engine instances, you can
64760// exclude instances named `example-instance` by specifying `name !=
64761// example-instance`.
64762//
64763// You can also filter nested fields. For example, you could specify
64764// `scheduling.automaticRestart = false` to include instances only if
64765// they are not scheduled for automatic restarts. You can use filtering
64766// on nested fields to filter based on resource labels.
64767//
64768// To filter on multiple expressions, provide each separate expression
64769// within parentheses. For example: ``` (scheduling.automaticRestart =
64770// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
64771// is an `AND` expression. However, you can include `AND` and `OR`
64772// expressions explicitly. For example: ``` (cpuPlatform = "Intel
64773// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
64774// (scheduling.automaticRestart = true) ```
64775func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
64776	c.urlParams_.Set("filter", filter)
64777	return c
64778}
64779
64780// MaxResults sets the optional parameter "maxResults": The maximum
64781// number of results per page that should be returned. If the number of
64782// available results is larger than `maxResults`, Compute Engine returns
64783// a `nextPageToken` that can be used to get the next page of results in
64784// subsequent list requests. Acceptable values are `0` to `500`,
64785// inclusive. (Default: `500`)
64786func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
64787	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64788	return c
64789}
64790
64791// OrderBy sets the optional parameter "orderBy": Sorts list results by
64792// a certain order. By default, results are returned in alphanumerical
64793// order based on the resource name.
64794//
64795// You can also sort results in descending order based on the creation
64796// timestamp using `orderBy="creationTimestamp desc". This sorts
64797// results based on the `creationTimestamp` field in reverse
64798// chronological order (newest result first). Use this to sort resources
64799// like operations so that the newest operation is returned
64800// first.
64801//
64802// Currently, only sorting by `name` or `creationTimestamp desc` is
64803// supported.
64804func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
64805	c.urlParams_.Set("orderBy", orderBy)
64806	return c
64807}
64808
64809// PageToken sets the optional parameter "pageToken": Specifies a page
64810// token to use. Set `pageToken` to the `nextPageToken` returned by a
64811// previous list request to get the next page of results.
64812func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
64813	c.urlParams_.Set("pageToken", pageToken)
64814	return c
64815}
64816
64817// ParentId sets the optional parameter "parentId": Parent ID for this
64818// request.
64819func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
64820	c.urlParams_.Set("parentId", parentId)
64821	return c
64822}
64823
64824// Fields allows partial responses to be retrieved. See
64825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64826// for more information.
64827func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
64828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64829	return c
64830}
64831
64832// IfNoneMatch sets the optional parameter which makes the operation
64833// fail if the object's ETag matches the given value. This is useful for
64834// getting updates only after the object has changed since the last
64835// request. Use googleapi.IsNotModified to check whether the response
64836// error from Do is the result of In-None-Match.
64837func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
64838	c.ifNoneMatch_ = entityTag
64839	return c
64840}
64841
64842// Context sets the context to be used in this call's Do method. Any
64843// pending HTTP request will be aborted if the provided context is
64844// canceled.
64845func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
64846	c.ctx_ = ctx
64847	return c
64848}
64849
64850// Header returns an http.Header that can be modified by the caller to
64851// add HTTP headers to the request.
64852func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
64853	if c.header_ == nil {
64854		c.header_ = make(http.Header)
64855	}
64856	return c.header_
64857}
64858
64859func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
64860	reqHeaders := make(http.Header)
64861	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
64862	for k, v := range c.header_ {
64863		reqHeaders[k] = v
64864	}
64865	reqHeaders.Set("User-Agent", c.s.userAgent())
64866	if c.ifNoneMatch_ != "" {
64867		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64868	}
64869	var body io.Reader = nil
64870	c.urlParams_.Set("alt", alt)
64871	c.urlParams_.Set("prettyPrint", "false")
64872	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
64873	urls += "?" + c.urlParams_.Encode()
64874	req, err := http.NewRequest("GET", urls, body)
64875	if err != nil {
64876		return nil, err
64877	}
64878	req.Header = reqHeaders
64879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64880}
64881
64882// Do executes the "compute.globalOrganizationOperations.list" call.
64883// Exactly one of *OperationList or error will be non-nil. Any non-2xx
64884// status code is an error. Response headers are in either
64885// *OperationList.ServerResponse.Header or (if a response was returned
64886// at all) in error.(*googleapi.Error).Header. Use
64887// googleapi.IsNotModified to check whether the returned error was
64888// because http.StatusNotModified was returned.
64889func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
64890	gensupport.SetOptions(c.urlParams_, opts...)
64891	res, err := c.doRequest("json")
64892	if res != nil && res.StatusCode == http.StatusNotModified {
64893		if res.Body != nil {
64894			res.Body.Close()
64895		}
64896		return nil, &googleapi.Error{
64897			Code:   res.StatusCode,
64898			Header: res.Header,
64899		}
64900	}
64901	if err != nil {
64902		return nil, err
64903	}
64904	defer googleapi.CloseBody(res)
64905	if err := googleapi.CheckResponse(res); err != nil {
64906		return nil, err
64907	}
64908	ret := &OperationList{
64909		ServerResponse: googleapi.ServerResponse{
64910			Header:         res.Header,
64911			HTTPStatusCode: res.StatusCode,
64912		},
64913	}
64914	target := &ret
64915	if err := gensupport.DecodeResponse(target, res); err != nil {
64916		return nil, err
64917	}
64918	return ret, nil
64919	// {
64920	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
64921	//   "httpMethod": "GET",
64922	//   "id": "compute.globalOrganizationOperations.list",
64923	//   "parameters": {
64924	//     "filter": {
64925	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
64926	//       "location": "query",
64927	//       "type": "string"
64928	//     },
64929	//     "maxResults": {
64930	//       "default": "500",
64931	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64932	//       "format": "uint32",
64933	//       "location": "query",
64934	//       "minimum": "0",
64935	//       "type": "integer"
64936	//     },
64937	//     "orderBy": {
64938	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
64939	//       "location": "query",
64940	//       "type": "string"
64941	//     },
64942	//     "pageToken": {
64943	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64944	//       "location": "query",
64945	//       "type": "string"
64946	//     },
64947	//     "parentId": {
64948	//       "description": "Parent ID for this request.",
64949	//       "location": "query",
64950	//       "type": "string"
64951	//     }
64952	//   },
64953	//   "path": "locations/global/operations",
64954	//   "response": {
64955	//     "$ref": "OperationList"
64956	//   },
64957	//   "scopes": [
64958	//     "https://www.googleapis.com/auth/cloud-platform",
64959	//     "https://www.googleapis.com/auth/compute",
64960	//     "https://www.googleapis.com/auth/compute.readonly"
64961	//   ]
64962	// }
64963
64964}
64965
64966// Pages invokes f for each page of results.
64967// A non-nil error returned from f will halt the iteration.
64968// The provided context supersedes any context provided to the Context method.
64969func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
64970	c.ctx_ = ctx
64971	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64972	for {
64973		x, err := c.Do()
64974		if err != nil {
64975			return err
64976		}
64977		if err := f(x); err != nil {
64978			return err
64979		}
64980		if x.NextPageToken == "" {
64981			return nil
64982		}
64983		c.PageToken(x.NextPageToken)
64984	}
64985}
64986
64987// method id "compute.healthChecks.aggregatedList":
64988
64989type HealthChecksAggregatedListCall struct {
64990	s            *Service
64991	project      string
64992	urlParams_   gensupport.URLParams
64993	ifNoneMatch_ string
64994	ctx_         context.Context
64995	header_      http.Header
64996}
64997
64998// AggregatedList: Retrieves the list of all HealthCheck resources,
64999// regional and global, available to the specified project.
65000func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
65001	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65002	c.project = project
65003	return c
65004}
65005
65006// Filter sets the optional parameter "filter": A filter expression that
65007// filters resources listed in the response. The expression must specify
65008// the field name, a comparison operator, and the value that you want to
65009// use for filtering. The value must be a string, a number, or a
65010// boolean. The comparison operator must be either `=`, `!=`, `>`, or
65011// `<`.
65012//
65013// For example, if you are filtering Compute Engine instances, you can
65014// exclude instances named `example-instance` by specifying `name !=
65015// example-instance`.
65016//
65017// You can also filter nested fields. For example, you could specify
65018// `scheduling.automaticRestart = false` to include instances only if
65019// they are not scheduled for automatic restarts. You can use filtering
65020// on nested fields to filter based on resource labels.
65021//
65022// To filter on multiple expressions, provide each separate expression
65023// within parentheses. For example: ``` (scheduling.automaticRestart =
65024// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
65025// is an `AND` expression. However, you can include `AND` and `OR`
65026// expressions explicitly. For example: ``` (cpuPlatform = "Intel
65027// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
65028// (scheduling.automaticRestart = true) ```
65029func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
65030	c.urlParams_.Set("filter", filter)
65031	return c
65032}
65033
65034// IncludeAllScopes sets the optional parameter "includeAllScopes":
65035// Indicates whether every visible scope for each scope type (zone,
65036// region, global) should be included in the response. For new resource
65037// types added after this field, the flag has no effect as new resource
65038// types will always include every visible scope for each scope type in
65039// response. For resource types which predate this field, if this flag
65040// is omitted or false, only scopes of the scope types where the
65041// resource type is expected to be found will be included.
65042func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
65043	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
65044	return c
65045}
65046
65047// MaxResults sets the optional parameter "maxResults": The maximum
65048// number of results per page that should be returned. If the number of
65049// available results is larger than `maxResults`, Compute Engine returns
65050// a `nextPageToken` that can be used to get the next page of results in
65051// subsequent list requests. Acceptable values are `0` to `500`,
65052// inclusive. (Default: `500`)
65053func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
65054	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65055	return c
65056}
65057
65058// OrderBy sets the optional parameter "orderBy": Sorts list results by
65059// a certain order. By default, results are returned in alphanumerical
65060// order based on the resource name.
65061//
65062// You can also sort results in descending order based on the creation
65063// timestamp using `orderBy="creationTimestamp desc". This sorts
65064// results based on the `creationTimestamp` field in reverse
65065// chronological order (newest result first). Use this to sort resources
65066// like operations so that the newest operation is returned
65067// first.
65068//
65069// Currently, only sorting by `name` or `creationTimestamp desc` is
65070// supported.
65071func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
65072	c.urlParams_.Set("orderBy", orderBy)
65073	return c
65074}
65075
65076// PageToken sets the optional parameter "pageToken": Specifies a page
65077// token to use. Set `pageToken` to the `nextPageToken` returned by a
65078// previous list request to get the next page of results.
65079func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
65080	c.urlParams_.Set("pageToken", pageToken)
65081	return c
65082}
65083
65084// Fields allows partial responses to be retrieved. See
65085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65086// for more information.
65087func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
65088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65089	return c
65090}
65091
65092// IfNoneMatch sets the optional parameter which makes the operation
65093// fail if the object's ETag matches the given value. This is useful for
65094// getting updates only after the object has changed since the last
65095// request. Use googleapi.IsNotModified to check whether the response
65096// error from Do is the result of In-None-Match.
65097func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
65098	c.ifNoneMatch_ = entityTag
65099	return c
65100}
65101
65102// Context sets the context to be used in this call's Do method. Any
65103// pending HTTP request will be aborted if the provided context is
65104// canceled.
65105func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
65106	c.ctx_ = ctx
65107	return c
65108}
65109
65110// Header returns an http.Header that can be modified by the caller to
65111// add HTTP headers to the request.
65112func (c *HealthChecksAggregatedListCall) Header() http.Header {
65113	if c.header_ == nil {
65114		c.header_ = make(http.Header)
65115	}
65116	return c.header_
65117}
65118
65119func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
65120	reqHeaders := make(http.Header)
65121	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65122	for k, v := range c.header_ {
65123		reqHeaders[k] = v
65124	}
65125	reqHeaders.Set("User-Agent", c.s.userAgent())
65126	if c.ifNoneMatch_ != "" {
65127		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65128	}
65129	var body io.Reader = nil
65130	c.urlParams_.Set("alt", alt)
65131	c.urlParams_.Set("prettyPrint", "false")
65132	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/healthChecks")
65133	urls += "?" + c.urlParams_.Encode()
65134	req, err := http.NewRequest("GET", urls, body)
65135	if err != nil {
65136		return nil, err
65137	}
65138	req.Header = reqHeaders
65139	googleapi.Expand(req.URL, map[string]string{
65140		"project": c.project,
65141	})
65142	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65143}
65144
65145// Do executes the "compute.healthChecks.aggregatedList" call.
65146// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
65147// Any non-2xx status code is an error. Response headers are in either
65148// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
65149// was returned at all) in error.(*googleapi.Error).Header. Use
65150// googleapi.IsNotModified to check whether the returned error was
65151// because http.StatusNotModified was returned.
65152func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
65153	gensupport.SetOptions(c.urlParams_, opts...)
65154	res, err := c.doRequest("json")
65155	if res != nil && res.StatusCode == http.StatusNotModified {
65156		if res.Body != nil {
65157			res.Body.Close()
65158		}
65159		return nil, &googleapi.Error{
65160			Code:   res.StatusCode,
65161			Header: res.Header,
65162		}
65163	}
65164	if err != nil {
65165		return nil, err
65166	}
65167	defer googleapi.CloseBody(res)
65168	if err := googleapi.CheckResponse(res); err != nil {
65169		return nil, err
65170	}
65171	ret := &HealthChecksAggregatedList{
65172		ServerResponse: googleapi.ServerResponse{
65173			Header:         res.Header,
65174			HTTPStatusCode: res.StatusCode,
65175		},
65176	}
65177	target := &ret
65178	if err := gensupport.DecodeResponse(target, res); err != nil {
65179		return nil, err
65180	}
65181	return ret, nil
65182	// {
65183	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
65184	//   "httpMethod": "GET",
65185	//   "id": "compute.healthChecks.aggregatedList",
65186	//   "parameterOrder": [
65187	//     "project"
65188	//   ],
65189	//   "parameters": {
65190	//     "filter": {
65191	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
65192	//       "location": "query",
65193	//       "type": "string"
65194	//     },
65195	//     "includeAllScopes": {
65196	//       "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.",
65197	//       "location": "query",
65198	//       "type": "boolean"
65199	//     },
65200	//     "maxResults": {
65201	//       "default": "500",
65202	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
65203	//       "format": "uint32",
65204	//       "location": "query",
65205	//       "minimum": "0",
65206	//       "type": "integer"
65207	//     },
65208	//     "orderBy": {
65209	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
65210	//       "location": "query",
65211	//       "type": "string"
65212	//     },
65213	//     "pageToken": {
65214	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
65215	//       "location": "query",
65216	//       "type": "string"
65217	//     },
65218	//     "project": {
65219	//       "description": "Name of the project scoping this request.",
65220	//       "location": "path",
65221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65222	//       "required": true,
65223	//       "type": "string"
65224	//     }
65225	//   },
65226	//   "path": "{project}/aggregated/healthChecks",
65227	//   "response": {
65228	//     "$ref": "HealthChecksAggregatedList"
65229	//   },
65230	//   "scopes": [
65231	//     "https://www.googleapis.com/auth/cloud-platform",
65232	//     "https://www.googleapis.com/auth/compute",
65233	//     "https://www.googleapis.com/auth/compute.readonly"
65234	//   ]
65235	// }
65236
65237}
65238
65239// Pages invokes f for each page of results.
65240// A non-nil error returned from f will halt the iteration.
65241// The provided context supersedes any context provided to the Context method.
65242func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
65243	c.ctx_ = ctx
65244	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65245	for {
65246		x, err := c.Do()
65247		if err != nil {
65248			return err
65249		}
65250		if err := f(x); err != nil {
65251			return err
65252		}
65253		if x.NextPageToken == "" {
65254			return nil
65255		}
65256		c.PageToken(x.NextPageToken)
65257	}
65258}
65259
65260// method id "compute.healthChecks.delete":
65261
65262type HealthChecksDeleteCall struct {
65263	s           *Service
65264	project     string
65265	healthCheck string
65266	urlParams_  gensupport.URLParams
65267	ctx_        context.Context
65268	header_     http.Header
65269}
65270
65271// Delete: Deletes the specified HealthCheck resource.
65272func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
65273	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65274	c.project = project
65275	c.healthCheck = healthCheck
65276	return c
65277}
65278
65279// RequestId sets the optional parameter "requestId": An optional
65280// request ID to identify requests. Specify a unique request ID so that
65281// if you must retry your request, the server will know to ignore the
65282// request if it has already been completed.
65283//
65284// For example, consider a situation where you make an initial request
65285// and the request times out. If you make the request again with the
65286// same request ID, the server can check if original operation with the
65287// same request ID was received, and if so, will ignore the second
65288// request. This prevents clients from accidentally creating duplicate
65289// commitments.
65290//
65291// The request ID must be a valid UUID with the exception that zero UUID
65292// is not supported (00000000-0000-0000-0000-000000000000).
65293func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
65294	c.urlParams_.Set("requestId", requestId)
65295	return c
65296}
65297
65298// Fields allows partial responses to be retrieved. See
65299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65300// for more information.
65301func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
65302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65303	return c
65304}
65305
65306// Context sets the context to be used in this call's Do method. Any
65307// pending HTTP request will be aborted if the provided context is
65308// canceled.
65309func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
65310	c.ctx_ = ctx
65311	return c
65312}
65313
65314// Header returns an http.Header that can be modified by the caller to
65315// add HTTP headers to the request.
65316func (c *HealthChecksDeleteCall) Header() http.Header {
65317	if c.header_ == nil {
65318		c.header_ = make(http.Header)
65319	}
65320	return c.header_
65321}
65322
65323func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
65324	reqHeaders := make(http.Header)
65325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65326	for k, v := range c.header_ {
65327		reqHeaders[k] = v
65328	}
65329	reqHeaders.Set("User-Agent", c.s.userAgent())
65330	var body io.Reader = nil
65331	c.urlParams_.Set("alt", alt)
65332	c.urlParams_.Set("prettyPrint", "false")
65333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
65334	urls += "?" + c.urlParams_.Encode()
65335	req, err := http.NewRequest("DELETE", urls, body)
65336	if err != nil {
65337		return nil, err
65338	}
65339	req.Header = reqHeaders
65340	googleapi.Expand(req.URL, map[string]string{
65341		"project":     c.project,
65342		"healthCheck": c.healthCheck,
65343	})
65344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65345}
65346
65347// Do executes the "compute.healthChecks.delete" call.
65348// Exactly one of *Operation or error will be non-nil. Any non-2xx
65349// status code is an error. Response headers are in either
65350// *Operation.ServerResponse.Header or (if a response was returned at
65351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65352// to check whether the returned error was because
65353// http.StatusNotModified was returned.
65354func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65355	gensupport.SetOptions(c.urlParams_, opts...)
65356	res, err := c.doRequest("json")
65357	if res != nil && res.StatusCode == http.StatusNotModified {
65358		if res.Body != nil {
65359			res.Body.Close()
65360		}
65361		return nil, &googleapi.Error{
65362			Code:   res.StatusCode,
65363			Header: res.Header,
65364		}
65365	}
65366	if err != nil {
65367		return nil, err
65368	}
65369	defer googleapi.CloseBody(res)
65370	if err := googleapi.CheckResponse(res); err != nil {
65371		return nil, err
65372	}
65373	ret := &Operation{
65374		ServerResponse: googleapi.ServerResponse{
65375			Header:         res.Header,
65376			HTTPStatusCode: res.StatusCode,
65377		},
65378	}
65379	target := &ret
65380	if err := gensupport.DecodeResponse(target, res); err != nil {
65381		return nil, err
65382	}
65383	return ret, nil
65384	// {
65385	//   "description": "Deletes the specified HealthCheck resource.",
65386	//   "httpMethod": "DELETE",
65387	//   "id": "compute.healthChecks.delete",
65388	//   "parameterOrder": [
65389	//     "project",
65390	//     "healthCheck"
65391	//   ],
65392	//   "parameters": {
65393	//     "healthCheck": {
65394	//       "description": "Name of the HealthCheck resource to delete.",
65395	//       "location": "path",
65396	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65397	//       "required": true,
65398	//       "type": "string"
65399	//     },
65400	//     "project": {
65401	//       "description": "Project ID for this request.",
65402	//       "location": "path",
65403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65404	//       "required": true,
65405	//       "type": "string"
65406	//     },
65407	//     "requestId": {
65408	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65409	//       "location": "query",
65410	//       "type": "string"
65411	//     }
65412	//   },
65413	//   "path": "{project}/global/healthChecks/{healthCheck}",
65414	//   "response": {
65415	//     "$ref": "Operation"
65416	//   },
65417	//   "scopes": [
65418	//     "https://www.googleapis.com/auth/cloud-platform",
65419	//     "https://www.googleapis.com/auth/compute"
65420	//   ]
65421	// }
65422
65423}
65424
65425// method id "compute.healthChecks.get":
65426
65427type HealthChecksGetCall struct {
65428	s            *Service
65429	project      string
65430	healthCheck  string
65431	urlParams_   gensupport.URLParams
65432	ifNoneMatch_ string
65433	ctx_         context.Context
65434	header_      http.Header
65435}
65436
65437// Get: Returns the specified HealthCheck resource. Gets a list of
65438// available health checks by making a list() request.
65439func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
65440	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65441	c.project = project
65442	c.healthCheck = healthCheck
65443	return c
65444}
65445
65446// Fields allows partial responses to be retrieved. See
65447// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65448// for more information.
65449func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
65450	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65451	return c
65452}
65453
65454// IfNoneMatch sets the optional parameter which makes the operation
65455// fail if the object's ETag matches the given value. This is useful for
65456// getting updates only after the object has changed since the last
65457// request. Use googleapi.IsNotModified to check whether the response
65458// error from Do is the result of In-None-Match.
65459func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
65460	c.ifNoneMatch_ = entityTag
65461	return c
65462}
65463
65464// Context sets the context to be used in this call's Do method. Any
65465// pending HTTP request will be aborted if the provided context is
65466// canceled.
65467func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
65468	c.ctx_ = ctx
65469	return c
65470}
65471
65472// Header returns an http.Header that can be modified by the caller to
65473// add HTTP headers to the request.
65474func (c *HealthChecksGetCall) Header() http.Header {
65475	if c.header_ == nil {
65476		c.header_ = make(http.Header)
65477	}
65478	return c.header_
65479}
65480
65481func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
65482	reqHeaders := make(http.Header)
65483	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65484	for k, v := range c.header_ {
65485		reqHeaders[k] = v
65486	}
65487	reqHeaders.Set("User-Agent", c.s.userAgent())
65488	if c.ifNoneMatch_ != "" {
65489		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65490	}
65491	var body io.Reader = nil
65492	c.urlParams_.Set("alt", alt)
65493	c.urlParams_.Set("prettyPrint", "false")
65494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
65495	urls += "?" + c.urlParams_.Encode()
65496	req, err := http.NewRequest("GET", urls, body)
65497	if err != nil {
65498		return nil, err
65499	}
65500	req.Header = reqHeaders
65501	googleapi.Expand(req.URL, map[string]string{
65502		"project":     c.project,
65503		"healthCheck": c.healthCheck,
65504	})
65505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65506}
65507
65508// Do executes the "compute.healthChecks.get" call.
65509// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
65510// status code is an error. Response headers are in either
65511// *HealthCheck.ServerResponse.Header or (if a response was returned at
65512// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65513// to check whether the returned error was because
65514// http.StatusNotModified was returned.
65515func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
65516	gensupport.SetOptions(c.urlParams_, opts...)
65517	res, err := c.doRequest("json")
65518	if res != nil && res.StatusCode == http.StatusNotModified {
65519		if res.Body != nil {
65520			res.Body.Close()
65521		}
65522		return nil, &googleapi.Error{
65523			Code:   res.StatusCode,
65524			Header: res.Header,
65525		}
65526	}
65527	if err != nil {
65528		return nil, err
65529	}
65530	defer googleapi.CloseBody(res)
65531	if err := googleapi.CheckResponse(res); err != nil {
65532		return nil, err
65533	}
65534	ret := &HealthCheck{
65535		ServerResponse: googleapi.ServerResponse{
65536			Header:         res.Header,
65537			HTTPStatusCode: res.StatusCode,
65538		},
65539	}
65540	target := &ret
65541	if err := gensupport.DecodeResponse(target, res); err != nil {
65542		return nil, err
65543	}
65544	return ret, nil
65545	// {
65546	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
65547	//   "httpMethod": "GET",
65548	//   "id": "compute.healthChecks.get",
65549	//   "parameterOrder": [
65550	//     "project",
65551	//     "healthCheck"
65552	//   ],
65553	//   "parameters": {
65554	//     "healthCheck": {
65555	//       "description": "Name of the HealthCheck resource to return.",
65556	//       "location": "path",
65557	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65558	//       "required": true,
65559	//       "type": "string"
65560	//     },
65561	//     "project": {
65562	//       "description": "Project ID for this request.",
65563	//       "location": "path",
65564	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65565	//       "required": true,
65566	//       "type": "string"
65567	//     }
65568	//   },
65569	//   "path": "{project}/global/healthChecks/{healthCheck}",
65570	//   "response": {
65571	//     "$ref": "HealthCheck"
65572	//   },
65573	//   "scopes": [
65574	//     "https://www.googleapis.com/auth/cloud-platform",
65575	//     "https://www.googleapis.com/auth/compute",
65576	//     "https://www.googleapis.com/auth/compute.readonly"
65577	//   ]
65578	// }
65579
65580}
65581
65582// method id "compute.healthChecks.insert":
65583
65584type HealthChecksInsertCall struct {
65585	s           *Service
65586	project     string
65587	healthcheck *HealthCheck
65588	urlParams_  gensupport.URLParams
65589	ctx_        context.Context
65590	header_     http.Header
65591}
65592
65593// Insert: Creates a HealthCheck resource in the specified project using
65594// the data included in the request.
65595func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
65596	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65597	c.project = project
65598	c.healthcheck = healthcheck
65599	return c
65600}
65601
65602// RequestId sets the optional parameter "requestId": An optional
65603// request ID to identify requests. Specify a unique request ID so that
65604// if you must retry your request, the server will know to ignore the
65605// request if it has already been completed.
65606//
65607// For example, consider a situation where you make an initial request
65608// and the request times out. If you make the request again with the
65609// same request ID, the server can check if original operation with the
65610// same request ID was received, and if so, will ignore the second
65611// request. This prevents clients from accidentally creating duplicate
65612// commitments.
65613//
65614// The request ID must be a valid UUID with the exception that zero UUID
65615// is not supported (00000000-0000-0000-0000-000000000000).
65616func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
65617	c.urlParams_.Set("requestId", requestId)
65618	return c
65619}
65620
65621// Fields allows partial responses to be retrieved. See
65622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65623// for more information.
65624func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
65625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65626	return c
65627}
65628
65629// Context sets the context to be used in this call's Do method. Any
65630// pending HTTP request will be aborted if the provided context is
65631// canceled.
65632func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
65633	c.ctx_ = ctx
65634	return c
65635}
65636
65637// Header returns an http.Header that can be modified by the caller to
65638// add HTTP headers to the request.
65639func (c *HealthChecksInsertCall) Header() http.Header {
65640	if c.header_ == nil {
65641		c.header_ = make(http.Header)
65642	}
65643	return c.header_
65644}
65645
65646func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
65647	reqHeaders := make(http.Header)
65648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65649	for k, v := range c.header_ {
65650		reqHeaders[k] = v
65651	}
65652	reqHeaders.Set("User-Agent", c.s.userAgent())
65653	var body io.Reader = nil
65654	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
65655	if err != nil {
65656		return nil, err
65657	}
65658	reqHeaders.Set("Content-Type", "application/json")
65659	c.urlParams_.Set("alt", alt)
65660	c.urlParams_.Set("prettyPrint", "false")
65661	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
65662	urls += "?" + c.urlParams_.Encode()
65663	req, err := http.NewRequest("POST", urls, body)
65664	if err != nil {
65665		return nil, err
65666	}
65667	req.Header = reqHeaders
65668	googleapi.Expand(req.URL, map[string]string{
65669		"project": c.project,
65670	})
65671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65672}
65673
65674// Do executes the "compute.healthChecks.insert" call.
65675// Exactly one of *Operation or error will be non-nil. Any non-2xx
65676// status code is an error. Response headers are in either
65677// *Operation.ServerResponse.Header or (if a response was returned at
65678// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65679// to check whether the returned error was because
65680// http.StatusNotModified was returned.
65681func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65682	gensupport.SetOptions(c.urlParams_, opts...)
65683	res, err := c.doRequest("json")
65684	if res != nil && res.StatusCode == http.StatusNotModified {
65685		if res.Body != nil {
65686			res.Body.Close()
65687		}
65688		return nil, &googleapi.Error{
65689			Code:   res.StatusCode,
65690			Header: res.Header,
65691		}
65692	}
65693	if err != nil {
65694		return nil, err
65695	}
65696	defer googleapi.CloseBody(res)
65697	if err := googleapi.CheckResponse(res); err != nil {
65698		return nil, err
65699	}
65700	ret := &Operation{
65701		ServerResponse: googleapi.ServerResponse{
65702			Header:         res.Header,
65703			HTTPStatusCode: res.StatusCode,
65704		},
65705	}
65706	target := &ret
65707	if err := gensupport.DecodeResponse(target, res); err != nil {
65708		return nil, err
65709	}
65710	return ret, nil
65711	// {
65712	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
65713	//   "httpMethod": "POST",
65714	//   "id": "compute.healthChecks.insert",
65715	//   "parameterOrder": [
65716	//     "project"
65717	//   ],
65718	//   "parameters": {
65719	//     "project": {
65720	//       "description": "Project ID for this request.",
65721	//       "location": "path",
65722	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65723	//       "required": true,
65724	//       "type": "string"
65725	//     },
65726	//     "requestId": {
65727	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65728	//       "location": "query",
65729	//       "type": "string"
65730	//     }
65731	//   },
65732	//   "path": "{project}/global/healthChecks",
65733	//   "request": {
65734	//     "$ref": "HealthCheck"
65735	//   },
65736	//   "response": {
65737	//     "$ref": "Operation"
65738	//   },
65739	//   "scopes": [
65740	//     "https://www.googleapis.com/auth/cloud-platform",
65741	//     "https://www.googleapis.com/auth/compute"
65742	//   ]
65743	// }
65744
65745}
65746
65747// method id "compute.healthChecks.list":
65748
65749type HealthChecksListCall struct {
65750	s            *Service
65751	project      string
65752	urlParams_   gensupport.URLParams
65753	ifNoneMatch_ string
65754	ctx_         context.Context
65755	header_      http.Header
65756}
65757
65758// List: Retrieves the list of HealthCheck resources available to the
65759// specified project.
65760func (r *HealthChecksService) List(project string) *HealthChecksListCall {
65761	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65762	c.project = project
65763	return c
65764}
65765
65766// Filter sets the optional parameter "filter": A filter expression that
65767// filters resources listed in the response. The expression must specify
65768// the field name, a comparison operator, and the value that you want to
65769// use for filtering. The value must be a string, a number, or a
65770// boolean. The comparison operator must be either `=`, `!=`, `>`, or
65771// `<`.
65772//
65773// For example, if you are filtering Compute Engine instances, you can
65774// exclude instances named `example-instance` by specifying `name !=
65775// example-instance`.
65776//
65777// You can also filter nested fields. For example, you could specify
65778// `scheduling.automaticRestart = false` to include instances only if
65779// they are not scheduled for automatic restarts. You can use filtering
65780// on nested fields to filter based on resource labels.
65781//
65782// To filter on multiple expressions, provide each separate expression
65783// within parentheses. For example: ``` (scheduling.automaticRestart =
65784// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
65785// is an `AND` expression. However, you can include `AND` and `OR`
65786// expressions explicitly. For example: ``` (cpuPlatform = "Intel
65787// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
65788// (scheduling.automaticRestart = true) ```
65789func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
65790	c.urlParams_.Set("filter", filter)
65791	return c
65792}
65793
65794// MaxResults sets the optional parameter "maxResults": The maximum
65795// number of results per page that should be returned. If the number of
65796// available results is larger than `maxResults`, Compute Engine returns
65797// a `nextPageToken` that can be used to get the next page of results in
65798// subsequent list requests. Acceptable values are `0` to `500`,
65799// inclusive. (Default: `500`)
65800func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
65801	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65802	return c
65803}
65804
65805// OrderBy sets the optional parameter "orderBy": Sorts list results by
65806// a certain order. By default, results are returned in alphanumerical
65807// order based on the resource name.
65808//
65809// You can also sort results in descending order based on the creation
65810// timestamp using `orderBy="creationTimestamp desc". This sorts
65811// results based on the `creationTimestamp` field in reverse
65812// chronological order (newest result first). Use this to sort resources
65813// like operations so that the newest operation is returned
65814// first.
65815//
65816// Currently, only sorting by `name` or `creationTimestamp desc` is
65817// supported.
65818func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
65819	c.urlParams_.Set("orderBy", orderBy)
65820	return c
65821}
65822
65823// PageToken sets the optional parameter "pageToken": Specifies a page
65824// token to use. Set `pageToken` to the `nextPageToken` returned by a
65825// previous list request to get the next page of results.
65826func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
65827	c.urlParams_.Set("pageToken", pageToken)
65828	return c
65829}
65830
65831// Fields allows partial responses to be retrieved. See
65832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65833// for more information.
65834func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
65835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65836	return c
65837}
65838
65839// IfNoneMatch sets the optional parameter which makes the operation
65840// fail if the object's ETag matches the given value. This is useful for
65841// getting updates only after the object has changed since the last
65842// request. Use googleapi.IsNotModified to check whether the response
65843// error from Do is the result of In-None-Match.
65844func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
65845	c.ifNoneMatch_ = entityTag
65846	return c
65847}
65848
65849// Context sets the context to be used in this call's Do method. Any
65850// pending HTTP request will be aborted if the provided context is
65851// canceled.
65852func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
65853	c.ctx_ = ctx
65854	return c
65855}
65856
65857// Header returns an http.Header that can be modified by the caller to
65858// add HTTP headers to the request.
65859func (c *HealthChecksListCall) Header() http.Header {
65860	if c.header_ == nil {
65861		c.header_ = make(http.Header)
65862	}
65863	return c.header_
65864}
65865
65866func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
65867	reqHeaders := make(http.Header)
65868	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
65869	for k, v := range c.header_ {
65870		reqHeaders[k] = v
65871	}
65872	reqHeaders.Set("User-Agent", c.s.userAgent())
65873	if c.ifNoneMatch_ != "" {
65874		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65875	}
65876	var body io.Reader = nil
65877	c.urlParams_.Set("alt", alt)
65878	c.urlParams_.Set("prettyPrint", "false")
65879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
65880	urls += "?" + c.urlParams_.Encode()
65881	req, err := http.NewRequest("GET", urls, body)
65882	if err != nil {
65883		return nil, err
65884	}
65885	req.Header = reqHeaders
65886	googleapi.Expand(req.URL, map[string]string{
65887		"project": c.project,
65888	})
65889	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65890}
65891
65892// Do executes the "compute.healthChecks.list" call.
65893// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
65894// status code is an error. Response headers are in either
65895// *HealthCheckList.ServerResponse.Header or (if a response was returned
65896// at all) in error.(*googleapi.Error).Header. Use
65897// googleapi.IsNotModified to check whether the returned error was
65898// because http.StatusNotModified was returned.
65899func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
65900	gensupport.SetOptions(c.urlParams_, opts...)
65901	res, err := c.doRequest("json")
65902	if res != nil && res.StatusCode == http.StatusNotModified {
65903		if res.Body != nil {
65904			res.Body.Close()
65905		}
65906		return nil, &googleapi.Error{
65907			Code:   res.StatusCode,
65908			Header: res.Header,
65909		}
65910	}
65911	if err != nil {
65912		return nil, err
65913	}
65914	defer googleapi.CloseBody(res)
65915	if err := googleapi.CheckResponse(res); err != nil {
65916		return nil, err
65917	}
65918	ret := &HealthCheckList{
65919		ServerResponse: googleapi.ServerResponse{
65920			Header:         res.Header,
65921			HTTPStatusCode: res.StatusCode,
65922		},
65923	}
65924	target := &ret
65925	if err := gensupport.DecodeResponse(target, res); err != nil {
65926		return nil, err
65927	}
65928	return ret, nil
65929	// {
65930	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
65931	//   "httpMethod": "GET",
65932	//   "id": "compute.healthChecks.list",
65933	//   "parameterOrder": [
65934	//     "project"
65935	//   ],
65936	//   "parameters": {
65937	//     "filter": {
65938	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
65939	//       "location": "query",
65940	//       "type": "string"
65941	//     },
65942	//     "maxResults": {
65943	//       "default": "500",
65944	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
65945	//       "format": "uint32",
65946	//       "location": "query",
65947	//       "minimum": "0",
65948	//       "type": "integer"
65949	//     },
65950	//     "orderBy": {
65951	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
65952	//       "location": "query",
65953	//       "type": "string"
65954	//     },
65955	//     "pageToken": {
65956	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
65957	//       "location": "query",
65958	//       "type": "string"
65959	//     },
65960	//     "project": {
65961	//       "description": "Project ID for this request.",
65962	//       "location": "path",
65963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65964	//       "required": true,
65965	//       "type": "string"
65966	//     }
65967	//   },
65968	//   "path": "{project}/global/healthChecks",
65969	//   "response": {
65970	//     "$ref": "HealthCheckList"
65971	//   },
65972	//   "scopes": [
65973	//     "https://www.googleapis.com/auth/cloud-platform",
65974	//     "https://www.googleapis.com/auth/compute",
65975	//     "https://www.googleapis.com/auth/compute.readonly"
65976	//   ]
65977	// }
65978
65979}
65980
65981// Pages invokes f for each page of results.
65982// A non-nil error returned from f will halt the iteration.
65983// The provided context supersedes any context provided to the Context method.
65984func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
65985	c.ctx_ = ctx
65986	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65987	for {
65988		x, err := c.Do()
65989		if err != nil {
65990			return err
65991		}
65992		if err := f(x); err != nil {
65993			return err
65994		}
65995		if x.NextPageToken == "" {
65996			return nil
65997		}
65998		c.PageToken(x.NextPageToken)
65999	}
66000}
66001
66002// method id "compute.healthChecks.patch":
66003
66004type HealthChecksPatchCall struct {
66005	s           *Service
66006	project     string
66007	healthCheck string
66008	healthcheck *HealthCheck
66009	urlParams_  gensupport.URLParams
66010	ctx_        context.Context
66011	header_     http.Header
66012}
66013
66014// Patch: Updates a HealthCheck resource in the specified project using
66015// the data included in the request. This method supports PATCH
66016// semantics and uses the JSON merge patch format and processing rules.
66017func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
66018	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66019	c.project = project
66020	c.healthCheck = healthCheck
66021	c.healthcheck = healthcheck
66022	return c
66023}
66024
66025// RequestId sets the optional parameter "requestId": An optional
66026// request ID to identify requests. Specify a unique request ID so that
66027// if you must retry your request, the server will know to ignore the
66028// request if it has already been completed.
66029//
66030// For example, consider a situation where you make an initial request
66031// and the request times out. If you make the request again with the
66032// same request ID, the server can check if original operation with the
66033// same request ID was received, and if so, will ignore the second
66034// request. This prevents clients from accidentally creating duplicate
66035// commitments.
66036//
66037// The request ID must be a valid UUID with the exception that zero UUID
66038// is not supported (00000000-0000-0000-0000-000000000000).
66039func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
66040	c.urlParams_.Set("requestId", requestId)
66041	return c
66042}
66043
66044// Fields allows partial responses to be retrieved. See
66045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66046// for more information.
66047func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
66048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66049	return c
66050}
66051
66052// Context sets the context to be used in this call's Do method. Any
66053// pending HTTP request will be aborted if the provided context is
66054// canceled.
66055func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
66056	c.ctx_ = ctx
66057	return c
66058}
66059
66060// Header returns an http.Header that can be modified by the caller to
66061// add HTTP headers to the request.
66062func (c *HealthChecksPatchCall) Header() http.Header {
66063	if c.header_ == nil {
66064		c.header_ = make(http.Header)
66065	}
66066	return c.header_
66067}
66068
66069func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
66070	reqHeaders := make(http.Header)
66071	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66072	for k, v := range c.header_ {
66073		reqHeaders[k] = v
66074	}
66075	reqHeaders.Set("User-Agent", c.s.userAgent())
66076	var body io.Reader = nil
66077	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
66078	if err != nil {
66079		return nil, err
66080	}
66081	reqHeaders.Set("Content-Type", "application/json")
66082	c.urlParams_.Set("alt", alt)
66083	c.urlParams_.Set("prettyPrint", "false")
66084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
66085	urls += "?" + c.urlParams_.Encode()
66086	req, err := http.NewRequest("PATCH", urls, body)
66087	if err != nil {
66088		return nil, err
66089	}
66090	req.Header = reqHeaders
66091	googleapi.Expand(req.URL, map[string]string{
66092		"project":     c.project,
66093		"healthCheck": c.healthCheck,
66094	})
66095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66096}
66097
66098// Do executes the "compute.healthChecks.patch" call.
66099// Exactly one of *Operation or error will be non-nil. Any non-2xx
66100// status code is an error. Response headers are in either
66101// *Operation.ServerResponse.Header or (if a response was returned at
66102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66103// to check whether the returned error was because
66104// http.StatusNotModified was returned.
66105func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66106	gensupport.SetOptions(c.urlParams_, opts...)
66107	res, err := c.doRequest("json")
66108	if res != nil && res.StatusCode == http.StatusNotModified {
66109		if res.Body != nil {
66110			res.Body.Close()
66111		}
66112		return nil, &googleapi.Error{
66113			Code:   res.StatusCode,
66114			Header: res.Header,
66115		}
66116	}
66117	if err != nil {
66118		return nil, err
66119	}
66120	defer googleapi.CloseBody(res)
66121	if err := googleapi.CheckResponse(res); err != nil {
66122		return nil, err
66123	}
66124	ret := &Operation{
66125		ServerResponse: googleapi.ServerResponse{
66126			Header:         res.Header,
66127			HTTPStatusCode: res.StatusCode,
66128		},
66129	}
66130	target := &ret
66131	if err := gensupport.DecodeResponse(target, res); err != nil {
66132		return nil, err
66133	}
66134	return ret, nil
66135	// {
66136	//   "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.",
66137	//   "httpMethod": "PATCH",
66138	//   "id": "compute.healthChecks.patch",
66139	//   "parameterOrder": [
66140	//     "project",
66141	//     "healthCheck"
66142	//   ],
66143	//   "parameters": {
66144	//     "healthCheck": {
66145	//       "description": "Name of the HealthCheck resource to patch.",
66146	//       "location": "path",
66147	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66148	//       "required": true,
66149	//       "type": "string"
66150	//     },
66151	//     "project": {
66152	//       "description": "Project ID for this request.",
66153	//       "location": "path",
66154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66155	//       "required": true,
66156	//       "type": "string"
66157	//     },
66158	//     "requestId": {
66159	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66160	//       "location": "query",
66161	//       "type": "string"
66162	//     }
66163	//   },
66164	//   "path": "{project}/global/healthChecks/{healthCheck}",
66165	//   "request": {
66166	//     "$ref": "HealthCheck"
66167	//   },
66168	//   "response": {
66169	//     "$ref": "Operation"
66170	//   },
66171	//   "scopes": [
66172	//     "https://www.googleapis.com/auth/cloud-platform",
66173	//     "https://www.googleapis.com/auth/compute"
66174	//   ]
66175	// }
66176
66177}
66178
66179// method id "compute.healthChecks.testIamPermissions":
66180
66181type HealthChecksTestIamPermissionsCall struct {
66182	s                      *Service
66183	project                string
66184	resource               string
66185	testpermissionsrequest *TestPermissionsRequest
66186	urlParams_             gensupport.URLParams
66187	ctx_                   context.Context
66188	header_                http.Header
66189}
66190
66191// TestIamPermissions: Returns permissions that a caller has on the
66192// specified resource.
66193func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall {
66194	c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66195	c.project = project
66196	c.resource = resource
66197	c.testpermissionsrequest = testpermissionsrequest
66198	return c
66199}
66200
66201// Fields allows partial responses to be retrieved. See
66202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66203// for more information.
66204func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall {
66205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66206	return c
66207}
66208
66209// Context sets the context to be used in this call's Do method. Any
66210// pending HTTP request will be aborted if the provided context is
66211// canceled.
66212func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall {
66213	c.ctx_ = ctx
66214	return c
66215}
66216
66217// Header returns an http.Header that can be modified by the caller to
66218// add HTTP headers to the request.
66219func (c *HealthChecksTestIamPermissionsCall) Header() http.Header {
66220	if c.header_ == nil {
66221		c.header_ = make(http.Header)
66222	}
66223	return c.header_
66224}
66225
66226func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
66227	reqHeaders := make(http.Header)
66228	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66229	for k, v := range c.header_ {
66230		reqHeaders[k] = v
66231	}
66232	reqHeaders.Set("User-Agent", c.s.userAgent())
66233	var body io.Reader = nil
66234	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
66235	if err != nil {
66236		return nil, err
66237	}
66238	reqHeaders.Set("Content-Type", "application/json")
66239	c.urlParams_.Set("alt", alt)
66240	c.urlParams_.Set("prettyPrint", "false")
66241	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{resource}/testIamPermissions")
66242	urls += "?" + c.urlParams_.Encode()
66243	req, err := http.NewRequest("POST", urls, body)
66244	if err != nil {
66245		return nil, err
66246	}
66247	req.Header = reqHeaders
66248	googleapi.Expand(req.URL, map[string]string{
66249		"project":  c.project,
66250		"resource": c.resource,
66251	})
66252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66253}
66254
66255// Do executes the "compute.healthChecks.testIamPermissions" call.
66256// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
66257// non-2xx status code is an error. Response headers are in either
66258// *TestPermissionsResponse.ServerResponse.Header or (if a response was
66259// returned at all) in error.(*googleapi.Error).Header. Use
66260// googleapi.IsNotModified to check whether the returned error was
66261// because http.StatusNotModified was returned.
66262func (c *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
66263	gensupport.SetOptions(c.urlParams_, opts...)
66264	res, err := c.doRequest("json")
66265	if res != nil && res.StatusCode == http.StatusNotModified {
66266		if res.Body != nil {
66267			res.Body.Close()
66268		}
66269		return nil, &googleapi.Error{
66270			Code:   res.StatusCode,
66271			Header: res.Header,
66272		}
66273	}
66274	if err != nil {
66275		return nil, err
66276	}
66277	defer googleapi.CloseBody(res)
66278	if err := googleapi.CheckResponse(res); err != nil {
66279		return nil, err
66280	}
66281	ret := &TestPermissionsResponse{
66282		ServerResponse: googleapi.ServerResponse{
66283			Header:         res.Header,
66284			HTTPStatusCode: res.StatusCode,
66285		},
66286	}
66287	target := &ret
66288	if err := gensupport.DecodeResponse(target, res); err != nil {
66289		return nil, err
66290	}
66291	return ret, nil
66292	// {
66293	//   "description": "Returns permissions that a caller has on the specified resource.",
66294	//   "httpMethod": "POST",
66295	//   "id": "compute.healthChecks.testIamPermissions",
66296	//   "parameterOrder": [
66297	//     "project",
66298	//     "resource"
66299	//   ],
66300	//   "parameters": {
66301	//     "project": {
66302	//       "description": "Project ID for this request.",
66303	//       "location": "path",
66304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66305	//       "required": true,
66306	//       "type": "string"
66307	//     },
66308	//     "resource": {
66309	//       "description": "Name or id of the resource for this request.",
66310	//       "location": "path",
66311	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66312	//       "required": true,
66313	//       "type": "string"
66314	//     }
66315	//   },
66316	//   "path": "{project}/global/healthChecks/{resource}/testIamPermissions",
66317	//   "request": {
66318	//     "$ref": "TestPermissionsRequest"
66319	//   },
66320	//   "response": {
66321	//     "$ref": "TestPermissionsResponse"
66322	//   },
66323	//   "scopes": [
66324	//     "https://www.googleapis.com/auth/cloud-platform",
66325	//     "https://www.googleapis.com/auth/compute",
66326	//     "https://www.googleapis.com/auth/compute.readonly"
66327	//   ]
66328	// }
66329
66330}
66331
66332// method id "compute.healthChecks.update":
66333
66334type HealthChecksUpdateCall struct {
66335	s           *Service
66336	project     string
66337	healthCheck string
66338	healthcheck *HealthCheck
66339	urlParams_  gensupport.URLParams
66340	ctx_        context.Context
66341	header_     http.Header
66342}
66343
66344// Update: Updates a HealthCheck resource in the specified project using
66345// the data included in the request.
66346func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
66347	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66348	c.project = project
66349	c.healthCheck = healthCheck
66350	c.healthcheck = healthcheck
66351	return c
66352}
66353
66354// RequestId sets the optional parameter "requestId": An optional
66355// request ID to identify requests. Specify a unique request ID so that
66356// if you must retry your request, the server will know to ignore the
66357// request if it has already been completed.
66358//
66359// For example, consider a situation where you make an initial request
66360// and the request times out. If you make the request again with the
66361// same request ID, the server can check if original operation with the
66362// same request ID was received, and if so, will ignore the second
66363// request. This prevents clients from accidentally creating duplicate
66364// commitments.
66365//
66366// The request ID must be a valid UUID with the exception that zero UUID
66367// is not supported (00000000-0000-0000-0000-000000000000).
66368func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
66369	c.urlParams_.Set("requestId", requestId)
66370	return c
66371}
66372
66373// Fields allows partial responses to be retrieved. See
66374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66375// for more information.
66376func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
66377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66378	return c
66379}
66380
66381// Context sets the context to be used in this call's Do method. Any
66382// pending HTTP request will be aborted if the provided context is
66383// canceled.
66384func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
66385	c.ctx_ = ctx
66386	return c
66387}
66388
66389// Header returns an http.Header that can be modified by the caller to
66390// add HTTP headers to the request.
66391func (c *HealthChecksUpdateCall) Header() http.Header {
66392	if c.header_ == nil {
66393		c.header_ = make(http.Header)
66394	}
66395	return c.header_
66396}
66397
66398func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
66399	reqHeaders := make(http.Header)
66400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66401	for k, v := range c.header_ {
66402		reqHeaders[k] = v
66403	}
66404	reqHeaders.Set("User-Agent", c.s.userAgent())
66405	var body io.Reader = nil
66406	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
66407	if err != nil {
66408		return nil, err
66409	}
66410	reqHeaders.Set("Content-Type", "application/json")
66411	c.urlParams_.Set("alt", alt)
66412	c.urlParams_.Set("prettyPrint", "false")
66413	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
66414	urls += "?" + c.urlParams_.Encode()
66415	req, err := http.NewRequest("PUT", urls, body)
66416	if err != nil {
66417		return nil, err
66418	}
66419	req.Header = reqHeaders
66420	googleapi.Expand(req.URL, map[string]string{
66421		"project":     c.project,
66422		"healthCheck": c.healthCheck,
66423	})
66424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66425}
66426
66427// Do executes the "compute.healthChecks.update" call.
66428// Exactly one of *Operation or error will be non-nil. Any non-2xx
66429// status code is an error. Response headers are in either
66430// *Operation.ServerResponse.Header or (if a response was returned at
66431// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66432// to check whether the returned error was because
66433// http.StatusNotModified was returned.
66434func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66435	gensupport.SetOptions(c.urlParams_, opts...)
66436	res, err := c.doRequest("json")
66437	if res != nil && res.StatusCode == http.StatusNotModified {
66438		if res.Body != nil {
66439			res.Body.Close()
66440		}
66441		return nil, &googleapi.Error{
66442			Code:   res.StatusCode,
66443			Header: res.Header,
66444		}
66445	}
66446	if err != nil {
66447		return nil, err
66448	}
66449	defer googleapi.CloseBody(res)
66450	if err := googleapi.CheckResponse(res); err != nil {
66451		return nil, err
66452	}
66453	ret := &Operation{
66454		ServerResponse: googleapi.ServerResponse{
66455			Header:         res.Header,
66456			HTTPStatusCode: res.StatusCode,
66457		},
66458	}
66459	target := &ret
66460	if err := gensupport.DecodeResponse(target, res); err != nil {
66461		return nil, err
66462	}
66463	return ret, nil
66464	// {
66465	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
66466	//   "httpMethod": "PUT",
66467	//   "id": "compute.healthChecks.update",
66468	//   "parameterOrder": [
66469	//     "project",
66470	//     "healthCheck"
66471	//   ],
66472	//   "parameters": {
66473	//     "healthCheck": {
66474	//       "description": "Name of the HealthCheck resource to update.",
66475	//       "location": "path",
66476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66477	//       "required": true,
66478	//       "type": "string"
66479	//     },
66480	//     "project": {
66481	//       "description": "Project ID for this request.",
66482	//       "location": "path",
66483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66484	//       "required": true,
66485	//       "type": "string"
66486	//     },
66487	//     "requestId": {
66488	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66489	//       "location": "query",
66490	//       "type": "string"
66491	//     }
66492	//   },
66493	//   "path": "{project}/global/healthChecks/{healthCheck}",
66494	//   "request": {
66495	//     "$ref": "HealthCheck"
66496	//   },
66497	//   "response": {
66498	//     "$ref": "Operation"
66499	//   },
66500	//   "scopes": [
66501	//     "https://www.googleapis.com/auth/cloud-platform",
66502	//     "https://www.googleapis.com/auth/compute"
66503	//   ]
66504	// }
66505
66506}
66507
66508// method id "compute.httpHealthChecks.delete":
66509
66510type HttpHealthChecksDeleteCall struct {
66511	s               *Service
66512	project         string
66513	httpHealthCheck string
66514	urlParams_      gensupport.URLParams
66515	ctx_            context.Context
66516	header_         http.Header
66517}
66518
66519// Delete: Deletes the specified HttpHealthCheck resource.
66520// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
66521func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
66522	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66523	c.project = project
66524	c.httpHealthCheck = httpHealthCheck
66525	return c
66526}
66527
66528// RequestId sets the optional parameter "requestId": An optional
66529// request ID to identify requests. Specify a unique request ID so that
66530// if you must retry your request, the server will know to ignore the
66531// request if it has already been completed.
66532//
66533// For example, consider a situation where you make an initial request
66534// and the request times out. If you make the request again with the
66535// same request ID, the server can check if original operation with the
66536// same request ID was received, and if so, will ignore the second
66537// request. This prevents clients from accidentally creating duplicate
66538// commitments.
66539//
66540// The request ID must be a valid UUID with the exception that zero UUID
66541// is not supported (00000000-0000-0000-0000-000000000000).
66542func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
66543	c.urlParams_.Set("requestId", requestId)
66544	return c
66545}
66546
66547// Fields allows partial responses to be retrieved. See
66548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66549// for more information.
66550func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
66551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66552	return c
66553}
66554
66555// Context sets the context to be used in this call's Do method. Any
66556// pending HTTP request will be aborted if the provided context is
66557// canceled.
66558func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
66559	c.ctx_ = ctx
66560	return c
66561}
66562
66563// Header returns an http.Header that can be modified by the caller to
66564// add HTTP headers to the request.
66565func (c *HttpHealthChecksDeleteCall) Header() http.Header {
66566	if c.header_ == nil {
66567		c.header_ = make(http.Header)
66568	}
66569	return c.header_
66570}
66571
66572func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
66573	reqHeaders := make(http.Header)
66574	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66575	for k, v := range c.header_ {
66576		reqHeaders[k] = v
66577	}
66578	reqHeaders.Set("User-Agent", c.s.userAgent())
66579	var body io.Reader = nil
66580	c.urlParams_.Set("alt", alt)
66581	c.urlParams_.Set("prettyPrint", "false")
66582	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
66583	urls += "?" + c.urlParams_.Encode()
66584	req, err := http.NewRequest("DELETE", urls, body)
66585	if err != nil {
66586		return nil, err
66587	}
66588	req.Header = reqHeaders
66589	googleapi.Expand(req.URL, map[string]string{
66590		"project":         c.project,
66591		"httpHealthCheck": c.httpHealthCheck,
66592	})
66593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66594}
66595
66596// Do executes the "compute.httpHealthChecks.delete" call.
66597// Exactly one of *Operation or error will be non-nil. Any non-2xx
66598// status code is an error. Response headers are in either
66599// *Operation.ServerResponse.Header or (if a response was returned at
66600// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66601// to check whether the returned error was because
66602// http.StatusNotModified was returned.
66603func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66604	gensupport.SetOptions(c.urlParams_, opts...)
66605	res, err := c.doRequest("json")
66606	if res != nil && res.StatusCode == http.StatusNotModified {
66607		if res.Body != nil {
66608			res.Body.Close()
66609		}
66610		return nil, &googleapi.Error{
66611			Code:   res.StatusCode,
66612			Header: res.Header,
66613		}
66614	}
66615	if err != nil {
66616		return nil, err
66617	}
66618	defer googleapi.CloseBody(res)
66619	if err := googleapi.CheckResponse(res); err != nil {
66620		return nil, err
66621	}
66622	ret := &Operation{
66623		ServerResponse: googleapi.ServerResponse{
66624			Header:         res.Header,
66625			HTTPStatusCode: res.StatusCode,
66626		},
66627	}
66628	target := &ret
66629	if err := gensupport.DecodeResponse(target, res); err != nil {
66630		return nil, err
66631	}
66632	return ret, nil
66633	// {
66634	//   "description": "Deletes the specified HttpHealthCheck resource.",
66635	//   "httpMethod": "DELETE",
66636	//   "id": "compute.httpHealthChecks.delete",
66637	//   "parameterOrder": [
66638	//     "project",
66639	//     "httpHealthCheck"
66640	//   ],
66641	//   "parameters": {
66642	//     "httpHealthCheck": {
66643	//       "description": "Name of the HttpHealthCheck resource to delete.",
66644	//       "location": "path",
66645	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66646	//       "required": true,
66647	//       "type": "string"
66648	//     },
66649	//     "project": {
66650	//       "description": "Project ID for this request.",
66651	//       "location": "path",
66652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66653	//       "required": true,
66654	//       "type": "string"
66655	//     },
66656	//     "requestId": {
66657	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66658	//       "location": "query",
66659	//       "type": "string"
66660	//     }
66661	//   },
66662	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
66663	//   "response": {
66664	//     "$ref": "Operation"
66665	//   },
66666	//   "scopes": [
66667	//     "https://www.googleapis.com/auth/cloud-platform",
66668	//     "https://www.googleapis.com/auth/compute"
66669	//   ]
66670	// }
66671
66672}
66673
66674// method id "compute.httpHealthChecks.get":
66675
66676type HttpHealthChecksGetCall struct {
66677	s               *Service
66678	project         string
66679	httpHealthCheck string
66680	urlParams_      gensupport.URLParams
66681	ifNoneMatch_    string
66682	ctx_            context.Context
66683	header_         http.Header
66684}
66685
66686// Get: Returns the specified HttpHealthCheck resource. Gets a list of
66687// available HTTP health checks by making a list() request.
66688// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
66689func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
66690	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66691	c.project = project
66692	c.httpHealthCheck = httpHealthCheck
66693	return c
66694}
66695
66696// Fields allows partial responses to be retrieved. See
66697// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66698// for more information.
66699func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
66700	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66701	return c
66702}
66703
66704// IfNoneMatch sets the optional parameter which makes the operation
66705// fail if the object's ETag matches the given value. This is useful for
66706// getting updates only after the object has changed since the last
66707// request. Use googleapi.IsNotModified to check whether the response
66708// error from Do is the result of In-None-Match.
66709func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
66710	c.ifNoneMatch_ = entityTag
66711	return c
66712}
66713
66714// Context sets the context to be used in this call's Do method. Any
66715// pending HTTP request will be aborted if the provided context is
66716// canceled.
66717func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
66718	c.ctx_ = ctx
66719	return c
66720}
66721
66722// Header returns an http.Header that can be modified by the caller to
66723// add HTTP headers to the request.
66724func (c *HttpHealthChecksGetCall) Header() http.Header {
66725	if c.header_ == nil {
66726		c.header_ = make(http.Header)
66727	}
66728	return c.header_
66729}
66730
66731func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
66732	reqHeaders := make(http.Header)
66733	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66734	for k, v := range c.header_ {
66735		reqHeaders[k] = v
66736	}
66737	reqHeaders.Set("User-Agent", c.s.userAgent())
66738	if c.ifNoneMatch_ != "" {
66739		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66740	}
66741	var body io.Reader = nil
66742	c.urlParams_.Set("alt", alt)
66743	c.urlParams_.Set("prettyPrint", "false")
66744	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
66745	urls += "?" + c.urlParams_.Encode()
66746	req, err := http.NewRequest("GET", urls, body)
66747	if err != nil {
66748		return nil, err
66749	}
66750	req.Header = reqHeaders
66751	googleapi.Expand(req.URL, map[string]string{
66752		"project":         c.project,
66753		"httpHealthCheck": c.httpHealthCheck,
66754	})
66755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66756}
66757
66758// Do executes the "compute.httpHealthChecks.get" call.
66759// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
66760// status code is an error. Response headers are in either
66761// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
66762// at all) in error.(*googleapi.Error).Header. Use
66763// googleapi.IsNotModified to check whether the returned error was
66764// because http.StatusNotModified was returned.
66765func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
66766	gensupport.SetOptions(c.urlParams_, opts...)
66767	res, err := c.doRequest("json")
66768	if res != nil && res.StatusCode == http.StatusNotModified {
66769		if res.Body != nil {
66770			res.Body.Close()
66771		}
66772		return nil, &googleapi.Error{
66773			Code:   res.StatusCode,
66774			Header: res.Header,
66775		}
66776	}
66777	if err != nil {
66778		return nil, err
66779	}
66780	defer googleapi.CloseBody(res)
66781	if err := googleapi.CheckResponse(res); err != nil {
66782		return nil, err
66783	}
66784	ret := &HttpHealthCheck{
66785		ServerResponse: googleapi.ServerResponse{
66786			Header:         res.Header,
66787			HTTPStatusCode: res.StatusCode,
66788		},
66789	}
66790	target := &ret
66791	if err := gensupport.DecodeResponse(target, res); err != nil {
66792		return nil, err
66793	}
66794	return ret, nil
66795	// {
66796	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
66797	//   "httpMethod": "GET",
66798	//   "id": "compute.httpHealthChecks.get",
66799	//   "parameterOrder": [
66800	//     "project",
66801	//     "httpHealthCheck"
66802	//   ],
66803	//   "parameters": {
66804	//     "httpHealthCheck": {
66805	//       "description": "Name of the HttpHealthCheck resource to return.",
66806	//       "location": "path",
66807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66808	//       "required": true,
66809	//       "type": "string"
66810	//     },
66811	//     "project": {
66812	//       "description": "Project ID for this request.",
66813	//       "location": "path",
66814	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66815	//       "required": true,
66816	//       "type": "string"
66817	//     }
66818	//   },
66819	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
66820	//   "response": {
66821	//     "$ref": "HttpHealthCheck"
66822	//   },
66823	//   "scopes": [
66824	//     "https://www.googleapis.com/auth/cloud-platform",
66825	//     "https://www.googleapis.com/auth/compute",
66826	//     "https://www.googleapis.com/auth/compute.readonly"
66827	//   ]
66828	// }
66829
66830}
66831
66832// method id "compute.httpHealthChecks.insert":
66833
66834type HttpHealthChecksInsertCall struct {
66835	s               *Service
66836	project         string
66837	httphealthcheck *HttpHealthCheck
66838	urlParams_      gensupport.URLParams
66839	ctx_            context.Context
66840	header_         http.Header
66841}
66842
66843// Insert: Creates a HttpHealthCheck resource in the specified project
66844// using the data included in the request.
66845// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
66846func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
66847	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66848	c.project = project
66849	c.httphealthcheck = httphealthcheck
66850	return c
66851}
66852
66853// RequestId sets the optional parameter "requestId": An optional
66854// request ID to identify requests. Specify a unique request ID so that
66855// if you must retry your request, the server will know to ignore the
66856// request if it has already been completed.
66857//
66858// For example, consider a situation where you make an initial request
66859// and the request times out. If you make the request again with the
66860// same request ID, the server can check if original operation with the
66861// same request ID was received, and if so, will ignore the second
66862// request. This prevents clients from accidentally creating duplicate
66863// commitments.
66864//
66865// The request ID must be a valid UUID with the exception that zero UUID
66866// is not supported (00000000-0000-0000-0000-000000000000).
66867func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
66868	c.urlParams_.Set("requestId", requestId)
66869	return c
66870}
66871
66872// Fields allows partial responses to be retrieved. See
66873// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66874// for more information.
66875func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
66876	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66877	return c
66878}
66879
66880// Context sets the context to be used in this call's Do method. Any
66881// pending HTTP request will be aborted if the provided context is
66882// canceled.
66883func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
66884	c.ctx_ = ctx
66885	return c
66886}
66887
66888// Header returns an http.Header that can be modified by the caller to
66889// add HTTP headers to the request.
66890func (c *HttpHealthChecksInsertCall) Header() http.Header {
66891	if c.header_ == nil {
66892		c.header_ = make(http.Header)
66893	}
66894	return c.header_
66895}
66896
66897func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
66898	reqHeaders := make(http.Header)
66899	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
66900	for k, v := range c.header_ {
66901		reqHeaders[k] = v
66902	}
66903	reqHeaders.Set("User-Agent", c.s.userAgent())
66904	var body io.Reader = nil
66905	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
66906	if err != nil {
66907		return nil, err
66908	}
66909	reqHeaders.Set("Content-Type", "application/json")
66910	c.urlParams_.Set("alt", alt)
66911	c.urlParams_.Set("prettyPrint", "false")
66912	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
66913	urls += "?" + c.urlParams_.Encode()
66914	req, err := http.NewRequest("POST", urls, body)
66915	if err != nil {
66916		return nil, err
66917	}
66918	req.Header = reqHeaders
66919	googleapi.Expand(req.URL, map[string]string{
66920		"project": c.project,
66921	})
66922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66923}
66924
66925// Do executes the "compute.httpHealthChecks.insert" call.
66926// Exactly one of *Operation or error will be non-nil. Any non-2xx
66927// status code is an error. Response headers are in either
66928// *Operation.ServerResponse.Header or (if a response was returned at
66929// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66930// to check whether the returned error was because
66931// http.StatusNotModified was returned.
66932func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66933	gensupport.SetOptions(c.urlParams_, opts...)
66934	res, err := c.doRequest("json")
66935	if res != nil && res.StatusCode == http.StatusNotModified {
66936		if res.Body != nil {
66937			res.Body.Close()
66938		}
66939		return nil, &googleapi.Error{
66940			Code:   res.StatusCode,
66941			Header: res.Header,
66942		}
66943	}
66944	if err != nil {
66945		return nil, err
66946	}
66947	defer googleapi.CloseBody(res)
66948	if err := googleapi.CheckResponse(res); err != nil {
66949		return nil, err
66950	}
66951	ret := &Operation{
66952		ServerResponse: googleapi.ServerResponse{
66953			Header:         res.Header,
66954			HTTPStatusCode: res.StatusCode,
66955		},
66956	}
66957	target := &ret
66958	if err := gensupport.DecodeResponse(target, res); err != nil {
66959		return nil, err
66960	}
66961	return ret, nil
66962	// {
66963	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
66964	//   "httpMethod": "POST",
66965	//   "id": "compute.httpHealthChecks.insert",
66966	//   "parameterOrder": [
66967	//     "project"
66968	//   ],
66969	//   "parameters": {
66970	//     "project": {
66971	//       "description": "Project ID for this request.",
66972	//       "location": "path",
66973	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66974	//       "required": true,
66975	//       "type": "string"
66976	//     },
66977	//     "requestId": {
66978	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66979	//       "location": "query",
66980	//       "type": "string"
66981	//     }
66982	//   },
66983	//   "path": "{project}/global/httpHealthChecks",
66984	//   "request": {
66985	//     "$ref": "HttpHealthCheck"
66986	//   },
66987	//   "response": {
66988	//     "$ref": "Operation"
66989	//   },
66990	//   "scopes": [
66991	//     "https://www.googleapis.com/auth/cloud-platform",
66992	//     "https://www.googleapis.com/auth/compute"
66993	//   ]
66994	// }
66995
66996}
66997
66998// method id "compute.httpHealthChecks.list":
66999
67000type HttpHealthChecksListCall struct {
67001	s            *Service
67002	project      string
67003	urlParams_   gensupport.URLParams
67004	ifNoneMatch_ string
67005	ctx_         context.Context
67006	header_      http.Header
67007}
67008
67009// List: Retrieves the list of HttpHealthCheck resources available to
67010// the specified project.
67011// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
67012func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
67013	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67014	c.project = project
67015	return c
67016}
67017
67018// Filter sets the optional parameter "filter": A filter expression that
67019// filters resources listed in the response. The expression must specify
67020// the field name, a comparison operator, and the value that you want to
67021// use for filtering. The value must be a string, a number, or a
67022// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67023// `<`.
67024//
67025// For example, if you are filtering Compute Engine instances, you can
67026// exclude instances named `example-instance` by specifying `name !=
67027// example-instance`.
67028//
67029// You can also filter nested fields. For example, you could specify
67030// `scheduling.automaticRestart = false` to include instances only if
67031// they are not scheduled for automatic restarts. You can use filtering
67032// on nested fields to filter based on resource labels.
67033//
67034// To filter on multiple expressions, provide each separate expression
67035// within parentheses. For example: ``` (scheduling.automaticRestart =
67036// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
67037// is an `AND` expression. However, you can include `AND` and `OR`
67038// expressions explicitly. For example: ``` (cpuPlatform = "Intel
67039// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
67040// (scheduling.automaticRestart = true) ```
67041func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
67042	c.urlParams_.Set("filter", filter)
67043	return c
67044}
67045
67046// MaxResults sets the optional parameter "maxResults": The maximum
67047// number of results per page that should be returned. If the number of
67048// available results is larger than `maxResults`, Compute Engine returns
67049// a `nextPageToken` that can be used to get the next page of results in
67050// subsequent list requests. Acceptable values are `0` to `500`,
67051// inclusive. (Default: `500`)
67052func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
67053	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67054	return c
67055}
67056
67057// OrderBy sets the optional parameter "orderBy": Sorts list results by
67058// a certain order. By default, results are returned in alphanumerical
67059// order based on the resource name.
67060//
67061// You can also sort results in descending order based on the creation
67062// timestamp using `orderBy="creationTimestamp desc". This sorts
67063// results based on the `creationTimestamp` field in reverse
67064// chronological order (newest result first). Use this to sort resources
67065// like operations so that the newest operation is returned
67066// first.
67067//
67068// Currently, only sorting by `name` or `creationTimestamp desc` is
67069// supported.
67070func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
67071	c.urlParams_.Set("orderBy", orderBy)
67072	return c
67073}
67074
67075// PageToken sets the optional parameter "pageToken": Specifies a page
67076// token to use. Set `pageToken` to the `nextPageToken` returned by a
67077// previous list request to get the next page of results.
67078func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
67079	c.urlParams_.Set("pageToken", pageToken)
67080	return c
67081}
67082
67083// Fields allows partial responses to be retrieved. See
67084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67085// for more information.
67086func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
67087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67088	return c
67089}
67090
67091// IfNoneMatch sets the optional parameter which makes the operation
67092// fail if the object's ETag matches the given value. This is useful for
67093// getting updates only after the object has changed since the last
67094// request. Use googleapi.IsNotModified to check whether the response
67095// error from Do is the result of In-None-Match.
67096func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
67097	c.ifNoneMatch_ = entityTag
67098	return c
67099}
67100
67101// Context sets the context to be used in this call's Do method. Any
67102// pending HTTP request will be aborted if the provided context is
67103// canceled.
67104func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
67105	c.ctx_ = ctx
67106	return c
67107}
67108
67109// Header returns an http.Header that can be modified by the caller to
67110// add HTTP headers to the request.
67111func (c *HttpHealthChecksListCall) Header() http.Header {
67112	if c.header_ == nil {
67113		c.header_ = make(http.Header)
67114	}
67115	return c.header_
67116}
67117
67118func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
67119	reqHeaders := make(http.Header)
67120	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67121	for k, v := range c.header_ {
67122		reqHeaders[k] = v
67123	}
67124	reqHeaders.Set("User-Agent", c.s.userAgent())
67125	if c.ifNoneMatch_ != "" {
67126		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67127	}
67128	var body io.Reader = nil
67129	c.urlParams_.Set("alt", alt)
67130	c.urlParams_.Set("prettyPrint", "false")
67131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
67132	urls += "?" + c.urlParams_.Encode()
67133	req, err := http.NewRequest("GET", urls, body)
67134	if err != nil {
67135		return nil, err
67136	}
67137	req.Header = reqHeaders
67138	googleapi.Expand(req.URL, map[string]string{
67139		"project": c.project,
67140	})
67141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67142}
67143
67144// Do executes the "compute.httpHealthChecks.list" call.
67145// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
67146// non-2xx status code is an error. Response headers are in either
67147// *HttpHealthCheckList.ServerResponse.Header or (if a response was
67148// returned at all) in error.(*googleapi.Error).Header. Use
67149// googleapi.IsNotModified to check whether the returned error was
67150// because http.StatusNotModified was returned.
67151func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
67152	gensupport.SetOptions(c.urlParams_, opts...)
67153	res, err := c.doRequest("json")
67154	if res != nil && res.StatusCode == http.StatusNotModified {
67155		if res.Body != nil {
67156			res.Body.Close()
67157		}
67158		return nil, &googleapi.Error{
67159			Code:   res.StatusCode,
67160			Header: res.Header,
67161		}
67162	}
67163	if err != nil {
67164		return nil, err
67165	}
67166	defer googleapi.CloseBody(res)
67167	if err := googleapi.CheckResponse(res); err != nil {
67168		return nil, err
67169	}
67170	ret := &HttpHealthCheckList{
67171		ServerResponse: googleapi.ServerResponse{
67172			Header:         res.Header,
67173			HTTPStatusCode: res.StatusCode,
67174		},
67175	}
67176	target := &ret
67177	if err := gensupport.DecodeResponse(target, res); err != nil {
67178		return nil, err
67179	}
67180	return ret, nil
67181	// {
67182	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
67183	//   "httpMethod": "GET",
67184	//   "id": "compute.httpHealthChecks.list",
67185	//   "parameterOrder": [
67186	//     "project"
67187	//   ],
67188	//   "parameters": {
67189	//     "filter": {
67190	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
67191	//       "location": "query",
67192	//       "type": "string"
67193	//     },
67194	//     "maxResults": {
67195	//       "default": "500",
67196	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67197	//       "format": "uint32",
67198	//       "location": "query",
67199	//       "minimum": "0",
67200	//       "type": "integer"
67201	//     },
67202	//     "orderBy": {
67203	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
67204	//       "location": "query",
67205	//       "type": "string"
67206	//     },
67207	//     "pageToken": {
67208	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67209	//       "location": "query",
67210	//       "type": "string"
67211	//     },
67212	//     "project": {
67213	//       "description": "Project ID for this request.",
67214	//       "location": "path",
67215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67216	//       "required": true,
67217	//       "type": "string"
67218	//     }
67219	//   },
67220	//   "path": "{project}/global/httpHealthChecks",
67221	//   "response": {
67222	//     "$ref": "HttpHealthCheckList"
67223	//   },
67224	//   "scopes": [
67225	//     "https://www.googleapis.com/auth/cloud-platform",
67226	//     "https://www.googleapis.com/auth/compute",
67227	//     "https://www.googleapis.com/auth/compute.readonly"
67228	//   ]
67229	// }
67230
67231}
67232
67233// Pages invokes f for each page of results.
67234// A non-nil error returned from f will halt the iteration.
67235// The provided context supersedes any context provided to the Context method.
67236func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
67237	c.ctx_ = ctx
67238	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67239	for {
67240		x, err := c.Do()
67241		if err != nil {
67242			return err
67243		}
67244		if err := f(x); err != nil {
67245			return err
67246		}
67247		if x.NextPageToken == "" {
67248			return nil
67249		}
67250		c.PageToken(x.NextPageToken)
67251	}
67252}
67253
67254// method id "compute.httpHealthChecks.patch":
67255
67256type HttpHealthChecksPatchCall struct {
67257	s               *Service
67258	project         string
67259	httpHealthCheck string
67260	httphealthcheck *HttpHealthCheck
67261	urlParams_      gensupport.URLParams
67262	ctx_            context.Context
67263	header_         http.Header
67264}
67265
67266// Patch: Updates a HttpHealthCheck resource in the specified project
67267// using the data included in the request. This method supports PATCH
67268// semantics and uses the JSON merge patch format and processing rules.
67269// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
67270func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
67271	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67272	c.project = project
67273	c.httpHealthCheck = httpHealthCheck
67274	c.httphealthcheck = httphealthcheck
67275	return c
67276}
67277
67278// RequestId sets the optional parameter "requestId": An optional
67279// request ID to identify requests. Specify a unique request ID so that
67280// if you must retry your request, the server will know to ignore the
67281// request if it has already been completed.
67282//
67283// For example, consider a situation where you make an initial request
67284// and the request times out. If you make the request again with the
67285// same request ID, the server can check if original operation with the
67286// same request ID was received, and if so, will ignore the second
67287// request. This prevents clients from accidentally creating duplicate
67288// commitments.
67289//
67290// The request ID must be a valid UUID with the exception that zero UUID
67291// is not supported (00000000-0000-0000-0000-000000000000).
67292func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
67293	c.urlParams_.Set("requestId", requestId)
67294	return c
67295}
67296
67297// Fields allows partial responses to be retrieved. See
67298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67299// for more information.
67300func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
67301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67302	return c
67303}
67304
67305// Context sets the context to be used in this call's Do method. Any
67306// pending HTTP request will be aborted if the provided context is
67307// canceled.
67308func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
67309	c.ctx_ = ctx
67310	return c
67311}
67312
67313// Header returns an http.Header that can be modified by the caller to
67314// add HTTP headers to the request.
67315func (c *HttpHealthChecksPatchCall) Header() http.Header {
67316	if c.header_ == nil {
67317		c.header_ = make(http.Header)
67318	}
67319	return c.header_
67320}
67321
67322func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
67323	reqHeaders := make(http.Header)
67324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67325	for k, v := range c.header_ {
67326		reqHeaders[k] = v
67327	}
67328	reqHeaders.Set("User-Agent", c.s.userAgent())
67329	var body io.Reader = nil
67330	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
67331	if err != nil {
67332		return nil, err
67333	}
67334	reqHeaders.Set("Content-Type", "application/json")
67335	c.urlParams_.Set("alt", alt)
67336	c.urlParams_.Set("prettyPrint", "false")
67337	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
67338	urls += "?" + c.urlParams_.Encode()
67339	req, err := http.NewRequest("PATCH", urls, body)
67340	if err != nil {
67341		return nil, err
67342	}
67343	req.Header = reqHeaders
67344	googleapi.Expand(req.URL, map[string]string{
67345		"project":         c.project,
67346		"httpHealthCheck": c.httpHealthCheck,
67347	})
67348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67349}
67350
67351// Do executes the "compute.httpHealthChecks.patch" call.
67352// Exactly one of *Operation or error will be non-nil. Any non-2xx
67353// status code is an error. Response headers are in either
67354// *Operation.ServerResponse.Header or (if a response was returned at
67355// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67356// to check whether the returned error was because
67357// http.StatusNotModified was returned.
67358func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67359	gensupport.SetOptions(c.urlParams_, opts...)
67360	res, err := c.doRequest("json")
67361	if res != nil && res.StatusCode == http.StatusNotModified {
67362		if res.Body != nil {
67363			res.Body.Close()
67364		}
67365		return nil, &googleapi.Error{
67366			Code:   res.StatusCode,
67367			Header: res.Header,
67368		}
67369	}
67370	if err != nil {
67371		return nil, err
67372	}
67373	defer googleapi.CloseBody(res)
67374	if err := googleapi.CheckResponse(res); err != nil {
67375		return nil, err
67376	}
67377	ret := &Operation{
67378		ServerResponse: googleapi.ServerResponse{
67379			Header:         res.Header,
67380			HTTPStatusCode: res.StatusCode,
67381		},
67382	}
67383	target := &ret
67384	if err := gensupport.DecodeResponse(target, res); err != nil {
67385		return nil, err
67386	}
67387	return ret, nil
67388	// {
67389	//   "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.",
67390	//   "httpMethod": "PATCH",
67391	//   "id": "compute.httpHealthChecks.patch",
67392	//   "parameterOrder": [
67393	//     "project",
67394	//     "httpHealthCheck"
67395	//   ],
67396	//   "parameters": {
67397	//     "httpHealthCheck": {
67398	//       "description": "Name of the HttpHealthCheck resource to patch.",
67399	//       "location": "path",
67400	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67401	//       "required": true,
67402	//       "type": "string"
67403	//     },
67404	//     "project": {
67405	//       "description": "Project ID for this request.",
67406	//       "location": "path",
67407	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67408	//       "required": true,
67409	//       "type": "string"
67410	//     },
67411	//     "requestId": {
67412	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67413	//       "location": "query",
67414	//       "type": "string"
67415	//     }
67416	//   },
67417	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
67418	//   "request": {
67419	//     "$ref": "HttpHealthCheck"
67420	//   },
67421	//   "response": {
67422	//     "$ref": "Operation"
67423	//   },
67424	//   "scopes": [
67425	//     "https://www.googleapis.com/auth/cloud-platform",
67426	//     "https://www.googleapis.com/auth/compute"
67427	//   ]
67428	// }
67429
67430}
67431
67432// method id "compute.httpHealthChecks.testIamPermissions":
67433
67434type HttpHealthChecksTestIamPermissionsCall struct {
67435	s                      *Service
67436	project                string
67437	resource               string
67438	testpermissionsrequest *TestPermissionsRequest
67439	urlParams_             gensupport.URLParams
67440	ctx_                   context.Context
67441	header_                http.Header
67442}
67443
67444// TestIamPermissions: Returns permissions that a caller has on the
67445// specified resource.
67446func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall {
67447	c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67448	c.project = project
67449	c.resource = resource
67450	c.testpermissionsrequest = testpermissionsrequest
67451	return c
67452}
67453
67454// Fields allows partial responses to be retrieved. See
67455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67456// for more information.
67457func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall {
67458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67459	return c
67460}
67461
67462// Context sets the context to be used in this call's Do method. Any
67463// pending HTTP request will be aborted if the provided context is
67464// canceled.
67465func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall {
67466	c.ctx_ = ctx
67467	return c
67468}
67469
67470// Header returns an http.Header that can be modified by the caller to
67471// add HTTP headers to the request.
67472func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header {
67473	if c.header_ == nil {
67474		c.header_ = make(http.Header)
67475	}
67476	return c.header_
67477}
67478
67479func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
67480	reqHeaders := make(http.Header)
67481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67482	for k, v := range c.header_ {
67483		reqHeaders[k] = v
67484	}
67485	reqHeaders.Set("User-Agent", c.s.userAgent())
67486	var body io.Reader = nil
67487	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
67488	if err != nil {
67489		return nil, err
67490	}
67491	reqHeaders.Set("Content-Type", "application/json")
67492	c.urlParams_.Set("alt", alt)
67493	c.urlParams_.Set("prettyPrint", "false")
67494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{resource}/testIamPermissions")
67495	urls += "?" + c.urlParams_.Encode()
67496	req, err := http.NewRequest("POST", urls, body)
67497	if err != nil {
67498		return nil, err
67499	}
67500	req.Header = reqHeaders
67501	googleapi.Expand(req.URL, map[string]string{
67502		"project":  c.project,
67503		"resource": c.resource,
67504	})
67505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67506}
67507
67508// Do executes the "compute.httpHealthChecks.testIamPermissions" call.
67509// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
67510// non-2xx status code is an error. Response headers are in either
67511// *TestPermissionsResponse.ServerResponse.Header or (if a response was
67512// returned at all) in error.(*googleapi.Error).Header. Use
67513// googleapi.IsNotModified to check whether the returned error was
67514// because http.StatusNotModified was returned.
67515func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
67516	gensupport.SetOptions(c.urlParams_, opts...)
67517	res, err := c.doRequest("json")
67518	if res != nil && res.StatusCode == http.StatusNotModified {
67519		if res.Body != nil {
67520			res.Body.Close()
67521		}
67522		return nil, &googleapi.Error{
67523			Code:   res.StatusCode,
67524			Header: res.Header,
67525		}
67526	}
67527	if err != nil {
67528		return nil, err
67529	}
67530	defer googleapi.CloseBody(res)
67531	if err := googleapi.CheckResponse(res); err != nil {
67532		return nil, err
67533	}
67534	ret := &TestPermissionsResponse{
67535		ServerResponse: googleapi.ServerResponse{
67536			Header:         res.Header,
67537			HTTPStatusCode: res.StatusCode,
67538		},
67539	}
67540	target := &ret
67541	if err := gensupport.DecodeResponse(target, res); err != nil {
67542		return nil, err
67543	}
67544	return ret, nil
67545	// {
67546	//   "description": "Returns permissions that a caller has on the specified resource.",
67547	//   "httpMethod": "POST",
67548	//   "id": "compute.httpHealthChecks.testIamPermissions",
67549	//   "parameterOrder": [
67550	//     "project",
67551	//     "resource"
67552	//   ],
67553	//   "parameters": {
67554	//     "project": {
67555	//       "description": "Project ID for this request.",
67556	//       "location": "path",
67557	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67558	//       "required": true,
67559	//       "type": "string"
67560	//     },
67561	//     "resource": {
67562	//       "description": "Name or id of the resource for this request.",
67563	//       "location": "path",
67564	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67565	//       "required": true,
67566	//       "type": "string"
67567	//     }
67568	//   },
67569	//   "path": "{project}/global/httpHealthChecks/{resource}/testIamPermissions",
67570	//   "request": {
67571	//     "$ref": "TestPermissionsRequest"
67572	//   },
67573	//   "response": {
67574	//     "$ref": "TestPermissionsResponse"
67575	//   },
67576	//   "scopes": [
67577	//     "https://www.googleapis.com/auth/cloud-platform",
67578	//     "https://www.googleapis.com/auth/compute",
67579	//     "https://www.googleapis.com/auth/compute.readonly"
67580	//   ]
67581	// }
67582
67583}
67584
67585// method id "compute.httpHealthChecks.update":
67586
67587type HttpHealthChecksUpdateCall struct {
67588	s               *Service
67589	project         string
67590	httpHealthCheck string
67591	httphealthcheck *HttpHealthCheck
67592	urlParams_      gensupport.URLParams
67593	ctx_            context.Context
67594	header_         http.Header
67595}
67596
67597// Update: Updates a HttpHealthCheck resource in the specified project
67598// using the data included in the request.
67599// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
67600func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
67601	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67602	c.project = project
67603	c.httpHealthCheck = httpHealthCheck
67604	c.httphealthcheck = httphealthcheck
67605	return c
67606}
67607
67608// RequestId sets the optional parameter "requestId": An optional
67609// request ID to identify requests. Specify a unique request ID so that
67610// if you must retry your request, the server will know to ignore the
67611// request if it has already been completed.
67612//
67613// For example, consider a situation where you make an initial request
67614// and the request times out. If you make the request again with the
67615// same request ID, the server can check if original operation with the
67616// same request ID was received, and if so, will ignore the second
67617// request. This prevents clients from accidentally creating duplicate
67618// commitments.
67619//
67620// The request ID must be a valid UUID with the exception that zero UUID
67621// is not supported (00000000-0000-0000-0000-000000000000).
67622func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
67623	c.urlParams_.Set("requestId", requestId)
67624	return c
67625}
67626
67627// Fields allows partial responses to be retrieved. See
67628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67629// for more information.
67630func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
67631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67632	return c
67633}
67634
67635// Context sets the context to be used in this call's Do method. Any
67636// pending HTTP request will be aborted if the provided context is
67637// canceled.
67638func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
67639	c.ctx_ = ctx
67640	return c
67641}
67642
67643// Header returns an http.Header that can be modified by the caller to
67644// add HTTP headers to the request.
67645func (c *HttpHealthChecksUpdateCall) Header() http.Header {
67646	if c.header_ == nil {
67647		c.header_ = make(http.Header)
67648	}
67649	return c.header_
67650}
67651
67652func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
67653	reqHeaders := make(http.Header)
67654	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67655	for k, v := range c.header_ {
67656		reqHeaders[k] = v
67657	}
67658	reqHeaders.Set("User-Agent", c.s.userAgent())
67659	var body io.Reader = nil
67660	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
67661	if err != nil {
67662		return nil, err
67663	}
67664	reqHeaders.Set("Content-Type", "application/json")
67665	c.urlParams_.Set("alt", alt)
67666	c.urlParams_.Set("prettyPrint", "false")
67667	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
67668	urls += "?" + c.urlParams_.Encode()
67669	req, err := http.NewRequest("PUT", urls, body)
67670	if err != nil {
67671		return nil, err
67672	}
67673	req.Header = reqHeaders
67674	googleapi.Expand(req.URL, map[string]string{
67675		"project":         c.project,
67676		"httpHealthCheck": c.httpHealthCheck,
67677	})
67678	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67679}
67680
67681// Do executes the "compute.httpHealthChecks.update" call.
67682// Exactly one of *Operation or error will be non-nil. Any non-2xx
67683// status code is an error. Response headers are in either
67684// *Operation.ServerResponse.Header or (if a response was returned at
67685// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67686// to check whether the returned error was because
67687// http.StatusNotModified was returned.
67688func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67689	gensupport.SetOptions(c.urlParams_, opts...)
67690	res, err := c.doRequest("json")
67691	if res != nil && res.StatusCode == http.StatusNotModified {
67692		if res.Body != nil {
67693			res.Body.Close()
67694		}
67695		return nil, &googleapi.Error{
67696			Code:   res.StatusCode,
67697			Header: res.Header,
67698		}
67699	}
67700	if err != nil {
67701		return nil, err
67702	}
67703	defer googleapi.CloseBody(res)
67704	if err := googleapi.CheckResponse(res); err != nil {
67705		return nil, err
67706	}
67707	ret := &Operation{
67708		ServerResponse: googleapi.ServerResponse{
67709			Header:         res.Header,
67710			HTTPStatusCode: res.StatusCode,
67711		},
67712	}
67713	target := &ret
67714	if err := gensupport.DecodeResponse(target, res); err != nil {
67715		return nil, err
67716	}
67717	return ret, nil
67718	// {
67719	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
67720	//   "httpMethod": "PUT",
67721	//   "id": "compute.httpHealthChecks.update",
67722	//   "parameterOrder": [
67723	//     "project",
67724	//     "httpHealthCheck"
67725	//   ],
67726	//   "parameters": {
67727	//     "httpHealthCheck": {
67728	//       "description": "Name of the HttpHealthCheck resource to update.",
67729	//       "location": "path",
67730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67731	//       "required": true,
67732	//       "type": "string"
67733	//     },
67734	//     "project": {
67735	//       "description": "Project ID for this request.",
67736	//       "location": "path",
67737	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67738	//       "required": true,
67739	//       "type": "string"
67740	//     },
67741	//     "requestId": {
67742	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67743	//       "location": "query",
67744	//       "type": "string"
67745	//     }
67746	//   },
67747	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
67748	//   "request": {
67749	//     "$ref": "HttpHealthCheck"
67750	//   },
67751	//   "response": {
67752	//     "$ref": "Operation"
67753	//   },
67754	//   "scopes": [
67755	//     "https://www.googleapis.com/auth/cloud-platform",
67756	//     "https://www.googleapis.com/auth/compute"
67757	//   ]
67758	// }
67759
67760}
67761
67762// method id "compute.httpsHealthChecks.delete":
67763
67764type HttpsHealthChecksDeleteCall struct {
67765	s                *Service
67766	project          string
67767	httpsHealthCheck string
67768	urlParams_       gensupport.URLParams
67769	ctx_             context.Context
67770	header_          http.Header
67771}
67772
67773// Delete: Deletes the specified HttpsHealthCheck resource.
67774func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
67775	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67776	c.project = project
67777	c.httpsHealthCheck = httpsHealthCheck
67778	return c
67779}
67780
67781// RequestId sets the optional parameter "requestId": An optional
67782// request ID to identify requests. Specify a unique request ID so that
67783// if you must retry your request, the server will know to ignore the
67784// request if it has already been completed.
67785//
67786// For example, consider a situation where you make an initial request
67787// and the request times out. If you make the request again with the
67788// same request ID, the server can check if original operation with the
67789// same request ID was received, and if so, will ignore the second
67790// request. This prevents clients from accidentally creating duplicate
67791// commitments.
67792//
67793// The request ID must be a valid UUID with the exception that zero UUID
67794// is not supported (00000000-0000-0000-0000-000000000000).
67795func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
67796	c.urlParams_.Set("requestId", requestId)
67797	return c
67798}
67799
67800// Fields allows partial responses to be retrieved. See
67801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67802// for more information.
67803func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
67804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67805	return c
67806}
67807
67808// Context sets the context to be used in this call's Do method. Any
67809// pending HTTP request will be aborted if the provided context is
67810// canceled.
67811func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
67812	c.ctx_ = ctx
67813	return c
67814}
67815
67816// Header returns an http.Header that can be modified by the caller to
67817// add HTTP headers to the request.
67818func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
67819	if c.header_ == nil {
67820		c.header_ = make(http.Header)
67821	}
67822	return c.header_
67823}
67824
67825func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
67826	reqHeaders := make(http.Header)
67827	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67828	for k, v := range c.header_ {
67829		reqHeaders[k] = v
67830	}
67831	reqHeaders.Set("User-Agent", c.s.userAgent())
67832	var body io.Reader = nil
67833	c.urlParams_.Set("alt", alt)
67834	c.urlParams_.Set("prettyPrint", "false")
67835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
67836	urls += "?" + c.urlParams_.Encode()
67837	req, err := http.NewRequest("DELETE", urls, body)
67838	if err != nil {
67839		return nil, err
67840	}
67841	req.Header = reqHeaders
67842	googleapi.Expand(req.URL, map[string]string{
67843		"project":          c.project,
67844		"httpsHealthCheck": c.httpsHealthCheck,
67845	})
67846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67847}
67848
67849// Do executes the "compute.httpsHealthChecks.delete" call.
67850// Exactly one of *Operation or error will be non-nil. Any non-2xx
67851// status code is an error. Response headers are in either
67852// *Operation.ServerResponse.Header or (if a response was returned at
67853// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67854// to check whether the returned error was because
67855// http.StatusNotModified was returned.
67856func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67857	gensupport.SetOptions(c.urlParams_, opts...)
67858	res, err := c.doRequest("json")
67859	if res != nil && res.StatusCode == http.StatusNotModified {
67860		if res.Body != nil {
67861			res.Body.Close()
67862		}
67863		return nil, &googleapi.Error{
67864			Code:   res.StatusCode,
67865			Header: res.Header,
67866		}
67867	}
67868	if err != nil {
67869		return nil, err
67870	}
67871	defer googleapi.CloseBody(res)
67872	if err := googleapi.CheckResponse(res); err != nil {
67873		return nil, err
67874	}
67875	ret := &Operation{
67876		ServerResponse: googleapi.ServerResponse{
67877			Header:         res.Header,
67878			HTTPStatusCode: res.StatusCode,
67879		},
67880	}
67881	target := &ret
67882	if err := gensupport.DecodeResponse(target, res); err != nil {
67883		return nil, err
67884	}
67885	return ret, nil
67886	// {
67887	//   "description": "Deletes the specified HttpsHealthCheck resource.",
67888	//   "httpMethod": "DELETE",
67889	//   "id": "compute.httpsHealthChecks.delete",
67890	//   "parameterOrder": [
67891	//     "project",
67892	//     "httpsHealthCheck"
67893	//   ],
67894	//   "parameters": {
67895	//     "httpsHealthCheck": {
67896	//       "description": "Name of the HttpsHealthCheck resource to delete.",
67897	//       "location": "path",
67898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67899	//       "required": true,
67900	//       "type": "string"
67901	//     },
67902	//     "project": {
67903	//       "description": "Project ID for this request.",
67904	//       "location": "path",
67905	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67906	//       "required": true,
67907	//       "type": "string"
67908	//     },
67909	//     "requestId": {
67910	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67911	//       "location": "query",
67912	//       "type": "string"
67913	//     }
67914	//   },
67915	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
67916	//   "response": {
67917	//     "$ref": "Operation"
67918	//   },
67919	//   "scopes": [
67920	//     "https://www.googleapis.com/auth/cloud-platform",
67921	//     "https://www.googleapis.com/auth/compute"
67922	//   ]
67923	// }
67924
67925}
67926
67927// method id "compute.httpsHealthChecks.get":
67928
67929type HttpsHealthChecksGetCall struct {
67930	s                *Service
67931	project          string
67932	httpsHealthCheck string
67933	urlParams_       gensupport.URLParams
67934	ifNoneMatch_     string
67935	ctx_             context.Context
67936	header_          http.Header
67937}
67938
67939// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
67940// available HTTPS health checks by making a list() request.
67941func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
67942	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67943	c.project = project
67944	c.httpsHealthCheck = httpsHealthCheck
67945	return c
67946}
67947
67948// Fields allows partial responses to be retrieved. See
67949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67950// for more information.
67951func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
67952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67953	return c
67954}
67955
67956// IfNoneMatch sets the optional parameter which makes the operation
67957// fail if the object's ETag matches the given value. This is useful for
67958// getting updates only after the object has changed since the last
67959// request. Use googleapi.IsNotModified to check whether the response
67960// error from Do is the result of In-None-Match.
67961func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
67962	c.ifNoneMatch_ = entityTag
67963	return c
67964}
67965
67966// Context sets the context to be used in this call's Do method. Any
67967// pending HTTP request will be aborted if the provided context is
67968// canceled.
67969func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
67970	c.ctx_ = ctx
67971	return c
67972}
67973
67974// Header returns an http.Header that can be modified by the caller to
67975// add HTTP headers to the request.
67976func (c *HttpsHealthChecksGetCall) Header() http.Header {
67977	if c.header_ == nil {
67978		c.header_ = make(http.Header)
67979	}
67980	return c.header_
67981}
67982
67983func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
67984	reqHeaders := make(http.Header)
67985	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
67986	for k, v := range c.header_ {
67987		reqHeaders[k] = v
67988	}
67989	reqHeaders.Set("User-Agent", c.s.userAgent())
67990	if c.ifNoneMatch_ != "" {
67991		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67992	}
67993	var body io.Reader = nil
67994	c.urlParams_.Set("alt", alt)
67995	c.urlParams_.Set("prettyPrint", "false")
67996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
67997	urls += "?" + c.urlParams_.Encode()
67998	req, err := http.NewRequest("GET", urls, body)
67999	if err != nil {
68000		return nil, err
68001	}
68002	req.Header = reqHeaders
68003	googleapi.Expand(req.URL, map[string]string{
68004		"project":          c.project,
68005		"httpsHealthCheck": c.httpsHealthCheck,
68006	})
68007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68008}
68009
68010// Do executes the "compute.httpsHealthChecks.get" call.
68011// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
68012// non-2xx status code is an error. Response headers are in either
68013// *HttpsHealthCheck.ServerResponse.Header or (if a response was
68014// returned at all) in error.(*googleapi.Error).Header. Use
68015// googleapi.IsNotModified to check whether the returned error was
68016// because http.StatusNotModified was returned.
68017func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
68018	gensupport.SetOptions(c.urlParams_, opts...)
68019	res, err := c.doRequest("json")
68020	if res != nil && res.StatusCode == http.StatusNotModified {
68021		if res.Body != nil {
68022			res.Body.Close()
68023		}
68024		return nil, &googleapi.Error{
68025			Code:   res.StatusCode,
68026			Header: res.Header,
68027		}
68028	}
68029	if err != nil {
68030		return nil, err
68031	}
68032	defer googleapi.CloseBody(res)
68033	if err := googleapi.CheckResponse(res); err != nil {
68034		return nil, err
68035	}
68036	ret := &HttpsHealthCheck{
68037		ServerResponse: googleapi.ServerResponse{
68038			Header:         res.Header,
68039			HTTPStatusCode: res.StatusCode,
68040		},
68041	}
68042	target := &ret
68043	if err := gensupport.DecodeResponse(target, res); err != nil {
68044		return nil, err
68045	}
68046	return ret, nil
68047	// {
68048	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
68049	//   "httpMethod": "GET",
68050	//   "id": "compute.httpsHealthChecks.get",
68051	//   "parameterOrder": [
68052	//     "project",
68053	//     "httpsHealthCheck"
68054	//   ],
68055	//   "parameters": {
68056	//     "httpsHealthCheck": {
68057	//       "description": "Name of the HttpsHealthCheck resource to return.",
68058	//       "location": "path",
68059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68060	//       "required": true,
68061	//       "type": "string"
68062	//     },
68063	//     "project": {
68064	//       "description": "Project ID for this request.",
68065	//       "location": "path",
68066	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68067	//       "required": true,
68068	//       "type": "string"
68069	//     }
68070	//   },
68071	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
68072	//   "response": {
68073	//     "$ref": "HttpsHealthCheck"
68074	//   },
68075	//   "scopes": [
68076	//     "https://www.googleapis.com/auth/cloud-platform",
68077	//     "https://www.googleapis.com/auth/compute",
68078	//     "https://www.googleapis.com/auth/compute.readonly"
68079	//   ]
68080	// }
68081
68082}
68083
68084// method id "compute.httpsHealthChecks.insert":
68085
68086type HttpsHealthChecksInsertCall struct {
68087	s                *Service
68088	project          string
68089	httpshealthcheck *HttpsHealthCheck
68090	urlParams_       gensupport.URLParams
68091	ctx_             context.Context
68092	header_          http.Header
68093}
68094
68095// Insert: Creates a HttpsHealthCheck resource in the specified project
68096// using the data included in the request.
68097func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
68098	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68099	c.project = project
68100	c.httpshealthcheck = httpshealthcheck
68101	return c
68102}
68103
68104// RequestId sets the optional parameter "requestId": An optional
68105// request ID to identify requests. Specify a unique request ID so that
68106// if you must retry your request, the server will know to ignore the
68107// request if it has already been completed.
68108//
68109// For example, consider a situation where you make an initial request
68110// and the request times out. If you make the request again with the
68111// same request ID, the server can check if original operation with the
68112// same request ID was received, and if so, will ignore the second
68113// request. This prevents clients from accidentally creating duplicate
68114// commitments.
68115//
68116// The request ID must be a valid UUID with the exception that zero UUID
68117// is not supported (00000000-0000-0000-0000-000000000000).
68118func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
68119	c.urlParams_.Set("requestId", requestId)
68120	return c
68121}
68122
68123// Fields allows partial responses to be retrieved. See
68124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68125// for more information.
68126func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
68127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68128	return c
68129}
68130
68131// Context sets the context to be used in this call's Do method. Any
68132// pending HTTP request will be aborted if the provided context is
68133// canceled.
68134func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
68135	c.ctx_ = ctx
68136	return c
68137}
68138
68139// Header returns an http.Header that can be modified by the caller to
68140// add HTTP headers to the request.
68141func (c *HttpsHealthChecksInsertCall) Header() http.Header {
68142	if c.header_ == nil {
68143		c.header_ = make(http.Header)
68144	}
68145	return c.header_
68146}
68147
68148func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
68149	reqHeaders := make(http.Header)
68150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68151	for k, v := range c.header_ {
68152		reqHeaders[k] = v
68153	}
68154	reqHeaders.Set("User-Agent", c.s.userAgent())
68155	var body io.Reader = nil
68156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
68157	if err != nil {
68158		return nil, err
68159	}
68160	reqHeaders.Set("Content-Type", "application/json")
68161	c.urlParams_.Set("alt", alt)
68162	c.urlParams_.Set("prettyPrint", "false")
68163	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
68164	urls += "?" + c.urlParams_.Encode()
68165	req, err := http.NewRequest("POST", urls, body)
68166	if err != nil {
68167		return nil, err
68168	}
68169	req.Header = reqHeaders
68170	googleapi.Expand(req.URL, map[string]string{
68171		"project": c.project,
68172	})
68173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68174}
68175
68176// Do executes the "compute.httpsHealthChecks.insert" call.
68177// Exactly one of *Operation or error will be non-nil. Any non-2xx
68178// status code is an error. Response headers are in either
68179// *Operation.ServerResponse.Header or (if a response was returned at
68180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68181// to check whether the returned error was because
68182// http.StatusNotModified was returned.
68183func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68184	gensupport.SetOptions(c.urlParams_, opts...)
68185	res, err := c.doRequest("json")
68186	if res != nil && res.StatusCode == http.StatusNotModified {
68187		if res.Body != nil {
68188			res.Body.Close()
68189		}
68190		return nil, &googleapi.Error{
68191			Code:   res.StatusCode,
68192			Header: res.Header,
68193		}
68194	}
68195	if err != nil {
68196		return nil, err
68197	}
68198	defer googleapi.CloseBody(res)
68199	if err := googleapi.CheckResponse(res); err != nil {
68200		return nil, err
68201	}
68202	ret := &Operation{
68203		ServerResponse: googleapi.ServerResponse{
68204			Header:         res.Header,
68205			HTTPStatusCode: res.StatusCode,
68206		},
68207	}
68208	target := &ret
68209	if err := gensupport.DecodeResponse(target, res); err != nil {
68210		return nil, err
68211	}
68212	return ret, nil
68213	// {
68214	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
68215	//   "httpMethod": "POST",
68216	//   "id": "compute.httpsHealthChecks.insert",
68217	//   "parameterOrder": [
68218	//     "project"
68219	//   ],
68220	//   "parameters": {
68221	//     "project": {
68222	//       "description": "Project ID for this request.",
68223	//       "location": "path",
68224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68225	//       "required": true,
68226	//       "type": "string"
68227	//     },
68228	//     "requestId": {
68229	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68230	//       "location": "query",
68231	//       "type": "string"
68232	//     }
68233	//   },
68234	//   "path": "{project}/global/httpsHealthChecks",
68235	//   "request": {
68236	//     "$ref": "HttpsHealthCheck"
68237	//   },
68238	//   "response": {
68239	//     "$ref": "Operation"
68240	//   },
68241	//   "scopes": [
68242	//     "https://www.googleapis.com/auth/cloud-platform",
68243	//     "https://www.googleapis.com/auth/compute"
68244	//   ]
68245	// }
68246
68247}
68248
68249// method id "compute.httpsHealthChecks.list":
68250
68251type HttpsHealthChecksListCall struct {
68252	s            *Service
68253	project      string
68254	urlParams_   gensupport.URLParams
68255	ifNoneMatch_ string
68256	ctx_         context.Context
68257	header_      http.Header
68258}
68259
68260// List: Retrieves the list of HttpsHealthCheck resources available to
68261// the specified project.
68262func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
68263	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68264	c.project = project
68265	return c
68266}
68267
68268// Filter sets the optional parameter "filter": A filter expression that
68269// filters resources listed in the response. The expression must specify
68270// the field name, a comparison operator, and the value that you want to
68271// use for filtering. The value must be a string, a number, or a
68272// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68273// `<`.
68274//
68275// For example, if you are filtering Compute Engine instances, you can
68276// exclude instances named `example-instance` by specifying `name !=
68277// example-instance`.
68278//
68279// You can also filter nested fields. For example, you could specify
68280// `scheduling.automaticRestart = false` to include instances only if
68281// they are not scheduled for automatic restarts. You can use filtering
68282// on nested fields to filter based on resource labels.
68283//
68284// To filter on multiple expressions, provide each separate expression
68285// within parentheses. For example: ``` (scheduling.automaticRestart =
68286// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68287// is an `AND` expression. However, you can include `AND` and `OR`
68288// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68289// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68290// (scheduling.automaticRestart = true) ```
68291func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
68292	c.urlParams_.Set("filter", filter)
68293	return c
68294}
68295
68296// MaxResults sets the optional parameter "maxResults": The maximum
68297// number of results per page that should be returned. If the number of
68298// available results is larger than `maxResults`, Compute Engine returns
68299// a `nextPageToken` that can be used to get the next page of results in
68300// subsequent list requests. Acceptable values are `0` to `500`,
68301// inclusive. (Default: `500`)
68302func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
68303	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68304	return c
68305}
68306
68307// OrderBy sets the optional parameter "orderBy": Sorts list results by
68308// a certain order. By default, results are returned in alphanumerical
68309// order based on the resource name.
68310//
68311// You can also sort results in descending order based on the creation
68312// timestamp using `orderBy="creationTimestamp desc". This sorts
68313// results based on the `creationTimestamp` field in reverse
68314// chronological order (newest result first). Use this to sort resources
68315// like operations so that the newest operation is returned
68316// first.
68317//
68318// Currently, only sorting by `name` or `creationTimestamp desc` is
68319// supported.
68320func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
68321	c.urlParams_.Set("orderBy", orderBy)
68322	return c
68323}
68324
68325// PageToken sets the optional parameter "pageToken": Specifies a page
68326// token to use. Set `pageToken` to the `nextPageToken` returned by a
68327// previous list request to get the next page of results.
68328func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
68329	c.urlParams_.Set("pageToken", pageToken)
68330	return c
68331}
68332
68333// Fields allows partial responses to be retrieved. See
68334// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68335// for more information.
68336func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
68337	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68338	return c
68339}
68340
68341// IfNoneMatch sets the optional parameter which makes the operation
68342// fail if the object's ETag matches the given value. This is useful for
68343// getting updates only after the object has changed since the last
68344// request. Use googleapi.IsNotModified to check whether the response
68345// error from Do is the result of In-None-Match.
68346func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
68347	c.ifNoneMatch_ = entityTag
68348	return c
68349}
68350
68351// Context sets the context to be used in this call's Do method. Any
68352// pending HTTP request will be aborted if the provided context is
68353// canceled.
68354func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
68355	c.ctx_ = ctx
68356	return c
68357}
68358
68359// Header returns an http.Header that can be modified by the caller to
68360// add HTTP headers to the request.
68361func (c *HttpsHealthChecksListCall) Header() http.Header {
68362	if c.header_ == nil {
68363		c.header_ = make(http.Header)
68364	}
68365	return c.header_
68366}
68367
68368func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
68369	reqHeaders := make(http.Header)
68370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68371	for k, v := range c.header_ {
68372		reqHeaders[k] = v
68373	}
68374	reqHeaders.Set("User-Agent", c.s.userAgent())
68375	if c.ifNoneMatch_ != "" {
68376		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68377	}
68378	var body io.Reader = nil
68379	c.urlParams_.Set("alt", alt)
68380	c.urlParams_.Set("prettyPrint", "false")
68381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
68382	urls += "?" + c.urlParams_.Encode()
68383	req, err := http.NewRequest("GET", urls, body)
68384	if err != nil {
68385		return nil, err
68386	}
68387	req.Header = reqHeaders
68388	googleapi.Expand(req.URL, map[string]string{
68389		"project": c.project,
68390	})
68391	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68392}
68393
68394// Do executes the "compute.httpsHealthChecks.list" call.
68395// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
68396// non-2xx status code is an error. Response headers are in either
68397// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
68398// returned at all) in error.(*googleapi.Error).Header. Use
68399// googleapi.IsNotModified to check whether the returned error was
68400// because http.StatusNotModified was returned.
68401func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
68402	gensupport.SetOptions(c.urlParams_, opts...)
68403	res, err := c.doRequest("json")
68404	if res != nil && res.StatusCode == http.StatusNotModified {
68405		if res.Body != nil {
68406			res.Body.Close()
68407		}
68408		return nil, &googleapi.Error{
68409			Code:   res.StatusCode,
68410			Header: res.Header,
68411		}
68412	}
68413	if err != nil {
68414		return nil, err
68415	}
68416	defer googleapi.CloseBody(res)
68417	if err := googleapi.CheckResponse(res); err != nil {
68418		return nil, err
68419	}
68420	ret := &HttpsHealthCheckList{
68421		ServerResponse: googleapi.ServerResponse{
68422			Header:         res.Header,
68423			HTTPStatusCode: res.StatusCode,
68424		},
68425	}
68426	target := &ret
68427	if err := gensupport.DecodeResponse(target, res); err != nil {
68428		return nil, err
68429	}
68430	return ret, nil
68431	// {
68432	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
68433	//   "httpMethod": "GET",
68434	//   "id": "compute.httpsHealthChecks.list",
68435	//   "parameterOrder": [
68436	//     "project"
68437	//   ],
68438	//   "parameters": {
68439	//     "filter": {
68440	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
68441	//       "location": "query",
68442	//       "type": "string"
68443	//     },
68444	//     "maxResults": {
68445	//       "default": "500",
68446	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
68447	//       "format": "uint32",
68448	//       "location": "query",
68449	//       "minimum": "0",
68450	//       "type": "integer"
68451	//     },
68452	//     "orderBy": {
68453	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
68454	//       "location": "query",
68455	//       "type": "string"
68456	//     },
68457	//     "pageToken": {
68458	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
68459	//       "location": "query",
68460	//       "type": "string"
68461	//     },
68462	//     "project": {
68463	//       "description": "Project ID for this request.",
68464	//       "location": "path",
68465	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68466	//       "required": true,
68467	//       "type": "string"
68468	//     }
68469	//   },
68470	//   "path": "{project}/global/httpsHealthChecks",
68471	//   "response": {
68472	//     "$ref": "HttpsHealthCheckList"
68473	//   },
68474	//   "scopes": [
68475	//     "https://www.googleapis.com/auth/cloud-platform",
68476	//     "https://www.googleapis.com/auth/compute",
68477	//     "https://www.googleapis.com/auth/compute.readonly"
68478	//   ]
68479	// }
68480
68481}
68482
68483// Pages invokes f for each page of results.
68484// A non-nil error returned from f will halt the iteration.
68485// The provided context supersedes any context provided to the Context method.
68486func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
68487	c.ctx_ = ctx
68488	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68489	for {
68490		x, err := c.Do()
68491		if err != nil {
68492			return err
68493		}
68494		if err := f(x); err != nil {
68495			return err
68496		}
68497		if x.NextPageToken == "" {
68498			return nil
68499		}
68500		c.PageToken(x.NextPageToken)
68501	}
68502}
68503
68504// method id "compute.httpsHealthChecks.patch":
68505
68506type HttpsHealthChecksPatchCall struct {
68507	s                *Service
68508	project          string
68509	httpsHealthCheck string
68510	httpshealthcheck *HttpsHealthCheck
68511	urlParams_       gensupport.URLParams
68512	ctx_             context.Context
68513	header_          http.Header
68514}
68515
68516// Patch: Updates a HttpsHealthCheck resource in the specified project
68517// using the data included in the request. This method supports PATCH
68518// semantics and uses the JSON merge patch format and processing rules.
68519func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
68520	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68521	c.project = project
68522	c.httpsHealthCheck = httpsHealthCheck
68523	c.httpshealthcheck = httpshealthcheck
68524	return c
68525}
68526
68527// RequestId sets the optional parameter "requestId": An optional
68528// request ID to identify requests. Specify a unique request ID so that
68529// if you must retry your request, the server will know to ignore the
68530// request if it has already been completed.
68531//
68532// For example, consider a situation where you make an initial request
68533// and the request times out. If you make the request again with the
68534// same request ID, the server can check if original operation with the
68535// same request ID was received, and if so, will ignore the second
68536// request. This prevents clients from accidentally creating duplicate
68537// commitments.
68538//
68539// The request ID must be a valid UUID with the exception that zero UUID
68540// is not supported (00000000-0000-0000-0000-000000000000).
68541func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
68542	c.urlParams_.Set("requestId", requestId)
68543	return c
68544}
68545
68546// Fields allows partial responses to be retrieved. See
68547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68548// for more information.
68549func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
68550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68551	return c
68552}
68553
68554// Context sets the context to be used in this call's Do method. Any
68555// pending HTTP request will be aborted if the provided context is
68556// canceled.
68557func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
68558	c.ctx_ = ctx
68559	return c
68560}
68561
68562// Header returns an http.Header that can be modified by the caller to
68563// add HTTP headers to the request.
68564func (c *HttpsHealthChecksPatchCall) Header() http.Header {
68565	if c.header_ == nil {
68566		c.header_ = make(http.Header)
68567	}
68568	return c.header_
68569}
68570
68571func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
68572	reqHeaders := make(http.Header)
68573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68574	for k, v := range c.header_ {
68575		reqHeaders[k] = v
68576	}
68577	reqHeaders.Set("User-Agent", c.s.userAgent())
68578	var body io.Reader = nil
68579	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
68580	if err != nil {
68581		return nil, err
68582	}
68583	reqHeaders.Set("Content-Type", "application/json")
68584	c.urlParams_.Set("alt", alt)
68585	c.urlParams_.Set("prettyPrint", "false")
68586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
68587	urls += "?" + c.urlParams_.Encode()
68588	req, err := http.NewRequest("PATCH", urls, body)
68589	if err != nil {
68590		return nil, err
68591	}
68592	req.Header = reqHeaders
68593	googleapi.Expand(req.URL, map[string]string{
68594		"project":          c.project,
68595		"httpsHealthCheck": c.httpsHealthCheck,
68596	})
68597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68598}
68599
68600// Do executes the "compute.httpsHealthChecks.patch" call.
68601// Exactly one of *Operation or error will be non-nil. Any non-2xx
68602// status code is an error. Response headers are in either
68603// *Operation.ServerResponse.Header or (if a response was returned at
68604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68605// to check whether the returned error was because
68606// http.StatusNotModified was returned.
68607func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68608	gensupport.SetOptions(c.urlParams_, opts...)
68609	res, err := c.doRequest("json")
68610	if res != nil && res.StatusCode == http.StatusNotModified {
68611		if res.Body != nil {
68612			res.Body.Close()
68613		}
68614		return nil, &googleapi.Error{
68615			Code:   res.StatusCode,
68616			Header: res.Header,
68617		}
68618	}
68619	if err != nil {
68620		return nil, err
68621	}
68622	defer googleapi.CloseBody(res)
68623	if err := googleapi.CheckResponse(res); err != nil {
68624		return nil, err
68625	}
68626	ret := &Operation{
68627		ServerResponse: googleapi.ServerResponse{
68628			Header:         res.Header,
68629			HTTPStatusCode: res.StatusCode,
68630		},
68631	}
68632	target := &ret
68633	if err := gensupport.DecodeResponse(target, res); err != nil {
68634		return nil, err
68635	}
68636	return ret, nil
68637	// {
68638	//   "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.",
68639	//   "httpMethod": "PATCH",
68640	//   "id": "compute.httpsHealthChecks.patch",
68641	//   "parameterOrder": [
68642	//     "project",
68643	//     "httpsHealthCheck"
68644	//   ],
68645	//   "parameters": {
68646	//     "httpsHealthCheck": {
68647	//       "description": "Name of the HttpsHealthCheck resource to patch.",
68648	//       "location": "path",
68649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68650	//       "required": true,
68651	//       "type": "string"
68652	//     },
68653	//     "project": {
68654	//       "description": "Project ID for this request.",
68655	//       "location": "path",
68656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68657	//       "required": true,
68658	//       "type": "string"
68659	//     },
68660	//     "requestId": {
68661	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68662	//       "location": "query",
68663	//       "type": "string"
68664	//     }
68665	//   },
68666	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
68667	//   "request": {
68668	//     "$ref": "HttpsHealthCheck"
68669	//   },
68670	//   "response": {
68671	//     "$ref": "Operation"
68672	//   },
68673	//   "scopes": [
68674	//     "https://www.googleapis.com/auth/cloud-platform",
68675	//     "https://www.googleapis.com/auth/compute"
68676	//   ]
68677	// }
68678
68679}
68680
68681// method id "compute.httpsHealthChecks.testIamPermissions":
68682
68683type HttpsHealthChecksTestIamPermissionsCall struct {
68684	s                      *Service
68685	project                string
68686	resource               string
68687	testpermissionsrequest *TestPermissionsRequest
68688	urlParams_             gensupport.URLParams
68689	ctx_                   context.Context
68690	header_                http.Header
68691}
68692
68693// TestIamPermissions: Returns permissions that a caller has on the
68694// specified resource.
68695func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall {
68696	c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68697	c.project = project
68698	c.resource = resource
68699	c.testpermissionsrequest = testpermissionsrequest
68700	return c
68701}
68702
68703// Fields allows partial responses to be retrieved. See
68704// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68705// for more information.
68706func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall {
68707	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68708	return c
68709}
68710
68711// Context sets the context to be used in this call's Do method. Any
68712// pending HTTP request will be aborted if the provided context is
68713// canceled.
68714func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall {
68715	c.ctx_ = ctx
68716	return c
68717}
68718
68719// Header returns an http.Header that can be modified by the caller to
68720// add HTTP headers to the request.
68721func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header {
68722	if c.header_ == nil {
68723		c.header_ = make(http.Header)
68724	}
68725	return c.header_
68726}
68727
68728func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
68729	reqHeaders := make(http.Header)
68730	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68731	for k, v := range c.header_ {
68732		reqHeaders[k] = v
68733	}
68734	reqHeaders.Set("User-Agent", c.s.userAgent())
68735	var body io.Reader = nil
68736	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
68737	if err != nil {
68738		return nil, err
68739	}
68740	reqHeaders.Set("Content-Type", "application/json")
68741	c.urlParams_.Set("alt", alt)
68742	c.urlParams_.Set("prettyPrint", "false")
68743	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{resource}/testIamPermissions")
68744	urls += "?" + c.urlParams_.Encode()
68745	req, err := http.NewRequest("POST", urls, body)
68746	if err != nil {
68747		return nil, err
68748	}
68749	req.Header = reqHeaders
68750	googleapi.Expand(req.URL, map[string]string{
68751		"project":  c.project,
68752		"resource": c.resource,
68753	})
68754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68755}
68756
68757// Do executes the "compute.httpsHealthChecks.testIamPermissions" call.
68758// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
68759// non-2xx status code is an error. Response headers are in either
68760// *TestPermissionsResponse.ServerResponse.Header or (if a response was
68761// returned at all) in error.(*googleapi.Error).Header. Use
68762// googleapi.IsNotModified to check whether the returned error was
68763// because http.StatusNotModified was returned.
68764func (c *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
68765	gensupport.SetOptions(c.urlParams_, opts...)
68766	res, err := c.doRequest("json")
68767	if res != nil && res.StatusCode == http.StatusNotModified {
68768		if res.Body != nil {
68769			res.Body.Close()
68770		}
68771		return nil, &googleapi.Error{
68772			Code:   res.StatusCode,
68773			Header: res.Header,
68774		}
68775	}
68776	if err != nil {
68777		return nil, err
68778	}
68779	defer googleapi.CloseBody(res)
68780	if err := googleapi.CheckResponse(res); err != nil {
68781		return nil, err
68782	}
68783	ret := &TestPermissionsResponse{
68784		ServerResponse: googleapi.ServerResponse{
68785			Header:         res.Header,
68786			HTTPStatusCode: res.StatusCode,
68787		},
68788	}
68789	target := &ret
68790	if err := gensupport.DecodeResponse(target, res); err != nil {
68791		return nil, err
68792	}
68793	return ret, nil
68794	// {
68795	//   "description": "Returns permissions that a caller has on the specified resource.",
68796	//   "httpMethod": "POST",
68797	//   "id": "compute.httpsHealthChecks.testIamPermissions",
68798	//   "parameterOrder": [
68799	//     "project",
68800	//     "resource"
68801	//   ],
68802	//   "parameters": {
68803	//     "project": {
68804	//       "description": "Project ID for this request.",
68805	//       "location": "path",
68806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68807	//       "required": true,
68808	//       "type": "string"
68809	//     },
68810	//     "resource": {
68811	//       "description": "Name or id of the resource for this request.",
68812	//       "location": "path",
68813	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68814	//       "required": true,
68815	//       "type": "string"
68816	//     }
68817	//   },
68818	//   "path": "{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
68819	//   "request": {
68820	//     "$ref": "TestPermissionsRequest"
68821	//   },
68822	//   "response": {
68823	//     "$ref": "TestPermissionsResponse"
68824	//   },
68825	//   "scopes": [
68826	//     "https://www.googleapis.com/auth/cloud-platform",
68827	//     "https://www.googleapis.com/auth/compute",
68828	//     "https://www.googleapis.com/auth/compute.readonly"
68829	//   ]
68830	// }
68831
68832}
68833
68834// method id "compute.httpsHealthChecks.update":
68835
68836type HttpsHealthChecksUpdateCall struct {
68837	s                *Service
68838	project          string
68839	httpsHealthCheck string
68840	httpshealthcheck *HttpsHealthCheck
68841	urlParams_       gensupport.URLParams
68842	ctx_             context.Context
68843	header_          http.Header
68844}
68845
68846// Update: Updates a HttpsHealthCheck resource in the specified project
68847// using the data included in the request.
68848func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
68849	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68850	c.project = project
68851	c.httpsHealthCheck = httpsHealthCheck
68852	c.httpshealthcheck = httpshealthcheck
68853	return c
68854}
68855
68856// RequestId sets the optional parameter "requestId": An optional
68857// request ID to identify requests. Specify a unique request ID so that
68858// if you must retry your request, the server will know to ignore the
68859// request if it has already been completed.
68860//
68861// For example, consider a situation where you make an initial request
68862// and the request times out. If you make the request again with the
68863// same request ID, the server can check if original operation with the
68864// same request ID was received, and if so, will ignore the second
68865// request. This prevents clients from accidentally creating duplicate
68866// commitments.
68867//
68868// The request ID must be a valid UUID with the exception that zero UUID
68869// is not supported (00000000-0000-0000-0000-000000000000).
68870func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
68871	c.urlParams_.Set("requestId", requestId)
68872	return c
68873}
68874
68875// Fields allows partial responses to be retrieved. See
68876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68877// for more information.
68878func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
68879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68880	return c
68881}
68882
68883// Context sets the context to be used in this call's Do method. Any
68884// pending HTTP request will be aborted if the provided context is
68885// canceled.
68886func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
68887	c.ctx_ = ctx
68888	return c
68889}
68890
68891// Header returns an http.Header that can be modified by the caller to
68892// add HTTP headers to the request.
68893func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
68894	if c.header_ == nil {
68895		c.header_ = make(http.Header)
68896	}
68897	return c.header_
68898}
68899
68900func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
68901	reqHeaders := make(http.Header)
68902	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
68903	for k, v := range c.header_ {
68904		reqHeaders[k] = v
68905	}
68906	reqHeaders.Set("User-Agent", c.s.userAgent())
68907	var body io.Reader = nil
68908	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
68909	if err != nil {
68910		return nil, err
68911	}
68912	reqHeaders.Set("Content-Type", "application/json")
68913	c.urlParams_.Set("alt", alt)
68914	c.urlParams_.Set("prettyPrint", "false")
68915	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
68916	urls += "?" + c.urlParams_.Encode()
68917	req, err := http.NewRequest("PUT", urls, body)
68918	if err != nil {
68919		return nil, err
68920	}
68921	req.Header = reqHeaders
68922	googleapi.Expand(req.URL, map[string]string{
68923		"project":          c.project,
68924		"httpsHealthCheck": c.httpsHealthCheck,
68925	})
68926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68927}
68928
68929// Do executes the "compute.httpsHealthChecks.update" call.
68930// Exactly one of *Operation or error will be non-nil. Any non-2xx
68931// status code is an error. Response headers are in either
68932// *Operation.ServerResponse.Header or (if a response was returned at
68933// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68934// to check whether the returned error was because
68935// http.StatusNotModified was returned.
68936func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68937	gensupport.SetOptions(c.urlParams_, opts...)
68938	res, err := c.doRequest("json")
68939	if res != nil && res.StatusCode == http.StatusNotModified {
68940		if res.Body != nil {
68941			res.Body.Close()
68942		}
68943		return nil, &googleapi.Error{
68944			Code:   res.StatusCode,
68945			Header: res.Header,
68946		}
68947	}
68948	if err != nil {
68949		return nil, err
68950	}
68951	defer googleapi.CloseBody(res)
68952	if err := googleapi.CheckResponse(res); err != nil {
68953		return nil, err
68954	}
68955	ret := &Operation{
68956		ServerResponse: googleapi.ServerResponse{
68957			Header:         res.Header,
68958			HTTPStatusCode: res.StatusCode,
68959		},
68960	}
68961	target := &ret
68962	if err := gensupport.DecodeResponse(target, res); err != nil {
68963		return nil, err
68964	}
68965	return ret, nil
68966	// {
68967	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
68968	//   "httpMethod": "PUT",
68969	//   "id": "compute.httpsHealthChecks.update",
68970	//   "parameterOrder": [
68971	//     "project",
68972	//     "httpsHealthCheck"
68973	//   ],
68974	//   "parameters": {
68975	//     "httpsHealthCheck": {
68976	//       "description": "Name of the HttpsHealthCheck resource to update.",
68977	//       "location": "path",
68978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68979	//       "required": true,
68980	//       "type": "string"
68981	//     },
68982	//     "project": {
68983	//       "description": "Project ID for this request.",
68984	//       "location": "path",
68985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68986	//       "required": true,
68987	//       "type": "string"
68988	//     },
68989	//     "requestId": {
68990	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68991	//       "location": "query",
68992	//       "type": "string"
68993	//     }
68994	//   },
68995	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
68996	//   "request": {
68997	//     "$ref": "HttpsHealthCheck"
68998	//   },
68999	//   "response": {
69000	//     "$ref": "Operation"
69001	//   },
69002	//   "scopes": [
69003	//     "https://www.googleapis.com/auth/cloud-platform",
69004	//     "https://www.googleapis.com/auth/compute"
69005	//   ]
69006	// }
69007
69008}
69009
69010// method id "compute.images.delete":
69011
69012type ImagesDeleteCall struct {
69013	s          *Service
69014	project    string
69015	image      string
69016	urlParams_ gensupport.URLParams
69017	ctx_       context.Context
69018	header_    http.Header
69019}
69020
69021// Delete: Deletes the specified image.
69022// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
69023func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
69024	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69025	c.project = project
69026	c.image = image
69027	return c
69028}
69029
69030// RequestId sets the optional parameter "requestId": An optional
69031// request ID to identify requests. Specify a unique request ID so that
69032// if you must retry your request, the server will know to ignore the
69033// request if it has already been completed.
69034//
69035// For example, consider a situation where you make an initial request
69036// and the request times out. If you make the request again with the
69037// same request ID, the server can check if original operation with the
69038// same request ID was received, and if so, will ignore the second
69039// request. This prevents clients from accidentally creating duplicate
69040// commitments.
69041//
69042// The request ID must be a valid UUID with the exception that zero UUID
69043// is not supported (00000000-0000-0000-0000-000000000000).
69044func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
69045	c.urlParams_.Set("requestId", requestId)
69046	return c
69047}
69048
69049// Fields allows partial responses to be retrieved. See
69050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69051// for more information.
69052func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
69053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69054	return c
69055}
69056
69057// Context sets the context to be used in this call's Do method. Any
69058// pending HTTP request will be aborted if the provided context is
69059// canceled.
69060func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
69061	c.ctx_ = ctx
69062	return c
69063}
69064
69065// Header returns an http.Header that can be modified by the caller to
69066// add HTTP headers to the request.
69067func (c *ImagesDeleteCall) Header() http.Header {
69068	if c.header_ == nil {
69069		c.header_ = make(http.Header)
69070	}
69071	return c.header_
69072}
69073
69074func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
69075	reqHeaders := make(http.Header)
69076	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69077	for k, v := range c.header_ {
69078		reqHeaders[k] = v
69079	}
69080	reqHeaders.Set("User-Agent", c.s.userAgent())
69081	var body io.Reader = nil
69082	c.urlParams_.Set("alt", alt)
69083	c.urlParams_.Set("prettyPrint", "false")
69084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
69085	urls += "?" + c.urlParams_.Encode()
69086	req, err := http.NewRequest("DELETE", urls, body)
69087	if err != nil {
69088		return nil, err
69089	}
69090	req.Header = reqHeaders
69091	googleapi.Expand(req.URL, map[string]string{
69092		"project": c.project,
69093		"image":   c.image,
69094	})
69095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69096}
69097
69098// Do executes the "compute.images.delete" call.
69099// Exactly one of *Operation or error will be non-nil. Any non-2xx
69100// status code is an error. Response headers are in either
69101// *Operation.ServerResponse.Header or (if a response was returned at
69102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69103// to check whether the returned error was because
69104// http.StatusNotModified was returned.
69105func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69106	gensupport.SetOptions(c.urlParams_, opts...)
69107	res, err := c.doRequest("json")
69108	if res != nil && res.StatusCode == http.StatusNotModified {
69109		if res.Body != nil {
69110			res.Body.Close()
69111		}
69112		return nil, &googleapi.Error{
69113			Code:   res.StatusCode,
69114			Header: res.Header,
69115		}
69116	}
69117	if err != nil {
69118		return nil, err
69119	}
69120	defer googleapi.CloseBody(res)
69121	if err := googleapi.CheckResponse(res); err != nil {
69122		return nil, err
69123	}
69124	ret := &Operation{
69125		ServerResponse: googleapi.ServerResponse{
69126			Header:         res.Header,
69127			HTTPStatusCode: res.StatusCode,
69128		},
69129	}
69130	target := &ret
69131	if err := gensupport.DecodeResponse(target, res); err != nil {
69132		return nil, err
69133	}
69134	return ret, nil
69135	// {
69136	//   "description": "Deletes the specified image.",
69137	//   "httpMethod": "DELETE",
69138	//   "id": "compute.images.delete",
69139	//   "parameterOrder": [
69140	//     "project",
69141	//     "image"
69142	//   ],
69143	//   "parameters": {
69144	//     "image": {
69145	//       "description": "Name of the image resource to delete.",
69146	//       "location": "path",
69147	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69148	//       "required": true,
69149	//       "type": "string"
69150	//     },
69151	//     "project": {
69152	//       "description": "Project ID for this request.",
69153	//       "location": "path",
69154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69155	//       "required": true,
69156	//       "type": "string"
69157	//     },
69158	//     "requestId": {
69159	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69160	//       "location": "query",
69161	//       "type": "string"
69162	//     }
69163	//   },
69164	//   "path": "{project}/global/images/{image}",
69165	//   "response": {
69166	//     "$ref": "Operation"
69167	//   },
69168	//   "scopes": [
69169	//     "https://www.googleapis.com/auth/cloud-platform",
69170	//     "https://www.googleapis.com/auth/compute"
69171	//   ]
69172	// }
69173
69174}
69175
69176// method id "compute.images.deprecate":
69177
69178type ImagesDeprecateCall struct {
69179	s                 *Service
69180	project           string
69181	image             string
69182	deprecationstatus *DeprecationStatus
69183	urlParams_        gensupport.URLParams
69184	ctx_              context.Context
69185	header_           http.Header
69186}
69187
69188// Deprecate: Sets the deprecation status of an image.
69189//
69190// If an empty request body is given, clears the deprecation status
69191// instead.
69192// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
69193func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
69194	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69195	c.project = project
69196	c.image = image
69197	c.deprecationstatus = deprecationstatus
69198	return c
69199}
69200
69201// RequestId sets the optional parameter "requestId": An optional
69202// request ID to identify requests. Specify a unique request ID so that
69203// if you must retry your request, the server will know to ignore the
69204// request if it has already been completed.
69205//
69206// For example, consider a situation where you make an initial request
69207// and the request times out. If you make the request again with the
69208// same request ID, the server can check if original operation with the
69209// same request ID was received, and if so, will ignore the second
69210// request. This prevents clients from accidentally creating duplicate
69211// commitments.
69212//
69213// The request ID must be a valid UUID with the exception that zero UUID
69214// is not supported (00000000-0000-0000-0000-000000000000).
69215func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
69216	c.urlParams_.Set("requestId", requestId)
69217	return c
69218}
69219
69220// Fields allows partial responses to be retrieved. See
69221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69222// for more information.
69223func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
69224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69225	return c
69226}
69227
69228// Context sets the context to be used in this call's Do method. Any
69229// pending HTTP request will be aborted if the provided context is
69230// canceled.
69231func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
69232	c.ctx_ = ctx
69233	return c
69234}
69235
69236// Header returns an http.Header that can be modified by the caller to
69237// add HTTP headers to the request.
69238func (c *ImagesDeprecateCall) Header() http.Header {
69239	if c.header_ == nil {
69240		c.header_ = make(http.Header)
69241	}
69242	return c.header_
69243}
69244
69245func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
69246	reqHeaders := make(http.Header)
69247	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69248	for k, v := range c.header_ {
69249		reqHeaders[k] = v
69250	}
69251	reqHeaders.Set("User-Agent", c.s.userAgent())
69252	var body io.Reader = nil
69253	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
69254	if err != nil {
69255		return nil, err
69256	}
69257	reqHeaders.Set("Content-Type", "application/json")
69258	c.urlParams_.Set("alt", alt)
69259	c.urlParams_.Set("prettyPrint", "false")
69260	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
69261	urls += "?" + c.urlParams_.Encode()
69262	req, err := http.NewRequest("POST", urls, body)
69263	if err != nil {
69264		return nil, err
69265	}
69266	req.Header = reqHeaders
69267	googleapi.Expand(req.URL, map[string]string{
69268		"project": c.project,
69269		"image":   c.image,
69270	})
69271	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69272}
69273
69274// Do executes the "compute.images.deprecate" call.
69275// Exactly one of *Operation or error will be non-nil. Any non-2xx
69276// status code is an error. Response headers are in either
69277// *Operation.ServerResponse.Header or (if a response was returned at
69278// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69279// to check whether the returned error was because
69280// http.StatusNotModified was returned.
69281func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69282	gensupport.SetOptions(c.urlParams_, opts...)
69283	res, err := c.doRequest("json")
69284	if res != nil && res.StatusCode == http.StatusNotModified {
69285		if res.Body != nil {
69286			res.Body.Close()
69287		}
69288		return nil, &googleapi.Error{
69289			Code:   res.StatusCode,
69290			Header: res.Header,
69291		}
69292	}
69293	if err != nil {
69294		return nil, err
69295	}
69296	defer googleapi.CloseBody(res)
69297	if err := googleapi.CheckResponse(res); err != nil {
69298		return nil, err
69299	}
69300	ret := &Operation{
69301		ServerResponse: googleapi.ServerResponse{
69302			Header:         res.Header,
69303			HTTPStatusCode: res.StatusCode,
69304		},
69305	}
69306	target := &ret
69307	if err := gensupport.DecodeResponse(target, res); err != nil {
69308		return nil, err
69309	}
69310	return ret, nil
69311	// {
69312	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
69313	//   "httpMethod": "POST",
69314	//   "id": "compute.images.deprecate",
69315	//   "parameterOrder": [
69316	//     "project",
69317	//     "image"
69318	//   ],
69319	//   "parameters": {
69320	//     "image": {
69321	//       "description": "Image name.",
69322	//       "location": "path",
69323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69324	//       "required": true,
69325	//       "type": "string"
69326	//     },
69327	//     "project": {
69328	//       "description": "Project ID for this request.",
69329	//       "location": "path",
69330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69331	//       "required": true,
69332	//       "type": "string"
69333	//     },
69334	//     "requestId": {
69335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69336	//       "location": "query",
69337	//       "type": "string"
69338	//     }
69339	//   },
69340	//   "path": "{project}/global/images/{image}/deprecate",
69341	//   "request": {
69342	//     "$ref": "DeprecationStatus"
69343	//   },
69344	//   "response": {
69345	//     "$ref": "Operation"
69346	//   },
69347	//   "scopes": [
69348	//     "https://www.googleapis.com/auth/cloud-platform",
69349	//     "https://www.googleapis.com/auth/compute"
69350	//   ]
69351	// }
69352
69353}
69354
69355// method id "compute.images.get":
69356
69357type ImagesGetCall struct {
69358	s            *Service
69359	project      string
69360	image        string
69361	urlParams_   gensupport.URLParams
69362	ifNoneMatch_ string
69363	ctx_         context.Context
69364	header_      http.Header
69365}
69366
69367// Get: Returns the specified image. Gets a list of available images by
69368// making a list() request.
69369// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
69370func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
69371	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69372	c.project = project
69373	c.image = image
69374	return c
69375}
69376
69377// Fields allows partial responses to be retrieved. See
69378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69379// for more information.
69380func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
69381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69382	return c
69383}
69384
69385// IfNoneMatch sets the optional parameter which makes the operation
69386// fail if the object's ETag matches the given value. This is useful for
69387// getting updates only after the object has changed since the last
69388// request. Use googleapi.IsNotModified to check whether the response
69389// error from Do is the result of In-None-Match.
69390func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
69391	c.ifNoneMatch_ = entityTag
69392	return c
69393}
69394
69395// Context sets the context to be used in this call's Do method. Any
69396// pending HTTP request will be aborted if the provided context is
69397// canceled.
69398func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
69399	c.ctx_ = ctx
69400	return c
69401}
69402
69403// Header returns an http.Header that can be modified by the caller to
69404// add HTTP headers to the request.
69405func (c *ImagesGetCall) Header() http.Header {
69406	if c.header_ == nil {
69407		c.header_ = make(http.Header)
69408	}
69409	return c.header_
69410}
69411
69412func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
69413	reqHeaders := make(http.Header)
69414	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69415	for k, v := range c.header_ {
69416		reqHeaders[k] = v
69417	}
69418	reqHeaders.Set("User-Agent", c.s.userAgent())
69419	if c.ifNoneMatch_ != "" {
69420		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69421	}
69422	var body io.Reader = nil
69423	c.urlParams_.Set("alt", alt)
69424	c.urlParams_.Set("prettyPrint", "false")
69425	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
69426	urls += "?" + c.urlParams_.Encode()
69427	req, err := http.NewRequest("GET", urls, body)
69428	if err != nil {
69429		return nil, err
69430	}
69431	req.Header = reqHeaders
69432	googleapi.Expand(req.URL, map[string]string{
69433		"project": c.project,
69434		"image":   c.image,
69435	})
69436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69437}
69438
69439// Do executes the "compute.images.get" call.
69440// Exactly one of *Image or error will be non-nil. Any non-2xx status
69441// code is an error. Response headers are in either
69442// *Image.ServerResponse.Header or (if a response was returned at all)
69443// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
69444// check whether the returned error was because http.StatusNotModified
69445// was returned.
69446func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
69447	gensupport.SetOptions(c.urlParams_, opts...)
69448	res, err := c.doRequest("json")
69449	if res != nil && res.StatusCode == http.StatusNotModified {
69450		if res.Body != nil {
69451			res.Body.Close()
69452		}
69453		return nil, &googleapi.Error{
69454			Code:   res.StatusCode,
69455			Header: res.Header,
69456		}
69457	}
69458	if err != nil {
69459		return nil, err
69460	}
69461	defer googleapi.CloseBody(res)
69462	if err := googleapi.CheckResponse(res); err != nil {
69463		return nil, err
69464	}
69465	ret := &Image{
69466		ServerResponse: googleapi.ServerResponse{
69467			Header:         res.Header,
69468			HTTPStatusCode: res.StatusCode,
69469		},
69470	}
69471	target := &ret
69472	if err := gensupport.DecodeResponse(target, res); err != nil {
69473		return nil, err
69474	}
69475	return ret, nil
69476	// {
69477	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
69478	//   "httpMethod": "GET",
69479	//   "id": "compute.images.get",
69480	//   "parameterOrder": [
69481	//     "project",
69482	//     "image"
69483	//   ],
69484	//   "parameters": {
69485	//     "image": {
69486	//       "description": "Name of the image resource to return.",
69487	//       "location": "path",
69488	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69489	//       "required": true,
69490	//       "type": "string"
69491	//     },
69492	//     "project": {
69493	//       "description": "Project ID for this request.",
69494	//       "location": "path",
69495	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69496	//       "required": true,
69497	//       "type": "string"
69498	//     }
69499	//   },
69500	//   "path": "{project}/global/images/{image}",
69501	//   "response": {
69502	//     "$ref": "Image"
69503	//   },
69504	//   "scopes": [
69505	//     "https://www.googleapis.com/auth/cloud-platform",
69506	//     "https://www.googleapis.com/auth/compute",
69507	//     "https://www.googleapis.com/auth/compute.readonly"
69508	//   ]
69509	// }
69510
69511}
69512
69513// method id "compute.images.getFromFamily":
69514
69515type ImagesGetFromFamilyCall struct {
69516	s            *Service
69517	project      string
69518	family       string
69519	urlParams_   gensupport.URLParams
69520	ifNoneMatch_ string
69521	ctx_         context.Context
69522	header_      http.Header
69523}
69524
69525// GetFromFamily: Returns the latest image that is part of an image
69526// family and is not deprecated.
69527func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
69528	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69529	c.project = project
69530	c.family = family
69531	return c
69532}
69533
69534// Fields allows partial responses to be retrieved. See
69535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69536// for more information.
69537func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
69538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69539	return c
69540}
69541
69542// IfNoneMatch sets the optional parameter which makes the operation
69543// fail if the object's ETag matches the given value. This is useful for
69544// getting updates only after the object has changed since the last
69545// request. Use googleapi.IsNotModified to check whether the response
69546// error from Do is the result of In-None-Match.
69547func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
69548	c.ifNoneMatch_ = entityTag
69549	return c
69550}
69551
69552// Context sets the context to be used in this call's Do method. Any
69553// pending HTTP request will be aborted if the provided context is
69554// canceled.
69555func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
69556	c.ctx_ = ctx
69557	return c
69558}
69559
69560// Header returns an http.Header that can be modified by the caller to
69561// add HTTP headers to the request.
69562func (c *ImagesGetFromFamilyCall) Header() http.Header {
69563	if c.header_ == nil {
69564		c.header_ = make(http.Header)
69565	}
69566	return c.header_
69567}
69568
69569func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
69570	reqHeaders := make(http.Header)
69571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69572	for k, v := range c.header_ {
69573		reqHeaders[k] = v
69574	}
69575	reqHeaders.Set("User-Agent", c.s.userAgent())
69576	if c.ifNoneMatch_ != "" {
69577		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69578	}
69579	var body io.Reader = nil
69580	c.urlParams_.Set("alt", alt)
69581	c.urlParams_.Set("prettyPrint", "false")
69582	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
69583	urls += "?" + c.urlParams_.Encode()
69584	req, err := http.NewRequest("GET", urls, body)
69585	if err != nil {
69586		return nil, err
69587	}
69588	req.Header = reqHeaders
69589	googleapi.Expand(req.URL, map[string]string{
69590		"project": c.project,
69591		"family":  c.family,
69592	})
69593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69594}
69595
69596// Do executes the "compute.images.getFromFamily" call.
69597// Exactly one of *Image or error will be non-nil. Any non-2xx status
69598// code is an error. Response headers are in either
69599// *Image.ServerResponse.Header or (if a response was returned at all)
69600// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
69601// check whether the returned error was because http.StatusNotModified
69602// was returned.
69603func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
69604	gensupport.SetOptions(c.urlParams_, opts...)
69605	res, err := c.doRequest("json")
69606	if res != nil && res.StatusCode == http.StatusNotModified {
69607		if res.Body != nil {
69608			res.Body.Close()
69609		}
69610		return nil, &googleapi.Error{
69611			Code:   res.StatusCode,
69612			Header: res.Header,
69613		}
69614	}
69615	if err != nil {
69616		return nil, err
69617	}
69618	defer googleapi.CloseBody(res)
69619	if err := googleapi.CheckResponse(res); err != nil {
69620		return nil, err
69621	}
69622	ret := &Image{
69623		ServerResponse: googleapi.ServerResponse{
69624			Header:         res.Header,
69625			HTTPStatusCode: res.StatusCode,
69626		},
69627	}
69628	target := &ret
69629	if err := gensupport.DecodeResponse(target, res); err != nil {
69630		return nil, err
69631	}
69632	return ret, nil
69633	// {
69634	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
69635	//   "httpMethod": "GET",
69636	//   "id": "compute.images.getFromFamily",
69637	//   "parameterOrder": [
69638	//     "project",
69639	//     "family"
69640	//   ],
69641	//   "parameters": {
69642	//     "family": {
69643	//       "description": "Name of the image family to search for.",
69644	//       "location": "path",
69645	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69646	//       "required": true,
69647	//       "type": "string"
69648	//     },
69649	//     "project": {
69650	//       "description": "Project ID for this request.",
69651	//       "location": "path",
69652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69653	//       "required": true,
69654	//       "type": "string"
69655	//     }
69656	//   },
69657	//   "path": "{project}/global/images/family/{family}",
69658	//   "response": {
69659	//     "$ref": "Image"
69660	//   },
69661	//   "scopes": [
69662	//     "https://www.googleapis.com/auth/cloud-platform",
69663	//     "https://www.googleapis.com/auth/compute",
69664	//     "https://www.googleapis.com/auth/compute.readonly"
69665	//   ]
69666	// }
69667
69668}
69669
69670// method id "compute.images.getIamPolicy":
69671
69672type ImagesGetIamPolicyCall struct {
69673	s            *Service
69674	project      string
69675	resource     string
69676	urlParams_   gensupport.URLParams
69677	ifNoneMatch_ string
69678	ctx_         context.Context
69679	header_      http.Header
69680}
69681
69682// GetIamPolicy: Gets the access control policy for a resource. May be
69683// empty if no such policy or resource exists.
69684func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
69685	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69686	c.project = project
69687	c.resource = resource
69688	return c
69689}
69690
69691// OptionsRequestedPolicyVersion sets the optional parameter
69692// "optionsRequestedPolicyVersion": Requested IAM Policy version.
69693func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
69694	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
69695	return c
69696}
69697
69698// Fields allows partial responses to be retrieved. See
69699// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69700// for more information.
69701func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
69702	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69703	return c
69704}
69705
69706// IfNoneMatch sets the optional parameter which makes the operation
69707// fail if the object's ETag matches the given value. This is useful for
69708// getting updates only after the object has changed since the last
69709// request. Use googleapi.IsNotModified to check whether the response
69710// error from Do is the result of In-None-Match.
69711func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
69712	c.ifNoneMatch_ = entityTag
69713	return c
69714}
69715
69716// Context sets the context to be used in this call's Do method. Any
69717// pending HTTP request will be aborted if the provided context is
69718// canceled.
69719func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
69720	c.ctx_ = ctx
69721	return c
69722}
69723
69724// Header returns an http.Header that can be modified by the caller to
69725// add HTTP headers to the request.
69726func (c *ImagesGetIamPolicyCall) Header() http.Header {
69727	if c.header_ == nil {
69728		c.header_ = make(http.Header)
69729	}
69730	return c.header_
69731}
69732
69733func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
69734	reqHeaders := make(http.Header)
69735	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69736	for k, v := range c.header_ {
69737		reqHeaders[k] = v
69738	}
69739	reqHeaders.Set("User-Agent", c.s.userAgent())
69740	if c.ifNoneMatch_ != "" {
69741		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69742	}
69743	var body io.Reader = nil
69744	c.urlParams_.Set("alt", alt)
69745	c.urlParams_.Set("prettyPrint", "false")
69746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/getIamPolicy")
69747	urls += "?" + c.urlParams_.Encode()
69748	req, err := http.NewRequest("GET", urls, body)
69749	if err != nil {
69750		return nil, err
69751	}
69752	req.Header = reqHeaders
69753	googleapi.Expand(req.URL, map[string]string{
69754		"project":  c.project,
69755		"resource": c.resource,
69756	})
69757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69758}
69759
69760// Do executes the "compute.images.getIamPolicy" call.
69761// Exactly one of *Policy or error will be non-nil. Any non-2xx status
69762// code is an error. Response headers are in either
69763// *Policy.ServerResponse.Header or (if a response was returned at all)
69764// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
69765// check whether the returned error was because http.StatusNotModified
69766// was returned.
69767func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
69768	gensupport.SetOptions(c.urlParams_, opts...)
69769	res, err := c.doRequest("json")
69770	if res != nil && res.StatusCode == http.StatusNotModified {
69771		if res.Body != nil {
69772			res.Body.Close()
69773		}
69774		return nil, &googleapi.Error{
69775			Code:   res.StatusCode,
69776			Header: res.Header,
69777		}
69778	}
69779	if err != nil {
69780		return nil, err
69781	}
69782	defer googleapi.CloseBody(res)
69783	if err := googleapi.CheckResponse(res); err != nil {
69784		return nil, err
69785	}
69786	ret := &Policy{
69787		ServerResponse: googleapi.ServerResponse{
69788			Header:         res.Header,
69789			HTTPStatusCode: res.StatusCode,
69790		},
69791	}
69792	target := &ret
69793	if err := gensupport.DecodeResponse(target, res); err != nil {
69794		return nil, err
69795	}
69796	return ret, nil
69797	// {
69798	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
69799	//   "httpMethod": "GET",
69800	//   "id": "compute.images.getIamPolicy",
69801	//   "parameterOrder": [
69802	//     "project",
69803	//     "resource"
69804	//   ],
69805	//   "parameters": {
69806	//     "optionsRequestedPolicyVersion": {
69807	//       "description": "Requested IAM Policy version.",
69808	//       "format": "int32",
69809	//       "location": "query",
69810	//       "type": "integer"
69811	//     },
69812	//     "project": {
69813	//       "description": "Project ID for this request.",
69814	//       "location": "path",
69815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69816	//       "required": true,
69817	//       "type": "string"
69818	//     },
69819	//     "resource": {
69820	//       "description": "Name or id of the resource for this request.",
69821	//       "location": "path",
69822	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69823	//       "required": true,
69824	//       "type": "string"
69825	//     }
69826	//   },
69827	//   "path": "{project}/global/images/{resource}/getIamPolicy",
69828	//   "response": {
69829	//     "$ref": "Policy"
69830	//   },
69831	//   "scopes": [
69832	//     "https://www.googleapis.com/auth/cloud-platform",
69833	//     "https://www.googleapis.com/auth/compute",
69834	//     "https://www.googleapis.com/auth/compute.readonly"
69835	//   ]
69836	// }
69837
69838}
69839
69840// method id "compute.images.insert":
69841
69842type ImagesInsertCall struct {
69843	s          *Service
69844	project    string
69845	image      *Image
69846	urlParams_ gensupport.URLParams
69847	ctx_       context.Context
69848	header_    http.Header
69849}
69850
69851// Insert: Creates an image in the specified project using the data
69852// included in the request.
69853// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
69854func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
69855	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69856	c.project = project
69857	c.image = image
69858	return c
69859}
69860
69861// ForceCreate sets the optional parameter "forceCreate": Force image
69862// creation if true.
69863func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
69864	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
69865	return c
69866}
69867
69868// RequestId sets the optional parameter "requestId": An optional
69869// request ID to identify requests. Specify a unique request ID so that
69870// if you must retry your request, the server will know to ignore the
69871// request if it has already been completed.
69872//
69873// For example, consider a situation where you make an initial request
69874// and the request times out. If you make the request again with the
69875// same request ID, the server can check if original operation with the
69876// same request ID was received, and if so, will ignore the second
69877// request. This prevents clients from accidentally creating duplicate
69878// commitments.
69879//
69880// The request ID must be a valid UUID with the exception that zero UUID
69881// is not supported (00000000-0000-0000-0000-000000000000).
69882func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
69883	c.urlParams_.Set("requestId", requestId)
69884	return c
69885}
69886
69887// Fields allows partial responses to be retrieved. See
69888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69889// for more information.
69890func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
69891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69892	return c
69893}
69894
69895// Context sets the context to be used in this call's Do method. Any
69896// pending HTTP request will be aborted if the provided context is
69897// canceled.
69898func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
69899	c.ctx_ = ctx
69900	return c
69901}
69902
69903// Header returns an http.Header that can be modified by the caller to
69904// add HTTP headers to the request.
69905func (c *ImagesInsertCall) Header() http.Header {
69906	if c.header_ == nil {
69907		c.header_ = make(http.Header)
69908	}
69909	return c.header_
69910}
69911
69912func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
69913	reqHeaders := make(http.Header)
69914	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
69915	for k, v := range c.header_ {
69916		reqHeaders[k] = v
69917	}
69918	reqHeaders.Set("User-Agent", c.s.userAgent())
69919	var body io.Reader = nil
69920	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
69921	if err != nil {
69922		return nil, err
69923	}
69924	reqHeaders.Set("Content-Type", "application/json")
69925	c.urlParams_.Set("alt", alt)
69926	c.urlParams_.Set("prettyPrint", "false")
69927	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
69928	urls += "?" + c.urlParams_.Encode()
69929	req, err := http.NewRequest("POST", urls, body)
69930	if err != nil {
69931		return nil, err
69932	}
69933	req.Header = reqHeaders
69934	googleapi.Expand(req.URL, map[string]string{
69935		"project": c.project,
69936	})
69937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69938}
69939
69940// Do executes the "compute.images.insert" call.
69941// Exactly one of *Operation or error will be non-nil. Any non-2xx
69942// status code is an error. Response headers are in either
69943// *Operation.ServerResponse.Header or (if a response was returned at
69944// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69945// to check whether the returned error was because
69946// http.StatusNotModified was returned.
69947func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69948	gensupport.SetOptions(c.urlParams_, opts...)
69949	res, err := c.doRequest("json")
69950	if res != nil && res.StatusCode == http.StatusNotModified {
69951		if res.Body != nil {
69952			res.Body.Close()
69953		}
69954		return nil, &googleapi.Error{
69955			Code:   res.StatusCode,
69956			Header: res.Header,
69957		}
69958	}
69959	if err != nil {
69960		return nil, err
69961	}
69962	defer googleapi.CloseBody(res)
69963	if err := googleapi.CheckResponse(res); err != nil {
69964		return nil, err
69965	}
69966	ret := &Operation{
69967		ServerResponse: googleapi.ServerResponse{
69968			Header:         res.Header,
69969			HTTPStatusCode: res.StatusCode,
69970		},
69971	}
69972	target := &ret
69973	if err := gensupport.DecodeResponse(target, res); err != nil {
69974		return nil, err
69975	}
69976	return ret, nil
69977	// {
69978	//   "description": "Creates an image in the specified project using the data included in the request.",
69979	//   "httpMethod": "POST",
69980	//   "id": "compute.images.insert",
69981	//   "parameterOrder": [
69982	//     "project"
69983	//   ],
69984	//   "parameters": {
69985	//     "forceCreate": {
69986	//       "description": "Force image creation if true.",
69987	//       "location": "query",
69988	//       "type": "boolean"
69989	//     },
69990	//     "project": {
69991	//       "description": "Project ID for this request.",
69992	//       "location": "path",
69993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69994	//       "required": true,
69995	//       "type": "string"
69996	//     },
69997	//     "requestId": {
69998	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69999	//       "location": "query",
70000	//       "type": "string"
70001	//     }
70002	//   },
70003	//   "path": "{project}/global/images",
70004	//   "request": {
70005	//     "$ref": "Image"
70006	//   },
70007	//   "response": {
70008	//     "$ref": "Operation"
70009	//   },
70010	//   "scopes": [
70011	//     "https://www.googleapis.com/auth/cloud-platform",
70012	//     "https://www.googleapis.com/auth/compute",
70013	//     "https://www.googleapis.com/auth/devstorage.full_control",
70014	//     "https://www.googleapis.com/auth/devstorage.read_only",
70015	//     "https://www.googleapis.com/auth/devstorage.read_write"
70016	//   ]
70017	// }
70018
70019}
70020
70021// method id "compute.images.list":
70022
70023type ImagesListCall struct {
70024	s            *Service
70025	project      string
70026	urlParams_   gensupport.URLParams
70027	ifNoneMatch_ string
70028	ctx_         context.Context
70029	header_      http.Header
70030}
70031
70032// List: Retrieves the list of custom images available to the specified
70033// project. Custom images are images you create that belong to your
70034// project. This method does not get any images that belong to other
70035// projects, including publicly-available images, like Debian 8. If you
70036// want to get a list of publicly-available images, use this method to
70037// make a request to the respective image project, such as debian-cloud
70038// or windows-cloud.
70039// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
70040func (r *ImagesService) List(project string) *ImagesListCall {
70041	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70042	c.project = project
70043	return c
70044}
70045
70046// Filter sets the optional parameter "filter": A filter expression that
70047// filters resources listed in the response. The expression must specify
70048// the field name, a comparison operator, and the value that you want to
70049// use for filtering. The value must be a string, a number, or a
70050// boolean. The comparison operator must be either `=`, `!=`, `>`, or
70051// `<`.
70052//
70053// For example, if you are filtering Compute Engine instances, you can
70054// exclude instances named `example-instance` by specifying `name !=
70055// example-instance`.
70056//
70057// You can also filter nested fields. For example, you could specify
70058// `scheduling.automaticRestart = false` to include instances only if
70059// they are not scheduled for automatic restarts. You can use filtering
70060// on nested fields to filter based on resource labels.
70061//
70062// To filter on multiple expressions, provide each separate expression
70063// within parentheses. For example: ``` (scheduling.automaticRestart =
70064// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
70065// is an `AND` expression. However, you can include `AND` and `OR`
70066// expressions explicitly. For example: ``` (cpuPlatform = "Intel
70067// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
70068// (scheduling.automaticRestart = true) ```
70069func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
70070	c.urlParams_.Set("filter", filter)
70071	return c
70072}
70073
70074// MaxResults sets the optional parameter "maxResults": The maximum
70075// number of results per page that should be returned. If the number of
70076// available results is larger than `maxResults`, Compute Engine returns
70077// a `nextPageToken` that can be used to get the next page of results in
70078// subsequent list requests. Acceptable values are `0` to `500`,
70079// inclusive. (Default: `500`)
70080func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
70081	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70082	return c
70083}
70084
70085// OrderBy sets the optional parameter "orderBy": Sorts list results by
70086// a certain order. By default, results are returned in alphanumerical
70087// order based on the resource name.
70088//
70089// You can also sort results in descending order based on the creation
70090// timestamp using `orderBy="creationTimestamp desc". This sorts
70091// results based on the `creationTimestamp` field in reverse
70092// chronological order (newest result first). Use this to sort resources
70093// like operations so that the newest operation is returned
70094// first.
70095//
70096// Currently, only sorting by `name` or `creationTimestamp desc` is
70097// supported.
70098func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
70099	c.urlParams_.Set("orderBy", orderBy)
70100	return c
70101}
70102
70103// PageToken sets the optional parameter "pageToken": Specifies a page
70104// token to use. Set `pageToken` to the `nextPageToken` returned by a
70105// previous list request to get the next page of results.
70106func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
70107	c.urlParams_.Set("pageToken", pageToken)
70108	return c
70109}
70110
70111// Fields allows partial responses to be retrieved. See
70112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70113// for more information.
70114func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
70115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70116	return c
70117}
70118
70119// IfNoneMatch sets the optional parameter which makes the operation
70120// fail if the object's ETag matches the given value. This is useful for
70121// getting updates only after the object has changed since the last
70122// request. Use googleapi.IsNotModified to check whether the response
70123// error from Do is the result of In-None-Match.
70124func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
70125	c.ifNoneMatch_ = entityTag
70126	return c
70127}
70128
70129// Context sets the context to be used in this call's Do method. Any
70130// pending HTTP request will be aborted if the provided context is
70131// canceled.
70132func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
70133	c.ctx_ = ctx
70134	return c
70135}
70136
70137// Header returns an http.Header that can be modified by the caller to
70138// add HTTP headers to the request.
70139func (c *ImagesListCall) Header() http.Header {
70140	if c.header_ == nil {
70141		c.header_ = make(http.Header)
70142	}
70143	return c.header_
70144}
70145
70146func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
70147	reqHeaders := make(http.Header)
70148	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70149	for k, v := range c.header_ {
70150		reqHeaders[k] = v
70151	}
70152	reqHeaders.Set("User-Agent", c.s.userAgent())
70153	if c.ifNoneMatch_ != "" {
70154		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70155	}
70156	var body io.Reader = nil
70157	c.urlParams_.Set("alt", alt)
70158	c.urlParams_.Set("prettyPrint", "false")
70159	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
70160	urls += "?" + c.urlParams_.Encode()
70161	req, err := http.NewRequest("GET", urls, body)
70162	if err != nil {
70163		return nil, err
70164	}
70165	req.Header = reqHeaders
70166	googleapi.Expand(req.URL, map[string]string{
70167		"project": c.project,
70168	})
70169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70170}
70171
70172// Do executes the "compute.images.list" call.
70173// Exactly one of *ImageList or error will be non-nil. Any non-2xx
70174// status code is an error. Response headers are in either
70175// *ImageList.ServerResponse.Header or (if a response was returned at
70176// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70177// to check whether the returned error was because
70178// http.StatusNotModified was returned.
70179func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
70180	gensupport.SetOptions(c.urlParams_, opts...)
70181	res, err := c.doRequest("json")
70182	if res != nil && res.StatusCode == http.StatusNotModified {
70183		if res.Body != nil {
70184			res.Body.Close()
70185		}
70186		return nil, &googleapi.Error{
70187			Code:   res.StatusCode,
70188			Header: res.Header,
70189		}
70190	}
70191	if err != nil {
70192		return nil, err
70193	}
70194	defer googleapi.CloseBody(res)
70195	if err := googleapi.CheckResponse(res); err != nil {
70196		return nil, err
70197	}
70198	ret := &ImageList{
70199		ServerResponse: googleapi.ServerResponse{
70200			Header:         res.Header,
70201			HTTPStatusCode: res.StatusCode,
70202		},
70203	}
70204	target := &ret
70205	if err := gensupport.DecodeResponse(target, res); err != nil {
70206		return nil, err
70207	}
70208	return ret, nil
70209	// {
70210	//   "description": "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.",
70211	//   "httpMethod": "GET",
70212	//   "id": "compute.images.list",
70213	//   "parameterOrder": [
70214	//     "project"
70215	//   ],
70216	//   "parameters": {
70217	//     "filter": {
70218	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
70219	//       "location": "query",
70220	//       "type": "string"
70221	//     },
70222	//     "maxResults": {
70223	//       "default": "500",
70224	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
70225	//       "format": "uint32",
70226	//       "location": "query",
70227	//       "minimum": "0",
70228	//       "type": "integer"
70229	//     },
70230	//     "orderBy": {
70231	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
70232	//       "location": "query",
70233	//       "type": "string"
70234	//     },
70235	//     "pageToken": {
70236	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
70237	//       "location": "query",
70238	//       "type": "string"
70239	//     },
70240	//     "project": {
70241	//       "description": "Project ID for this request.",
70242	//       "location": "path",
70243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70244	//       "required": true,
70245	//       "type": "string"
70246	//     }
70247	//   },
70248	//   "path": "{project}/global/images",
70249	//   "response": {
70250	//     "$ref": "ImageList"
70251	//   },
70252	//   "scopes": [
70253	//     "https://www.googleapis.com/auth/cloud-platform",
70254	//     "https://www.googleapis.com/auth/compute",
70255	//     "https://www.googleapis.com/auth/compute.readonly"
70256	//   ]
70257	// }
70258
70259}
70260
70261// Pages invokes f for each page of results.
70262// A non-nil error returned from f will halt the iteration.
70263// The provided context supersedes any context provided to the Context method.
70264func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
70265	c.ctx_ = ctx
70266	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70267	for {
70268		x, err := c.Do()
70269		if err != nil {
70270			return err
70271		}
70272		if err := f(x); err != nil {
70273			return err
70274		}
70275		if x.NextPageToken == "" {
70276			return nil
70277		}
70278		c.PageToken(x.NextPageToken)
70279	}
70280}
70281
70282// method id "compute.images.patch":
70283
70284type ImagesPatchCall struct {
70285	s          *Service
70286	project    string
70287	image      string
70288	image2     *Image
70289	urlParams_ gensupport.URLParams
70290	ctx_       context.Context
70291	header_    http.Header
70292}
70293
70294// Patch: Patches the specified image with the data included in the
70295// request. Only the following fields can be modified: family,
70296// description, deprecation status.
70297func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall {
70298	c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70299	c.project = project
70300	c.image = image
70301	c.image2 = image2
70302	return c
70303}
70304
70305// RequestId sets the optional parameter "requestId": An optional
70306// request ID to identify requests. Specify a unique request ID so that
70307// if you must retry your request, the server will know to ignore the
70308// request if it has already been completed.
70309//
70310// For example, consider a situation where you make an initial request
70311// and the request times out. If you make the request again with the
70312// same request ID, the server can check if original operation with the
70313// same request ID was received, and if so, will ignore the second
70314// request. This prevents clients from accidentally creating duplicate
70315// commitments.
70316//
70317// The request ID must be a valid UUID with the exception that zero UUID
70318// is not supported (00000000-0000-0000-0000-000000000000).
70319func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall {
70320	c.urlParams_.Set("requestId", requestId)
70321	return c
70322}
70323
70324// Fields allows partial responses to be retrieved. See
70325// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70326// for more information.
70327func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall {
70328	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70329	return c
70330}
70331
70332// Context sets the context to be used in this call's Do method. Any
70333// pending HTTP request will be aborted if the provided context is
70334// canceled.
70335func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall {
70336	c.ctx_ = ctx
70337	return c
70338}
70339
70340// Header returns an http.Header that can be modified by the caller to
70341// add HTTP headers to the request.
70342func (c *ImagesPatchCall) Header() http.Header {
70343	if c.header_ == nil {
70344		c.header_ = make(http.Header)
70345	}
70346	return c.header_
70347}
70348
70349func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) {
70350	reqHeaders := make(http.Header)
70351	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70352	for k, v := range c.header_ {
70353		reqHeaders[k] = v
70354	}
70355	reqHeaders.Set("User-Agent", c.s.userAgent())
70356	var body io.Reader = nil
70357	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2)
70358	if err != nil {
70359		return nil, err
70360	}
70361	reqHeaders.Set("Content-Type", "application/json")
70362	c.urlParams_.Set("alt", alt)
70363	c.urlParams_.Set("prettyPrint", "false")
70364	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
70365	urls += "?" + c.urlParams_.Encode()
70366	req, err := http.NewRequest("PATCH", urls, body)
70367	if err != nil {
70368		return nil, err
70369	}
70370	req.Header = reqHeaders
70371	googleapi.Expand(req.URL, map[string]string{
70372		"project": c.project,
70373		"image":   c.image,
70374	})
70375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70376}
70377
70378// Do executes the "compute.images.patch" call.
70379// Exactly one of *Operation or error will be non-nil. Any non-2xx
70380// status code is an error. Response headers are in either
70381// *Operation.ServerResponse.Header or (if a response was returned at
70382// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70383// to check whether the returned error was because
70384// http.StatusNotModified was returned.
70385func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70386	gensupport.SetOptions(c.urlParams_, opts...)
70387	res, err := c.doRequest("json")
70388	if res != nil && res.StatusCode == http.StatusNotModified {
70389		if res.Body != nil {
70390			res.Body.Close()
70391		}
70392		return nil, &googleapi.Error{
70393			Code:   res.StatusCode,
70394			Header: res.Header,
70395		}
70396	}
70397	if err != nil {
70398		return nil, err
70399	}
70400	defer googleapi.CloseBody(res)
70401	if err := googleapi.CheckResponse(res); err != nil {
70402		return nil, err
70403	}
70404	ret := &Operation{
70405		ServerResponse: googleapi.ServerResponse{
70406			Header:         res.Header,
70407			HTTPStatusCode: res.StatusCode,
70408		},
70409	}
70410	target := &ret
70411	if err := gensupport.DecodeResponse(target, res); err != nil {
70412		return nil, err
70413	}
70414	return ret, nil
70415	// {
70416	//   "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.",
70417	//   "httpMethod": "PATCH",
70418	//   "id": "compute.images.patch",
70419	//   "parameterOrder": [
70420	//     "project",
70421	//     "image"
70422	//   ],
70423	//   "parameters": {
70424	//     "image": {
70425	//       "description": "Name of the image resource to patch.",
70426	//       "location": "path",
70427	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70428	//       "required": true,
70429	//       "type": "string"
70430	//     },
70431	//     "project": {
70432	//       "description": "Project ID for this request.",
70433	//       "location": "path",
70434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70435	//       "required": true,
70436	//       "type": "string"
70437	//     },
70438	//     "requestId": {
70439	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70440	//       "location": "query",
70441	//       "type": "string"
70442	//     }
70443	//   },
70444	//   "path": "{project}/global/images/{image}",
70445	//   "request": {
70446	//     "$ref": "Image"
70447	//   },
70448	//   "response": {
70449	//     "$ref": "Operation"
70450	//   },
70451	//   "scopes": [
70452	//     "https://www.googleapis.com/auth/cloud-platform",
70453	//     "https://www.googleapis.com/auth/compute"
70454	//   ]
70455	// }
70456
70457}
70458
70459// method id "compute.images.setIamPolicy":
70460
70461type ImagesSetIamPolicyCall struct {
70462	s                      *Service
70463	project                string
70464	resource               string
70465	globalsetpolicyrequest *GlobalSetPolicyRequest
70466	urlParams_             gensupport.URLParams
70467	ctx_                   context.Context
70468	header_                http.Header
70469}
70470
70471// SetIamPolicy: Sets the access control policy on the specified
70472// resource. Replaces any existing policy.
70473func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
70474	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70475	c.project = project
70476	c.resource = resource
70477	c.globalsetpolicyrequest = globalsetpolicyrequest
70478	return c
70479}
70480
70481// Fields allows partial responses to be retrieved. See
70482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70483// for more information.
70484func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
70485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70486	return c
70487}
70488
70489// Context sets the context to be used in this call's Do method. Any
70490// pending HTTP request will be aborted if the provided context is
70491// canceled.
70492func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
70493	c.ctx_ = ctx
70494	return c
70495}
70496
70497// Header returns an http.Header that can be modified by the caller to
70498// add HTTP headers to the request.
70499func (c *ImagesSetIamPolicyCall) Header() http.Header {
70500	if c.header_ == nil {
70501		c.header_ = make(http.Header)
70502	}
70503	return c.header_
70504}
70505
70506func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
70507	reqHeaders := make(http.Header)
70508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70509	for k, v := range c.header_ {
70510		reqHeaders[k] = v
70511	}
70512	reqHeaders.Set("User-Agent", c.s.userAgent())
70513	var body io.Reader = nil
70514	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
70515	if err != nil {
70516		return nil, err
70517	}
70518	reqHeaders.Set("Content-Type", "application/json")
70519	c.urlParams_.Set("alt", alt)
70520	c.urlParams_.Set("prettyPrint", "false")
70521	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setIamPolicy")
70522	urls += "?" + c.urlParams_.Encode()
70523	req, err := http.NewRequest("POST", urls, body)
70524	if err != nil {
70525		return nil, err
70526	}
70527	req.Header = reqHeaders
70528	googleapi.Expand(req.URL, map[string]string{
70529		"project":  c.project,
70530		"resource": c.resource,
70531	})
70532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70533}
70534
70535// Do executes the "compute.images.setIamPolicy" call.
70536// Exactly one of *Policy or error will be non-nil. Any non-2xx status
70537// code is an error. Response headers are in either
70538// *Policy.ServerResponse.Header or (if a response was returned at all)
70539// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
70540// check whether the returned error was because http.StatusNotModified
70541// was returned.
70542func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
70543	gensupport.SetOptions(c.urlParams_, opts...)
70544	res, err := c.doRequest("json")
70545	if res != nil && res.StatusCode == http.StatusNotModified {
70546		if res.Body != nil {
70547			res.Body.Close()
70548		}
70549		return nil, &googleapi.Error{
70550			Code:   res.StatusCode,
70551			Header: res.Header,
70552		}
70553	}
70554	if err != nil {
70555		return nil, err
70556	}
70557	defer googleapi.CloseBody(res)
70558	if err := googleapi.CheckResponse(res); err != nil {
70559		return nil, err
70560	}
70561	ret := &Policy{
70562		ServerResponse: googleapi.ServerResponse{
70563			Header:         res.Header,
70564			HTTPStatusCode: res.StatusCode,
70565		},
70566	}
70567	target := &ret
70568	if err := gensupport.DecodeResponse(target, res); err != nil {
70569		return nil, err
70570	}
70571	return ret, nil
70572	// {
70573	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
70574	//   "httpMethod": "POST",
70575	//   "id": "compute.images.setIamPolicy",
70576	//   "parameterOrder": [
70577	//     "project",
70578	//     "resource"
70579	//   ],
70580	//   "parameters": {
70581	//     "project": {
70582	//       "description": "Project ID for this request.",
70583	//       "location": "path",
70584	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70585	//       "required": true,
70586	//       "type": "string"
70587	//     },
70588	//     "resource": {
70589	//       "description": "Name or id of the resource for this request.",
70590	//       "location": "path",
70591	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70592	//       "required": true,
70593	//       "type": "string"
70594	//     }
70595	//   },
70596	//   "path": "{project}/global/images/{resource}/setIamPolicy",
70597	//   "request": {
70598	//     "$ref": "GlobalSetPolicyRequest"
70599	//   },
70600	//   "response": {
70601	//     "$ref": "Policy"
70602	//   },
70603	//   "scopes": [
70604	//     "https://www.googleapis.com/auth/cloud-platform",
70605	//     "https://www.googleapis.com/auth/compute"
70606	//   ]
70607	// }
70608
70609}
70610
70611// method id "compute.images.setLabels":
70612
70613type ImagesSetLabelsCall struct {
70614	s                      *Service
70615	project                string
70616	resource               string
70617	globalsetlabelsrequest *GlobalSetLabelsRequest
70618	urlParams_             gensupport.URLParams
70619	ctx_                   context.Context
70620	header_                http.Header
70621}
70622
70623// SetLabels: Sets the labels on an image. To learn more about labels,
70624// read the Labeling Resources documentation.
70625func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
70626	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70627	c.project = project
70628	c.resource = resource
70629	c.globalsetlabelsrequest = globalsetlabelsrequest
70630	return c
70631}
70632
70633// Fields allows partial responses to be retrieved. See
70634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70635// for more information.
70636func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
70637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70638	return c
70639}
70640
70641// Context sets the context to be used in this call's Do method. Any
70642// pending HTTP request will be aborted if the provided context is
70643// canceled.
70644func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
70645	c.ctx_ = ctx
70646	return c
70647}
70648
70649// Header returns an http.Header that can be modified by the caller to
70650// add HTTP headers to the request.
70651func (c *ImagesSetLabelsCall) Header() http.Header {
70652	if c.header_ == nil {
70653		c.header_ = make(http.Header)
70654	}
70655	return c.header_
70656}
70657
70658func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
70659	reqHeaders := make(http.Header)
70660	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70661	for k, v := range c.header_ {
70662		reqHeaders[k] = v
70663	}
70664	reqHeaders.Set("User-Agent", c.s.userAgent())
70665	var body io.Reader = nil
70666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
70667	if err != nil {
70668		return nil, err
70669	}
70670	reqHeaders.Set("Content-Type", "application/json")
70671	c.urlParams_.Set("alt", alt)
70672	c.urlParams_.Set("prettyPrint", "false")
70673	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
70674	urls += "?" + c.urlParams_.Encode()
70675	req, err := http.NewRequest("POST", urls, body)
70676	if err != nil {
70677		return nil, err
70678	}
70679	req.Header = reqHeaders
70680	googleapi.Expand(req.URL, map[string]string{
70681		"project":  c.project,
70682		"resource": c.resource,
70683	})
70684	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70685}
70686
70687// Do executes the "compute.images.setLabels" call.
70688// Exactly one of *Operation or error will be non-nil. Any non-2xx
70689// status code is an error. Response headers are in either
70690// *Operation.ServerResponse.Header or (if a response was returned at
70691// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70692// to check whether the returned error was because
70693// http.StatusNotModified was returned.
70694func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70695	gensupport.SetOptions(c.urlParams_, opts...)
70696	res, err := c.doRequest("json")
70697	if res != nil && res.StatusCode == http.StatusNotModified {
70698		if res.Body != nil {
70699			res.Body.Close()
70700		}
70701		return nil, &googleapi.Error{
70702			Code:   res.StatusCode,
70703			Header: res.Header,
70704		}
70705	}
70706	if err != nil {
70707		return nil, err
70708	}
70709	defer googleapi.CloseBody(res)
70710	if err := googleapi.CheckResponse(res); err != nil {
70711		return nil, err
70712	}
70713	ret := &Operation{
70714		ServerResponse: googleapi.ServerResponse{
70715			Header:         res.Header,
70716			HTTPStatusCode: res.StatusCode,
70717		},
70718	}
70719	target := &ret
70720	if err := gensupport.DecodeResponse(target, res); err != nil {
70721		return nil, err
70722	}
70723	return ret, nil
70724	// {
70725	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
70726	//   "httpMethod": "POST",
70727	//   "id": "compute.images.setLabels",
70728	//   "parameterOrder": [
70729	//     "project",
70730	//     "resource"
70731	//   ],
70732	//   "parameters": {
70733	//     "project": {
70734	//       "description": "Project ID for this request.",
70735	//       "location": "path",
70736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70737	//       "required": true,
70738	//       "type": "string"
70739	//     },
70740	//     "resource": {
70741	//       "description": "Name or id of the resource for this request.",
70742	//       "location": "path",
70743	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70744	//       "required": true,
70745	//       "type": "string"
70746	//     }
70747	//   },
70748	//   "path": "{project}/global/images/{resource}/setLabels",
70749	//   "request": {
70750	//     "$ref": "GlobalSetLabelsRequest"
70751	//   },
70752	//   "response": {
70753	//     "$ref": "Operation"
70754	//   },
70755	//   "scopes": [
70756	//     "https://www.googleapis.com/auth/cloud-platform",
70757	//     "https://www.googleapis.com/auth/compute"
70758	//   ]
70759	// }
70760
70761}
70762
70763// method id "compute.images.testIamPermissions":
70764
70765type ImagesTestIamPermissionsCall struct {
70766	s                      *Service
70767	project                string
70768	resource               string
70769	testpermissionsrequest *TestPermissionsRequest
70770	urlParams_             gensupport.URLParams
70771	ctx_                   context.Context
70772	header_                http.Header
70773}
70774
70775// TestIamPermissions: Returns permissions that a caller has on the
70776// specified resource.
70777func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
70778	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70779	c.project = project
70780	c.resource = resource
70781	c.testpermissionsrequest = testpermissionsrequest
70782	return c
70783}
70784
70785// Fields allows partial responses to be retrieved. See
70786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70787// for more information.
70788func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
70789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70790	return c
70791}
70792
70793// Context sets the context to be used in this call's Do method. Any
70794// pending HTTP request will be aborted if the provided context is
70795// canceled.
70796func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
70797	c.ctx_ = ctx
70798	return c
70799}
70800
70801// Header returns an http.Header that can be modified by the caller to
70802// add HTTP headers to the request.
70803func (c *ImagesTestIamPermissionsCall) Header() http.Header {
70804	if c.header_ == nil {
70805		c.header_ = make(http.Header)
70806	}
70807	return c.header_
70808}
70809
70810func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
70811	reqHeaders := make(http.Header)
70812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
70813	for k, v := range c.header_ {
70814		reqHeaders[k] = v
70815	}
70816	reqHeaders.Set("User-Agent", c.s.userAgent())
70817	var body io.Reader = nil
70818	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
70819	if err != nil {
70820		return nil, err
70821	}
70822	reqHeaders.Set("Content-Type", "application/json")
70823	c.urlParams_.Set("alt", alt)
70824	c.urlParams_.Set("prettyPrint", "false")
70825	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/testIamPermissions")
70826	urls += "?" + c.urlParams_.Encode()
70827	req, err := http.NewRequest("POST", urls, body)
70828	if err != nil {
70829		return nil, err
70830	}
70831	req.Header = reqHeaders
70832	googleapi.Expand(req.URL, map[string]string{
70833		"project":  c.project,
70834		"resource": c.resource,
70835	})
70836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70837}
70838
70839// Do executes the "compute.images.testIamPermissions" call.
70840// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
70841// non-2xx status code is an error. Response headers are in either
70842// *TestPermissionsResponse.ServerResponse.Header or (if a response was
70843// returned at all) in error.(*googleapi.Error).Header. Use
70844// googleapi.IsNotModified to check whether the returned error was
70845// because http.StatusNotModified was returned.
70846func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
70847	gensupport.SetOptions(c.urlParams_, opts...)
70848	res, err := c.doRequest("json")
70849	if res != nil && res.StatusCode == http.StatusNotModified {
70850		if res.Body != nil {
70851			res.Body.Close()
70852		}
70853		return nil, &googleapi.Error{
70854			Code:   res.StatusCode,
70855			Header: res.Header,
70856		}
70857	}
70858	if err != nil {
70859		return nil, err
70860	}
70861	defer googleapi.CloseBody(res)
70862	if err := googleapi.CheckResponse(res); err != nil {
70863		return nil, err
70864	}
70865	ret := &TestPermissionsResponse{
70866		ServerResponse: googleapi.ServerResponse{
70867			Header:         res.Header,
70868			HTTPStatusCode: res.StatusCode,
70869		},
70870	}
70871	target := &ret
70872	if err := gensupport.DecodeResponse(target, res); err != nil {
70873		return nil, err
70874	}
70875	return ret, nil
70876	// {
70877	//   "description": "Returns permissions that a caller has on the specified resource.",
70878	//   "httpMethod": "POST",
70879	//   "id": "compute.images.testIamPermissions",
70880	//   "parameterOrder": [
70881	//     "project",
70882	//     "resource"
70883	//   ],
70884	//   "parameters": {
70885	//     "project": {
70886	//       "description": "Project ID for this request.",
70887	//       "location": "path",
70888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70889	//       "required": true,
70890	//       "type": "string"
70891	//     },
70892	//     "resource": {
70893	//       "description": "Name or id of the resource for this request.",
70894	//       "location": "path",
70895	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70896	//       "required": true,
70897	//       "type": "string"
70898	//     }
70899	//   },
70900	//   "path": "{project}/global/images/{resource}/testIamPermissions",
70901	//   "request": {
70902	//     "$ref": "TestPermissionsRequest"
70903	//   },
70904	//   "response": {
70905	//     "$ref": "TestPermissionsResponse"
70906	//   },
70907	//   "scopes": [
70908	//     "https://www.googleapis.com/auth/cloud-platform",
70909	//     "https://www.googleapis.com/auth/compute",
70910	//     "https://www.googleapis.com/auth/compute.readonly"
70911	//   ]
70912	// }
70913
70914}
70915
70916// method id "compute.instanceGroupManagers.abandonInstances":
70917
70918type InstanceGroupManagersAbandonInstancesCall struct {
70919	s                                            *Service
70920	project                                      string
70921	zone                                         string
70922	instanceGroupManager                         string
70923	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
70924	urlParams_                                   gensupport.URLParams
70925	ctx_                                         context.Context
70926	header_                                      http.Header
70927}
70928
70929// AbandonInstances: Flags the specified instances to be removed from
70930// the managed instance group. Abandoning an instance does not delete
70931// the instance, but it does remove the instance from any target pools
70932// that are applied by the managed instance group. This method reduces
70933// the targetSize of the managed instance group by the number of
70934// instances that you abandon. This operation is marked as DONE when the
70935// action is scheduled even if the instances have not yet been removed
70936// from the group. You must separately verify the status of the
70937// abandoning action with the listmanagedinstances method.
70938//
70939// If the group is part of a backend service that has enabled connection
70940// draining, it can take up to 60 seconds after the connection draining
70941// duration has elapsed before the VM instance is removed or
70942// deleted.
70943//
70944// You can specify a maximum of 1000 instances with this method per
70945// request.
70946func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
70947	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70948	c.project = project
70949	c.zone = zone
70950	c.instanceGroupManager = instanceGroupManager
70951	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
70952	return c
70953}
70954
70955// RequestId sets the optional parameter "requestId": An optional
70956// request ID to identify requests. Specify a unique request ID so that
70957// if you must retry your request, the server will know to ignore the
70958// request if it has already been completed.
70959//
70960// For example, consider a situation where you make an initial request
70961// and the request times out. If you make the request again with the
70962// same request ID, the server can check if original operation with the
70963// same request ID was received, and if so, will ignore the second
70964// request. This prevents clients from accidentally creating duplicate
70965// commitments.
70966//
70967// The request ID must be a valid UUID with the exception that zero UUID
70968// is not supported (00000000-0000-0000-0000-000000000000).
70969func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
70970	c.urlParams_.Set("requestId", requestId)
70971	return c
70972}
70973
70974// Fields allows partial responses to be retrieved. See
70975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70976// for more information.
70977func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
70978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70979	return c
70980}
70981
70982// Context sets the context to be used in this call's Do method. Any
70983// pending HTTP request will be aborted if the provided context is
70984// canceled.
70985func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
70986	c.ctx_ = ctx
70987	return c
70988}
70989
70990// Header returns an http.Header that can be modified by the caller to
70991// add HTTP headers to the request.
70992func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
70993	if c.header_ == nil {
70994		c.header_ = make(http.Header)
70995	}
70996	return c.header_
70997}
70998
70999func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
71000	reqHeaders := make(http.Header)
71001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71002	for k, v := range c.header_ {
71003		reqHeaders[k] = v
71004	}
71005	reqHeaders.Set("User-Agent", c.s.userAgent())
71006	var body io.Reader = nil
71007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
71008	if err != nil {
71009		return nil, err
71010	}
71011	reqHeaders.Set("Content-Type", "application/json")
71012	c.urlParams_.Set("alt", alt)
71013	c.urlParams_.Set("prettyPrint", "false")
71014	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
71015	urls += "?" + c.urlParams_.Encode()
71016	req, err := http.NewRequest("POST", urls, body)
71017	if err != nil {
71018		return nil, err
71019	}
71020	req.Header = reqHeaders
71021	googleapi.Expand(req.URL, map[string]string{
71022		"project":              c.project,
71023		"zone":                 c.zone,
71024		"instanceGroupManager": c.instanceGroupManager,
71025	})
71026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71027}
71028
71029// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
71030// Exactly one of *Operation or error will be non-nil. Any non-2xx
71031// status code is an error. Response headers are in either
71032// *Operation.ServerResponse.Header or (if a response was returned at
71033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71034// to check whether the returned error was because
71035// http.StatusNotModified was returned.
71036func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71037	gensupport.SetOptions(c.urlParams_, opts...)
71038	res, err := c.doRequest("json")
71039	if res != nil && res.StatusCode == http.StatusNotModified {
71040		if res.Body != nil {
71041			res.Body.Close()
71042		}
71043		return nil, &googleapi.Error{
71044			Code:   res.StatusCode,
71045			Header: res.Header,
71046		}
71047	}
71048	if err != nil {
71049		return nil, err
71050	}
71051	defer googleapi.CloseBody(res)
71052	if err := googleapi.CheckResponse(res); err != nil {
71053		return nil, err
71054	}
71055	ret := &Operation{
71056		ServerResponse: googleapi.ServerResponse{
71057			Header:         res.Header,
71058			HTTPStatusCode: res.StatusCode,
71059		},
71060	}
71061	target := &ret
71062	if err := gensupport.DecodeResponse(target, res); err != nil {
71063		return nil, err
71064	}
71065	return ret, nil
71066	// {
71067	//   "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.",
71068	//   "httpMethod": "POST",
71069	//   "id": "compute.instanceGroupManagers.abandonInstances",
71070	//   "parameterOrder": [
71071	//     "project",
71072	//     "zone",
71073	//     "instanceGroupManager"
71074	//   ],
71075	//   "parameters": {
71076	//     "instanceGroupManager": {
71077	//       "description": "The name of the managed instance group.",
71078	//       "location": "path",
71079	//       "required": true,
71080	//       "type": "string"
71081	//     },
71082	//     "project": {
71083	//       "description": "Project ID for this request.",
71084	//       "location": "path",
71085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71086	//       "required": true,
71087	//       "type": "string"
71088	//     },
71089	//     "requestId": {
71090	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71091	//       "location": "query",
71092	//       "type": "string"
71093	//     },
71094	//     "zone": {
71095	//       "description": "The name of the zone where the managed instance group is located.",
71096	//       "location": "path",
71097	//       "required": true,
71098	//       "type": "string"
71099	//     }
71100	//   },
71101	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
71102	//   "request": {
71103	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
71104	//   },
71105	//   "response": {
71106	//     "$ref": "Operation"
71107	//   },
71108	//   "scopes": [
71109	//     "https://www.googleapis.com/auth/cloud-platform",
71110	//     "https://www.googleapis.com/auth/compute"
71111	//   ]
71112	// }
71113
71114}
71115
71116// method id "compute.instanceGroupManagers.aggregatedList":
71117
71118type InstanceGroupManagersAggregatedListCall struct {
71119	s            *Service
71120	project      string
71121	urlParams_   gensupport.URLParams
71122	ifNoneMatch_ string
71123	ctx_         context.Context
71124	header_      http.Header
71125}
71126
71127// AggregatedList: Retrieves the list of managed instance groups and
71128// groups them by zone.
71129func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
71130	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71131	c.project = project
71132	return c
71133}
71134
71135// Filter sets the optional parameter "filter": A filter expression that
71136// filters resources listed in the response. The expression must specify
71137// the field name, a comparison operator, and the value that you want to
71138// use for filtering. The value must be a string, a number, or a
71139// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71140// `<`.
71141//
71142// For example, if you are filtering Compute Engine instances, you can
71143// exclude instances named `example-instance` by specifying `name !=
71144// example-instance`.
71145//
71146// You can also filter nested fields. For example, you could specify
71147// `scheduling.automaticRestart = false` to include instances only if
71148// they are not scheduled for automatic restarts. You can use filtering
71149// on nested fields to filter based on resource labels.
71150//
71151// To filter on multiple expressions, provide each separate expression
71152// within parentheses. For example: ``` (scheduling.automaticRestart =
71153// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
71154// is an `AND` expression. However, you can include `AND` and `OR`
71155// expressions explicitly. For example: ``` (cpuPlatform = "Intel
71156// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
71157// (scheduling.automaticRestart = true) ```
71158func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
71159	c.urlParams_.Set("filter", filter)
71160	return c
71161}
71162
71163// IncludeAllScopes sets the optional parameter "includeAllScopes":
71164// Indicates whether every visible scope for each scope type (zone,
71165// region, global) should be included in the response. For new resource
71166// types added after this field, the flag has no effect as new resource
71167// types will always include every visible scope for each scope type in
71168// response. For resource types which predate this field, if this flag
71169// is omitted or false, only scopes of the scope types where the
71170// resource type is expected to be found will be included.
71171func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
71172	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
71173	return c
71174}
71175
71176// MaxResults sets the optional parameter "maxResults": The maximum
71177// number of results per page that should be returned. If the number of
71178// available results is larger than `maxResults`, Compute Engine returns
71179// a `nextPageToken` that can be used to get the next page of results in
71180// subsequent list requests. Acceptable values are `0` to `500`,
71181// inclusive. (Default: `500`)
71182func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
71183	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71184	return c
71185}
71186
71187// OrderBy sets the optional parameter "orderBy": Sorts list results by
71188// a certain order. By default, results are returned in alphanumerical
71189// order based on the resource name.
71190//
71191// You can also sort results in descending order based on the creation
71192// timestamp using `orderBy="creationTimestamp desc". This sorts
71193// results based on the `creationTimestamp` field in reverse
71194// chronological order (newest result first). Use this to sort resources
71195// like operations so that the newest operation is returned
71196// first.
71197//
71198// Currently, only sorting by `name` or `creationTimestamp desc` is
71199// supported.
71200func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
71201	c.urlParams_.Set("orderBy", orderBy)
71202	return c
71203}
71204
71205// PageToken sets the optional parameter "pageToken": Specifies a page
71206// token to use. Set `pageToken` to the `nextPageToken` returned by a
71207// previous list request to get the next page of results.
71208func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
71209	c.urlParams_.Set("pageToken", pageToken)
71210	return c
71211}
71212
71213// Fields allows partial responses to be retrieved. See
71214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71215// for more information.
71216func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
71217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71218	return c
71219}
71220
71221// IfNoneMatch sets the optional parameter which makes the operation
71222// fail if the object's ETag matches the given value. This is useful for
71223// getting updates only after the object has changed since the last
71224// request. Use googleapi.IsNotModified to check whether the response
71225// error from Do is the result of In-None-Match.
71226func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
71227	c.ifNoneMatch_ = entityTag
71228	return c
71229}
71230
71231// Context sets the context to be used in this call's Do method. Any
71232// pending HTTP request will be aborted if the provided context is
71233// canceled.
71234func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
71235	c.ctx_ = ctx
71236	return c
71237}
71238
71239// Header returns an http.Header that can be modified by the caller to
71240// add HTTP headers to the request.
71241func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
71242	if c.header_ == nil {
71243		c.header_ = make(http.Header)
71244	}
71245	return c.header_
71246}
71247
71248func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
71249	reqHeaders := make(http.Header)
71250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71251	for k, v := range c.header_ {
71252		reqHeaders[k] = v
71253	}
71254	reqHeaders.Set("User-Agent", c.s.userAgent())
71255	if c.ifNoneMatch_ != "" {
71256		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71257	}
71258	var body io.Reader = nil
71259	c.urlParams_.Set("alt", alt)
71260	c.urlParams_.Set("prettyPrint", "false")
71261	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
71262	urls += "?" + c.urlParams_.Encode()
71263	req, err := http.NewRequest("GET", urls, body)
71264	if err != nil {
71265		return nil, err
71266	}
71267	req.Header = reqHeaders
71268	googleapi.Expand(req.URL, map[string]string{
71269		"project": c.project,
71270	})
71271	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71272}
71273
71274// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
71275// Exactly one of *InstanceGroupManagerAggregatedList or error will be
71276// non-nil. Any non-2xx status code is an error. Response headers are in
71277// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
71278// (if a response was returned at all) in
71279// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
71280// whether the returned error was because http.StatusNotModified was
71281// returned.
71282func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
71283	gensupport.SetOptions(c.urlParams_, opts...)
71284	res, err := c.doRequest("json")
71285	if res != nil && res.StatusCode == http.StatusNotModified {
71286		if res.Body != nil {
71287			res.Body.Close()
71288		}
71289		return nil, &googleapi.Error{
71290			Code:   res.StatusCode,
71291			Header: res.Header,
71292		}
71293	}
71294	if err != nil {
71295		return nil, err
71296	}
71297	defer googleapi.CloseBody(res)
71298	if err := googleapi.CheckResponse(res); err != nil {
71299		return nil, err
71300	}
71301	ret := &InstanceGroupManagerAggregatedList{
71302		ServerResponse: googleapi.ServerResponse{
71303			Header:         res.Header,
71304			HTTPStatusCode: res.StatusCode,
71305		},
71306	}
71307	target := &ret
71308	if err := gensupport.DecodeResponse(target, res); err != nil {
71309		return nil, err
71310	}
71311	return ret, nil
71312	// {
71313	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
71314	//   "httpMethod": "GET",
71315	//   "id": "compute.instanceGroupManagers.aggregatedList",
71316	//   "parameterOrder": [
71317	//     "project"
71318	//   ],
71319	//   "parameters": {
71320	//     "filter": {
71321	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71322	//       "location": "query",
71323	//       "type": "string"
71324	//     },
71325	//     "includeAllScopes": {
71326	//       "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.",
71327	//       "location": "query",
71328	//       "type": "boolean"
71329	//     },
71330	//     "maxResults": {
71331	//       "default": "500",
71332	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71333	//       "format": "uint32",
71334	//       "location": "query",
71335	//       "minimum": "0",
71336	//       "type": "integer"
71337	//     },
71338	//     "orderBy": {
71339	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
71340	//       "location": "query",
71341	//       "type": "string"
71342	//     },
71343	//     "pageToken": {
71344	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71345	//       "location": "query",
71346	//       "type": "string"
71347	//     },
71348	//     "project": {
71349	//       "description": "Project ID for this request.",
71350	//       "location": "path",
71351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71352	//       "required": true,
71353	//       "type": "string"
71354	//     }
71355	//   },
71356	//   "path": "{project}/aggregated/instanceGroupManagers",
71357	//   "response": {
71358	//     "$ref": "InstanceGroupManagerAggregatedList"
71359	//   },
71360	//   "scopes": [
71361	//     "https://www.googleapis.com/auth/cloud-platform",
71362	//     "https://www.googleapis.com/auth/compute",
71363	//     "https://www.googleapis.com/auth/compute.readonly"
71364	//   ]
71365	// }
71366
71367}
71368
71369// Pages invokes f for each page of results.
71370// A non-nil error returned from f will halt the iteration.
71371// The provided context supersedes any context provided to the Context method.
71372func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
71373	c.ctx_ = ctx
71374	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71375	for {
71376		x, err := c.Do()
71377		if err != nil {
71378			return err
71379		}
71380		if err := f(x); err != nil {
71381			return err
71382		}
71383		if x.NextPageToken == "" {
71384			return nil
71385		}
71386		c.PageToken(x.NextPageToken)
71387	}
71388}
71389
71390// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
71391
71392type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
71393	s                                        *Service
71394	project                                  string
71395	zone                                     string
71396	instanceGroupManager                     string
71397	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
71398	urlParams_                               gensupport.URLParams
71399	ctx_                                     context.Context
71400	header_                                  http.Header
71401}
71402
71403// ApplyUpdatesToInstances: Applies changes to selected instances on the
71404// managed instance group. This method can be used to apply new
71405// overrides and/or new versions.
71406func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
71407	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71408	c.project = project
71409	c.zone = zone
71410	c.instanceGroupManager = instanceGroupManager
71411	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
71412	return c
71413}
71414
71415// Fields allows partial responses to be retrieved. See
71416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71417// for more information.
71418func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
71419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71420	return c
71421}
71422
71423// Context sets the context to be used in this call's Do method. Any
71424// pending HTTP request will be aborted if the provided context is
71425// canceled.
71426func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
71427	c.ctx_ = ctx
71428	return c
71429}
71430
71431// Header returns an http.Header that can be modified by the caller to
71432// add HTTP headers to the request.
71433func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
71434	if c.header_ == nil {
71435		c.header_ = make(http.Header)
71436	}
71437	return c.header_
71438}
71439
71440func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
71441	reqHeaders := make(http.Header)
71442	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71443	for k, v := range c.header_ {
71444		reqHeaders[k] = v
71445	}
71446	reqHeaders.Set("User-Agent", c.s.userAgent())
71447	var body io.Reader = nil
71448	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
71449	if err != nil {
71450		return nil, err
71451	}
71452	reqHeaders.Set("Content-Type", "application/json")
71453	c.urlParams_.Set("alt", alt)
71454	c.urlParams_.Set("prettyPrint", "false")
71455	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
71456	urls += "?" + c.urlParams_.Encode()
71457	req, err := http.NewRequest("POST", urls, body)
71458	if err != nil {
71459		return nil, err
71460	}
71461	req.Header = reqHeaders
71462	googleapi.Expand(req.URL, map[string]string{
71463		"project":              c.project,
71464		"zone":                 c.zone,
71465		"instanceGroupManager": c.instanceGroupManager,
71466	})
71467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71468}
71469
71470// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
71471// Exactly one of *Operation or error will be non-nil. Any non-2xx
71472// status code is an error. Response headers are in either
71473// *Operation.ServerResponse.Header or (if a response was returned at
71474// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71475// to check whether the returned error was because
71476// http.StatusNotModified was returned.
71477func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71478	gensupport.SetOptions(c.urlParams_, opts...)
71479	res, err := c.doRequest("json")
71480	if res != nil && res.StatusCode == http.StatusNotModified {
71481		if res.Body != nil {
71482			res.Body.Close()
71483		}
71484		return nil, &googleapi.Error{
71485			Code:   res.StatusCode,
71486			Header: res.Header,
71487		}
71488	}
71489	if err != nil {
71490		return nil, err
71491	}
71492	defer googleapi.CloseBody(res)
71493	if err := googleapi.CheckResponse(res); err != nil {
71494		return nil, err
71495	}
71496	ret := &Operation{
71497		ServerResponse: googleapi.ServerResponse{
71498			Header:         res.Header,
71499			HTTPStatusCode: res.StatusCode,
71500		},
71501	}
71502	target := &ret
71503	if err := gensupport.DecodeResponse(target, res); err != nil {
71504		return nil, err
71505	}
71506	return ret, nil
71507	// {
71508	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
71509	//   "httpMethod": "POST",
71510	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
71511	//   "parameterOrder": [
71512	//     "project",
71513	//     "zone",
71514	//     "instanceGroupManager"
71515	//   ],
71516	//   "parameters": {
71517	//     "instanceGroupManager": {
71518	//       "description": "The name of the managed instance group, should conform to RFC1035.",
71519	//       "location": "path",
71520	//       "required": true,
71521	//       "type": "string"
71522	//     },
71523	//     "project": {
71524	//       "description": "Project ID for this request.",
71525	//       "location": "path",
71526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71527	//       "required": true,
71528	//       "type": "string"
71529	//     },
71530	//     "zone": {
71531	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
71532	//       "location": "path",
71533	//       "required": true,
71534	//       "type": "string"
71535	//     }
71536	//   },
71537	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
71538	//   "request": {
71539	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
71540	//   },
71541	//   "response": {
71542	//     "$ref": "Operation"
71543	//   },
71544	//   "scopes": [
71545	//     "https://www.googleapis.com/auth/cloud-platform",
71546	//     "https://www.googleapis.com/auth/compute"
71547	//   ]
71548	// }
71549
71550}
71551
71552// method id "compute.instanceGroupManagers.createInstances":
71553
71554type InstanceGroupManagersCreateInstancesCall struct {
71555	s                                           *Service
71556	project                                     string
71557	zone                                        string
71558	instanceGroupManager                        string
71559	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
71560	urlParams_                                  gensupport.URLParams
71561	ctx_                                        context.Context
71562	header_                                     http.Header
71563}
71564
71565// CreateInstances: Creates instances with per-instance configs in this
71566// managed instance group. Instances are created using the current
71567// instance template. The create instances operation is marked DONE if
71568// the createInstances request is successful. The underlying actions
71569// take additional time. You must separately verify the status of the
71570// creating or actions with the listmanagedinstances method.
71571func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
71572	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71573	c.project = project
71574	c.zone = zone
71575	c.instanceGroupManager = instanceGroupManager
71576	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
71577	return c
71578}
71579
71580// RequestId sets the optional parameter "requestId": An optional
71581// request ID to identify requests. Specify a unique request ID so that
71582// if you must retry your request, the server will know to ignore the
71583// request if it has already been completed.
71584//
71585// For example, consider a situation where you make an initial request
71586// and the request times out. If you make the request again with the
71587// same request ID, the server can check if original operation with the
71588// same request ID was received, and if so, will ignore the second
71589// request.
71590//
71591// The request ID must be a valid UUID with the exception that zero UUID
71592// is not supported (00000000-0000-0000-0000-000000000000).
71593func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
71594	c.urlParams_.Set("requestId", requestId)
71595	return c
71596}
71597
71598// Fields allows partial responses to be retrieved. See
71599// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71600// for more information.
71601func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
71602	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71603	return c
71604}
71605
71606// Context sets the context to be used in this call's Do method. Any
71607// pending HTTP request will be aborted if the provided context is
71608// canceled.
71609func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
71610	c.ctx_ = ctx
71611	return c
71612}
71613
71614// Header returns an http.Header that can be modified by the caller to
71615// add HTTP headers to the request.
71616func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
71617	if c.header_ == nil {
71618		c.header_ = make(http.Header)
71619	}
71620	return c.header_
71621}
71622
71623func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
71624	reqHeaders := make(http.Header)
71625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71626	for k, v := range c.header_ {
71627		reqHeaders[k] = v
71628	}
71629	reqHeaders.Set("User-Agent", c.s.userAgent())
71630	var body io.Reader = nil
71631	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
71632	if err != nil {
71633		return nil, err
71634	}
71635	reqHeaders.Set("Content-Type", "application/json")
71636	c.urlParams_.Set("alt", alt)
71637	c.urlParams_.Set("prettyPrint", "false")
71638	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
71639	urls += "?" + c.urlParams_.Encode()
71640	req, err := http.NewRequest("POST", urls, body)
71641	if err != nil {
71642		return nil, err
71643	}
71644	req.Header = reqHeaders
71645	googleapi.Expand(req.URL, map[string]string{
71646		"project":              c.project,
71647		"zone":                 c.zone,
71648		"instanceGroupManager": c.instanceGroupManager,
71649	})
71650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71651}
71652
71653// Do executes the "compute.instanceGroupManagers.createInstances" call.
71654// Exactly one of *Operation or error will be non-nil. Any non-2xx
71655// status code is an error. Response headers are in either
71656// *Operation.ServerResponse.Header or (if a response was returned at
71657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71658// to check whether the returned error was because
71659// http.StatusNotModified was returned.
71660func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71661	gensupport.SetOptions(c.urlParams_, opts...)
71662	res, err := c.doRequest("json")
71663	if res != nil && res.StatusCode == http.StatusNotModified {
71664		if res.Body != nil {
71665			res.Body.Close()
71666		}
71667		return nil, &googleapi.Error{
71668			Code:   res.StatusCode,
71669			Header: res.Header,
71670		}
71671	}
71672	if err != nil {
71673		return nil, err
71674	}
71675	defer googleapi.CloseBody(res)
71676	if err := googleapi.CheckResponse(res); err != nil {
71677		return nil, err
71678	}
71679	ret := &Operation{
71680		ServerResponse: googleapi.ServerResponse{
71681			Header:         res.Header,
71682			HTTPStatusCode: res.StatusCode,
71683		},
71684	}
71685	target := &ret
71686	if err := gensupport.DecodeResponse(target, res); err != nil {
71687		return nil, err
71688	}
71689	return ret, nil
71690	// {
71691	//   "description": "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.",
71692	//   "httpMethod": "POST",
71693	//   "id": "compute.instanceGroupManagers.createInstances",
71694	//   "parameterOrder": [
71695	//     "project",
71696	//     "zone",
71697	//     "instanceGroupManager"
71698	//   ],
71699	//   "parameters": {
71700	//     "instanceGroupManager": {
71701	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
71702	//       "location": "path",
71703	//       "required": true,
71704	//       "type": "string"
71705	//     },
71706	//     "project": {
71707	//       "description": "Project ID for this request.",
71708	//       "location": "path",
71709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71710	//       "required": true,
71711	//       "type": "string"
71712	//     },
71713	//     "requestId": {
71714	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71715	//       "location": "query",
71716	//       "type": "string"
71717	//     },
71718	//     "zone": {
71719	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
71720	//       "location": "path",
71721	//       "required": true,
71722	//       "type": "string"
71723	//     }
71724	//   },
71725	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
71726	//   "request": {
71727	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
71728	//   },
71729	//   "response": {
71730	//     "$ref": "Operation"
71731	//   },
71732	//   "scopes": [
71733	//     "https://www.googleapis.com/auth/cloud-platform",
71734	//     "https://www.googleapis.com/auth/compute"
71735	//   ]
71736	// }
71737
71738}
71739
71740// method id "compute.instanceGroupManagers.delete":
71741
71742type InstanceGroupManagersDeleteCall struct {
71743	s                    *Service
71744	project              string
71745	zone                 string
71746	instanceGroupManager string
71747	urlParams_           gensupport.URLParams
71748	ctx_                 context.Context
71749	header_              http.Header
71750}
71751
71752// Delete: Deletes the specified managed instance group and all of the
71753// instances in that group. Note that the instance group must not belong
71754// to a backend service. Read  Deleting an instance group for more
71755// information.
71756func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
71757	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71758	c.project = project
71759	c.zone = zone
71760	c.instanceGroupManager = instanceGroupManager
71761	return c
71762}
71763
71764// RequestId sets the optional parameter "requestId": An optional
71765// request ID to identify requests. Specify a unique request ID so that
71766// if you must retry your request, the server will know to ignore the
71767// request if it has already been completed.
71768//
71769// For example, consider a situation where you make an initial request
71770// and the request times out. If you make the request again with the
71771// same request ID, the server can check if original operation with the
71772// same request ID was received, and if so, will ignore the second
71773// request. This prevents clients from accidentally creating duplicate
71774// commitments.
71775//
71776// The request ID must be a valid UUID with the exception that zero UUID
71777// is not supported (00000000-0000-0000-0000-000000000000).
71778func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
71779	c.urlParams_.Set("requestId", requestId)
71780	return c
71781}
71782
71783// Fields allows partial responses to be retrieved. See
71784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71785// for more information.
71786func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
71787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71788	return c
71789}
71790
71791// Context sets the context to be used in this call's Do method. Any
71792// pending HTTP request will be aborted if the provided context is
71793// canceled.
71794func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
71795	c.ctx_ = ctx
71796	return c
71797}
71798
71799// Header returns an http.Header that can be modified by the caller to
71800// add HTTP headers to the request.
71801func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
71802	if c.header_ == nil {
71803		c.header_ = make(http.Header)
71804	}
71805	return c.header_
71806}
71807
71808func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
71809	reqHeaders := make(http.Header)
71810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
71811	for k, v := range c.header_ {
71812		reqHeaders[k] = v
71813	}
71814	reqHeaders.Set("User-Agent", c.s.userAgent())
71815	var body io.Reader = nil
71816	c.urlParams_.Set("alt", alt)
71817	c.urlParams_.Set("prettyPrint", "false")
71818	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
71819	urls += "?" + c.urlParams_.Encode()
71820	req, err := http.NewRequest("DELETE", urls, body)
71821	if err != nil {
71822		return nil, err
71823	}
71824	req.Header = reqHeaders
71825	googleapi.Expand(req.URL, map[string]string{
71826		"project":              c.project,
71827		"zone":                 c.zone,
71828		"instanceGroupManager": c.instanceGroupManager,
71829	})
71830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71831}
71832
71833// Do executes the "compute.instanceGroupManagers.delete" call.
71834// Exactly one of *Operation or error will be non-nil. Any non-2xx
71835// status code is an error. Response headers are in either
71836// *Operation.ServerResponse.Header or (if a response was returned at
71837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71838// to check whether the returned error was because
71839// http.StatusNotModified was returned.
71840func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71841	gensupport.SetOptions(c.urlParams_, opts...)
71842	res, err := c.doRequest("json")
71843	if res != nil && res.StatusCode == http.StatusNotModified {
71844		if res.Body != nil {
71845			res.Body.Close()
71846		}
71847		return nil, &googleapi.Error{
71848			Code:   res.StatusCode,
71849			Header: res.Header,
71850		}
71851	}
71852	if err != nil {
71853		return nil, err
71854	}
71855	defer googleapi.CloseBody(res)
71856	if err := googleapi.CheckResponse(res); err != nil {
71857		return nil, err
71858	}
71859	ret := &Operation{
71860		ServerResponse: googleapi.ServerResponse{
71861			Header:         res.Header,
71862			HTTPStatusCode: res.StatusCode,
71863		},
71864	}
71865	target := &ret
71866	if err := gensupport.DecodeResponse(target, res); err != nil {
71867		return nil, err
71868	}
71869	return ret, nil
71870	// {
71871	//   "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.",
71872	//   "httpMethod": "DELETE",
71873	//   "id": "compute.instanceGroupManagers.delete",
71874	//   "parameterOrder": [
71875	//     "project",
71876	//     "zone",
71877	//     "instanceGroupManager"
71878	//   ],
71879	//   "parameters": {
71880	//     "instanceGroupManager": {
71881	//       "description": "The name of the managed instance group to delete.",
71882	//       "location": "path",
71883	//       "required": true,
71884	//       "type": "string"
71885	//     },
71886	//     "project": {
71887	//       "description": "Project ID for this request.",
71888	//       "location": "path",
71889	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71890	//       "required": true,
71891	//       "type": "string"
71892	//     },
71893	//     "requestId": {
71894	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71895	//       "location": "query",
71896	//       "type": "string"
71897	//     },
71898	//     "zone": {
71899	//       "description": "The name of the zone where the managed instance group is located.",
71900	//       "location": "path",
71901	//       "required": true,
71902	//       "type": "string"
71903	//     }
71904	//   },
71905	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
71906	//   "response": {
71907	//     "$ref": "Operation"
71908	//   },
71909	//   "scopes": [
71910	//     "https://www.googleapis.com/auth/cloud-platform",
71911	//     "https://www.googleapis.com/auth/compute"
71912	//   ]
71913	// }
71914
71915}
71916
71917// method id "compute.instanceGroupManagers.deleteInstances":
71918
71919type InstanceGroupManagersDeleteInstancesCall struct {
71920	s                                           *Service
71921	project                                     string
71922	zone                                        string
71923	instanceGroupManager                        string
71924	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
71925	urlParams_                                  gensupport.URLParams
71926	ctx_                                        context.Context
71927	header_                                     http.Header
71928}
71929
71930// DeleteInstances: Flags the specified instances in the managed
71931// instance group for immediate deletion. The instances are also removed
71932// from any target pools of which they were a member. This method
71933// reduces the targetSize of the managed instance group by the number of
71934// instances that you delete. This operation is marked as DONE when the
71935// action is scheduled even if the instances are still being deleted.
71936// You must separately verify the status of the deleting action with the
71937// listmanagedinstances method.
71938//
71939// If the group is part of a backend service that has enabled connection
71940// draining, it can take up to 60 seconds after the connection draining
71941// duration has elapsed before the VM instance is removed or
71942// deleted.
71943//
71944// You can specify a maximum of 1000 instances with this method per
71945// request.
71946func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
71947	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71948	c.project = project
71949	c.zone = zone
71950	c.instanceGroupManager = instanceGroupManager
71951	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
71952	return c
71953}
71954
71955// RequestId sets the optional parameter "requestId": An optional
71956// request ID to identify requests. Specify a unique request ID so that
71957// if you must retry your request, the server will know to ignore the
71958// request if it has already been completed.
71959//
71960// For example, consider a situation where you make an initial request
71961// and the request times out. If you make the request again with the
71962// same request ID, the server can check if original operation with the
71963// same request ID was received, and if so, will ignore the second
71964// request. This prevents clients from accidentally creating duplicate
71965// commitments.
71966//
71967// The request ID must be a valid UUID with the exception that zero UUID
71968// is not supported (00000000-0000-0000-0000-000000000000).
71969func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
71970	c.urlParams_.Set("requestId", requestId)
71971	return c
71972}
71973
71974// Fields allows partial responses to be retrieved. See
71975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71976// for more information.
71977func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
71978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71979	return c
71980}
71981
71982// Context sets the context to be used in this call's Do method. Any
71983// pending HTTP request will be aborted if the provided context is
71984// canceled.
71985func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
71986	c.ctx_ = ctx
71987	return c
71988}
71989
71990// Header returns an http.Header that can be modified by the caller to
71991// add HTTP headers to the request.
71992func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
71993	if c.header_ == nil {
71994		c.header_ = make(http.Header)
71995	}
71996	return c.header_
71997}
71998
71999func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
72000	reqHeaders := make(http.Header)
72001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72002	for k, v := range c.header_ {
72003		reqHeaders[k] = v
72004	}
72005	reqHeaders.Set("User-Agent", c.s.userAgent())
72006	var body io.Reader = nil
72007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
72008	if err != nil {
72009		return nil, err
72010	}
72011	reqHeaders.Set("Content-Type", "application/json")
72012	c.urlParams_.Set("alt", alt)
72013	c.urlParams_.Set("prettyPrint", "false")
72014	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
72015	urls += "?" + c.urlParams_.Encode()
72016	req, err := http.NewRequest("POST", urls, body)
72017	if err != nil {
72018		return nil, err
72019	}
72020	req.Header = reqHeaders
72021	googleapi.Expand(req.URL, map[string]string{
72022		"project":              c.project,
72023		"zone":                 c.zone,
72024		"instanceGroupManager": c.instanceGroupManager,
72025	})
72026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72027}
72028
72029// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
72030// Exactly one of *Operation or error will be non-nil. Any non-2xx
72031// status code is an error. Response headers are in either
72032// *Operation.ServerResponse.Header or (if a response was returned at
72033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72034// to check whether the returned error was because
72035// http.StatusNotModified was returned.
72036func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72037	gensupport.SetOptions(c.urlParams_, opts...)
72038	res, err := c.doRequest("json")
72039	if res != nil && res.StatusCode == http.StatusNotModified {
72040		if res.Body != nil {
72041			res.Body.Close()
72042		}
72043		return nil, &googleapi.Error{
72044			Code:   res.StatusCode,
72045			Header: res.Header,
72046		}
72047	}
72048	if err != nil {
72049		return nil, err
72050	}
72051	defer googleapi.CloseBody(res)
72052	if err := googleapi.CheckResponse(res); err != nil {
72053		return nil, err
72054	}
72055	ret := &Operation{
72056		ServerResponse: googleapi.ServerResponse{
72057			Header:         res.Header,
72058			HTTPStatusCode: res.StatusCode,
72059		},
72060	}
72061	target := &ret
72062	if err := gensupport.DecodeResponse(target, res); err != nil {
72063		return nil, err
72064	}
72065	return ret, nil
72066	// {
72067	//   "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.",
72068	//   "httpMethod": "POST",
72069	//   "id": "compute.instanceGroupManagers.deleteInstances",
72070	//   "parameterOrder": [
72071	//     "project",
72072	//     "zone",
72073	//     "instanceGroupManager"
72074	//   ],
72075	//   "parameters": {
72076	//     "instanceGroupManager": {
72077	//       "description": "The name of the managed instance group.",
72078	//       "location": "path",
72079	//       "required": true,
72080	//       "type": "string"
72081	//     },
72082	//     "project": {
72083	//       "description": "Project ID for this request.",
72084	//       "location": "path",
72085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72086	//       "required": true,
72087	//       "type": "string"
72088	//     },
72089	//     "requestId": {
72090	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72091	//       "location": "query",
72092	//       "type": "string"
72093	//     },
72094	//     "zone": {
72095	//       "description": "The name of the zone where the managed instance group is located.",
72096	//       "location": "path",
72097	//       "required": true,
72098	//       "type": "string"
72099	//     }
72100	//   },
72101	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
72102	//   "request": {
72103	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
72104	//   },
72105	//   "response": {
72106	//     "$ref": "Operation"
72107	//   },
72108	//   "scopes": [
72109	//     "https://www.googleapis.com/auth/cloud-platform",
72110	//     "https://www.googleapis.com/auth/compute"
72111	//   ]
72112	// }
72113
72114}
72115
72116// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
72117
72118type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
72119	s                                                *Service
72120	project                                          string
72121	zone                                             string
72122	instanceGroupManager                             string
72123	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
72124	urlParams_                                       gensupport.URLParams
72125	ctx_                                             context.Context
72126	header_                                          http.Header
72127}
72128
72129// DeletePerInstanceConfigs: Deletes selected per-instance configs for
72130// the managed instance group.
72131func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
72132	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72133	c.project = project
72134	c.zone = zone
72135	c.instanceGroupManager = instanceGroupManager
72136	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
72137	return c
72138}
72139
72140// Fields allows partial responses to be retrieved. See
72141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72142// for more information.
72143func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
72144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72145	return c
72146}
72147
72148// Context sets the context to be used in this call's Do method. Any
72149// pending HTTP request will be aborted if the provided context is
72150// canceled.
72151func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
72152	c.ctx_ = ctx
72153	return c
72154}
72155
72156// Header returns an http.Header that can be modified by the caller to
72157// add HTTP headers to the request.
72158func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
72159	if c.header_ == nil {
72160		c.header_ = make(http.Header)
72161	}
72162	return c.header_
72163}
72164
72165func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
72166	reqHeaders := make(http.Header)
72167	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72168	for k, v := range c.header_ {
72169		reqHeaders[k] = v
72170	}
72171	reqHeaders.Set("User-Agent", c.s.userAgent())
72172	var body io.Reader = nil
72173	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
72174	if err != nil {
72175		return nil, err
72176	}
72177	reqHeaders.Set("Content-Type", "application/json")
72178	c.urlParams_.Set("alt", alt)
72179	c.urlParams_.Set("prettyPrint", "false")
72180	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
72181	urls += "?" + c.urlParams_.Encode()
72182	req, err := http.NewRequest("POST", urls, body)
72183	if err != nil {
72184		return nil, err
72185	}
72186	req.Header = reqHeaders
72187	googleapi.Expand(req.URL, map[string]string{
72188		"project":              c.project,
72189		"zone":                 c.zone,
72190		"instanceGroupManager": c.instanceGroupManager,
72191	})
72192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72193}
72194
72195// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
72196// Exactly one of *Operation or error will be non-nil. Any non-2xx
72197// status code is an error. Response headers are in either
72198// *Operation.ServerResponse.Header or (if a response was returned at
72199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72200// to check whether the returned error was because
72201// http.StatusNotModified was returned.
72202func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72203	gensupport.SetOptions(c.urlParams_, opts...)
72204	res, err := c.doRequest("json")
72205	if res != nil && res.StatusCode == http.StatusNotModified {
72206		if res.Body != nil {
72207			res.Body.Close()
72208		}
72209		return nil, &googleapi.Error{
72210			Code:   res.StatusCode,
72211			Header: res.Header,
72212		}
72213	}
72214	if err != nil {
72215		return nil, err
72216	}
72217	defer googleapi.CloseBody(res)
72218	if err := googleapi.CheckResponse(res); err != nil {
72219		return nil, err
72220	}
72221	ret := &Operation{
72222		ServerResponse: googleapi.ServerResponse{
72223			Header:         res.Header,
72224			HTTPStatusCode: res.StatusCode,
72225		},
72226	}
72227	target := &ret
72228	if err := gensupport.DecodeResponse(target, res); err != nil {
72229		return nil, err
72230	}
72231	return ret, nil
72232	// {
72233	//   "description": "Deletes selected per-instance configs for the managed instance group.",
72234	//   "httpMethod": "POST",
72235	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
72236	//   "parameterOrder": [
72237	//     "project",
72238	//     "zone",
72239	//     "instanceGroupManager"
72240	//   ],
72241	//   "parameters": {
72242	//     "instanceGroupManager": {
72243	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
72244	//       "location": "path",
72245	//       "required": true,
72246	//       "type": "string"
72247	//     },
72248	//     "project": {
72249	//       "description": "Project ID for this request.",
72250	//       "location": "path",
72251	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72252	//       "required": true,
72253	//       "type": "string"
72254	//     },
72255	//     "zone": {
72256	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
72257	//       "location": "path",
72258	//       "required": true,
72259	//       "type": "string"
72260	//     }
72261	//   },
72262	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
72263	//   "request": {
72264	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
72265	//   },
72266	//   "response": {
72267	//     "$ref": "Operation"
72268	//   },
72269	//   "scopes": [
72270	//     "https://www.googleapis.com/auth/cloud-platform",
72271	//     "https://www.googleapis.com/auth/compute"
72272	//   ]
72273	// }
72274
72275}
72276
72277// method id "compute.instanceGroupManagers.get":
72278
72279type InstanceGroupManagersGetCall struct {
72280	s                    *Service
72281	project              string
72282	zone                 string
72283	instanceGroupManager string
72284	urlParams_           gensupport.URLParams
72285	ifNoneMatch_         string
72286	ctx_                 context.Context
72287	header_              http.Header
72288}
72289
72290// Get: Returns all of the details about the specified managed instance
72291// group. Gets a list of available managed instance groups by making a
72292// list() request.
72293func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
72294	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72295	c.project = project
72296	c.zone = zone
72297	c.instanceGroupManager = instanceGroupManager
72298	return c
72299}
72300
72301// Fields allows partial responses to be retrieved. See
72302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72303// for more information.
72304func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
72305	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72306	return c
72307}
72308
72309// IfNoneMatch sets the optional parameter which makes the operation
72310// fail if the object's ETag matches the given value. This is useful for
72311// getting updates only after the object has changed since the last
72312// request. Use googleapi.IsNotModified to check whether the response
72313// error from Do is the result of In-None-Match.
72314func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
72315	c.ifNoneMatch_ = entityTag
72316	return c
72317}
72318
72319// Context sets the context to be used in this call's Do method. Any
72320// pending HTTP request will be aborted if the provided context is
72321// canceled.
72322func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
72323	c.ctx_ = ctx
72324	return c
72325}
72326
72327// Header returns an http.Header that can be modified by the caller to
72328// add HTTP headers to the request.
72329func (c *InstanceGroupManagersGetCall) Header() http.Header {
72330	if c.header_ == nil {
72331		c.header_ = make(http.Header)
72332	}
72333	return c.header_
72334}
72335
72336func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
72337	reqHeaders := make(http.Header)
72338	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72339	for k, v := range c.header_ {
72340		reqHeaders[k] = v
72341	}
72342	reqHeaders.Set("User-Agent", c.s.userAgent())
72343	if c.ifNoneMatch_ != "" {
72344		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72345	}
72346	var body io.Reader = nil
72347	c.urlParams_.Set("alt", alt)
72348	c.urlParams_.Set("prettyPrint", "false")
72349	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
72350	urls += "?" + c.urlParams_.Encode()
72351	req, err := http.NewRequest("GET", urls, body)
72352	if err != nil {
72353		return nil, err
72354	}
72355	req.Header = reqHeaders
72356	googleapi.Expand(req.URL, map[string]string{
72357		"project":              c.project,
72358		"zone":                 c.zone,
72359		"instanceGroupManager": c.instanceGroupManager,
72360	})
72361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72362}
72363
72364// Do executes the "compute.instanceGroupManagers.get" call.
72365// Exactly one of *InstanceGroupManager or error will be non-nil. Any
72366// non-2xx status code is an error. Response headers are in either
72367// *InstanceGroupManager.ServerResponse.Header or (if a response was
72368// returned at all) in error.(*googleapi.Error).Header. Use
72369// googleapi.IsNotModified to check whether the returned error was
72370// because http.StatusNotModified was returned.
72371func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
72372	gensupport.SetOptions(c.urlParams_, opts...)
72373	res, err := c.doRequest("json")
72374	if res != nil && res.StatusCode == http.StatusNotModified {
72375		if res.Body != nil {
72376			res.Body.Close()
72377		}
72378		return nil, &googleapi.Error{
72379			Code:   res.StatusCode,
72380			Header: res.Header,
72381		}
72382	}
72383	if err != nil {
72384		return nil, err
72385	}
72386	defer googleapi.CloseBody(res)
72387	if err := googleapi.CheckResponse(res); err != nil {
72388		return nil, err
72389	}
72390	ret := &InstanceGroupManager{
72391		ServerResponse: googleapi.ServerResponse{
72392			Header:         res.Header,
72393			HTTPStatusCode: res.StatusCode,
72394		},
72395	}
72396	target := &ret
72397	if err := gensupport.DecodeResponse(target, res); err != nil {
72398		return nil, err
72399	}
72400	return ret, nil
72401	// {
72402	//   "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.",
72403	//   "httpMethod": "GET",
72404	//   "id": "compute.instanceGroupManagers.get",
72405	//   "parameterOrder": [
72406	//     "project",
72407	//     "zone",
72408	//     "instanceGroupManager"
72409	//   ],
72410	//   "parameters": {
72411	//     "instanceGroupManager": {
72412	//       "description": "The name of the managed instance group.",
72413	//       "location": "path",
72414	//       "required": true,
72415	//       "type": "string"
72416	//     },
72417	//     "project": {
72418	//       "description": "Project ID for this request.",
72419	//       "location": "path",
72420	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72421	//       "required": true,
72422	//       "type": "string"
72423	//     },
72424	//     "zone": {
72425	//       "description": "The name of the zone where the managed instance group is located.",
72426	//       "location": "path",
72427	//       "required": true,
72428	//       "type": "string"
72429	//     }
72430	//   },
72431	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
72432	//   "response": {
72433	//     "$ref": "InstanceGroupManager"
72434	//   },
72435	//   "scopes": [
72436	//     "https://www.googleapis.com/auth/cloud-platform",
72437	//     "https://www.googleapis.com/auth/compute",
72438	//     "https://www.googleapis.com/auth/compute.readonly"
72439	//   ]
72440	// }
72441
72442}
72443
72444// method id "compute.instanceGroupManagers.insert":
72445
72446type InstanceGroupManagersInsertCall struct {
72447	s                    *Service
72448	project              string
72449	zone                 string
72450	instancegroupmanager *InstanceGroupManager
72451	urlParams_           gensupport.URLParams
72452	ctx_                 context.Context
72453	header_              http.Header
72454}
72455
72456// Insert: Creates a managed instance group using the information that
72457// you specify in the request. After the group is created, instances in
72458// the group are created using the specified instance template. This
72459// operation is marked as DONE when the group is created even if the
72460// instances in the group have not yet been created. You must separately
72461// verify the status of the individual instances with the
72462// listmanagedinstances method.
72463//
72464// A managed instance group can have up to 1000 VM instances per group.
72465// Please contact Cloud Support if you need an increase in this limit.
72466func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
72467	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72468	c.project = project
72469	c.zone = zone
72470	c.instancegroupmanager = instancegroupmanager
72471	return c
72472}
72473
72474// RequestId sets the optional parameter "requestId": An optional
72475// request ID to identify requests. Specify a unique request ID so that
72476// if you must retry your request, the server will know to ignore the
72477// request if it has already been completed.
72478//
72479// For example, consider a situation where you make an initial request
72480// and the request times out. If you make the request again with the
72481// same request ID, the server can check if original operation with the
72482// same request ID was received, and if so, will ignore the second
72483// request. This prevents clients from accidentally creating duplicate
72484// commitments.
72485//
72486// The request ID must be a valid UUID with the exception that zero UUID
72487// is not supported (00000000-0000-0000-0000-000000000000).
72488func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
72489	c.urlParams_.Set("requestId", requestId)
72490	return c
72491}
72492
72493// Fields allows partial responses to be retrieved. See
72494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72495// for more information.
72496func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
72497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72498	return c
72499}
72500
72501// Context sets the context to be used in this call's Do method. Any
72502// pending HTTP request will be aborted if the provided context is
72503// canceled.
72504func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
72505	c.ctx_ = ctx
72506	return c
72507}
72508
72509// Header returns an http.Header that can be modified by the caller to
72510// add HTTP headers to the request.
72511func (c *InstanceGroupManagersInsertCall) Header() http.Header {
72512	if c.header_ == nil {
72513		c.header_ = make(http.Header)
72514	}
72515	return c.header_
72516}
72517
72518func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
72519	reqHeaders := make(http.Header)
72520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72521	for k, v := range c.header_ {
72522		reqHeaders[k] = v
72523	}
72524	reqHeaders.Set("User-Agent", c.s.userAgent())
72525	var body io.Reader = nil
72526	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
72527	if err != nil {
72528		return nil, err
72529	}
72530	reqHeaders.Set("Content-Type", "application/json")
72531	c.urlParams_.Set("alt", alt)
72532	c.urlParams_.Set("prettyPrint", "false")
72533	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
72534	urls += "?" + c.urlParams_.Encode()
72535	req, err := http.NewRequest("POST", urls, body)
72536	if err != nil {
72537		return nil, err
72538	}
72539	req.Header = reqHeaders
72540	googleapi.Expand(req.URL, map[string]string{
72541		"project": c.project,
72542		"zone":    c.zone,
72543	})
72544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72545}
72546
72547// Do executes the "compute.instanceGroupManagers.insert" call.
72548// Exactly one of *Operation or error will be non-nil. Any non-2xx
72549// status code is an error. Response headers are in either
72550// *Operation.ServerResponse.Header or (if a response was returned at
72551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72552// to check whether the returned error was because
72553// http.StatusNotModified was returned.
72554func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72555	gensupport.SetOptions(c.urlParams_, opts...)
72556	res, err := c.doRequest("json")
72557	if res != nil && res.StatusCode == http.StatusNotModified {
72558		if res.Body != nil {
72559			res.Body.Close()
72560		}
72561		return nil, &googleapi.Error{
72562			Code:   res.StatusCode,
72563			Header: res.Header,
72564		}
72565	}
72566	if err != nil {
72567		return nil, err
72568	}
72569	defer googleapi.CloseBody(res)
72570	if err := googleapi.CheckResponse(res); err != nil {
72571		return nil, err
72572	}
72573	ret := &Operation{
72574		ServerResponse: googleapi.ServerResponse{
72575			Header:         res.Header,
72576			HTTPStatusCode: res.StatusCode,
72577		},
72578	}
72579	target := &ret
72580	if err := gensupport.DecodeResponse(target, res); err != nil {
72581		return nil, err
72582	}
72583	return ret, nil
72584	// {
72585	//   "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.",
72586	//   "httpMethod": "POST",
72587	//   "id": "compute.instanceGroupManagers.insert",
72588	//   "parameterOrder": [
72589	//     "project",
72590	//     "zone"
72591	//   ],
72592	//   "parameters": {
72593	//     "project": {
72594	//       "description": "Project ID for this request.",
72595	//       "location": "path",
72596	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72597	//       "required": true,
72598	//       "type": "string"
72599	//     },
72600	//     "requestId": {
72601	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72602	//       "location": "query",
72603	//       "type": "string"
72604	//     },
72605	//     "zone": {
72606	//       "description": "The name of the zone where you want to create the managed instance group.",
72607	//       "location": "path",
72608	//       "required": true,
72609	//       "type": "string"
72610	//     }
72611	//   },
72612	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
72613	//   "request": {
72614	//     "$ref": "InstanceGroupManager"
72615	//   },
72616	//   "response": {
72617	//     "$ref": "Operation"
72618	//   },
72619	//   "scopes": [
72620	//     "https://www.googleapis.com/auth/cloud-platform",
72621	//     "https://www.googleapis.com/auth/compute"
72622	//   ]
72623	// }
72624
72625}
72626
72627// method id "compute.instanceGroupManagers.list":
72628
72629type InstanceGroupManagersListCall struct {
72630	s            *Service
72631	project      string
72632	zone         string
72633	urlParams_   gensupport.URLParams
72634	ifNoneMatch_ string
72635	ctx_         context.Context
72636	header_      http.Header
72637}
72638
72639// List: Retrieves a list of managed instance groups that are contained
72640// within the specified project and zone.
72641func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
72642	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72643	c.project = project
72644	c.zone = zone
72645	return c
72646}
72647
72648// Filter sets the optional parameter "filter": A filter expression that
72649// filters resources listed in the response. The expression must specify
72650// the field name, a comparison operator, and the value that you want to
72651// use for filtering. The value must be a string, a number, or a
72652// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72653// `<`.
72654//
72655// For example, if you are filtering Compute Engine instances, you can
72656// exclude instances named `example-instance` by specifying `name !=
72657// example-instance`.
72658//
72659// You can also filter nested fields. For example, you could specify
72660// `scheduling.automaticRestart = false` to include instances only if
72661// they are not scheduled for automatic restarts. You can use filtering
72662// on nested fields to filter based on resource labels.
72663//
72664// To filter on multiple expressions, provide each separate expression
72665// within parentheses. For example: ``` (scheduling.automaticRestart =
72666// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
72667// is an `AND` expression. However, you can include `AND` and `OR`
72668// expressions explicitly. For example: ``` (cpuPlatform = "Intel
72669// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
72670// (scheduling.automaticRestart = true) ```
72671func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
72672	c.urlParams_.Set("filter", filter)
72673	return c
72674}
72675
72676// MaxResults sets the optional parameter "maxResults": The maximum
72677// number of results per page that should be returned. If the number of
72678// available results is larger than `maxResults`, Compute Engine returns
72679// a `nextPageToken` that can be used to get the next page of results in
72680// subsequent list requests. Acceptable values are `0` to `500`,
72681// inclusive. (Default: `500`)
72682func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
72683	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72684	return c
72685}
72686
72687// OrderBy sets the optional parameter "orderBy": Sorts list results by
72688// a certain order. By default, results are returned in alphanumerical
72689// order based on the resource name.
72690//
72691// You can also sort results in descending order based on the creation
72692// timestamp using `orderBy="creationTimestamp desc". This sorts
72693// results based on the `creationTimestamp` field in reverse
72694// chronological order (newest result first). Use this to sort resources
72695// like operations so that the newest operation is returned
72696// first.
72697//
72698// Currently, only sorting by `name` or `creationTimestamp desc` is
72699// supported.
72700func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
72701	c.urlParams_.Set("orderBy", orderBy)
72702	return c
72703}
72704
72705// PageToken sets the optional parameter "pageToken": Specifies a page
72706// token to use. Set `pageToken` to the `nextPageToken` returned by a
72707// previous list request to get the next page of results.
72708func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
72709	c.urlParams_.Set("pageToken", pageToken)
72710	return c
72711}
72712
72713// Fields allows partial responses to be retrieved. See
72714// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72715// for more information.
72716func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
72717	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72718	return c
72719}
72720
72721// IfNoneMatch sets the optional parameter which makes the operation
72722// fail if the object's ETag matches the given value. This is useful for
72723// getting updates only after the object has changed since the last
72724// request. Use googleapi.IsNotModified to check whether the response
72725// error from Do is the result of In-None-Match.
72726func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
72727	c.ifNoneMatch_ = entityTag
72728	return c
72729}
72730
72731// Context sets the context to be used in this call's Do method. Any
72732// pending HTTP request will be aborted if the provided context is
72733// canceled.
72734func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
72735	c.ctx_ = ctx
72736	return c
72737}
72738
72739// Header returns an http.Header that can be modified by the caller to
72740// add HTTP headers to the request.
72741func (c *InstanceGroupManagersListCall) Header() http.Header {
72742	if c.header_ == nil {
72743		c.header_ = make(http.Header)
72744	}
72745	return c.header_
72746}
72747
72748func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
72749	reqHeaders := make(http.Header)
72750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
72751	for k, v := range c.header_ {
72752		reqHeaders[k] = v
72753	}
72754	reqHeaders.Set("User-Agent", c.s.userAgent())
72755	if c.ifNoneMatch_ != "" {
72756		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72757	}
72758	var body io.Reader = nil
72759	c.urlParams_.Set("alt", alt)
72760	c.urlParams_.Set("prettyPrint", "false")
72761	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
72762	urls += "?" + c.urlParams_.Encode()
72763	req, err := http.NewRequest("GET", urls, body)
72764	if err != nil {
72765		return nil, err
72766	}
72767	req.Header = reqHeaders
72768	googleapi.Expand(req.URL, map[string]string{
72769		"project": c.project,
72770		"zone":    c.zone,
72771	})
72772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72773}
72774
72775// Do executes the "compute.instanceGroupManagers.list" call.
72776// Exactly one of *InstanceGroupManagerList or error will be non-nil.
72777// Any non-2xx status code is an error. Response headers are in either
72778// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
72779// returned at all) in error.(*googleapi.Error).Header. Use
72780// googleapi.IsNotModified to check whether the returned error was
72781// because http.StatusNotModified was returned.
72782func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
72783	gensupport.SetOptions(c.urlParams_, opts...)
72784	res, err := c.doRequest("json")
72785	if res != nil && res.StatusCode == http.StatusNotModified {
72786		if res.Body != nil {
72787			res.Body.Close()
72788		}
72789		return nil, &googleapi.Error{
72790			Code:   res.StatusCode,
72791			Header: res.Header,
72792		}
72793	}
72794	if err != nil {
72795		return nil, err
72796	}
72797	defer googleapi.CloseBody(res)
72798	if err := googleapi.CheckResponse(res); err != nil {
72799		return nil, err
72800	}
72801	ret := &InstanceGroupManagerList{
72802		ServerResponse: googleapi.ServerResponse{
72803			Header:         res.Header,
72804			HTTPStatusCode: res.StatusCode,
72805		},
72806	}
72807	target := &ret
72808	if err := gensupport.DecodeResponse(target, res); err != nil {
72809		return nil, err
72810	}
72811	return ret, nil
72812	// {
72813	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
72814	//   "httpMethod": "GET",
72815	//   "id": "compute.instanceGroupManagers.list",
72816	//   "parameterOrder": [
72817	//     "project",
72818	//     "zone"
72819	//   ],
72820	//   "parameters": {
72821	//     "filter": {
72822	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
72823	//       "location": "query",
72824	//       "type": "string"
72825	//     },
72826	//     "maxResults": {
72827	//       "default": "500",
72828	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72829	//       "format": "uint32",
72830	//       "location": "query",
72831	//       "minimum": "0",
72832	//       "type": "integer"
72833	//     },
72834	//     "orderBy": {
72835	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
72836	//       "location": "query",
72837	//       "type": "string"
72838	//     },
72839	//     "pageToken": {
72840	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72841	//       "location": "query",
72842	//       "type": "string"
72843	//     },
72844	//     "project": {
72845	//       "description": "Project ID for this request.",
72846	//       "location": "path",
72847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72848	//       "required": true,
72849	//       "type": "string"
72850	//     },
72851	//     "zone": {
72852	//       "description": "The name of the zone where the managed instance group is located.",
72853	//       "location": "path",
72854	//       "required": true,
72855	//       "type": "string"
72856	//     }
72857	//   },
72858	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
72859	//   "response": {
72860	//     "$ref": "InstanceGroupManagerList"
72861	//   },
72862	//   "scopes": [
72863	//     "https://www.googleapis.com/auth/cloud-platform",
72864	//     "https://www.googleapis.com/auth/compute",
72865	//     "https://www.googleapis.com/auth/compute.readonly"
72866	//   ]
72867	// }
72868
72869}
72870
72871// Pages invokes f for each page of results.
72872// A non-nil error returned from f will halt the iteration.
72873// The provided context supersedes any context provided to the Context method.
72874func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
72875	c.ctx_ = ctx
72876	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72877	for {
72878		x, err := c.Do()
72879		if err != nil {
72880			return err
72881		}
72882		if err := f(x); err != nil {
72883			return err
72884		}
72885		if x.NextPageToken == "" {
72886			return nil
72887		}
72888		c.PageToken(x.NextPageToken)
72889	}
72890}
72891
72892// method id "compute.instanceGroupManagers.listErrors":
72893
72894type InstanceGroupManagersListErrorsCall struct {
72895	s                    *Service
72896	project              string
72897	zone                 string
72898	instanceGroupManager string
72899	urlParams_           gensupport.URLParams
72900	ifNoneMatch_         string
72901	ctx_                 context.Context
72902	header_              http.Header
72903}
72904
72905// ListErrors: Lists all errors thrown by actions on instances for a
72906// given managed instance group. The filter and orderBy query parameters
72907// are not supported.
72908func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
72909	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72910	c.project = project
72911	c.zone = zone
72912	c.instanceGroupManager = instanceGroupManager
72913	return c
72914}
72915
72916// Filter sets the optional parameter "filter": A filter expression that
72917// filters resources listed in the response. The expression must specify
72918// the field name, a comparison operator, and the value that you want to
72919// use for filtering. The value must be a string, a number, or a
72920// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72921// `<`.
72922//
72923// For example, if you are filtering Compute Engine instances, you can
72924// exclude instances named `example-instance` by specifying `name !=
72925// example-instance`.
72926//
72927// You can also filter nested fields. For example, you could specify
72928// `scheduling.automaticRestart = false` to include instances only if
72929// they are not scheduled for automatic restarts. You can use filtering
72930// on nested fields to filter based on resource labels.
72931//
72932// To filter on multiple expressions, provide each separate expression
72933// within parentheses. For example: ``` (scheduling.automaticRestart =
72934// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
72935// is an `AND` expression. However, you can include `AND` and `OR`
72936// expressions explicitly. For example: ``` (cpuPlatform = "Intel
72937// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
72938// (scheduling.automaticRestart = true) ```
72939func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
72940	c.urlParams_.Set("filter", filter)
72941	return c
72942}
72943
72944// MaxResults sets the optional parameter "maxResults": The maximum
72945// number of results per page that should be returned. If the number of
72946// available results is larger than `maxResults`, Compute Engine returns
72947// a `nextPageToken` that can be used to get the next page of results in
72948// subsequent list requests. Acceptable values are `0` to `500`,
72949// inclusive. (Default: `500`)
72950func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
72951	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72952	return c
72953}
72954
72955// OrderBy sets the optional parameter "orderBy": Sorts list results by
72956// a certain order. By default, results are returned in alphanumerical
72957// order based on the resource name.
72958//
72959// You can also sort results in descending order based on the creation
72960// timestamp using `orderBy="creationTimestamp desc". This sorts
72961// results based on the `creationTimestamp` field in reverse
72962// chronological order (newest result first). Use this to sort resources
72963// like operations so that the newest operation is returned
72964// first.
72965//
72966// Currently, only sorting by `name` or `creationTimestamp desc` is
72967// supported.
72968func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
72969	c.urlParams_.Set("orderBy", orderBy)
72970	return c
72971}
72972
72973// PageToken sets the optional parameter "pageToken": Specifies a page
72974// token to use. Set `pageToken` to the `nextPageToken` returned by a
72975// previous list request to get the next page of results.
72976func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
72977	c.urlParams_.Set("pageToken", pageToken)
72978	return c
72979}
72980
72981// Fields allows partial responses to be retrieved. See
72982// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72983// for more information.
72984func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
72985	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72986	return c
72987}
72988
72989// IfNoneMatch sets the optional parameter which makes the operation
72990// fail if the object's ETag matches the given value. This is useful for
72991// getting updates only after the object has changed since the last
72992// request. Use googleapi.IsNotModified to check whether the response
72993// error from Do is the result of In-None-Match.
72994func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
72995	c.ifNoneMatch_ = entityTag
72996	return c
72997}
72998
72999// Context sets the context to be used in this call's Do method. Any
73000// pending HTTP request will be aborted if the provided context is
73001// canceled.
73002func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
73003	c.ctx_ = ctx
73004	return c
73005}
73006
73007// Header returns an http.Header that can be modified by the caller to
73008// add HTTP headers to the request.
73009func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
73010	if c.header_ == nil {
73011		c.header_ = make(http.Header)
73012	}
73013	return c.header_
73014}
73015
73016func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
73017	reqHeaders := make(http.Header)
73018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73019	for k, v := range c.header_ {
73020		reqHeaders[k] = v
73021	}
73022	reqHeaders.Set("User-Agent", c.s.userAgent())
73023	if c.ifNoneMatch_ != "" {
73024		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73025	}
73026	var body io.Reader = nil
73027	c.urlParams_.Set("alt", alt)
73028	c.urlParams_.Set("prettyPrint", "false")
73029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
73030	urls += "?" + c.urlParams_.Encode()
73031	req, err := http.NewRequest("GET", urls, body)
73032	if err != nil {
73033		return nil, err
73034	}
73035	req.Header = reqHeaders
73036	googleapi.Expand(req.URL, map[string]string{
73037		"project":              c.project,
73038		"zone":                 c.zone,
73039		"instanceGroupManager": c.instanceGroupManager,
73040	})
73041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73042}
73043
73044// Do executes the "compute.instanceGroupManagers.listErrors" call.
73045// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
73046// be non-nil. Any non-2xx status code is an error. Response headers are
73047// in either
73048// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
73049// a response was returned at all) in error.(*googleapi.Error).Header.
73050// Use googleapi.IsNotModified to check whether the returned error was
73051// because http.StatusNotModified was returned.
73052func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
73053	gensupport.SetOptions(c.urlParams_, opts...)
73054	res, err := c.doRequest("json")
73055	if res != nil && res.StatusCode == http.StatusNotModified {
73056		if res.Body != nil {
73057			res.Body.Close()
73058		}
73059		return nil, &googleapi.Error{
73060			Code:   res.StatusCode,
73061			Header: res.Header,
73062		}
73063	}
73064	if err != nil {
73065		return nil, err
73066	}
73067	defer googleapi.CloseBody(res)
73068	if err := googleapi.CheckResponse(res); err != nil {
73069		return nil, err
73070	}
73071	ret := &InstanceGroupManagersListErrorsResponse{
73072		ServerResponse: googleapi.ServerResponse{
73073			Header:         res.Header,
73074			HTTPStatusCode: res.StatusCode,
73075		},
73076	}
73077	target := &ret
73078	if err := gensupport.DecodeResponse(target, res); err != nil {
73079		return nil, err
73080	}
73081	return ret, nil
73082	// {
73083	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.",
73084	//   "httpMethod": "GET",
73085	//   "id": "compute.instanceGroupManagers.listErrors",
73086	//   "parameterOrder": [
73087	//     "project",
73088	//     "zone",
73089	//     "instanceGroupManager"
73090	//   ],
73091	//   "parameters": {
73092	//     "filter": {
73093	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73094	//       "location": "query",
73095	//       "type": "string"
73096	//     },
73097	//     "instanceGroupManager": {
73098	//       "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}.",
73099	//       "location": "path",
73100	//       "required": true,
73101	//       "type": "string"
73102	//     },
73103	//     "maxResults": {
73104	//       "default": "500",
73105	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73106	//       "format": "uint32",
73107	//       "location": "query",
73108	//       "minimum": "0",
73109	//       "type": "integer"
73110	//     },
73111	//     "orderBy": {
73112	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73113	//       "location": "query",
73114	//       "type": "string"
73115	//     },
73116	//     "pageToken": {
73117	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73118	//       "location": "query",
73119	//       "type": "string"
73120	//     },
73121	//     "project": {
73122	//       "description": "Project ID for this request.",
73123	//       "location": "path",
73124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73125	//       "required": true,
73126	//       "type": "string"
73127	//     },
73128	//     "zone": {
73129	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
73130	//       "location": "path",
73131	//       "required": true,
73132	//       "type": "string"
73133	//     }
73134	//   },
73135	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
73136	//   "response": {
73137	//     "$ref": "InstanceGroupManagersListErrorsResponse"
73138	//   },
73139	//   "scopes": [
73140	//     "https://www.googleapis.com/auth/cloud-platform",
73141	//     "https://www.googleapis.com/auth/compute",
73142	//     "https://www.googleapis.com/auth/compute.readonly"
73143	//   ]
73144	// }
73145
73146}
73147
73148// Pages invokes f for each page of results.
73149// A non-nil error returned from f will halt the iteration.
73150// The provided context supersedes any context provided to the Context method.
73151func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
73152	c.ctx_ = ctx
73153	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73154	for {
73155		x, err := c.Do()
73156		if err != nil {
73157			return err
73158		}
73159		if err := f(x); err != nil {
73160			return err
73161		}
73162		if x.NextPageToken == "" {
73163			return nil
73164		}
73165		c.PageToken(x.NextPageToken)
73166	}
73167}
73168
73169// method id "compute.instanceGroupManagers.listManagedInstances":
73170
73171type InstanceGroupManagersListManagedInstancesCall struct {
73172	s                    *Service
73173	project              string
73174	zone                 string
73175	instanceGroupManager string
73176	urlParams_           gensupport.URLParams
73177	ctx_                 context.Context
73178	header_              http.Header
73179}
73180
73181// ListManagedInstances: Lists all of the instances in the managed
73182// instance group. Each instance in the list has a currentAction, which
73183// indicates the action that the managed instance group is performing on
73184// the instance. For example, if the group is still creating an
73185// instance, the currentAction is CREATING. If a previous action failed,
73186// the list displays the errors for that failed action. The orderBy
73187// query parameter is not supported.
73188func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
73189	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73190	c.project = project
73191	c.zone = zone
73192	c.instanceGroupManager = instanceGroupManager
73193	return c
73194}
73195
73196// Filter sets the optional parameter "filter": A filter expression that
73197// filters resources listed in the response. The expression must specify
73198// the field name, a comparison operator, and the value that you want to
73199// use for filtering. The value must be a string, a number, or a
73200// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73201// `<`.
73202//
73203// For example, if you are filtering Compute Engine instances, you can
73204// exclude instances named `example-instance` by specifying `name !=
73205// example-instance`.
73206//
73207// You can also filter nested fields. For example, you could specify
73208// `scheduling.automaticRestart = false` to include instances only if
73209// they are not scheduled for automatic restarts. You can use filtering
73210// on nested fields to filter based on resource labels.
73211//
73212// To filter on multiple expressions, provide each separate expression
73213// within parentheses. For example: ``` (scheduling.automaticRestart =
73214// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73215// is an `AND` expression. However, you can include `AND` and `OR`
73216// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73217// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73218// (scheduling.automaticRestart = true) ```
73219func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
73220	c.urlParams_.Set("filter", filter)
73221	return c
73222}
73223
73224// MaxResults sets the optional parameter "maxResults": The maximum
73225// number of results per page that should be returned. If the number of
73226// available results is larger than `maxResults`, Compute Engine returns
73227// a `nextPageToken` that can be used to get the next page of results in
73228// subsequent list requests. Acceptable values are `0` to `500`,
73229// inclusive. (Default: `500`)
73230func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
73231	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73232	return c
73233}
73234
73235// OrderBy sets the optional parameter "orderBy": Sorts list results by
73236// a certain order. By default, results are returned in alphanumerical
73237// order based on the resource name.
73238//
73239// You can also sort results in descending order based on the creation
73240// timestamp using `orderBy="creationTimestamp desc". This sorts
73241// results based on the `creationTimestamp` field in reverse
73242// chronological order (newest result first). Use this to sort resources
73243// like operations so that the newest operation is returned
73244// first.
73245//
73246// Currently, only sorting by `name` or `creationTimestamp desc` is
73247// supported.
73248func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
73249	c.urlParams_.Set("orderBy", orderBy)
73250	return c
73251}
73252
73253// PageToken sets the optional parameter "pageToken": Specifies a page
73254// token to use. Set `pageToken` to the `nextPageToken` returned by a
73255// previous list request to get the next page of results.
73256func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
73257	c.urlParams_.Set("pageToken", pageToken)
73258	return c
73259}
73260
73261// Fields allows partial responses to be retrieved. See
73262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73263// for more information.
73264func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
73265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73266	return c
73267}
73268
73269// Context sets the context to be used in this call's Do method. Any
73270// pending HTTP request will be aborted if the provided context is
73271// canceled.
73272func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
73273	c.ctx_ = ctx
73274	return c
73275}
73276
73277// Header returns an http.Header that can be modified by the caller to
73278// add HTTP headers to the request.
73279func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
73280	if c.header_ == nil {
73281		c.header_ = make(http.Header)
73282	}
73283	return c.header_
73284}
73285
73286func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
73287	reqHeaders := make(http.Header)
73288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73289	for k, v := range c.header_ {
73290		reqHeaders[k] = v
73291	}
73292	reqHeaders.Set("User-Agent", c.s.userAgent())
73293	var body io.Reader = nil
73294	c.urlParams_.Set("alt", alt)
73295	c.urlParams_.Set("prettyPrint", "false")
73296	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
73297	urls += "?" + c.urlParams_.Encode()
73298	req, err := http.NewRequest("POST", urls, body)
73299	if err != nil {
73300		return nil, err
73301	}
73302	req.Header = reqHeaders
73303	googleapi.Expand(req.URL, map[string]string{
73304		"project":              c.project,
73305		"zone":                 c.zone,
73306		"instanceGroupManager": c.instanceGroupManager,
73307	})
73308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73309}
73310
73311// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
73312// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
73313// error will be non-nil. Any non-2xx status code is an error. Response
73314// headers are in either
73315// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
73316// er or (if a response was returned at all) in
73317// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
73318// whether the returned error was because http.StatusNotModified was
73319// returned.
73320func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
73321	gensupport.SetOptions(c.urlParams_, opts...)
73322	res, err := c.doRequest("json")
73323	if res != nil && res.StatusCode == http.StatusNotModified {
73324		if res.Body != nil {
73325			res.Body.Close()
73326		}
73327		return nil, &googleapi.Error{
73328			Code:   res.StatusCode,
73329			Header: res.Header,
73330		}
73331	}
73332	if err != nil {
73333		return nil, err
73334	}
73335	defer googleapi.CloseBody(res)
73336	if err := googleapi.CheckResponse(res); err != nil {
73337		return nil, err
73338	}
73339	ret := &InstanceGroupManagersListManagedInstancesResponse{
73340		ServerResponse: googleapi.ServerResponse{
73341			Header:         res.Header,
73342			HTTPStatusCode: res.StatusCode,
73343		},
73344	}
73345	target := &ret
73346	if err := gensupport.DecodeResponse(target, res); err != nil {
73347		return nil, err
73348	}
73349	return ret, nil
73350	// {
73351	//   "description": "Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported.",
73352	//   "httpMethod": "POST",
73353	//   "id": "compute.instanceGroupManagers.listManagedInstances",
73354	//   "parameterOrder": [
73355	//     "project",
73356	//     "zone",
73357	//     "instanceGroupManager"
73358	//   ],
73359	//   "parameters": {
73360	//     "filter": {
73361	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73362	//       "location": "query",
73363	//       "type": "string"
73364	//     },
73365	//     "instanceGroupManager": {
73366	//       "description": "The name of the managed instance group.",
73367	//       "location": "path",
73368	//       "required": true,
73369	//       "type": "string"
73370	//     },
73371	//     "maxResults": {
73372	//       "default": "500",
73373	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73374	//       "format": "uint32",
73375	//       "location": "query",
73376	//       "minimum": "0",
73377	//       "type": "integer"
73378	//     },
73379	//     "orderBy": {
73380	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73381	//       "location": "query",
73382	//       "type": "string"
73383	//     },
73384	//     "pageToken": {
73385	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73386	//       "location": "query",
73387	//       "type": "string"
73388	//     },
73389	//     "project": {
73390	//       "description": "Project ID for this request.",
73391	//       "location": "path",
73392	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73393	//       "required": true,
73394	//       "type": "string"
73395	//     },
73396	//     "zone": {
73397	//       "description": "The name of the zone where the managed instance group is located.",
73398	//       "location": "path",
73399	//       "required": true,
73400	//       "type": "string"
73401	//     }
73402	//   },
73403	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
73404	//   "response": {
73405	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
73406	//   },
73407	//   "scopes": [
73408	//     "https://www.googleapis.com/auth/cloud-platform",
73409	//     "https://www.googleapis.com/auth/compute",
73410	//     "https://www.googleapis.com/auth/compute.readonly"
73411	//   ]
73412	// }
73413
73414}
73415
73416// Pages invokes f for each page of results.
73417// A non-nil error returned from f will halt the iteration.
73418// The provided context supersedes any context provided to the Context method.
73419func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
73420	c.ctx_ = ctx
73421	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73422	for {
73423		x, err := c.Do()
73424		if err != nil {
73425			return err
73426		}
73427		if err := f(x); err != nil {
73428			return err
73429		}
73430		if x.NextPageToken == "" {
73431			return nil
73432		}
73433		c.PageToken(x.NextPageToken)
73434	}
73435}
73436
73437// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
73438
73439type InstanceGroupManagersListPerInstanceConfigsCall struct {
73440	s                    *Service
73441	project              string
73442	zone                 string
73443	instanceGroupManager string
73444	urlParams_           gensupport.URLParams
73445	ctx_                 context.Context
73446	header_              http.Header
73447}
73448
73449// ListPerInstanceConfigs: Lists all of the per-instance configs defined
73450// for the managed instance group. The orderBy query parameter is not
73451// supported.
73452func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
73453	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73454	c.project = project
73455	c.zone = zone
73456	c.instanceGroupManager = instanceGroupManager
73457	return c
73458}
73459
73460// Filter sets the optional parameter "filter": A filter expression that
73461// filters resources listed in the response. The expression must specify
73462// the field name, a comparison operator, and the value that you want to
73463// use for filtering. The value must be a string, a number, or a
73464// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73465// `<`.
73466//
73467// For example, if you are filtering Compute Engine instances, you can
73468// exclude instances named `example-instance` by specifying `name !=
73469// example-instance`.
73470//
73471// You can also filter nested fields. For example, you could specify
73472// `scheduling.automaticRestart = false` to include instances only if
73473// they are not scheduled for automatic restarts. You can use filtering
73474// on nested fields to filter based on resource labels.
73475//
73476// To filter on multiple expressions, provide each separate expression
73477// within parentheses. For example: ``` (scheduling.automaticRestart =
73478// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73479// is an `AND` expression. However, you can include `AND` and `OR`
73480// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73481// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73482// (scheduling.automaticRestart = true) ```
73483func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
73484	c.urlParams_.Set("filter", filter)
73485	return c
73486}
73487
73488// MaxResults sets the optional parameter "maxResults": The maximum
73489// number of results per page that should be returned. If the number of
73490// available results is larger than `maxResults`, Compute Engine returns
73491// a `nextPageToken` that can be used to get the next page of results in
73492// subsequent list requests. Acceptable values are `0` to `500`,
73493// inclusive. (Default: `500`)
73494func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
73495	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73496	return c
73497}
73498
73499// OrderBy sets the optional parameter "orderBy": Sorts list results by
73500// a certain order. By default, results are returned in alphanumerical
73501// order based on the resource name.
73502//
73503// You can also sort results in descending order based on the creation
73504// timestamp using `orderBy="creationTimestamp desc". This sorts
73505// results based on the `creationTimestamp` field in reverse
73506// chronological order (newest result first). Use this to sort resources
73507// like operations so that the newest operation is returned
73508// first.
73509//
73510// Currently, only sorting by `name` or `creationTimestamp desc` is
73511// supported.
73512func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
73513	c.urlParams_.Set("orderBy", orderBy)
73514	return c
73515}
73516
73517// PageToken sets the optional parameter "pageToken": Specifies a page
73518// token to use. Set `pageToken` to the `nextPageToken` returned by a
73519// previous list request to get the next page of results.
73520func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
73521	c.urlParams_.Set("pageToken", pageToken)
73522	return c
73523}
73524
73525// Fields allows partial responses to be retrieved. See
73526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73527// for more information.
73528func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
73529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73530	return c
73531}
73532
73533// Context sets the context to be used in this call's Do method. Any
73534// pending HTTP request will be aborted if the provided context is
73535// canceled.
73536func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
73537	c.ctx_ = ctx
73538	return c
73539}
73540
73541// Header returns an http.Header that can be modified by the caller to
73542// add HTTP headers to the request.
73543func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
73544	if c.header_ == nil {
73545		c.header_ = make(http.Header)
73546	}
73547	return c.header_
73548}
73549
73550func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
73551	reqHeaders := make(http.Header)
73552	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73553	for k, v := range c.header_ {
73554		reqHeaders[k] = v
73555	}
73556	reqHeaders.Set("User-Agent", c.s.userAgent())
73557	var body io.Reader = nil
73558	c.urlParams_.Set("alt", alt)
73559	c.urlParams_.Set("prettyPrint", "false")
73560	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
73561	urls += "?" + c.urlParams_.Encode()
73562	req, err := http.NewRequest("POST", urls, body)
73563	if err != nil {
73564		return nil, err
73565	}
73566	req.Header = reqHeaders
73567	googleapi.Expand(req.URL, map[string]string{
73568		"project":              c.project,
73569		"zone":                 c.zone,
73570		"instanceGroupManager": c.instanceGroupManager,
73571	})
73572	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73573}
73574
73575// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
73576// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
73577// error will be non-nil. Any non-2xx status code is an error. Response
73578// headers are in either
73579// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
73580//  or (if a response was returned at all) in
73581// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
73582// whether the returned error was because http.StatusNotModified was
73583// returned.
73584func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
73585	gensupport.SetOptions(c.urlParams_, opts...)
73586	res, err := c.doRequest("json")
73587	if res != nil && res.StatusCode == http.StatusNotModified {
73588		if res.Body != nil {
73589			res.Body.Close()
73590		}
73591		return nil, &googleapi.Error{
73592			Code:   res.StatusCode,
73593			Header: res.Header,
73594		}
73595	}
73596	if err != nil {
73597		return nil, err
73598	}
73599	defer googleapi.CloseBody(res)
73600	if err := googleapi.CheckResponse(res); err != nil {
73601		return nil, err
73602	}
73603	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
73604		ServerResponse: googleapi.ServerResponse{
73605			Header:         res.Header,
73606			HTTPStatusCode: res.StatusCode,
73607		},
73608	}
73609	target := &ret
73610	if err := gensupport.DecodeResponse(target, res); err != nil {
73611		return nil, err
73612	}
73613	return ret, nil
73614	// {
73615	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
73616	//   "httpMethod": "POST",
73617	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
73618	//   "parameterOrder": [
73619	//     "project",
73620	//     "zone",
73621	//     "instanceGroupManager"
73622	//   ],
73623	//   "parameters": {
73624	//     "filter": {
73625	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73626	//       "location": "query",
73627	//       "type": "string"
73628	//     },
73629	//     "instanceGroupManager": {
73630	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
73631	//       "location": "path",
73632	//       "required": true,
73633	//       "type": "string"
73634	//     },
73635	//     "maxResults": {
73636	//       "default": "500",
73637	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73638	//       "format": "uint32",
73639	//       "location": "query",
73640	//       "minimum": "0",
73641	//       "type": "integer"
73642	//     },
73643	//     "orderBy": {
73644	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73645	//       "location": "query",
73646	//       "type": "string"
73647	//     },
73648	//     "pageToken": {
73649	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73650	//       "location": "query",
73651	//       "type": "string"
73652	//     },
73653	//     "project": {
73654	//       "description": "Project ID for this request.",
73655	//       "location": "path",
73656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73657	//       "required": true,
73658	//       "type": "string"
73659	//     },
73660	//     "zone": {
73661	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
73662	//       "location": "path",
73663	//       "required": true,
73664	//       "type": "string"
73665	//     }
73666	//   },
73667	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
73668	//   "response": {
73669	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
73670	//   },
73671	//   "scopes": [
73672	//     "https://www.googleapis.com/auth/cloud-platform",
73673	//     "https://www.googleapis.com/auth/compute",
73674	//     "https://www.googleapis.com/auth/compute.readonly"
73675	//   ]
73676	// }
73677
73678}
73679
73680// Pages invokes f for each page of results.
73681// A non-nil error returned from f will halt the iteration.
73682// The provided context supersedes any context provided to the Context method.
73683func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
73684	c.ctx_ = ctx
73685	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73686	for {
73687		x, err := c.Do()
73688		if err != nil {
73689			return err
73690		}
73691		if err := f(x); err != nil {
73692			return err
73693		}
73694		if x.NextPageToken == "" {
73695			return nil
73696		}
73697		c.PageToken(x.NextPageToken)
73698	}
73699}
73700
73701// method id "compute.instanceGroupManagers.patch":
73702
73703type InstanceGroupManagersPatchCall struct {
73704	s                    *Service
73705	project              string
73706	zone                 string
73707	instanceGroupManager string
73708	instancegroupmanager *InstanceGroupManager
73709	urlParams_           gensupport.URLParams
73710	ctx_                 context.Context
73711	header_              http.Header
73712}
73713
73714// Patch: Updates a managed instance group using the information that
73715// you specify in the request. This operation is marked as DONE when the
73716// group is patched even if the instances in the group are still in the
73717// process of being patched. You must separately verify the status of
73718// the individual instances with the listManagedInstances method. This
73719// method supports PATCH semantics and uses the JSON merge patch format
73720// and processing rules.
73721func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
73722	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73723	c.project = project
73724	c.zone = zone
73725	c.instanceGroupManager = instanceGroupManager
73726	c.instancegroupmanager = instancegroupmanager
73727	return c
73728}
73729
73730// RequestId sets the optional parameter "requestId": An optional
73731// request ID to identify requests. Specify a unique request ID so that
73732// if you must retry your request, the server will know to ignore the
73733// request if it has already been completed.
73734//
73735// For example, consider a situation where you make an initial request
73736// and the request times out. If you make the request again with the
73737// same request ID, the server can check if original operation with the
73738// same request ID was received, and if so, will ignore the second
73739// request. This prevents clients from accidentally creating duplicate
73740// commitments.
73741//
73742// The request ID must be a valid UUID with the exception that zero UUID
73743// is not supported (00000000-0000-0000-0000-000000000000).
73744func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
73745	c.urlParams_.Set("requestId", requestId)
73746	return c
73747}
73748
73749// Fields allows partial responses to be retrieved. See
73750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73751// for more information.
73752func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
73753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73754	return c
73755}
73756
73757// Context sets the context to be used in this call's Do method. Any
73758// pending HTTP request will be aborted if the provided context is
73759// canceled.
73760func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
73761	c.ctx_ = ctx
73762	return c
73763}
73764
73765// Header returns an http.Header that can be modified by the caller to
73766// add HTTP headers to the request.
73767func (c *InstanceGroupManagersPatchCall) Header() http.Header {
73768	if c.header_ == nil {
73769		c.header_ = make(http.Header)
73770	}
73771	return c.header_
73772}
73773
73774func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
73775	reqHeaders := make(http.Header)
73776	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73777	for k, v := range c.header_ {
73778		reqHeaders[k] = v
73779	}
73780	reqHeaders.Set("User-Agent", c.s.userAgent())
73781	var body io.Reader = nil
73782	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
73783	if err != nil {
73784		return nil, err
73785	}
73786	reqHeaders.Set("Content-Type", "application/json")
73787	c.urlParams_.Set("alt", alt)
73788	c.urlParams_.Set("prettyPrint", "false")
73789	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
73790	urls += "?" + c.urlParams_.Encode()
73791	req, err := http.NewRequest("PATCH", urls, body)
73792	if err != nil {
73793		return nil, err
73794	}
73795	req.Header = reqHeaders
73796	googleapi.Expand(req.URL, map[string]string{
73797		"project":              c.project,
73798		"zone":                 c.zone,
73799		"instanceGroupManager": c.instanceGroupManager,
73800	})
73801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73802}
73803
73804// Do executes the "compute.instanceGroupManagers.patch" call.
73805// Exactly one of *Operation or error will be non-nil. Any non-2xx
73806// status code is an error. Response headers are in either
73807// *Operation.ServerResponse.Header or (if a response was returned at
73808// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73809// to check whether the returned error was because
73810// http.StatusNotModified was returned.
73811func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73812	gensupport.SetOptions(c.urlParams_, opts...)
73813	res, err := c.doRequest("json")
73814	if res != nil && res.StatusCode == http.StatusNotModified {
73815		if res.Body != nil {
73816			res.Body.Close()
73817		}
73818		return nil, &googleapi.Error{
73819			Code:   res.StatusCode,
73820			Header: res.Header,
73821		}
73822	}
73823	if err != nil {
73824		return nil, err
73825	}
73826	defer googleapi.CloseBody(res)
73827	if err := googleapi.CheckResponse(res); err != nil {
73828		return nil, err
73829	}
73830	ret := &Operation{
73831		ServerResponse: googleapi.ServerResponse{
73832			Header:         res.Header,
73833			HTTPStatusCode: res.StatusCode,
73834		},
73835	}
73836	target := &ret
73837	if err := gensupport.DecodeResponse(target, res); err != nil {
73838		return nil, err
73839	}
73840	return ret, nil
73841	// {
73842	//   "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.",
73843	//   "httpMethod": "PATCH",
73844	//   "id": "compute.instanceGroupManagers.patch",
73845	//   "parameterOrder": [
73846	//     "project",
73847	//     "zone",
73848	//     "instanceGroupManager"
73849	//   ],
73850	//   "parameters": {
73851	//     "instanceGroupManager": {
73852	//       "description": "The name of the instance group manager.",
73853	//       "location": "path",
73854	//       "required": true,
73855	//       "type": "string"
73856	//     },
73857	//     "project": {
73858	//       "description": "Project ID for this request.",
73859	//       "location": "path",
73860	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73861	//       "required": true,
73862	//       "type": "string"
73863	//     },
73864	//     "requestId": {
73865	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73866	//       "location": "query",
73867	//       "type": "string"
73868	//     },
73869	//     "zone": {
73870	//       "description": "The name of the zone where you want to create the managed instance group.",
73871	//       "location": "path",
73872	//       "required": true,
73873	//       "type": "string"
73874	//     }
73875	//   },
73876	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
73877	//   "request": {
73878	//     "$ref": "InstanceGroupManager"
73879	//   },
73880	//   "response": {
73881	//     "$ref": "Operation"
73882	//   },
73883	//   "scopes": [
73884	//     "https://www.googleapis.com/auth/cloud-platform",
73885	//     "https://www.googleapis.com/auth/compute"
73886	//   ]
73887	// }
73888
73889}
73890
73891// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
73892
73893type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
73894	s                                               *Service
73895	project                                         string
73896	zone                                            string
73897	instanceGroupManager                            string
73898	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
73899	urlParams_                                      gensupport.URLParams
73900	ctx_                                            context.Context
73901	header_                                         http.Header
73902}
73903
73904// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
73905// the managed instance group. perInstanceConfig.name serves as a key
73906// used to distinguish whether to perform insert or patch.
73907func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
73908	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73909	c.project = project
73910	c.zone = zone
73911	c.instanceGroupManager = instanceGroupManager
73912	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
73913	return c
73914}
73915
73916// RequestId sets the optional parameter "requestId": An optional
73917// request ID to identify requests. Specify a unique request ID so that
73918// if you must retry your request, the server will know to ignore the
73919// request if it has already been completed.
73920//
73921// For example, consider a situation where you make an initial request
73922// and the request times out. If you make the request again with the
73923// same request ID, the server can check if original operation with the
73924// same request ID was received, and if so, will ignore the second
73925// request. This prevents clients from accidentally creating duplicate
73926// commitments.
73927//
73928// The request ID must be a valid UUID with the exception that zero UUID
73929// is not supported (00000000-0000-0000-0000-000000000000).
73930func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
73931	c.urlParams_.Set("requestId", requestId)
73932	return c
73933}
73934
73935// Fields allows partial responses to be retrieved. See
73936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73937// for more information.
73938func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
73939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73940	return c
73941}
73942
73943// Context sets the context to be used in this call's Do method. Any
73944// pending HTTP request will be aborted if the provided context is
73945// canceled.
73946func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
73947	c.ctx_ = ctx
73948	return c
73949}
73950
73951// Header returns an http.Header that can be modified by the caller to
73952// add HTTP headers to the request.
73953func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
73954	if c.header_ == nil {
73955		c.header_ = make(http.Header)
73956	}
73957	return c.header_
73958}
73959
73960func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
73961	reqHeaders := make(http.Header)
73962	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
73963	for k, v := range c.header_ {
73964		reqHeaders[k] = v
73965	}
73966	reqHeaders.Set("User-Agent", c.s.userAgent())
73967	var body io.Reader = nil
73968	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
73969	if err != nil {
73970		return nil, err
73971	}
73972	reqHeaders.Set("Content-Type", "application/json")
73973	c.urlParams_.Set("alt", alt)
73974	c.urlParams_.Set("prettyPrint", "false")
73975	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
73976	urls += "?" + c.urlParams_.Encode()
73977	req, err := http.NewRequest("POST", urls, body)
73978	if err != nil {
73979		return nil, err
73980	}
73981	req.Header = reqHeaders
73982	googleapi.Expand(req.URL, map[string]string{
73983		"project":              c.project,
73984		"zone":                 c.zone,
73985		"instanceGroupManager": c.instanceGroupManager,
73986	})
73987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73988}
73989
73990// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
73991// Exactly one of *Operation or error will be non-nil. Any non-2xx
73992// status code is an error. Response headers are in either
73993// *Operation.ServerResponse.Header or (if a response was returned at
73994// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73995// to check whether the returned error was because
73996// http.StatusNotModified was returned.
73997func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73998	gensupport.SetOptions(c.urlParams_, opts...)
73999	res, err := c.doRequest("json")
74000	if res != nil && res.StatusCode == http.StatusNotModified {
74001		if res.Body != nil {
74002			res.Body.Close()
74003		}
74004		return nil, &googleapi.Error{
74005			Code:   res.StatusCode,
74006			Header: res.Header,
74007		}
74008	}
74009	if err != nil {
74010		return nil, err
74011	}
74012	defer googleapi.CloseBody(res)
74013	if err := googleapi.CheckResponse(res); err != nil {
74014		return nil, err
74015	}
74016	ret := &Operation{
74017		ServerResponse: googleapi.ServerResponse{
74018			Header:         res.Header,
74019			HTTPStatusCode: res.StatusCode,
74020		},
74021	}
74022	target := &ret
74023	if err := gensupport.DecodeResponse(target, res); err != nil {
74024		return nil, err
74025	}
74026	return ret, nil
74027	// {
74028	//   "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.",
74029	//   "httpMethod": "POST",
74030	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
74031	//   "parameterOrder": [
74032	//     "project",
74033	//     "zone",
74034	//     "instanceGroupManager"
74035	//   ],
74036	//   "parameters": {
74037	//     "instanceGroupManager": {
74038	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
74039	//       "location": "path",
74040	//       "required": true,
74041	//       "type": "string"
74042	//     },
74043	//     "project": {
74044	//       "description": "Project ID for this request.",
74045	//       "location": "path",
74046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74047	//       "required": true,
74048	//       "type": "string"
74049	//     },
74050	//     "requestId": {
74051	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74052	//       "location": "query",
74053	//       "type": "string"
74054	//     },
74055	//     "zone": {
74056	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
74057	//       "location": "path",
74058	//       "required": true,
74059	//       "type": "string"
74060	//     }
74061	//   },
74062	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
74063	//   "request": {
74064	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
74065	//   },
74066	//   "response": {
74067	//     "$ref": "Operation"
74068	//   },
74069	//   "scopes": [
74070	//     "https://www.googleapis.com/auth/cloud-platform",
74071	//     "https://www.googleapis.com/auth/compute"
74072	//   ]
74073	// }
74074
74075}
74076
74077// method id "compute.instanceGroupManagers.recreateInstances":
74078
74079type InstanceGroupManagersRecreateInstancesCall struct {
74080	s                                             *Service
74081	project                                       string
74082	zone                                          string
74083	instanceGroupManager                          string
74084	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
74085	urlParams_                                    gensupport.URLParams
74086	ctx_                                          context.Context
74087	header_                                       http.Header
74088}
74089
74090// RecreateInstances: Flags the specified instances in the managed
74091// instance group to be immediately recreated. The instances are deleted
74092// and recreated using the current instance template for the managed
74093// instance group. This operation is marked as DONE when the flag is set
74094// even if the instances have not yet been recreated. You must
74095// separately verify the status of the recreating action with the
74096// listmanagedinstances method.
74097//
74098// If the group is part of a backend service that has enabled connection
74099// draining, it can take up to 60 seconds after the connection draining
74100// duration has elapsed before the VM instance is removed or
74101// deleted.
74102//
74103// You can specify a maximum of 1000 instances with this method per
74104// request.
74105func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
74106	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74107	c.project = project
74108	c.zone = zone
74109	c.instanceGroupManager = instanceGroupManager
74110	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
74111	return c
74112}
74113
74114// RequestId sets the optional parameter "requestId": An optional
74115// request ID to identify requests. Specify a unique request ID so that
74116// if you must retry your request, the server will know to ignore the
74117// request if it has already been completed.
74118//
74119// For example, consider a situation where you make an initial request
74120// and the request times out. If you make the request again with the
74121// same request ID, the server can check if original operation with the
74122// same request ID was received, and if so, will ignore the second
74123// request. This prevents clients from accidentally creating duplicate
74124// commitments.
74125//
74126// The request ID must be a valid UUID with the exception that zero UUID
74127// is not supported (00000000-0000-0000-0000-000000000000).
74128func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
74129	c.urlParams_.Set("requestId", requestId)
74130	return c
74131}
74132
74133// Fields allows partial responses to be retrieved. See
74134// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74135// for more information.
74136func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
74137	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74138	return c
74139}
74140
74141// Context sets the context to be used in this call's Do method. Any
74142// pending HTTP request will be aborted if the provided context is
74143// canceled.
74144func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
74145	c.ctx_ = ctx
74146	return c
74147}
74148
74149// Header returns an http.Header that can be modified by the caller to
74150// add HTTP headers to the request.
74151func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
74152	if c.header_ == nil {
74153		c.header_ = make(http.Header)
74154	}
74155	return c.header_
74156}
74157
74158func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
74159	reqHeaders := make(http.Header)
74160	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74161	for k, v := range c.header_ {
74162		reqHeaders[k] = v
74163	}
74164	reqHeaders.Set("User-Agent", c.s.userAgent())
74165	var body io.Reader = nil
74166	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
74167	if err != nil {
74168		return nil, err
74169	}
74170	reqHeaders.Set("Content-Type", "application/json")
74171	c.urlParams_.Set("alt", alt)
74172	c.urlParams_.Set("prettyPrint", "false")
74173	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
74174	urls += "?" + c.urlParams_.Encode()
74175	req, err := http.NewRequest("POST", urls, body)
74176	if err != nil {
74177		return nil, err
74178	}
74179	req.Header = reqHeaders
74180	googleapi.Expand(req.URL, map[string]string{
74181		"project":              c.project,
74182		"zone":                 c.zone,
74183		"instanceGroupManager": c.instanceGroupManager,
74184	})
74185	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74186}
74187
74188// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
74189// Exactly one of *Operation or error will be non-nil. Any non-2xx
74190// status code is an error. Response headers are in either
74191// *Operation.ServerResponse.Header or (if a response was returned at
74192// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74193// to check whether the returned error was because
74194// http.StatusNotModified was returned.
74195func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74196	gensupport.SetOptions(c.urlParams_, opts...)
74197	res, err := c.doRequest("json")
74198	if res != nil && res.StatusCode == http.StatusNotModified {
74199		if res.Body != nil {
74200			res.Body.Close()
74201		}
74202		return nil, &googleapi.Error{
74203			Code:   res.StatusCode,
74204			Header: res.Header,
74205		}
74206	}
74207	if err != nil {
74208		return nil, err
74209	}
74210	defer googleapi.CloseBody(res)
74211	if err := googleapi.CheckResponse(res); err != nil {
74212		return nil, err
74213	}
74214	ret := &Operation{
74215		ServerResponse: googleapi.ServerResponse{
74216			Header:         res.Header,
74217			HTTPStatusCode: res.StatusCode,
74218		},
74219	}
74220	target := &ret
74221	if err := gensupport.DecodeResponse(target, res); err != nil {
74222		return nil, err
74223	}
74224	return ret, nil
74225	// {
74226	//   "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.",
74227	//   "httpMethod": "POST",
74228	//   "id": "compute.instanceGroupManagers.recreateInstances",
74229	//   "parameterOrder": [
74230	//     "project",
74231	//     "zone",
74232	//     "instanceGroupManager"
74233	//   ],
74234	//   "parameters": {
74235	//     "instanceGroupManager": {
74236	//       "description": "The name of the managed instance group.",
74237	//       "location": "path",
74238	//       "required": true,
74239	//       "type": "string"
74240	//     },
74241	//     "project": {
74242	//       "description": "Project ID for this request.",
74243	//       "location": "path",
74244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74245	//       "required": true,
74246	//       "type": "string"
74247	//     },
74248	//     "requestId": {
74249	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74250	//       "location": "query",
74251	//       "type": "string"
74252	//     },
74253	//     "zone": {
74254	//       "description": "The name of the zone where the managed instance group is located.",
74255	//       "location": "path",
74256	//       "required": true,
74257	//       "type": "string"
74258	//     }
74259	//   },
74260	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
74261	//   "request": {
74262	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
74263	//   },
74264	//   "response": {
74265	//     "$ref": "Operation"
74266	//   },
74267	//   "scopes": [
74268	//     "https://www.googleapis.com/auth/cloud-platform",
74269	//     "https://www.googleapis.com/auth/compute"
74270	//   ]
74271	// }
74272
74273}
74274
74275// method id "compute.instanceGroupManagers.resize":
74276
74277type InstanceGroupManagersResizeCall struct {
74278	s                    *Service
74279	project              string
74280	zone                 string
74281	instanceGroupManager string
74282	urlParams_           gensupport.URLParams
74283	ctx_                 context.Context
74284	header_              http.Header
74285}
74286
74287// Resize: Resizes the managed instance group. If you increase the size,
74288// the group creates new instances using the current instance template.
74289// If you decrease the size, the group deletes instances. The resize
74290// operation is marked DONE when the resize actions are scheduled even
74291// if the group has not yet added or deleted any instances. You must
74292// separately verify the status of the creating or deleting actions with
74293// the listmanagedinstances method.
74294//
74295// When resizing down, the instance group arbitrarily chooses the order
74296// in which VMs are deleted. The group takes into account some VM
74297// attributes when making the selection including:
74298//
74299// + The status of the VM instance. + The health of the VM instance. +
74300// The instance template version the VM is based on. + For regional
74301// managed instance groups, the location of the VM instance.
74302//
74303// This list is subject to change.
74304//
74305// If the group is part of a backend service that has enabled connection
74306// draining, it can take up to 60 seconds after the connection draining
74307// duration has elapsed before the VM instance is removed or deleted.
74308func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
74309	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74310	c.project = project
74311	c.zone = zone
74312	c.instanceGroupManager = instanceGroupManager
74313	c.urlParams_.Set("size", fmt.Sprint(size))
74314	return c
74315}
74316
74317// RequestId sets the optional parameter "requestId": An optional
74318// request ID to identify requests. Specify a unique request ID so that
74319// if you must retry your request, the server will know to ignore the
74320// request if it has already been completed.
74321//
74322// For example, consider a situation where you make an initial request
74323// and the request times out. If you make the request again with the
74324// same request ID, the server can check if original operation with the
74325// same request ID was received, and if so, will ignore the second
74326// request. This prevents clients from accidentally creating duplicate
74327// commitments.
74328//
74329// The request ID must be a valid UUID with the exception that zero UUID
74330// is not supported (00000000-0000-0000-0000-000000000000).
74331func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
74332	c.urlParams_.Set("requestId", requestId)
74333	return c
74334}
74335
74336// Fields allows partial responses to be retrieved. See
74337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74338// for more information.
74339func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
74340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74341	return c
74342}
74343
74344// Context sets the context to be used in this call's Do method. Any
74345// pending HTTP request will be aborted if the provided context is
74346// canceled.
74347func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
74348	c.ctx_ = ctx
74349	return c
74350}
74351
74352// Header returns an http.Header that can be modified by the caller to
74353// add HTTP headers to the request.
74354func (c *InstanceGroupManagersResizeCall) Header() http.Header {
74355	if c.header_ == nil {
74356		c.header_ = make(http.Header)
74357	}
74358	return c.header_
74359}
74360
74361func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
74362	reqHeaders := make(http.Header)
74363	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74364	for k, v := range c.header_ {
74365		reqHeaders[k] = v
74366	}
74367	reqHeaders.Set("User-Agent", c.s.userAgent())
74368	var body io.Reader = nil
74369	c.urlParams_.Set("alt", alt)
74370	c.urlParams_.Set("prettyPrint", "false")
74371	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
74372	urls += "?" + c.urlParams_.Encode()
74373	req, err := http.NewRequest("POST", urls, body)
74374	if err != nil {
74375		return nil, err
74376	}
74377	req.Header = reqHeaders
74378	googleapi.Expand(req.URL, map[string]string{
74379		"project":              c.project,
74380		"zone":                 c.zone,
74381		"instanceGroupManager": c.instanceGroupManager,
74382	})
74383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74384}
74385
74386// Do executes the "compute.instanceGroupManagers.resize" call.
74387// Exactly one of *Operation or error will be non-nil. Any non-2xx
74388// status code is an error. Response headers are in either
74389// *Operation.ServerResponse.Header or (if a response was returned at
74390// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74391// to check whether the returned error was because
74392// http.StatusNotModified was returned.
74393func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74394	gensupport.SetOptions(c.urlParams_, opts...)
74395	res, err := c.doRequest("json")
74396	if res != nil && res.StatusCode == http.StatusNotModified {
74397		if res.Body != nil {
74398			res.Body.Close()
74399		}
74400		return nil, &googleapi.Error{
74401			Code:   res.StatusCode,
74402			Header: res.Header,
74403		}
74404	}
74405	if err != nil {
74406		return nil, err
74407	}
74408	defer googleapi.CloseBody(res)
74409	if err := googleapi.CheckResponse(res); err != nil {
74410		return nil, err
74411	}
74412	ret := &Operation{
74413		ServerResponse: googleapi.ServerResponse{
74414			Header:         res.Header,
74415			HTTPStatusCode: res.StatusCode,
74416		},
74417	}
74418	target := &ret
74419	if err := gensupport.DecodeResponse(target, res); err != nil {
74420		return nil, err
74421	}
74422	return ret, nil
74423	// {
74424	//   "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.",
74425	//   "httpMethod": "POST",
74426	//   "id": "compute.instanceGroupManagers.resize",
74427	//   "parameterOrder": [
74428	//     "project",
74429	//     "zone",
74430	//     "instanceGroupManager",
74431	//     "size"
74432	//   ],
74433	//   "parameters": {
74434	//     "instanceGroupManager": {
74435	//       "description": "The name of the managed instance group.",
74436	//       "location": "path",
74437	//       "required": true,
74438	//       "type": "string"
74439	//     },
74440	//     "project": {
74441	//       "description": "Project ID for this request.",
74442	//       "location": "path",
74443	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74444	//       "required": true,
74445	//       "type": "string"
74446	//     },
74447	//     "requestId": {
74448	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74449	//       "location": "query",
74450	//       "type": "string"
74451	//     },
74452	//     "size": {
74453	//       "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.",
74454	//       "format": "int32",
74455	//       "location": "query",
74456	//       "required": true,
74457	//       "type": "integer"
74458	//     },
74459	//     "zone": {
74460	//       "description": "The name of the zone where the managed instance group is located.",
74461	//       "location": "path",
74462	//       "required": true,
74463	//       "type": "string"
74464	//     }
74465	//   },
74466	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
74467	//   "response": {
74468	//     "$ref": "Operation"
74469	//   },
74470	//   "scopes": [
74471	//     "https://www.googleapis.com/auth/cloud-platform",
74472	//     "https://www.googleapis.com/auth/compute"
74473	//   ]
74474	// }
74475
74476}
74477
74478// method id "compute.instanceGroupManagers.resizeAdvanced":
74479
74480type InstanceGroupManagersResizeAdvancedCall struct {
74481	s                                          *Service
74482	project                                    string
74483	zone                                       string
74484	instanceGroupManager                       string
74485	instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest
74486	urlParams_                                 gensupport.URLParams
74487	ctx_                                       context.Context
74488	header_                                    http.Header
74489}
74490
74491// ResizeAdvanced: Resizes the managed instance group with advanced
74492// configuration options like disabling creation retries. This is an
74493// extended version of the resize method.
74494//
74495// If you increase the size of the instance group, the group creates new
74496// instances using the current instance template. If you decrease the
74497// size, the group deletes instances. The resize operation is marked
74498// DONE when the resize actions are scheduled even if the group has not
74499// yet added or deleted any instances. You must separately verify the
74500// status of the creating, creatingWithoutRetries, or deleting actions
74501// with the get or listmanagedinstances method.
74502//
74503// If the group is part of a backend service that has enabled connection
74504// draining, it can take up to 60 seconds after the connection draining
74505// duration has elapsed before the VM instance is removed or deleted.
74506func (r *InstanceGroupManagersService) ResizeAdvanced(project string, zone string, instanceGroupManager string, instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest) *InstanceGroupManagersResizeAdvancedCall {
74507	c := &InstanceGroupManagersResizeAdvancedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74508	c.project = project
74509	c.zone = zone
74510	c.instanceGroupManager = instanceGroupManager
74511	c.instancegroupmanagersresizeadvancedrequest = instancegroupmanagersresizeadvancedrequest
74512	return c
74513}
74514
74515// RequestId sets the optional parameter "requestId": An optional
74516// request ID to identify requests. Specify a unique request ID so that
74517// if you must retry your request, the server will know to ignore the
74518// request if it has already been completed.
74519//
74520// For example, consider a situation where you make an initial request
74521// and the request times out. If you make the request again with the
74522// same request ID, the server can check if original operation with the
74523// same request ID was received, and if so, will ignore the second
74524// request. This prevents clients from accidentally creating duplicate
74525// commitments.
74526//
74527// The request ID must be a valid UUID with the exception that zero UUID
74528// is not supported (00000000-0000-0000-0000-000000000000).
74529func (c *InstanceGroupManagersResizeAdvancedCall) RequestId(requestId string) *InstanceGroupManagersResizeAdvancedCall {
74530	c.urlParams_.Set("requestId", requestId)
74531	return c
74532}
74533
74534// Fields allows partial responses to be retrieved. See
74535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74536// for more information.
74537func (c *InstanceGroupManagersResizeAdvancedCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeAdvancedCall {
74538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74539	return c
74540}
74541
74542// Context sets the context to be used in this call's Do method. Any
74543// pending HTTP request will be aborted if the provided context is
74544// canceled.
74545func (c *InstanceGroupManagersResizeAdvancedCall) Context(ctx context.Context) *InstanceGroupManagersResizeAdvancedCall {
74546	c.ctx_ = ctx
74547	return c
74548}
74549
74550// Header returns an http.Header that can be modified by the caller to
74551// add HTTP headers to the request.
74552func (c *InstanceGroupManagersResizeAdvancedCall) Header() http.Header {
74553	if c.header_ == nil {
74554		c.header_ = make(http.Header)
74555	}
74556	return c.header_
74557}
74558
74559func (c *InstanceGroupManagersResizeAdvancedCall) doRequest(alt string) (*http.Response, error) {
74560	reqHeaders := make(http.Header)
74561	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74562	for k, v := range c.header_ {
74563		reqHeaders[k] = v
74564	}
74565	reqHeaders.Set("User-Agent", c.s.userAgent())
74566	var body io.Reader = nil
74567	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersresizeadvancedrequest)
74568	if err != nil {
74569		return nil, err
74570	}
74571	reqHeaders.Set("Content-Type", "application/json")
74572	c.urlParams_.Set("alt", alt)
74573	c.urlParams_.Set("prettyPrint", "false")
74574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced")
74575	urls += "?" + c.urlParams_.Encode()
74576	req, err := http.NewRequest("POST", urls, body)
74577	if err != nil {
74578		return nil, err
74579	}
74580	req.Header = reqHeaders
74581	googleapi.Expand(req.URL, map[string]string{
74582		"project":              c.project,
74583		"zone":                 c.zone,
74584		"instanceGroupManager": c.instanceGroupManager,
74585	})
74586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74587}
74588
74589// Do executes the "compute.instanceGroupManagers.resizeAdvanced" call.
74590// Exactly one of *Operation or error will be non-nil. Any non-2xx
74591// status code is an error. Response headers are in either
74592// *Operation.ServerResponse.Header or (if a response was returned at
74593// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74594// to check whether the returned error was because
74595// http.StatusNotModified was returned.
74596func (c *InstanceGroupManagersResizeAdvancedCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74597	gensupport.SetOptions(c.urlParams_, opts...)
74598	res, err := c.doRequest("json")
74599	if res != nil && res.StatusCode == http.StatusNotModified {
74600		if res.Body != nil {
74601			res.Body.Close()
74602		}
74603		return nil, &googleapi.Error{
74604			Code:   res.StatusCode,
74605			Header: res.Header,
74606		}
74607	}
74608	if err != nil {
74609		return nil, err
74610	}
74611	defer googleapi.CloseBody(res)
74612	if err := googleapi.CheckResponse(res); err != nil {
74613		return nil, err
74614	}
74615	ret := &Operation{
74616		ServerResponse: googleapi.ServerResponse{
74617			Header:         res.Header,
74618			HTTPStatusCode: res.StatusCode,
74619		},
74620	}
74621	target := &ret
74622	if err := gensupport.DecodeResponse(target, res); err != nil {
74623		return nil, err
74624	}
74625	return ret, nil
74626	// {
74627	//   "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.",
74628	//   "httpMethod": "POST",
74629	//   "id": "compute.instanceGroupManagers.resizeAdvanced",
74630	//   "parameterOrder": [
74631	//     "project",
74632	//     "zone",
74633	//     "instanceGroupManager"
74634	//   ],
74635	//   "parameters": {
74636	//     "instanceGroupManager": {
74637	//       "description": "The name of the managed instance group.",
74638	//       "location": "path",
74639	//       "required": true,
74640	//       "type": "string"
74641	//     },
74642	//     "project": {
74643	//       "description": "Project ID for this request.",
74644	//       "location": "path",
74645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74646	//       "required": true,
74647	//       "type": "string"
74648	//     },
74649	//     "requestId": {
74650	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74651	//       "location": "query",
74652	//       "type": "string"
74653	//     },
74654	//     "zone": {
74655	//       "description": "The name of the zone where the managed instance group is located.",
74656	//       "location": "path",
74657	//       "required": true,
74658	//       "type": "string"
74659	//     }
74660	//   },
74661	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced",
74662	//   "request": {
74663	//     "$ref": "InstanceGroupManagersResizeAdvancedRequest"
74664	//   },
74665	//   "response": {
74666	//     "$ref": "Operation"
74667	//   },
74668	//   "scopes": [
74669	//     "https://www.googleapis.com/auth/cloud-platform",
74670	//     "https://www.googleapis.com/auth/compute"
74671	//   ]
74672	// }
74673
74674}
74675
74676// method id "compute.instanceGroupManagers.setAutoHealingPolicies":
74677
74678type InstanceGroupManagersSetAutoHealingPoliciesCall struct {
74679	s                                          *Service
74680	project                                    string
74681	zone                                       string
74682	instanceGroupManager                       string
74683	instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest
74684	urlParams_                                 gensupport.URLParams
74685	ctx_                                       context.Context
74686	header_                                    http.Header
74687}
74688
74689// SetAutoHealingPolicies: Modifies the autohealing policies.
74690// [Deprecated] This method is deprecated. Please use Patch instead.
74691func (r *InstanceGroupManagersService) SetAutoHealingPolicies(project string, zone string, instanceGroupManager string, instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest) *InstanceGroupManagersSetAutoHealingPoliciesCall {
74692	c := &InstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74693	c.project = project
74694	c.zone = zone
74695	c.instanceGroupManager = instanceGroupManager
74696	c.instancegroupmanagerssetautohealingrequest = instancegroupmanagerssetautohealingrequest
74697	return c
74698}
74699
74700// RequestId sets the optional parameter "requestId": An optional
74701// request ID to identify requests. Specify a unique request ID so that
74702// if you must retry your request, the server will know to ignore the
74703// request if it has already been completed.
74704//
74705// For example, consider a situation where you make an initial request
74706// and the request times out. If you make the request again with the
74707// same request ID, the server can check if original operation with the
74708// same request ID was received, and if so, will ignore the second
74709// request. This prevents clients from accidentally creating duplicate
74710// commitments.
74711//
74712// The request ID must be a valid UUID with the exception that zero UUID
74713// is not supported (00000000-0000-0000-0000-000000000000).
74714func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *InstanceGroupManagersSetAutoHealingPoliciesCall {
74715	c.urlParams_.Set("requestId", requestId)
74716	return c
74717}
74718
74719// Fields allows partial responses to be retrieved. See
74720// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74721// for more information.
74722func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetAutoHealingPoliciesCall {
74723	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74724	return c
74725}
74726
74727// Context sets the context to be used in this call's Do method. Any
74728// pending HTTP request will be aborted if the provided context is
74729// canceled.
74730func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *InstanceGroupManagersSetAutoHealingPoliciesCall {
74731	c.ctx_ = ctx
74732	return c
74733}
74734
74735// Header returns an http.Header that can be modified by the caller to
74736// add HTTP headers to the request.
74737func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
74738	if c.header_ == nil {
74739		c.header_ = make(http.Header)
74740	}
74741	return c.header_
74742}
74743
74744func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
74745	reqHeaders := make(http.Header)
74746	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74747	for k, v := range c.header_ {
74748		reqHeaders[k] = v
74749	}
74750	reqHeaders.Set("User-Agent", c.s.userAgent())
74751	var body io.Reader = nil
74752	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetautohealingrequest)
74753	if err != nil {
74754		return nil, err
74755	}
74756	reqHeaders.Set("Content-Type", "application/json")
74757	c.urlParams_.Set("alt", alt)
74758	c.urlParams_.Set("prettyPrint", "false")
74759	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
74760	urls += "?" + c.urlParams_.Encode()
74761	req, err := http.NewRequest("POST", urls, body)
74762	if err != nil {
74763		return nil, err
74764	}
74765	req.Header = reqHeaders
74766	googleapi.Expand(req.URL, map[string]string{
74767		"project":              c.project,
74768		"zone":                 c.zone,
74769		"instanceGroupManager": c.instanceGroupManager,
74770	})
74771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74772}
74773
74774// Do executes the "compute.instanceGroupManagers.setAutoHealingPolicies" call.
74775// Exactly one of *Operation or error will be non-nil. Any non-2xx
74776// status code is an error. Response headers are in either
74777// *Operation.ServerResponse.Header or (if a response was returned at
74778// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74779// to check whether the returned error was because
74780// http.StatusNotModified was returned.
74781func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74782	gensupport.SetOptions(c.urlParams_, opts...)
74783	res, err := c.doRequest("json")
74784	if res != nil && res.StatusCode == http.StatusNotModified {
74785		if res.Body != nil {
74786			res.Body.Close()
74787		}
74788		return nil, &googleapi.Error{
74789			Code:   res.StatusCode,
74790			Header: res.Header,
74791		}
74792	}
74793	if err != nil {
74794		return nil, err
74795	}
74796	defer googleapi.CloseBody(res)
74797	if err := googleapi.CheckResponse(res); err != nil {
74798		return nil, err
74799	}
74800	ret := &Operation{
74801		ServerResponse: googleapi.ServerResponse{
74802			Header:         res.Header,
74803			HTTPStatusCode: res.StatusCode,
74804		},
74805	}
74806	target := &ret
74807	if err := gensupport.DecodeResponse(target, res); err != nil {
74808		return nil, err
74809	}
74810	return ret, nil
74811	// {
74812	//   "description": "Modifies the autohealing policies. [Deprecated] This method is deprecated. Please use Patch instead.",
74813	//   "httpMethod": "POST",
74814	//   "id": "compute.instanceGroupManagers.setAutoHealingPolicies",
74815	//   "parameterOrder": [
74816	//     "project",
74817	//     "zone",
74818	//     "instanceGroupManager"
74819	//   ],
74820	//   "parameters": {
74821	//     "instanceGroupManager": {
74822	//       "description": "The name of the instance group manager.",
74823	//       "location": "path",
74824	//       "required": true,
74825	//       "type": "string"
74826	//     },
74827	//     "project": {
74828	//       "description": "Project ID for this request.",
74829	//       "location": "path",
74830	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74831	//       "required": true,
74832	//       "type": "string"
74833	//     },
74834	//     "requestId": {
74835	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74836	//       "location": "query",
74837	//       "type": "string"
74838	//     },
74839	//     "zone": {
74840	//       "description": "The name of the zone where the managed instance group is located.",
74841	//       "location": "path",
74842	//       "required": true,
74843	//       "type": "string"
74844	//     }
74845	//   },
74846	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
74847	//   "request": {
74848	//     "$ref": "InstanceGroupManagersSetAutoHealingRequest"
74849	//   },
74850	//   "response": {
74851	//     "$ref": "Operation"
74852	//   },
74853	//   "scopes": [
74854	//     "https://www.googleapis.com/auth/cloud-platform",
74855	//     "https://www.googleapis.com/auth/compute"
74856	//   ]
74857	// }
74858
74859}
74860
74861// method id "compute.instanceGroupManagers.setInstanceTemplate":
74862
74863type InstanceGroupManagersSetInstanceTemplateCall struct {
74864	s                                               *Service
74865	project                                         string
74866	zone                                            string
74867	instanceGroupManager                            string
74868	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
74869	urlParams_                                      gensupport.URLParams
74870	ctx_                                            context.Context
74871	header_                                         http.Header
74872}
74873
74874// SetInstanceTemplate: Specifies the instance template to use when
74875// creating new instances in this group. The templates for existing
74876// instances in the group do not change unless you recreate them.
74877func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
74878	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74879	c.project = project
74880	c.zone = zone
74881	c.instanceGroupManager = instanceGroupManager
74882	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
74883	return c
74884}
74885
74886// RequestId sets the optional parameter "requestId": An optional
74887// request ID to identify requests. Specify a unique request ID so that
74888// if you must retry your request, the server will know to ignore the
74889// request if it has already been completed.
74890//
74891// For example, consider a situation where you make an initial request
74892// and the request times out. If you make the request again with the
74893// same request ID, the server can check if original operation with the
74894// same request ID was received, and if so, will ignore the second
74895// request. This prevents clients from accidentally creating duplicate
74896// commitments.
74897//
74898// The request ID must be a valid UUID with the exception that zero UUID
74899// is not supported (00000000-0000-0000-0000-000000000000).
74900func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
74901	c.urlParams_.Set("requestId", requestId)
74902	return c
74903}
74904
74905// Fields allows partial responses to be retrieved. See
74906// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74907// for more information.
74908func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
74909	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74910	return c
74911}
74912
74913// Context sets the context to be used in this call's Do method. Any
74914// pending HTTP request will be aborted if the provided context is
74915// canceled.
74916func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
74917	c.ctx_ = ctx
74918	return c
74919}
74920
74921// Header returns an http.Header that can be modified by the caller to
74922// add HTTP headers to the request.
74923func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
74924	if c.header_ == nil {
74925		c.header_ = make(http.Header)
74926	}
74927	return c.header_
74928}
74929
74930func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
74931	reqHeaders := make(http.Header)
74932	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
74933	for k, v := range c.header_ {
74934		reqHeaders[k] = v
74935	}
74936	reqHeaders.Set("User-Agent", c.s.userAgent())
74937	var body io.Reader = nil
74938	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
74939	if err != nil {
74940		return nil, err
74941	}
74942	reqHeaders.Set("Content-Type", "application/json")
74943	c.urlParams_.Set("alt", alt)
74944	c.urlParams_.Set("prettyPrint", "false")
74945	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
74946	urls += "?" + c.urlParams_.Encode()
74947	req, err := http.NewRequest("POST", urls, body)
74948	if err != nil {
74949		return nil, err
74950	}
74951	req.Header = reqHeaders
74952	googleapi.Expand(req.URL, map[string]string{
74953		"project":              c.project,
74954		"zone":                 c.zone,
74955		"instanceGroupManager": c.instanceGroupManager,
74956	})
74957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74958}
74959
74960// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
74961// Exactly one of *Operation or error will be non-nil. Any non-2xx
74962// status code is an error. Response headers are in either
74963// *Operation.ServerResponse.Header or (if a response was returned at
74964// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74965// to check whether the returned error was because
74966// http.StatusNotModified was returned.
74967func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74968	gensupport.SetOptions(c.urlParams_, opts...)
74969	res, err := c.doRequest("json")
74970	if res != nil && res.StatusCode == http.StatusNotModified {
74971		if res.Body != nil {
74972			res.Body.Close()
74973		}
74974		return nil, &googleapi.Error{
74975			Code:   res.StatusCode,
74976			Header: res.Header,
74977		}
74978	}
74979	if err != nil {
74980		return nil, err
74981	}
74982	defer googleapi.CloseBody(res)
74983	if err := googleapi.CheckResponse(res); err != nil {
74984		return nil, err
74985	}
74986	ret := &Operation{
74987		ServerResponse: googleapi.ServerResponse{
74988			Header:         res.Header,
74989			HTTPStatusCode: res.StatusCode,
74990		},
74991	}
74992	target := &ret
74993	if err := gensupport.DecodeResponse(target, res); err != nil {
74994		return nil, err
74995	}
74996	return ret, nil
74997	// {
74998	//   "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.",
74999	//   "httpMethod": "POST",
75000	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
75001	//   "parameterOrder": [
75002	//     "project",
75003	//     "zone",
75004	//     "instanceGroupManager"
75005	//   ],
75006	//   "parameters": {
75007	//     "instanceGroupManager": {
75008	//       "description": "The name of the managed instance group.",
75009	//       "location": "path",
75010	//       "required": true,
75011	//       "type": "string"
75012	//     },
75013	//     "project": {
75014	//       "description": "Project ID for this request.",
75015	//       "location": "path",
75016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75017	//       "required": true,
75018	//       "type": "string"
75019	//     },
75020	//     "requestId": {
75021	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75022	//       "location": "query",
75023	//       "type": "string"
75024	//     },
75025	//     "zone": {
75026	//       "description": "The name of the zone where the managed instance group is located.",
75027	//       "location": "path",
75028	//       "required": true,
75029	//       "type": "string"
75030	//     }
75031	//   },
75032	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
75033	//   "request": {
75034	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
75035	//   },
75036	//   "response": {
75037	//     "$ref": "Operation"
75038	//   },
75039	//   "scopes": [
75040	//     "https://www.googleapis.com/auth/cloud-platform",
75041	//     "https://www.googleapis.com/auth/compute"
75042	//   ]
75043	// }
75044
75045}
75046
75047// method id "compute.instanceGroupManagers.setTargetPools":
75048
75049type InstanceGroupManagersSetTargetPoolsCall struct {
75050	s                                          *Service
75051	project                                    string
75052	zone                                       string
75053	instanceGroupManager                       string
75054	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
75055	urlParams_                                 gensupport.URLParams
75056	ctx_                                       context.Context
75057	header_                                    http.Header
75058}
75059
75060// SetTargetPools: Modifies the target pools to which all instances in
75061// this managed instance group are assigned. The target pools
75062// automatically apply to all of the instances in the managed instance
75063// group. This operation is marked DONE when you make the request even
75064// if the instances have not yet been added to their target pools. The
75065// change might take some time to apply to all of the instances in the
75066// group depending on the size of the group.
75067func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
75068	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75069	c.project = project
75070	c.zone = zone
75071	c.instanceGroupManager = instanceGroupManager
75072	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
75073	return c
75074}
75075
75076// RequestId sets the optional parameter "requestId": An optional
75077// request ID to identify requests. Specify a unique request ID so that
75078// if you must retry your request, the server will know to ignore the
75079// request if it has already been completed.
75080//
75081// For example, consider a situation where you make an initial request
75082// and the request times out. If you make the request again with the
75083// same request ID, the server can check if original operation with the
75084// same request ID was received, and if so, will ignore the second
75085// request. This prevents clients from accidentally creating duplicate
75086// commitments.
75087//
75088// The request ID must be a valid UUID with the exception that zero UUID
75089// is not supported (00000000-0000-0000-0000-000000000000).
75090func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
75091	c.urlParams_.Set("requestId", requestId)
75092	return c
75093}
75094
75095// Fields allows partial responses to be retrieved. See
75096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75097// for more information.
75098func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
75099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75100	return c
75101}
75102
75103// Context sets the context to be used in this call's Do method. Any
75104// pending HTTP request will be aborted if the provided context is
75105// canceled.
75106func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
75107	c.ctx_ = ctx
75108	return c
75109}
75110
75111// Header returns an http.Header that can be modified by the caller to
75112// add HTTP headers to the request.
75113func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
75114	if c.header_ == nil {
75115		c.header_ = make(http.Header)
75116	}
75117	return c.header_
75118}
75119
75120func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
75121	reqHeaders := make(http.Header)
75122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75123	for k, v := range c.header_ {
75124		reqHeaders[k] = v
75125	}
75126	reqHeaders.Set("User-Agent", c.s.userAgent())
75127	var body io.Reader = nil
75128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
75129	if err != nil {
75130		return nil, err
75131	}
75132	reqHeaders.Set("Content-Type", "application/json")
75133	c.urlParams_.Set("alt", alt)
75134	c.urlParams_.Set("prettyPrint", "false")
75135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
75136	urls += "?" + c.urlParams_.Encode()
75137	req, err := http.NewRequest("POST", urls, body)
75138	if err != nil {
75139		return nil, err
75140	}
75141	req.Header = reqHeaders
75142	googleapi.Expand(req.URL, map[string]string{
75143		"project":              c.project,
75144		"zone":                 c.zone,
75145		"instanceGroupManager": c.instanceGroupManager,
75146	})
75147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75148}
75149
75150// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
75151// Exactly one of *Operation or error will be non-nil. Any non-2xx
75152// status code is an error. Response headers are in either
75153// *Operation.ServerResponse.Header or (if a response was returned at
75154// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75155// to check whether the returned error was because
75156// http.StatusNotModified was returned.
75157func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75158	gensupport.SetOptions(c.urlParams_, opts...)
75159	res, err := c.doRequest("json")
75160	if res != nil && res.StatusCode == http.StatusNotModified {
75161		if res.Body != nil {
75162			res.Body.Close()
75163		}
75164		return nil, &googleapi.Error{
75165			Code:   res.StatusCode,
75166			Header: res.Header,
75167		}
75168	}
75169	if err != nil {
75170		return nil, err
75171	}
75172	defer googleapi.CloseBody(res)
75173	if err := googleapi.CheckResponse(res); err != nil {
75174		return nil, err
75175	}
75176	ret := &Operation{
75177		ServerResponse: googleapi.ServerResponse{
75178			Header:         res.Header,
75179			HTTPStatusCode: res.StatusCode,
75180		},
75181	}
75182	target := &ret
75183	if err := gensupport.DecodeResponse(target, res); err != nil {
75184		return nil, err
75185	}
75186	return ret, nil
75187	// {
75188	//   "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.",
75189	//   "httpMethod": "POST",
75190	//   "id": "compute.instanceGroupManagers.setTargetPools",
75191	//   "parameterOrder": [
75192	//     "project",
75193	//     "zone",
75194	//     "instanceGroupManager"
75195	//   ],
75196	//   "parameters": {
75197	//     "instanceGroupManager": {
75198	//       "description": "The name of the managed instance group.",
75199	//       "location": "path",
75200	//       "required": true,
75201	//       "type": "string"
75202	//     },
75203	//     "project": {
75204	//       "description": "Project ID for this request.",
75205	//       "location": "path",
75206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75207	//       "required": true,
75208	//       "type": "string"
75209	//     },
75210	//     "requestId": {
75211	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75212	//       "location": "query",
75213	//       "type": "string"
75214	//     },
75215	//     "zone": {
75216	//       "description": "The name of the zone where the managed instance group is located.",
75217	//       "location": "path",
75218	//       "required": true,
75219	//       "type": "string"
75220	//     }
75221	//   },
75222	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
75223	//   "request": {
75224	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
75225	//   },
75226	//   "response": {
75227	//     "$ref": "Operation"
75228	//   },
75229	//   "scopes": [
75230	//     "https://www.googleapis.com/auth/cloud-platform",
75231	//     "https://www.googleapis.com/auth/compute"
75232	//   ]
75233	// }
75234
75235}
75236
75237// method id "compute.instanceGroupManagers.testIamPermissions":
75238
75239type InstanceGroupManagersTestIamPermissionsCall struct {
75240	s                      *Service
75241	project                string
75242	zone                   string
75243	resource               string
75244	testpermissionsrequest *TestPermissionsRequest
75245	urlParams_             gensupport.URLParams
75246	ctx_                   context.Context
75247	header_                http.Header
75248}
75249
75250// TestIamPermissions: Returns permissions that a caller has on the
75251// specified resource.
75252func (r *InstanceGroupManagersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupManagersTestIamPermissionsCall {
75253	c := &InstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75254	c.project = project
75255	c.zone = zone
75256	c.resource = resource
75257	c.testpermissionsrequest = testpermissionsrequest
75258	return c
75259}
75260
75261// Fields allows partial responses to be retrieved. See
75262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75263// for more information.
75264func (c *InstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersTestIamPermissionsCall {
75265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75266	return c
75267}
75268
75269// Context sets the context to be used in this call's Do method. Any
75270// pending HTTP request will be aborted if the provided context is
75271// canceled.
75272func (c *InstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupManagersTestIamPermissionsCall {
75273	c.ctx_ = ctx
75274	return c
75275}
75276
75277// Header returns an http.Header that can be modified by the caller to
75278// add HTTP headers to the request.
75279func (c *InstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
75280	if c.header_ == nil {
75281		c.header_ = make(http.Header)
75282	}
75283	return c.header_
75284}
75285
75286func (c *InstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
75287	reqHeaders := make(http.Header)
75288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75289	for k, v := range c.header_ {
75290		reqHeaders[k] = v
75291	}
75292	reqHeaders.Set("User-Agent", c.s.userAgent())
75293	var body io.Reader = nil
75294	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
75295	if err != nil {
75296		return nil, err
75297	}
75298	reqHeaders.Set("Content-Type", "application/json")
75299	c.urlParams_.Set("alt", alt)
75300	c.urlParams_.Set("prettyPrint", "false")
75301	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions")
75302	urls += "?" + c.urlParams_.Encode()
75303	req, err := http.NewRequest("POST", urls, body)
75304	if err != nil {
75305		return nil, err
75306	}
75307	req.Header = reqHeaders
75308	googleapi.Expand(req.URL, map[string]string{
75309		"project":  c.project,
75310		"zone":     c.zone,
75311		"resource": c.resource,
75312	})
75313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75314}
75315
75316// Do executes the "compute.instanceGroupManagers.testIamPermissions" call.
75317// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
75318// non-2xx status code is an error. Response headers are in either
75319// *TestPermissionsResponse.ServerResponse.Header or (if a response was
75320// returned at all) in error.(*googleapi.Error).Header. Use
75321// googleapi.IsNotModified to check whether the returned error was
75322// because http.StatusNotModified was returned.
75323func (c *InstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
75324	gensupport.SetOptions(c.urlParams_, opts...)
75325	res, err := c.doRequest("json")
75326	if res != nil && res.StatusCode == http.StatusNotModified {
75327		if res.Body != nil {
75328			res.Body.Close()
75329		}
75330		return nil, &googleapi.Error{
75331			Code:   res.StatusCode,
75332			Header: res.Header,
75333		}
75334	}
75335	if err != nil {
75336		return nil, err
75337	}
75338	defer googleapi.CloseBody(res)
75339	if err := googleapi.CheckResponse(res); err != nil {
75340		return nil, err
75341	}
75342	ret := &TestPermissionsResponse{
75343		ServerResponse: googleapi.ServerResponse{
75344			Header:         res.Header,
75345			HTTPStatusCode: res.StatusCode,
75346		},
75347	}
75348	target := &ret
75349	if err := gensupport.DecodeResponse(target, res); err != nil {
75350		return nil, err
75351	}
75352	return ret, nil
75353	// {
75354	//   "description": "Returns permissions that a caller has on the specified resource.",
75355	//   "httpMethod": "POST",
75356	//   "id": "compute.instanceGroupManagers.testIamPermissions",
75357	//   "parameterOrder": [
75358	//     "project",
75359	//     "zone",
75360	//     "resource"
75361	//   ],
75362	//   "parameters": {
75363	//     "project": {
75364	//       "description": "Project ID for this request.",
75365	//       "location": "path",
75366	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75367	//       "required": true,
75368	//       "type": "string"
75369	//     },
75370	//     "resource": {
75371	//       "description": "Name or id of the resource for this request.",
75372	//       "location": "path",
75373	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75374	//       "required": true,
75375	//       "type": "string"
75376	//     },
75377	//     "zone": {
75378	//       "description": "The name of the zone for this request.",
75379	//       "location": "path",
75380	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75381	//       "required": true,
75382	//       "type": "string"
75383	//     }
75384	//   },
75385	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions",
75386	//   "request": {
75387	//     "$ref": "TestPermissionsRequest"
75388	//   },
75389	//   "response": {
75390	//     "$ref": "TestPermissionsResponse"
75391	//   },
75392	//   "scopes": [
75393	//     "https://www.googleapis.com/auth/cloud-platform",
75394	//     "https://www.googleapis.com/auth/compute",
75395	//     "https://www.googleapis.com/auth/compute.readonly"
75396	//   ]
75397	// }
75398
75399}
75400
75401// method id "compute.instanceGroupManagers.update":
75402
75403type InstanceGroupManagersUpdateCall struct {
75404	s                    *Service
75405	project              string
75406	zone                 string
75407	instanceGroupManager string
75408	instancegroupmanager *InstanceGroupManager
75409	urlParams_           gensupport.URLParams
75410	ctx_                 context.Context
75411	header_              http.Header
75412}
75413
75414// Update: Updates a managed instance group using the information that
75415// you specify in the request. This operation is marked as DONE when the
75416// group is updated even if the instances in the group have not yet been
75417// updated. You must separately verify the status of the individual
75418// instances with the listManagedInstances method.
75419func (r *InstanceGroupManagersService) Update(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersUpdateCall {
75420	c := &InstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75421	c.project = project
75422	c.zone = zone
75423	c.instanceGroupManager = instanceGroupManager
75424	c.instancegroupmanager = instancegroupmanager
75425	return c
75426}
75427
75428// RequestId sets the optional parameter "requestId": An optional
75429// request ID to identify requests. Specify a unique request ID so that
75430// if you must retry your request, the server will know to ignore the
75431// request if it has already been completed.
75432//
75433// For example, consider a situation where you make an initial request
75434// and the request times out. If you make the request again with the
75435// same request ID, the server can check if original operation with the
75436// same request ID was received, and if so, will ignore the second
75437// request. This prevents clients from accidentally creating duplicate
75438// commitments.
75439//
75440// The request ID must be a valid UUID with the exception that zero UUID
75441// is not supported (00000000-0000-0000-0000-000000000000).
75442func (c *InstanceGroupManagersUpdateCall) RequestId(requestId string) *InstanceGroupManagersUpdateCall {
75443	c.urlParams_.Set("requestId", requestId)
75444	return c
75445}
75446
75447// Fields allows partial responses to be retrieved. See
75448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75449// for more information.
75450func (c *InstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdateCall {
75451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75452	return c
75453}
75454
75455// Context sets the context to be used in this call's Do method. Any
75456// pending HTTP request will be aborted if the provided context is
75457// canceled.
75458func (c *InstanceGroupManagersUpdateCall) Context(ctx context.Context) *InstanceGroupManagersUpdateCall {
75459	c.ctx_ = ctx
75460	return c
75461}
75462
75463// Header returns an http.Header that can be modified by the caller to
75464// add HTTP headers to the request.
75465func (c *InstanceGroupManagersUpdateCall) Header() http.Header {
75466	if c.header_ == nil {
75467		c.header_ = make(http.Header)
75468	}
75469	return c.header_
75470}
75471
75472func (c *InstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
75473	reqHeaders := make(http.Header)
75474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75475	for k, v := range c.header_ {
75476		reqHeaders[k] = v
75477	}
75478	reqHeaders.Set("User-Agent", c.s.userAgent())
75479	var body io.Reader = nil
75480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
75481	if err != nil {
75482		return nil, err
75483	}
75484	reqHeaders.Set("Content-Type", "application/json")
75485	c.urlParams_.Set("alt", alt)
75486	c.urlParams_.Set("prettyPrint", "false")
75487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
75488	urls += "?" + c.urlParams_.Encode()
75489	req, err := http.NewRequest("PUT", urls, body)
75490	if err != nil {
75491		return nil, err
75492	}
75493	req.Header = reqHeaders
75494	googleapi.Expand(req.URL, map[string]string{
75495		"project":              c.project,
75496		"zone":                 c.zone,
75497		"instanceGroupManager": c.instanceGroupManager,
75498	})
75499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75500}
75501
75502// Do executes the "compute.instanceGroupManagers.update" call.
75503// Exactly one of *Operation or error will be non-nil. Any non-2xx
75504// status code is an error. Response headers are in either
75505// *Operation.ServerResponse.Header or (if a response was returned at
75506// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75507// to check whether the returned error was because
75508// http.StatusNotModified was returned.
75509func (c *InstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75510	gensupport.SetOptions(c.urlParams_, opts...)
75511	res, err := c.doRequest("json")
75512	if res != nil && res.StatusCode == http.StatusNotModified {
75513		if res.Body != nil {
75514			res.Body.Close()
75515		}
75516		return nil, &googleapi.Error{
75517			Code:   res.StatusCode,
75518			Header: res.Header,
75519		}
75520	}
75521	if err != nil {
75522		return nil, err
75523	}
75524	defer googleapi.CloseBody(res)
75525	if err := googleapi.CheckResponse(res); err != nil {
75526		return nil, err
75527	}
75528	ret := &Operation{
75529		ServerResponse: googleapi.ServerResponse{
75530			Header:         res.Header,
75531			HTTPStatusCode: res.StatusCode,
75532		},
75533	}
75534	target := &ret
75535	if err := gensupport.DecodeResponse(target, res); err != nil {
75536		return nil, err
75537	}
75538	return ret, nil
75539	// {
75540	//   "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.",
75541	//   "httpMethod": "PUT",
75542	//   "id": "compute.instanceGroupManagers.update",
75543	//   "parameterOrder": [
75544	//     "project",
75545	//     "zone",
75546	//     "instanceGroupManager"
75547	//   ],
75548	//   "parameters": {
75549	//     "instanceGroupManager": {
75550	//       "description": "The name of the instance group manager.",
75551	//       "location": "path",
75552	//       "required": true,
75553	//       "type": "string"
75554	//     },
75555	//     "project": {
75556	//       "description": "Project ID for this request.",
75557	//       "location": "path",
75558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75559	//       "required": true,
75560	//       "type": "string"
75561	//     },
75562	//     "requestId": {
75563	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75564	//       "location": "query",
75565	//       "type": "string"
75566	//     },
75567	//     "zone": {
75568	//       "description": "The name of the zone where you want to create the managed instance group.",
75569	//       "location": "path",
75570	//       "required": true,
75571	//       "type": "string"
75572	//     }
75573	//   },
75574	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
75575	//   "request": {
75576	//     "$ref": "InstanceGroupManager"
75577	//   },
75578	//   "response": {
75579	//     "$ref": "Operation"
75580	//   },
75581	//   "scopes": [
75582	//     "https://www.googleapis.com/auth/cloud-platform",
75583	//     "https://www.googleapis.com/auth/compute"
75584	//   ]
75585	// }
75586
75587}
75588
75589// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
75590
75591type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
75592	s                                                *Service
75593	project                                          string
75594	zone                                             string
75595	instanceGroupManager                             string
75596	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
75597	urlParams_                                       gensupport.URLParams
75598	ctx_                                             context.Context
75599	header_                                          http.Header
75600}
75601
75602// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
75603// the managed instance group. perInstanceConfig.name serves as a key
75604// used to distinguish whether to perform insert or patch.
75605func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
75606	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75607	c.project = project
75608	c.zone = zone
75609	c.instanceGroupManager = instanceGroupManager
75610	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
75611	return c
75612}
75613
75614// RequestId sets the optional parameter "requestId": An optional
75615// request ID to identify requests. Specify a unique request ID so that
75616// if you must retry your request, the server will know to ignore the
75617// request if it has already been completed.
75618//
75619// For example, consider a situation where you make an initial request
75620// and the request times out. If you make the request again with the
75621// same request ID, the server can check if original operation with the
75622// same request ID was received, and if so, will ignore the second
75623// request. This prevents clients from accidentally creating duplicate
75624// commitments.
75625//
75626// The request ID must be a valid UUID with the exception that zero UUID
75627// is not supported (00000000-0000-0000-0000-000000000000).
75628func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
75629	c.urlParams_.Set("requestId", requestId)
75630	return c
75631}
75632
75633// Fields allows partial responses to be retrieved. See
75634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75635// for more information.
75636func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
75637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75638	return c
75639}
75640
75641// Context sets the context to be used in this call's Do method. Any
75642// pending HTTP request will be aborted if the provided context is
75643// canceled.
75644func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
75645	c.ctx_ = ctx
75646	return c
75647}
75648
75649// Header returns an http.Header that can be modified by the caller to
75650// add HTTP headers to the request.
75651func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
75652	if c.header_ == nil {
75653		c.header_ = make(http.Header)
75654	}
75655	return c.header_
75656}
75657
75658func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
75659	reqHeaders := make(http.Header)
75660	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75661	for k, v := range c.header_ {
75662		reqHeaders[k] = v
75663	}
75664	reqHeaders.Set("User-Agent", c.s.userAgent())
75665	var body io.Reader = nil
75666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
75667	if err != nil {
75668		return nil, err
75669	}
75670	reqHeaders.Set("Content-Type", "application/json")
75671	c.urlParams_.Set("alt", alt)
75672	c.urlParams_.Set("prettyPrint", "false")
75673	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
75674	urls += "?" + c.urlParams_.Encode()
75675	req, err := http.NewRequest("POST", urls, body)
75676	if err != nil {
75677		return nil, err
75678	}
75679	req.Header = reqHeaders
75680	googleapi.Expand(req.URL, map[string]string{
75681		"project":              c.project,
75682		"zone":                 c.zone,
75683		"instanceGroupManager": c.instanceGroupManager,
75684	})
75685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75686}
75687
75688// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
75689// Exactly one of *Operation or error will be non-nil. Any non-2xx
75690// status code is an error. Response headers are in either
75691// *Operation.ServerResponse.Header or (if a response was returned at
75692// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75693// to check whether the returned error was because
75694// http.StatusNotModified was returned.
75695func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75696	gensupport.SetOptions(c.urlParams_, opts...)
75697	res, err := c.doRequest("json")
75698	if res != nil && res.StatusCode == http.StatusNotModified {
75699		if res.Body != nil {
75700			res.Body.Close()
75701		}
75702		return nil, &googleapi.Error{
75703			Code:   res.StatusCode,
75704			Header: res.Header,
75705		}
75706	}
75707	if err != nil {
75708		return nil, err
75709	}
75710	defer googleapi.CloseBody(res)
75711	if err := googleapi.CheckResponse(res); err != nil {
75712		return nil, err
75713	}
75714	ret := &Operation{
75715		ServerResponse: googleapi.ServerResponse{
75716			Header:         res.Header,
75717			HTTPStatusCode: res.StatusCode,
75718		},
75719	}
75720	target := &ret
75721	if err := gensupport.DecodeResponse(target, res); err != nil {
75722		return nil, err
75723	}
75724	return ret, nil
75725	// {
75726	//   "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.",
75727	//   "httpMethod": "POST",
75728	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
75729	//   "parameterOrder": [
75730	//     "project",
75731	//     "zone",
75732	//     "instanceGroupManager"
75733	//   ],
75734	//   "parameters": {
75735	//     "instanceGroupManager": {
75736	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
75737	//       "location": "path",
75738	//       "required": true,
75739	//       "type": "string"
75740	//     },
75741	//     "project": {
75742	//       "description": "Project ID for this request.",
75743	//       "location": "path",
75744	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75745	//       "required": true,
75746	//       "type": "string"
75747	//     },
75748	//     "requestId": {
75749	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75750	//       "location": "query",
75751	//       "type": "string"
75752	//     },
75753	//     "zone": {
75754	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
75755	//       "location": "path",
75756	//       "required": true,
75757	//       "type": "string"
75758	//     }
75759	//   },
75760	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
75761	//   "request": {
75762	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
75763	//   },
75764	//   "response": {
75765	//     "$ref": "Operation"
75766	//   },
75767	//   "scopes": [
75768	//     "https://www.googleapis.com/auth/cloud-platform",
75769	//     "https://www.googleapis.com/auth/compute"
75770	//   ]
75771	// }
75772
75773}
75774
75775// method id "compute.instanceGroups.addInstances":
75776
75777type InstanceGroupsAddInstancesCall struct {
75778	s                                 *Service
75779	project                           string
75780	zone                              string
75781	instanceGroup                     string
75782	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
75783	urlParams_                        gensupport.URLParams
75784	ctx_                              context.Context
75785	header_                           http.Header
75786}
75787
75788// AddInstances: Adds a list of instances to the specified instance
75789// group. All of the instances in the instance group must be in the same
75790// network/subnetwork. Read  Adding instances for more information.
75791func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
75792	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75793	c.project = project
75794	c.zone = zone
75795	c.instanceGroup = instanceGroup
75796	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
75797	return c
75798}
75799
75800// RequestId sets the optional parameter "requestId": An optional
75801// request ID to identify requests. Specify a unique request ID so that
75802// if you must retry your request, the server will know to ignore the
75803// request if it has already been completed.
75804//
75805// For example, consider a situation where you make an initial request
75806// and the request times out. If you make the request again with the
75807// same request ID, the server can check if original operation with the
75808// same request ID was received, and if so, will ignore the second
75809// request. This prevents clients from accidentally creating duplicate
75810// commitments.
75811//
75812// The request ID must be a valid UUID with the exception that zero UUID
75813// is not supported (00000000-0000-0000-0000-000000000000).
75814func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
75815	c.urlParams_.Set("requestId", requestId)
75816	return c
75817}
75818
75819// Fields allows partial responses to be retrieved. See
75820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75821// for more information.
75822func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
75823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75824	return c
75825}
75826
75827// Context sets the context to be used in this call's Do method. Any
75828// pending HTTP request will be aborted if the provided context is
75829// canceled.
75830func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
75831	c.ctx_ = ctx
75832	return c
75833}
75834
75835// Header returns an http.Header that can be modified by the caller to
75836// add HTTP headers to the request.
75837func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
75838	if c.header_ == nil {
75839		c.header_ = make(http.Header)
75840	}
75841	return c.header_
75842}
75843
75844func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
75845	reqHeaders := make(http.Header)
75846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
75847	for k, v := range c.header_ {
75848		reqHeaders[k] = v
75849	}
75850	reqHeaders.Set("User-Agent", c.s.userAgent())
75851	var body io.Reader = nil
75852	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
75853	if err != nil {
75854		return nil, err
75855	}
75856	reqHeaders.Set("Content-Type", "application/json")
75857	c.urlParams_.Set("alt", alt)
75858	c.urlParams_.Set("prettyPrint", "false")
75859	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
75860	urls += "?" + c.urlParams_.Encode()
75861	req, err := http.NewRequest("POST", urls, body)
75862	if err != nil {
75863		return nil, err
75864	}
75865	req.Header = reqHeaders
75866	googleapi.Expand(req.URL, map[string]string{
75867		"project":       c.project,
75868		"zone":          c.zone,
75869		"instanceGroup": c.instanceGroup,
75870	})
75871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75872}
75873
75874// Do executes the "compute.instanceGroups.addInstances" call.
75875// Exactly one of *Operation or error will be non-nil. Any non-2xx
75876// status code is an error. Response headers are in either
75877// *Operation.ServerResponse.Header or (if a response was returned at
75878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75879// to check whether the returned error was because
75880// http.StatusNotModified was returned.
75881func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75882	gensupport.SetOptions(c.urlParams_, opts...)
75883	res, err := c.doRequest("json")
75884	if res != nil && res.StatusCode == http.StatusNotModified {
75885		if res.Body != nil {
75886			res.Body.Close()
75887		}
75888		return nil, &googleapi.Error{
75889			Code:   res.StatusCode,
75890			Header: res.Header,
75891		}
75892	}
75893	if err != nil {
75894		return nil, err
75895	}
75896	defer googleapi.CloseBody(res)
75897	if err := googleapi.CheckResponse(res); err != nil {
75898		return nil, err
75899	}
75900	ret := &Operation{
75901		ServerResponse: googleapi.ServerResponse{
75902			Header:         res.Header,
75903			HTTPStatusCode: res.StatusCode,
75904		},
75905	}
75906	target := &ret
75907	if err := gensupport.DecodeResponse(target, res); err != nil {
75908		return nil, err
75909	}
75910	return ret, nil
75911	// {
75912	//   "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.",
75913	//   "httpMethod": "POST",
75914	//   "id": "compute.instanceGroups.addInstances",
75915	//   "parameterOrder": [
75916	//     "project",
75917	//     "zone",
75918	//     "instanceGroup"
75919	//   ],
75920	//   "parameters": {
75921	//     "instanceGroup": {
75922	//       "description": "The name of the instance group where you are adding instances.",
75923	//       "location": "path",
75924	//       "required": true,
75925	//       "type": "string"
75926	//     },
75927	//     "project": {
75928	//       "description": "Project ID for this request.",
75929	//       "location": "path",
75930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75931	//       "required": true,
75932	//       "type": "string"
75933	//     },
75934	//     "requestId": {
75935	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75936	//       "location": "query",
75937	//       "type": "string"
75938	//     },
75939	//     "zone": {
75940	//       "description": "The name of the zone where the instance group is located.",
75941	//       "location": "path",
75942	//       "required": true,
75943	//       "type": "string"
75944	//     }
75945	//   },
75946	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
75947	//   "request": {
75948	//     "$ref": "InstanceGroupsAddInstancesRequest"
75949	//   },
75950	//   "response": {
75951	//     "$ref": "Operation"
75952	//   },
75953	//   "scopes": [
75954	//     "https://www.googleapis.com/auth/cloud-platform",
75955	//     "https://www.googleapis.com/auth/compute"
75956	//   ]
75957	// }
75958
75959}
75960
75961// method id "compute.instanceGroups.aggregatedList":
75962
75963type InstanceGroupsAggregatedListCall struct {
75964	s            *Service
75965	project      string
75966	urlParams_   gensupport.URLParams
75967	ifNoneMatch_ string
75968	ctx_         context.Context
75969	header_      http.Header
75970}
75971
75972// AggregatedList: Retrieves the list of instance groups and sorts them
75973// by zone.
75974func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
75975	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75976	c.project = project
75977	return c
75978}
75979
75980// Filter sets the optional parameter "filter": A filter expression that
75981// filters resources listed in the response. The expression must specify
75982// the field name, a comparison operator, and the value that you want to
75983// use for filtering. The value must be a string, a number, or a
75984// boolean. The comparison operator must be either `=`, `!=`, `>`, or
75985// `<`.
75986//
75987// For example, if you are filtering Compute Engine instances, you can
75988// exclude instances named `example-instance` by specifying `name !=
75989// example-instance`.
75990//
75991// You can also filter nested fields. For example, you could specify
75992// `scheduling.automaticRestart = false` to include instances only if
75993// they are not scheduled for automatic restarts. You can use filtering
75994// on nested fields to filter based on resource labels.
75995//
75996// To filter on multiple expressions, provide each separate expression
75997// within parentheses. For example: ``` (scheduling.automaticRestart =
75998// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
75999// is an `AND` expression. However, you can include `AND` and `OR`
76000// expressions explicitly. For example: ``` (cpuPlatform = "Intel
76001// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
76002// (scheduling.automaticRestart = true) ```
76003func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
76004	c.urlParams_.Set("filter", filter)
76005	return c
76006}
76007
76008// IncludeAllScopes sets the optional parameter "includeAllScopes":
76009// Indicates whether every visible scope for each scope type (zone,
76010// region, global) should be included in the response. For new resource
76011// types added after this field, the flag has no effect as new resource
76012// types will always include every visible scope for each scope type in
76013// response. For resource types which predate this field, if this flag
76014// is omitted or false, only scopes of the scope types where the
76015// resource type is expected to be found will be included.
76016func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
76017	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
76018	return c
76019}
76020
76021// MaxResults sets the optional parameter "maxResults": The maximum
76022// number of results per page that should be returned. If the number of
76023// available results is larger than `maxResults`, Compute Engine returns
76024// a `nextPageToken` that can be used to get the next page of results in
76025// subsequent list requests. Acceptable values are `0` to `500`,
76026// inclusive. (Default: `500`)
76027func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
76028	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76029	return c
76030}
76031
76032// OrderBy sets the optional parameter "orderBy": Sorts list results by
76033// a certain order. By default, results are returned in alphanumerical
76034// order based on the resource name.
76035//
76036// You can also sort results in descending order based on the creation
76037// timestamp using `orderBy="creationTimestamp desc". This sorts
76038// results based on the `creationTimestamp` field in reverse
76039// chronological order (newest result first). Use this to sort resources
76040// like operations so that the newest operation is returned
76041// first.
76042//
76043// Currently, only sorting by `name` or `creationTimestamp desc` is
76044// supported.
76045func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
76046	c.urlParams_.Set("orderBy", orderBy)
76047	return c
76048}
76049
76050// PageToken sets the optional parameter "pageToken": Specifies a page
76051// token to use. Set `pageToken` to the `nextPageToken` returned by a
76052// previous list request to get the next page of results.
76053func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
76054	c.urlParams_.Set("pageToken", pageToken)
76055	return c
76056}
76057
76058// Fields allows partial responses to be retrieved. See
76059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76060// for more information.
76061func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
76062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76063	return c
76064}
76065
76066// IfNoneMatch sets the optional parameter which makes the operation
76067// fail if the object's ETag matches the given value. This is useful for
76068// getting updates only after the object has changed since the last
76069// request. Use googleapi.IsNotModified to check whether the response
76070// error from Do is the result of In-None-Match.
76071func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
76072	c.ifNoneMatch_ = entityTag
76073	return c
76074}
76075
76076// Context sets the context to be used in this call's Do method. Any
76077// pending HTTP request will be aborted if the provided context is
76078// canceled.
76079func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
76080	c.ctx_ = ctx
76081	return c
76082}
76083
76084// Header returns an http.Header that can be modified by the caller to
76085// add HTTP headers to the request.
76086func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
76087	if c.header_ == nil {
76088		c.header_ = make(http.Header)
76089	}
76090	return c.header_
76091}
76092
76093func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
76094	reqHeaders := make(http.Header)
76095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76096	for k, v := range c.header_ {
76097		reqHeaders[k] = v
76098	}
76099	reqHeaders.Set("User-Agent", c.s.userAgent())
76100	if c.ifNoneMatch_ != "" {
76101		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76102	}
76103	var body io.Reader = nil
76104	c.urlParams_.Set("alt", alt)
76105	c.urlParams_.Set("prettyPrint", "false")
76106	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
76107	urls += "?" + c.urlParams_.Encode()
76108	req, err := http.NewRequest("GET", urls, body)
76109	if err != nil {
76110		return nil, err
76111	}
76112	req.Header = reqHeaders
76113	googleapi.Expand(req.URL, map[string]string{
76114		"project": c.project,
76115	})
76116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76117}
76118
76119// Do executes the "compute.instanceGroups.aggregatedList" call.
76120// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
76121// Any non-2xx status code is an error. Response headers are in either
76122// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
76123// was returned at all) in error.(*googleapi.Error).Header. Use
76124// googleapi.IsNotModified to check whether the returned error was
76125// because http.StatusNotModified was returned.
76126func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
76127	gensupport.SetOptions(c.urlParams_, opts...)
76128	res, err := c.doRequest("json")
76129	if res != nil && res.StatusCode == http.StatusNotModified {
76130		if res.Body != nil {
76131			res.Body.Close()
76132		}
76133		return nil, &googleapi.Error{
76134			Code:   res.StatusCode,
76135			Header: res.Header,
76136		}
76137	}
76138	if err != nil {
76139		return nil, err
76140	}
76141	defer googleapi.CloseBody(res)
76142	if err := googleapi.CheckResponse(res); err != nil {
76143		return nil, err
76144	}
76145	ret := &InstanceGroupAggregatedList{
76146		ServerResponse: googleapi.ServerResponse{
76147			Header:         res.Header,
76148			HTTPStatusCode: res.StatusCode,
76149		},
76150	}
76151	target := &ret
76152	if err := gensupport.DecodeResponse(target, res); err != nil {
76153		return nil, err
76154	}
76155	return ret, nil
76156	// {
76157	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
76158	//   "httpMethod": "GET",
76159	//   "id": "compute.instanceGroups.aggregatedList",
76160	//   "parameterOrder": [
76161	//     "project"
76162	//   ],
76163	//   "parameters": {
76164	//     "filter": {
76165	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
76166	//       "location": "query",
76167	//       "type": "string"
76168	//     },
76169	//     "includeAllScopes": {
76170	//       "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.",
76171	//       "location": "query",
76172	//       "type": "boolean"
76173	//     },
76174	//     "maxResults": {
76175	//       "default": "500",
76176	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
76177	//       "format": "uint32",
76178	//       "location": "query",
76179	//       "minimum": "0",
76180	//       "type": "integer"
76181	//     },
76182	//     "orderBy": {
76183	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
76184	//       "location": "query",
76185	//       "type": "string"
76186	//     },
76187	//     "pageToken": {
76188	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
76189	//       "location": "query",
76190	//       "type": "string"
76191	//     },
76192	//     "project": {
76193	//       "description": "Project ID for this request.",
76194	//       "location": "path",
76195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76196	//       "required": true,
76197	//       "type": "string"
76198	//     }
76199	//   },
76200	//   "path": "{project}/aggregated/instanceGroups",
76201	//   "response": {
76202	//     "$ref": "InstanceGroupAggregatedList"
76203	//   },
76204	//   "scopes": [
76205	//     "https://www.googleapis.com/auth/cloud-platform",
76206	//     "https://www.googleapis.com/auth/compute",
76207	//     "https://www.googleapis.com/auth/compute.readonly"
76208	//   ]
76209	// }
76210
76211}
76212
76213// Pages invokes f for each page of results.
76214// A non-nil error returned from f will halt the iteration.
76215// The provided context supersedes any context provided to the Context method.
76216func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
76217	c.ctx_ = ctx
76218	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76219	for {
76220		x, err := c.Do()
76221		if err != nil {
76222			return err
76223		}
76224		if err := f(x); err != nil {
76225			return err
76226		}
76227		if x.NextPageToken == "" {
76228			return nil
76229		}
76230		c.PageToken(x.NextPageToken)
76231	}
76232}
76233
76234// method id "compute.instanceGroups.delete":
76235
76236type InstanceGroupsDeleteCall struct {
76237	s             *Service
76238	project       string
76239	zone          string
76240	instanceGroup string
76241	urlParams_    gensupport.URLParams
76242	ctx_          context.Context
76243	header_       http.Header
76244}
76245
76246// Delete: Deletes the specified instance group. The instances in the
76247// group are not deleted. Note that instance group must not belong to a
76248// backend service. Read  Deleting an instance group for more
76249// information.
76250func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
76251	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76252	c.project = project
76253	c.zone = zone
76254	c.instanceGroup = instanceGroup
76255	return c
76256}
76257
76258// RequestId sets the optional parameter "requestId": An optional
76259// request ID to identify requests. Specify a unique request ID so that
76260// if you must retry your request, the server will know to ignore the
76261// request if it has already been completed.
76262//
76263// For example, consider a situation where you make an initial request
76264// and the request times out. If you make the request again with the
76265// same request ID, the server can check if original operation with the
76266// same request ID was received, and if so, will ignore the second
76267// request. This prevents clients from accidentally creating duplicate
76268// commitments.
76269//
76270// The request ID must be a valid UUID with the exception that zero UUID
76271// is not supported (00000000-0000-0000-0000-000000000000).
76272func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
76273	c.urlParams_.Set("requestId", requestId)
76274	return c
76275}
76276
76277// Fields allows partial responses to be retrieved. See
76278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76279// for more information.
76280func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
76281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76282	return c
76283}
76284
76285// Context sets the context to be used in this call's Do method. Any
76286// pending HTTP request will be aborted if the provided context is
76287// canceled.
76288func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
76289	c.ctx_ = ctx
76290	return c
76291}
76292
76293// Header returns an http.Header that can be modified by the caller to
76294// add HTTP headers to the request.
76295func (c *InstanceGroupsDeleteCall) Header() http.Header {
76296	if c.header_ == nil {
76297		c.header_ = make(http.Header)
76298	}
76299	return c.header_
76300}
76301
76302func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
76303	reqHeaders := make(http.Header)
76304	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76305	for k, v := range c.header_ {
76306		reqHeaders[k] = v
76307	}
76308	reqHeaders.Set("User-Agent", c.s.userAgent())
76309	var body io.Reader = nil
76310	c.urlParams_.Set("alt", alt)
76311	c.urlParams_.Set("prettyPrint", "false")
76312	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
76313	urls += "?" + c.urlParams_.Encode()
76314	req, err := http.NewRequest("DELETE", urls, body)
76315	if err != nil {
76316		return nil, err
76317	}
76318	req.Header = reqHeaders
76319	googleapi.Expand(req.URL, map[string]string{
76320		"project":       c.project,
76321		"zone":          c.zone,
76322		"instanceGroup": c.instanceGroup,
76323	})
76324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76325}
76326
76327// Do executes the "compute.instanceGroups.delete" call.
76328// Exactly one of *Operation or error will be non-nil. Any non-2xx
76329// status code is an error. Response headers are in either
76330// *Operation.ServerResponse.Header or (if a response was returned at
76331// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76332// to check whether the returned error was because
76333// http.StatusNotModified was returned.
76334func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76335	gensupport.SetOptions(c.urlParams_, opts...)
76336	res, err := c.doRequest("json")
76337	if res != nil && res.StatusCode == http.StatusNotModified {
76338		if res.Body != nil {
76339			res.Body.Close()
76340		}
76341		return nil, &googleapi.Error{
76342			Code:   res.StatusCode,
76343			Header: res.Header,
76344		}
76345	}
76346	if err != nil {
76347		return nil, err
76348	}
76349	defer googleapi.CloseBody(res)
76350	if err := googleapi.CheckResponse(res); err != nil {
76351		return nil, err
76352	}
76353	ret := &Operation{
76354		ServerResponse: googleapi.ServerResponse{
76355			Header:         res.Header,
76356			HTTPStatusCode: res.StatusCode,
76357		},
76358	}
76359	target := &ret
76360	if err := gensupport.DecodeResponse(target, res); err != nil {
76361		return nil, err
76362	}
76363	return ret, nil
76364	// {
76365	//   "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.",
76366	//   "httpMethod": "DELETE",
76367	//   "id": "compute.instanceGroups.delete",
76368	//   "parameterOrder": [
76369	//     "project",
76370	//     "zone",
76371	//     "instanceGroup"
76372	//   ],
76373	//   "parameters": {
76374	//     "instanceGroup": {
76375	//       "description": "The name of the instance group to delete.",
76376	//       "location": "path",
76377	//       "required": true,
76378	//       "type": "string"
76379	//     },
76380	//     "project": {
76381	//       "description": "Project ID for this request.",
76382	//       "location": "path",
76383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76384	//       "required": true,
76385	//       "type": "string"
76386	//     },
76387	//     "requestId": {
76388	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76389	//       "location": "query",
76390	//       "type": "string"
76391	//     },
76392	//     "zone": {
76393	//       "description": "The name of the zone where the instance group is located.",
76394	//       "location": "path",
76395	//       "required": true,
76396	//       "type": "string"
76397	//     }
76398	//   },
76399	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
76400	//   "response": {
76401	//     "$ref": "Operation"
76402	//   },
76403	//   "scopes": [
76404	//     "https://www.googleapis.com/auth/cloud-platform",
76405	//     "https://www.googleapis.com/auth/compute"
76406	//   ]
76407	// }
76408
76409}
76410
76411// method id "compute.instanceGroups.get":
76412
76413type InstanceGroupsGetCall struct {
76414	s             *Service
76415	project       string
76416	zone          string
76417	instanceGroup string
76418	urlParams_    gensupport.URLParams
76419	ifNoneMatch_  string
76420	ctx_          context.Context
76421	header_       http.Header
76422}
76423
76424// Get: Returns the specified instance group. Gets a list of available
76425// instance groups by making a list() request.
76426func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
76427	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76428	c.project = project
76429	c.zone = zone
76430	c.instanceGroup = instanceGroup
76431	return c
76432}
76433
76434// Fields allows partial responses to be retrieved. See
76435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76436// for more information.
76437func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
76438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76439	return c
76440}
76441
76442// IfNoneMatch sets the optional parameter which makes the operation
76443// fail if the object's ETag matches the given value. This is useful for
76444// getting updates only after the object has changed since the last
76445// request. Use googleapi.IsNotModified to check whether the response
76446// error from Do is the result of In-None-Match.
76447func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
76448	c.ifNoneMatch_ = entityTag
76449	return c
76450}
76451
76452// Context sets the context to be used in this call's Do method. Any
76453// pending HTTP request will be aborted if the provided context is
76454// canceled.
76455func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
76456	c.ctx_ = ctx
76457	return c
76458}
76459
76460// Header returns an http.Header that can be modified by the caller to
76461// add HTTP headers to the request.
76462func (c *InstanceGroupsGetCall) Header() http.Header {
76463	if c.header_ == nil {
76464		c.header_ = make(http.Header)
76465	}
76466	return c.header_
76467}
76468
76469func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
76470	reqHeaders := make(http.Header)
76471	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76472	for k, v := range c.header_ {
76473		reqHeaders[k] = v
76474	}
76475	reqHeaders.Set("User-Agent", c.s.userAgent())
76476	if c.ifNoneMatch_ != "" {
76477		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76478	}
76479	var body io.Reader = nil
76480	c.urlParams_.Set("alt", alt)
76481	c.urlParams_.Set("prettyPrint", "false")
76482	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
76483	urls += "?" + c.urlParams_.Encode()
76484	req, err := http.NewRequest("GET", urls, body)
76485	if err != nil {
76486		return nil, err
76487	}
76488	req.Header = reqHeaders
76489	googleapi.Expand(req.URL, map[string]string{
76490		"project":       c.project,
76491		"zone":          c.zone,
76492		"instanceGroup": c.instanceGroup,
76493	})
76494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76495}
76496
76497// Do executes the "compute.instanceGroups.get" call.
76498// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
76499// status code is an error. Response headers are in either
76500// *InstanceGroup.ServerResponse.Header or (if a response was returned
76501// at all) in error.(*googleapi.Error).Header. Use
76502// googleapi.IsNotModified to check whether the returned error was
76503// because http.StatusNotModified was returned.
76504func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
76505	gensupport.SetOptions(c.urlParams_, opts...)
76506	res, err := c.doRequest("json")
76507	if res != nil && res.StatusCode == http.StatusNotModified {
76508		if res.Body != nil {
76509			res.Body.Close()
76510		}
76511		return nil, &googleapi.Error{
76512			Code:   res.StatusCode,
76513			Header: res.Header,
76514		}
76515	}
76516	if err != nil {
76517		return nil, err
76518	}
76519	defer googleapi.CloseBody(res)
76520	if err := googleapi.CheckResponse(res); err != nil {
76521		return nil, err
76522	}
76523	ret := &InstanceGroup{
76524		ServerResponse: googleapi.ServerResponse{
76525			Header:         res.Header,
76526			HTTPStatusCode: res.StatusCode,
76527		},
76528	}
76529	target := &ret
76530	if err := gensupport.DecodeResponse(target, res); err != nil {
76531		return nil, err
76532	}
76533	return ret, nil
76534	// {
76535	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
76536	//   "httpMethod": "GET",
76537	//   "id": "compute.instanceGroups.get",
76538	//   "parameterOrder": [
76539	//     "project",
76540	//     "zone",
76541	//     "instanceGroup"
76542	//   ],
76543	//   "parameters": {
76544	//     "instanceGroup": {
76545	//       "description": "The name of the instance group.",
76546	//       "location": "path",
76547	//       "required": true,
76548	//       "type": "string"
76549	//     },
76550	//     "project": {
76551	//       "description": "Project ID for this request.",
76552	//       "location": "path",
76553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76554	//       "required": true,
76555	//       "type": "string"
76556	//     },
76557	//     "zone": {
76558	//       "description": "The name of the zone where the instance group is located.",
76559	//       "location": "path",
76560	//       "required": true,
76561	//       "type": "string"
76562	//     }
76563	//   },
76564	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
76565	//   "response": {
76566	//     "$ref": "InstanceGroup"
76567	//   },
76568	//   "scopes": [
76569	//     "https://www.googleapis.com/auth/cloud-platform",
76570	//     "https://www.googleapis.com/auth/compute",
76571	//     "https://www.googleapis.com/auth/compute.readonly"
76572	//   ]
76573	// }
76574
76575}
76576
76577// method id "compute.instanceGroups.insert":
76578
76579type InstanceGroupsInsertCall struct {
76580	s             *Service
76581	project       string
76582	zone          string
76583	instancegroup *InstanceGroup
76584	urlParams_    gensupport.URLParams
76585	ctx_          context.Context
76586	header_       http.Header
76587}
76588
76589// Insert: Creates an instance group in the specified project using the
76590// parameters that are included in the request.
76591func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
76592	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76593	c.project = project
76594	c.zone = zone
76595	c.instancegroup = instancegroup
76596	return c
76597}
76598
76599// RequestId sets the optional parameter "requestId": An optional
76600// request ID to identify requests. Specify a unique request ID so that
76601// if you must retry your request, the server will know to ignore the
76602// request if it has already been completed.
76603//
76604// For example, consider a situation where you make an initial request
76605// and the request times out. If you make the request again with the
76606// same request ID, the server can check if original operation with the
76607// same request ID was received, and if so, will ignore the second
76608// request. This prevents clients from accidentally creating duplicate
76609// commitments.
76610//
76611// The request ID must be a valid UUID with the exception that zero UUID
76612// is not supported (00000000-0000-0000-0000-000000000000).
76613func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
76614	c.urlParams_.Set("requestId", requestId)
76615	return c
76616}
76617
76618// Fields allows partial responses to be retrieved. See
76619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76620// for more information.
76621func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
76622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76623	return c
76624}
76625
76626// Context sets the context to be used in this call's Do method. Any
76627// pending HTTP request will be aborted if the provided context is
76628// canceled.
76629func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
76630	c.ctx_ = ctx
76631	return c
76632}
76633
76634// Header returns an http.Header that can be modified by the caller to
76635// add HTTP headers to the request.
76636func (c *InstanceGroupsInsertCall) Header() http.Header {
76637	if c.header_ == nil {
76638		c.header_ = make(http.Header)
76639	}
76640	return c.header_
76641}
76642
76643func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
76644	reqHeaders := make(http.Header)
76645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76646	for k, v := range c.header_ {
76647		reqHeaders[k] = v
76648	}
76649	reqHeaders.Set("User-Agent", c.s.userAgent())
76650	var body io.Reader = nil
76651	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
76652	if err != nil {
76653		return nil, err
76654	}
76655	reqHeaders.Set("Content-Type", "application/json")
76656	c.urlParams_.Set("alt", alt)
76657	c.urlParams_.Set("prettyPrint", "false")
76658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
76659	urls += "?" + c.urlParams_.Encode()
76660	req, err := http.NewRequest("POST", urls, body)
76661	if err != nil {
76662		return nil, err
76663	}
76664	req.Header = reqHeaders
76665	googleapi.Expand(req.URL, map[string]string{
76666		"project": c.project,
76667		"zone":    c.zone,
76668	})
76669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76670}
76671
76672// Do executes the "compute.instanceGroups.insert" call.
76673// Exactly one of *Operation or error will be non-nil. Any non-2xx
76674// status code is an error. Response headers are in either
76675// *Operation.ServerResponse.Header or (if a response was returned at
76676// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76677// to check whether the returned error was because
76678// http.StatusNotModified was returned.
76679func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76680	gensupport.SetOptions(c.urlParams_, opts...)
76681	res, err := c.doRequest("json")
76682	if res != nil && res.StatusCode == http.StatusNotModified {
76683		if res.Body != nil {
76684			res.Body.Close()
76685		}
76686		return nil, &googleapi.Error{
76687			Code:   res.StatusCode,
76688			Header: res.Header,
76689		}
76690	}
76691	if err != nil {
76692		return nil, err
76693	}
76694	defer googleapi.CloseBody(res)
76695	if err := googleapi.CheckResponse(res); err != nil {
76696		return nil, err
76697	}
76698	ret := &Operation{
76699		ServerResponse: googleapi.ServerResponse{
76700			Header:         res.Header,
76701			HTTPStatusCode: res.StatusCode,
76702		},
76703	}
76704	target := &ret
76705	if err := gensupport.DecodeResponse(target, res); err != nil {
76706		return nil, err
76707	}
76708	return ret, nil
76709	// {
76710	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
76711	//   "httpMethod": "POST",
76712	//   "id": "compute.instanceGroups.insert",
76713	//   "parameterOrder": [
76714	//     "project",
76715	//     "zone"
76716	//   ],
76717	//   "parameters": {
76718	//     "project": {
76719	//       "description": "Project ID for this request.",
76720	//       "location": "path",
76721	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76722	//       "required": true,
76723	//       "type": "string"
76724	//     },
76725	//     "requestId": {
76726	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76727	//       "location": "query",
76728	//       "type": "string"
76729	//     },
76730	//     "zone": {
76731	//       "description": "The name of the zone where you want to create the instance group.",
76732	//       "location": "path",
76733	//       "required": true,
76734	//       "type": "string"
76735	//     }
76736	//   },
76737	//   "path": "{project}/zones/{zone}/instanceGroups",
76738	//   "request": {
76739	//     "$ref": "InstanceGroup"
76740	//   },
76741	//   "response": {
76742	//     "$ref": "Operation"
76743	//   },
76744	//   "scopes": [
76745	//     "https://www.googleapis.com/auth/cloud-platform",
76746	//     "https://www.googleapis.com/auth/compute"
76747	//   ]
76748	// }
76749
76750}
76751
76752// method id "compute.instanceGroups.list":
76753
76754type InstanceGroupsListCall struct {
76755	s            *Service
76756	project      string
76757	zone         string
76758	urlParams_   gensupport.URLParams
76759	ifNoneMatch_ string
76760	ctx_         context.Context
76761	header_      http.Header
76762}
76763
76764// List: Retrieves the list of instance groups that are located in the
76765// specified project and zone.
76766func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
76767	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76768	c.project = project
76769	c.zone = zone
76770	return c
76771}
76772
76773// Filter sets the optional parameter "filter": A filter expression that
76774// filters resources listed in the response. The expression must specify
76775// the field name, a comparison operator, and the value that you want to
76776// use for filtering. The value must be a string, a number, or a
76777// boolean. The comparison operator must be either `=`, `!=`, `>`, or
76778// `<`.
76779//
76780// For example, if you are filtering Compute Engine instances, you can
76781// exclude instances named `example-instance` by specifying `name !=
76782// example-instance`.
76783//
76784// You can also filter nested fields. For example, you could specify
76785// `scheduling.automaticRestart = false` to include instances only if
76786// they are not scheduled for automatic restarts. You can use filtering
76787// on nested fields to filter based on resource labels.
76788//
76789// To filter on multiple expressions, provide each separate expression
76790// within parentheses. For example: ``` (scheduling.automaticRestart =
76791// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
76792// is an `AND` expression. However, you can include `AND` and `OR`
76793// expressions explicitly. For example: ``` (cpuPlatform = "Intel
76794// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
76795// (scheduling.automaticRestart = true) ```
76796func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
76797	c.urlParams_.Set("filter", filter)
76798	return c
76799}
76800
76801// MaxResults sets the optional parameter "maxResults": The maximum
76802// number of results per page that should be returned. If the number of
76803// available results is larger than `maxResults`, Compute Engine returns
76804// a `nextPageToken` that can be used to get the next page of results in
76805// subsequent list requests. Acceptable values are `0` to `500`,
76806// inclusive. (Default: `500`)
76807func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
76808	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76809	return c
76810}
76811
76812// OrderBy sets the optional parameter "orderBy": Sorts list results by
76813// a certain order. By default, results are returned in alphanumerical
76814// order based on the resource name.
76815//
76816// You can also sort results in descending order based on the creation
76817// timestamp using `orderBy="creationTimestamp desc". This sorts
76818// results based on the `creationTimestamp` field in reverse
76819// chronological order (newest result first). Use this to sort resources
76820// like operations so that the newest operation is returned
76821// first.
76822//
76823// Currently, only sorting by `name` or `creationTimestamp desc` is
76824// supported.
76825func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
76826	c.urlParams_.Set("orderBy", orderBy)
76827	return c
76828}
76829
76830// PageToken sets the optional parameter "pageToken": Specifies a page
76831// token to use. Set `pageToken` to the `nextPageToken` returned by a
76832// previous list request to get the next page of results.
76833func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
76834	c.urlParams_.Set("pageToken", pageToken)
76835	return c
76836}
76837
76838// Fields allows partial responses to be retrieved. See
76839// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76840// for more information.
76841func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
76842	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76843	return c
76844}
76845
76846// IfNoneMatch sets the optional parameter which makes the operation
76847// fail if the object's ETag matches the given value. This is useful for
76848// getting updates only after the object has changed since the last
76849// request. Use googleapi.IsNotModified to check whether the response
76850// error from Do is the result of In-None-Match.
76851func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
76852	c.ifNoneMatch_ = entityTag
76853	return c
76854}
76855
76856// Context sets the context to be used in this call's Do method. Any
76857// pending HTTP request will be aborted if the provided context is
76858// canceled.
76859func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
76860	c.ctx_ = ctx
76861	return c
76862}
76863
76864// Header returns an http.Header that can be modified by the caller to
76865// add HTTP headers to the request.
76866func (c *InstanceGroupsListCall) Header() http.Header {
76867	if c.header_ == nil {
76868		c.header_ = make(http.Header)
76869	}
76870	return c.header_
76871}
76872
76873func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
76874	reqHeaders := make(http.Header)
76875	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
76876	for k, v := range c.header_ {
76877		reqHeaders[k] = v
76878	}
76879	reqHeaders.Set("User-Agent", c.s.userAgent())
76880	if c.ifNoneMatch_ != "" {
76881		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76882	}
76883	var body io.Reader = nil
76884	c.urlParams_.Set("alt", alt)
76885	c.urlParams_.Set("prettyPrint", "false")
76886	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
76887	urls += "?" + c.urlParams_.Encode()
76888	req, err := http.NewRequest("GET", urls, body)
76889	if err != nil {
76890		return nil, err
76891	}
76892	req.Header = reqHeaders
76893	googleapi.Expand(req.URL, map[string]string{
76894		"project": c.project,
76895		"zone":    c.zone,
76896	})
76897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76898}
76899
76900// Do executes the "compute.instanceGroups.list" call.
76901// Exactly one of *InstanceGroupList or error will be non-nil. Any
76902// non-2xx status code is an error. Response headers are in either
76903// *InstanceGroupList.ServerResponse.Header or (if a response was
76904// returned at all) in error.(*googleapi.Error).Header. Use
76905// googleapi.IsNotModified to check whether the returned error was
76906// because http.StatusNotModified was returned.
76907func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
76908	gensupport.SetOptions(c.urlParams_, opts...)
76909	res, err := c.doRequest("json")
76910	if res != nil && res.StatusCode == http.StatusNotModified {
76911		if res.Body != nil {
76912			res.Body.Close()
76913		}
76914		return nil, &googleapi.Error{
76915			Code:   res.StatusCode,
76916			Header: res.Header,
76917		}
76918	}
76919	if err != nil {
76920		return nil, err
76921	}
76922	defer googleapi.CloseBody(res)
76923	if err := googleapi.CheckResponse(res); err != nil {
76924		return nil, err
76925	}
76926	ret := &InstanceGroupList{
76927		ServerResponse: googleapi.ServerResponse{
76928			Header:         res.Header,
76929			HTTPStatusCode: res.StatusCode,
76930		},
76931	}
76932	target := &ret
76933	if err := gensupport.DecodeResponse(target, res); err != nil {
76934		return nil, err
76935	}
76936	return ret, nil
76937	// {
76938	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
76939	//   "httpMethod": "GET",
76940	//   "id": "compute.instanceGroups.list",
76941	//   "parameterOrder": [
76942	//     "project",
76943	//     "zone"
76944	//   ],
76945	//   "parameters": {
76946	//     "filter": {
76947	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
76948	//       "location": "query",
76949	//       "type": "string"
76950	//     },
76951	//     "maxResults": {
76952	//       "default": "500",
76953	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
76954	//       "format": "uint32",
76955	//       "location": "query",
76956	//       "minimum": "0",
76957	//       "type": "integer"
76958	//     },
76959	//     "orderBy": {
76960	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
76961	//       "location": "query",
76962	//       "type": "string"
76963	//     },
76964	//     "pageToken": {
76965	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
76966	//       "location": "query",
76967	//       "type": "string"
76968	//     },
76969	//     "project": {
76970	//       "description": "Project ID for this request.",
76971	//       "location": "path",
76972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76973	//       "required": true,
76974	//       "type": "string"
76975	//     },
76976	//     "zone": {
76977	//       "description": "The name of the zone where the instance group is located.",
76978	//       "location": "path",
76979	//       "required": true,
76980	//       "type": "string"
76981	//     }
76982	//   },
76983	//   "path": "{project}/zones/{zone}/instanceGroups",
76984	//   "response": {
76985	//     "$ref": "InstanceGroupList"
76986	//   },
76987	//   "scopes": [
76988	//     "https://www.googleapis.com/auth/cloud-platform",
76989	//     "https://www.googleapis.com/auth/compute",
76990	//     "https://www.googleapis.com/auth/compute.readonly"
76991	//   ]
76992	// }
76993
76994}
76995
76996// Pages invokes f for each page of results.
76997// A non-nil error returned from f will halt the iteration.
76998// The provided context supersedes any context provided to the Context method.
76999func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
77000	c.ctx_ = ctx
77001	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77002	for {
77003		x, err := c.Do()
77004		if err != nil {
77005			return err
77006		}
77007		if err := f(x); err != nil {
77008			return err
77009		}
77010		if x.NextPageToken == "" {
77011			return nil
77012		}
77013		c.PageToken(x.NextPageToken)
77014	}
77015}
77016
77017// method id "compute.instanceGroups.listInstances":
77018
77019type InstanceGroupsListInstancesCall struct {
77020	s                                  *Service
77021	project                            string
77022	zone                               string
77023	instanceGroup                      string
77024	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
77025	urlParams_                         gensupport.URLParams
77026	ctx_                               context.Context
77027	header_                            http.Header
77028}
77029
77030// ListInstances: Lists the instances in the specified instance group.
77031// The orderBy query parameter is not supported.
77032func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
77033	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77034	c.project = project
77035	c.zone = zone
77036	c.instanceGroup = instanceGroup
77037	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
77038	return c
77039}
77040
77041// Filter sets the optional parameter "filter": A filter expression that
77042// filters resources listed in the response. The expression must specify
77043// the field name, a comparison operator, and the value that you want to
77044// use for filtering. The value must be a string, a number, or a
77045// boolean. The comparison operator must be either `=`, `!=`, `>`, or
77046// `<`.
77047//
77048// For example, if you are filtering Compute Engine instances, you can
77049// exclude instances named `example-instance` by specifying `name !=
77050// example-instance`.
77051//
77052// You can also filter nested fields. For example, you could specify
77053// `scheduling.automaticRestart = false` to include instances only if
77054// they are not scheduled for automatic restarts. You can use filtering
77055// on nested fields to filter based on resource labels.
77056//
77057// To filter on multiple expressions, provide each separate expression
77058// within parentheses. For example: ``` (scheduling.automaticRestart =
77059// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
77060// is an `AND` expression. However, you can include `AND` and `OR`
77061// expressions explicitly. For example: ``` (cpuPlatform = "Intel
77062// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
77063// (scheduling.automaticRestart = true) ```
77064func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
77065	c.urlParams_.Set("filter", filter)
77066	return c
77067}
77068
77069// MaxResults sets the optional parameter "maxResults": The maximum
77070// number of results per page that should be returned. If the number of
77071// available results is larger than `maxResults`, Compute Engine returns
77072// a `nextPageToken` that can be used to get the next page of results in
77073// subsequent list requests. Acceptable values are `0` to `500`,
77074// inclusive. (Default: `500`)
77075func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
77076	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77077	return c
77078}
77079
77080// OrderBy sets the optional parameter "orderBy": Sorts list results by
77081// a certain order. By default, results are returned in alphanumerical
77082// order based on the resource name.
77083//
77084// You can also sort results in descending order based on the creation
77085// timestamp using `orderBy="creationTimestamp desc". This sorts
77086// results based on the `creationTimestamp` field in reverse
77087// chronological order (newest result first). Use this to sort resources
77088// like operations so that the newest operation is returned
77089// first.
77090//
77091// Currently, only sorting by `name` or `creationTimestamp desc` is
77092// supported.
77093func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
77094	c.urlParams_.Set("orderBy", orderBy)
77095	return c
77096}
77097
77098// PageToken sets the optional parameter "pageToken": Specifies a page
77099// token to use. Set `pageToken` to the `nextPageToken` returned by a
77100// previous list request to get the next page of results.
77101func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
77102	c.urlParams_.Set("pageToken", pageToken)
77103	return c
77104}
77105
77106// Fields allows partial responses to be retrieved. See
77107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77108// for more information.
77109func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
77110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77111	return c
77112}
77113
77114// Context sets the context to be used in this call's Do method. Any
77115// pending HTTP request will be aborted if the provided context is
77116// canceled.
77117func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
77118	c.ctx_ = ctx
77119	return c
77120}
77121
77122// Header returns an http.Header that can be modified by the caller to
77123// add HTTP headers to the request.
77124func (c *InstanceGroupsListInstancesCall) Header() http.Header {
77125	if c.header_ == nil {
77126		c.header_ = make(http.Header)
77127	}
77128	return c.header_
77129}
77130
77131func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
77132	reqHeaders := make(http.Header)
77133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77134	for k, v := range c.header_ {
77135		reqHeaders[k] = v
77136	}
77137	reqHeaders.Set("User-Agent", c.s.userAgent())
77138	var body io.Reader = nil
77139	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
77140	if err != nil {
77141		return nil, err
77142	}
77143	reqHeaders.Set("Content-Type", "application/json")
77144	c.urlParams_.Set("alt", alt)
77145	c.urlParams_.Set("prettyPrint", "false")
77146	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
77147	urls += "?" + c.urlParams_.Encode()
77148	req, err := http.NewRequest("POST", urls, body)
77149	if err != nil {
77150		return nil, err
77151	}
77152	req.Header = reqHeaders
77153	googleapi.Expand(req.URL, map[string]string{
77154		"project":       c.project,
77155		"zone":          c.zone,
77156		"instanceGroup": c.instanceGroup,
77157	})
77158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77159}
77160
77161// Do executes the "compute.instanceGroups.listInstances" call.
77162// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
77163// Any non-2xx status code is an error. Response headers are in either
77164// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
77165// was returned at all) in error.(*googleapi.Error).Header. Use
77166// googleapi.IsNotModified to check whether the returned error was
77167// because http.StatusNotModified was returned.
77168func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
77169	gensupport.SetOptions(c.urlParams_, opts...)
77170	res, err := c.doRequest("json")
77171	if res != nil && res.StatusCode == http.StatusNotModified {
77172		if res.Body != nil {
77173			res.Body.Close()
77174		}
77175		return nil, &googleapi.Error{
77176			Code:   res.StatusCode,
77177			Header: res.Header,
77178		}
77179	}
77180	if err != nil {
77181		return nil, err
77182	}
77183	defer googleapi.CloseBody(res)
77184	if err := googleapi.CheckResponse(res); err != nil {
77185		return nil, err
77186	}
77187	ret := &InstanceGroupsListInstances{
77188		ServerResponse: googleapi.ServerResponse{
77189			Header:         res.Header,
77190			HTTPStatusCode: res.StatusCode,
77191		},
77192	}
77193	target := &ret
77194	if err := gensupport.DecodeResponse(target, res); err != nil {
77195		return nil, err
77196	}
77197	return ret, nil
77198	// {
77199	//   "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.",
77200	//   "httpMethod": "POST",
77201	//   "id": "compute.instanceGroups.listInstances",
77202	//   "parameterOrder": [
77203	//     "project",
77204	//     "zone",
77205	//     "instanceGroup"
77206	//   ],
77207	//   "parameters": {
77208	//     "filter": {
77209	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
77210	//       "location": "query",
77211	//       "type": "string"
77212	//     },
77213	//     "instanceGroup": {
77214	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
77215	//       "location": "path",
77216	//       "required": true,
77217	//       "type": "string"
77218	//     },
77219	//     "maxResults": {
77220	//       "default": "500",
77221	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
77222	//       "format": "uint32",
77223	//       "location": "query",
77224	//       "minimum": "0",
77225	//       "type": "integer"
77226	//     },
77227	//     "orderBy": {
77228	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
77229	//       "location": "query",
77230	//       "type": "string"
77231	//     },
77232	//     "pageToken": {
77233	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
77234	//       "location": "query",
77235	//       "type": "string"
77236	//     },
77237	//     "project": {
77238	//       "description": "Project ID for this request.",
77239	//       "location": "path",
77240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77241	//       "required": true,
77242	//       "type": "string"
77243	//     },
77244	//     "zone": {
77245	//       "description": "The name of the zone where the instance group is located.",
77246	//       "location": "path",
77247	//       "required": true,
77248	//       "type": "string"
77249	//     }
77250	//   },
77251	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
77252	//   "request": {
77253	//     "$ref": "InstanceGroupsListInstancesRequest"
77254	//   },
77255	//   "response": {
77256	//     "$ref": "InstanceGroupsListInstances"
77257	//   },
77258	//   "scopes": [
77259	//     "https://www.googleapis.com/auth/cloud-platform",
77260	//     "https://www.googleapis.com/auth/compute",
77261	//     "https://www.googleapis.com/auth/compute.readonly"
77262	//   ]
77263	// }
77264
77265}
77266
77267// Pages invokes f for each page of results.
77268// A non-nil error returned from f will halt the iteration.
77269// The provided context supersedes any context provided to the Context method.
77270func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
77271	c.ctx_ = ctx
77272	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77273	for {
77274		x, err := c.Do()
77275		if err != nil {
77276			return err
77277		}
77278		if err := f(x); err != nil {
77279			return err
77280		}
77281		if x.NextPageToken == "" {
77282			return nil
77283		}
77284		c.PageToken(x.NextPageToken)
77285	}
77286}
77287
77288// method id "compute.instanceGroups.removeInstances":
77289
77290type InstanceGroupsRemoveInstancesCall struct {
77291	s                                    *Service
77292	project                              string
77293	zone                                 string
77294	instanceGroup                        string
77295	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
77296	urlParams_                           gensupport.URLParams
77297	ctx_                                 context.Context
77298	header_                              http.Header
77299}
77300
77301// RemoveInstances: Removes one or more instances from the specified
77302// instance group, but does not delete those instances.
77303//
77304// If the group is part of a backend service that has enabled connection
77305// draining, it can take up to 60 seconds after the connection draining
77306// duration before the VM instance is removed or deleted.
77307func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
77308	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77309	c.project = project
77310	c.zone = zone
77311	c.instanceGroup = instanceGroup
77312	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
77313	return c
77314}
77315
77316// RequestId sets the optional parameter "requestId": An optional
77317// request ID to identify requests. Specify a unique request ID so that
77318// if you must retry your request, the server will know to ignore the
77319// request if it has already been completed.
77320//
77321// For example, consider a situation where you make an initial request
77322// and the request times out. If you make the request again with the
77323// same request ID, the server can check if original operation with the
77324// same request ID was received, and if so, will ignore the second
77325// request. This prevents clients from accidentally creating duplicate
77326// commitments.
77327//
77328// The request ID must be a valid UUID with the exception that zero UUID
77329// is not supported (00000000-0000-0000-0000-000000000000).
77330func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
77331	c.urlParams_.Set("requestId", requestId)
77332	return c
77333}
77334
77335// Fields allows partial responses to be retrieved. See
77336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77337// for more information.
77338func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
77339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77340	return c
77341}
77342
77343// Context sets the context to be used in this call's Do method. Any
77344// pending HTTP request will be aborted if the provided context is
77345// canceled.
77346func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
77347	c.ctx_ = ctx
77348	return c
77349}
77350
77351// Header returns an http.Header that can be modified by the caller to
77352// add HTTP headers to the request.
77353func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
77354	if c.header_ == nil {
77355		c.header_ = make(http.Header)
77356	}
77357	return c.header_
77358}
77359
77360func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
77361	reqHeaders := make(http.Header)
77362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77363	for k, v := range c.header_ {
77364		reqHeaders[k] = v
77365	}
77366	reqHeaders.Set("User-Agent", c.s.userAgent())
77367	var body io.Reader = nil
77368	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
77369	if err != nil {
77370		return nil, err
77371	}
77372	reqHeaders.Set("Content-Type", "application/json")
77373	c.urlParams_.Set("alt", alt)
77374	c.urlParams_.Set("prettyPrint", "false")
77375	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
77376	urls += "?" + c.urlParams_.Encode()
77377	req, err := http.NewRequest("POST", urls, body)
77378	if err != nil {
77379		return nil, err
77380	}
77381	req.Header = reqHeaders
77382	googleapi.Expand(req.URL, map[string]string{
77383		"project":       c.project,
77384		"zone":          c.zone,
77385		"instanceGroup": c.instanceGroup,
77386	})
77387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77388}
77389
77390// Do executes the "compute.instanceGroups.removeInstances" call.
77391// Exactly one of *Operation or error will be non-nil. Any non-2xx
77392// status code is an error. Response headers are in either
77393// *Operation.ServerResponse.Header or (if a response was returned at
77394// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77395// to check whether the returned error was because
77396// http.StatusNotModified was returned.
77397func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77398	gensupport.SetOptions(c.urlParams_, opts...)
77399	res, err := c.doRequest("json")
77400	if res != nil && res.StatusCode == http.StatusNotModified {
77401		if res.Body != nil {
77402			res.Body.Close()
77403		}
77404		return nil, &googleapi.Error{
77405			Code:   res.StatusCode,
77406			Header: res.Header,
77407		}
77408	}
77409	if err != nil {
77410		return nil, err
77411	}
77412	defer googleapi.CloseBody(res)
77413	if err := googleapi.CheckResponse(res); err != nil {
77414		return nil, err
77415	}
77416	ret := &Operation{
77417		ServerResponse: googleapi.ServerResponse{
77418			Header:         res.Header,
77419			HTTPStatusCode: res.StatusCode,
77420		},
77421	}
77422	target := &ret
77423	if err := gensupport.DecodeResponse(target, res); err != nil {
77424		return nil, err
77425	}
77426	return ret, nil
77427	// {
77428	//   "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.",
77429	//   "httpMethod": "POST",
77430	//   "id": "compute.instanceGroups.removeInstances",
77431	//   "parameterOrder": [
77432	//     "project",
77433	//     "zone",
77434	//     "instanceGroup"
77435	//   ],
77436	//   "parameters": {
77437	//     "instanceGroup": {
77438	//       "description": "The name of the instance group where the specified instances will be removed.",
77439	//       "location": "path",
77440	//       "required": true,
77441	//       "type": "string"
77442	//     },
77443	//     "project": {
77444	//       "description": "Project ID for this request.",
77445	//       "location": "path",
77446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77447	//       "required": true,
77448	//       "type": "string"
77449	//     },
77450	//     "requestId": {
77451	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77452	//       "location": "query",
77453	//       "type": "string"
77454	//     },
77455	//     "zone": {
77456	//       "description": "The name of the zone where the instance group is located.",
77457	//       "location": "path",
77458	//       "required": true,
77459	//       "type": "string"
77460	//     }
77461	//   },
77462	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
77463	//   "request": {
77464	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
77465	//   },
77466	//   "response": {
77467	//     "$ref": "Operation"
77468	//   },
77469	//   "scopes": [
77470	//     "https://www.googleapis.com/auth/cloud-platform",
77471	//     "https://www.googleapis.com/auth/compute"
77472	//   ]
77473	// }
77474
77475}
77476
77477// method id "compute.instanceGroups.setNamedPorts":
77478
77479type InstanceGroupsSetNamedPortsCall struct {
77480	s                                  *Service
77481	project                            string
77482	zone                               string
77483	instanceGroup                      string
77484	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
77485	urlParams_                         gensupport.URLParams
77486	ctx_                               context.Context
77487	header_                            http.Header
77488}
77489
77490// SetNamedPorts: Sets the named ports for the specified instance group.
77491func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
77492	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77493	c.project = project
77494	c.zone = zone
77495	c.instanceGroup = instanceGroup
77496	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
77497	return c
77498}
77499
77500// RequestId sets the optional parameter "requestId": An optional
77501// request ID to identify requests. Specify a unique request ID so that
77502// if you must retry your request, the server will know to ignore the
77503// request if it has already been completed.
77504//
77505// For example, consider a situation where you make an initial request
77506// and the request times out. If you make the request again with the
77507// same request ID, the server can check if original operation with the
77508// same request ID was received, and if so, will ignore the second
77509// request. This prevents clients from accidentally creating duplicate
77510// commitments.
77511//
77512// The request ID must be a valid UUID with the exception that zero UUID
77513// is not supported (00000000-0000-0000-0000-000000000000).
77514func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
77515	c.urlParams_.Set("requestId", requestId)
77516	return c
77517}
77518
77519// Fields allows partial responses to be retrieved. See
77520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77521// for more information.
77522func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
77523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77524	return c
77525}
77526
77527// Context sets the context to be used in this call's Do method. Any
77528// pending HTTP request will be aborted if the provided context is
77529// canceled.
77530func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
77531	c.ctx_ = ctx
77532	return c
77533}
77534
77535// Header returns an http.Header that can be modified by the caller to
77536// add HTTP headers to the request.
77537func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
77538	if c.header_ == nil {
77539		c.header_ = make(http.Header)
77540	}
77541	return c.header_
77542}
77543
77544func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
77545	reqHeaders := make(http.Header)
77546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77547	for k, v := range c.header_ {
77548		reqHeaders[k] = v
77549	}
77550	reqHeaders.Set("User-Agent", c.s.userAgent())
77551	var body io.Reader = nil
77552	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
77553	if err != nil {
77554		return nil, err
77555	}
77556	reqHeaders.Set("Content-Type", "application/json")
77557	c.urlParams_.Set("alt", alt)
77558	c.urlParams_.Set("prettyPrint", "false")
77559	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
77560	urls += "?" + c.urlParams_.Encode()
77561	req, err := http.NewRequest("POST", urls, body)
77562	if err != nil {
77563		return nil, err
77564	}
77565	req.Header = reqHeaders
77566	googleapi.Expand(req.URL, map[string]string{
77567		"project":       c.project,
77568		"zone":          c.zone,
77569		"instanceGroup": c.instanceGroup,
77570	})
77571	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77572}
77573
77574// Do executes the "compute.instanceGroups.setNamedPorts" call.
77575// Exactly one of *Operation or error will be non-nil. Any non-2xx
77576// status code is an error. Response headers are in either
77577// *Operation.ServerResponse.Header or (if a response was returned at
77578// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77579// to check whether the returned error was because
77580// http.StatusNotModified was returned.
77581func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77582	gensupport.SetOptions(c.urlParams_, opts...)
77583	res, err := c.doRequest("json")
77584	if res != nil && res.StatusCode == http.StatusNotModified {
77585		if res.Body != nil {
77586			res.Body.Close()
77587		}
77588		return nil, &googleapi.Error{
77589			Code:   res.StatusCode,
77590			Header: res.Header,
77591		}
77592	}
77593	if err != nil {
77594		return nil, err
77595	}
77596	defer googleapi.CloseBody(res)
77597	if err := googleapi.CheckResponse(res); err != nil {
77598		return nil, err
77599	}
77600	ret := &Operation{
77601		ServerResponse: googleapi.ServerResponse{
77602			Header:         res.Header,
77603			HTTPStatusCode: res.StatusCode,
77604		},
77605	}
77606	target := &ret
77607	if err := gensupport.DecodeResponse(target, res); err != nil {
77608		return nil, err
77609	}
77610	return ret, nil
77611	// {
77612	//   "description": "Sets the named ports for the specified instance group.",
77613	//   "httpMethod": "POST",
77614	//   "id": "compute.instanceGroups.setNamedPorts",
77615	//   "parameterOrder": [
77616	//     "project",
77617	//     "zone",
77618	//     "instanceGroup"
77619	//   ],
77620	//   "parameters": {
77621	//     "instanceGroup": {
77622	//       "description": "The name of the instance group where the named ports are updated.",
77623	//       "location": "path",
77624	//       "required": true,
77625	//       "type": "string"
77626	//     },
77627	//     "project": {
77628	//       "description": "Project ID for this request.",
77629	//       "location": "path",
77630	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77631	//       "required": true,
77632	//       "type": "string"
77633	//     },
77634	//     "requestId": {
77635	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77636	//       "location": "query",
77637	//       "type": "string"
77638	//     },
77639	//     "zone": {
77640	//       "description": "The name of the zone where the instance group is located.",
77641	//       "location": "path",
77642	//       "required": true,
77643	//       "type": "string"
77644	//     }
77645	//   },
77646	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
77647	//   "request": {
77648	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
77649	//   },
77650	//   "response": {
77651	//     "$ref": "Operation"
77652	//   },
77653	//   "scopes": [
77654	//     "https://www.googleapis.com/auth/cloud-platform",
77655	//     "https://www.googleapis.com/auth/compute"
77656	//   ]
77657	// }
77658
77659}
77660
77661// method id "compute.instanceGroups.testIamPermissions":
77662
77663type InstanceGroupsTestIamPermissionsCall struct {
77664	s                      *Service
77665	project                string
77666	zone                   string
77667	resource               string
77668	testpermissionsrequest *TestPermissionsRequest
77669	urlParams_             gensupport.URLParams
77670	ctx_                   context.Context
77671	header_                http.Header
77672}
77673
77674// TestIamPermissions: Returns permissions that a caller has on the
77675// specified resource.
77676func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall {
77677	c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77678	c.project = project
77679	c.zone = zone
77680	c.resource = resource
77681	c.testpermissionsrequest = testpermissionsrequest
77682	return c
77683}
77684
77685// Fields allows partial responses to be retrieved. See
77686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77687// for more information.
77688func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall {
77689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77690	return c
77691}
77692
77693// Context sets the context to be used in this call's Do method. Any
77694// pending HTTP request will be aborted if the provided context is
77695// canceled.
77696func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall {
77697	c.ctx_ = ctx
77698	return c
77699}
77700
77701// Header returns an http.Header that can be modified by the caller to
77702// add HTTP headers to the request.
77703func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header {
77704	if c.header_ == nil {
77705		c.header_ = make(http.Header)
77706	}
77707	return c.header_
77708}
77709
77710func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
77711	reqHeaders := make(http.Header)
77712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77713	for k, v := range c.header_ {
77714		reqHeaders[k] = v
77715	}
77716	reqHeaders.Set("User-Agent", c.s.userAgent())
77717	var body io.Reader = nil
77718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
77719	if err != nil {
77720		return nil, err
77721	}
77722	reqHeaders.Set("Content-Type", "application/json")
77723	c.urlParams_.Set("alt", alt)
77724	c.urlParams_.Set("prettyPrint", "false")
77725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions")
77726	urls += "?" + c.urlParams_.Encode()
77727	req, err := http.NewRequest("POST", urls, body)
77728	if err != nil {
77729		return nil, err
77730	}
77731	req.Header = reqHeaders
77732	googleapi.Expand(req.URL, map[string]string{
77733		"project":  c.project,
77734		"zone":     c.zone,
77735		"resource": c.resource,
77736	})
77737	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77738}
77739
77740// Do executes the "compute.instanceGroups.testIamPermissions" call.
77741// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
77742// non-2xx status code is an error. Response headers are in either
77743// *TestPermissionsResponse.ServerResponse.Header or (if a response was
77744// returned at all) in error.(*googleapi.Error).Header. Use
77745// googleapi.IsNotModified to check whether the returned error was
77746// because http.StatusNotModified was returned.
77747func (c *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
77748	gensupport.SetOptions(c.urlParams_, opts...)
77749	res, err := c.doRequest("json")
77750	if res != nil && res.StatusCode == http.StatusNotModified {
77751		if res.Body != nil {
77752			res.Body.Close()
77753		}
77754		return nil, &googleapi.Error{
77755			Code:   res.StatusCode,
77756			Header: res.Header,
77757		}
77758	}
77759	if err != nil {
77760		return nil, err
77761	}
77762	defer googleapi.CloseBody(res)
77763	if err := googleapi.CheckResponse(res); err != nil {
77764		return nil, err
77765	}
77766	ret := &TestPermissionsResponse{
77767		ServerResponse: googleapi.ServerResponse{
77768			Header:         res.Header,
77769			HTTPStatusCode: res.StatusCode,
77770		},
77771	}
77772	target := &ret
77773	if err := gensupport.DecodeResponse(target, res); err != nil {
77774		return nil, err
77775	}
77776	return ret, nil
77777	// {
77778	//   "description": "Returns permissions that a caller has on the specified resource.",
77779	//   "httpMethod": "POST",
77780	//   "id": "compute.instanceGroups.testIamPermissions",
77781	//   "parameterOrder": [
77782	//     "project",
77783	//     "zone",
77784	//     "resource"
77785	//   ],
77786	//   "parameters": {
77787	//     "project": {
77788	//       "description": "Project ID for this request.",
77789	//       "location": "path",
77790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77791	//       "required": true,
77792	//       "type": "string"
77793	//     },
77794	//     "resource": {
77795	//       "description": "Name or id of the resource for this request.",
77796	//       "location": "path",
77797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77798	//       "required": true,
77799	//       "type": "string"
77800	//     },
77801	//     "zone": {
77802	//       "description": "The name of the zone for this request.",
77803	//       "location": "path",
77804	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77805	//       "required": true,
77806	//       "type": "string"
77807	//     }
77808	//   },
77809	//   "path": "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
77810	//   "request": {
77811	//     "$ref": "TestPermissionsRequest"
77812	//   },
77813	//   "response": {
77814	//     "$ref": "TestPermissionsResponse"
77815	//   },
77816	//   "scopes": [
77817	//     "https://www.googleapis.com/auth/cloud-platform",
77818	//     "https://www.googleapis.com/auth/compute",
77819	//     "https://www.googleapis.com/auth/compute.readonly"
77820	//   ]
77821	// }
77822
77823}
77824
77825// method id "compute.instanceTemplates.delete":
77826
77827type InstanceTemplatesDeleteCall struct {
77828	s                *Service
77829	project          string
77830	instanceTemplate string
77831	urlParams_       gensupport.URLParams
77832	ctx_             context.Context
77833	header_          http.Header
77834}
77835
77836// Delete: Deletes the specified instance template. Deleting an instance
77837// template is permanent and cannot be undone. It is not possible to
77838// delete templates that are already in use by a managed instance group.
77839// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
77840func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
77841	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77842	c.project = project
77843	c.instanceTemplate = instanceTemplate
77844	return c
77845}
77846
77847// RequestId sets the optional parameter "requestId": An optional
77848// request ID to identify requests. Specify a unique request ID so that
77849// if you must retry your request, the server will know to ignore the
77850// request if it has already been completed.
77851//
77852// For example, consider a situation where you make an initial request
77853// and the request times out. If you make the request again with the
77854// same request ID, the server can check if original operation with the
77855// same request ID was received, and if so, will ignore the second
77856// request. This prevents clients from accidentally creating duplicate
77857// commitments.
77858//
77859// The request ID must be a valid UUID with the exception that zero UUID
77860// is not supported (00000000-0000-0000-0000-000000000000).
77861func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
77862	c.urlParams_.Set("requestId", requestId)
77863	return c
77864}
77865
77866// Fields allows partial responses to be retrieved. See
77867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77868// for more information.
77869func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
77870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77871	return c
77872}
77873
77874// Context sets the context to be used in this call's Do method. Any
77875// pending HTTP request will be aborted if the provided context is
77876// canceled.
77877func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
77878	c.ctx_ = ctx
77879	return c
77880}
77881
77882// Header returns an http.Header that can be modified by the caller to
77883// add HTTP headers to the request.
77884func (c *InstanceTemplatesDeleteCall) Header() http.Header {
77885	if c.header_ == nil {
77886		c.header_ = make(http.Header)
77887	}
77888	return c.header_
77889}
77890
77891func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
77892	reqHeaders := make(http.Header)
77893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
77894	for k, v := range c.header_ {
77895		reqHeaders[k] = v
77896	}
77897	reqHeaders.Set("User-Agent", c.s.userAgent())
77898	var body io.Reader = nil
77899	c.urlParams_.Set("alt", alt)
77900	c.urlParams_.Set("prettyPrint", "false")
77901	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
77902	urls += "?" + c.urlParams_.Encode()
77903	req, err := http.NewRequest("DELETE", urls, body)
77904	if err != nil {
77905		return nil, err
77906	}
77907	req.Header = reqHeaders
77908	googleapi.Expand(req.URL, map[string]string{
77909		"project":          c.project,
77910		"instanceTemplate": c.instanceTemplate,
77911	})
77912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77913}
77914
77915// Do executes the "compute.instanceTemplates.delete" call.
77916// Exactly one of *Operation or error will be non-nil. Any non-2xx
77917// status code is an error. Response headers are in either
77918// *Operation.ServerResponse.Header or (if a response was returned at
77919// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77920// to check whether the returned error was because
77921// http.StatusNotModified was returned.
77922func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77923	gensupport.SetOptions(c.urlParams_, opts...)
77924	res, err := c.doRequest("json")
77925	if res != nil && res.StatusCode == http.StatusNotModified {
77926		if res.Body != nil {
77927			res.Body.Close()
77928		}
77929		return nil, &googleapi.Error{
77930			Code:   res.StatusCode,
77931			Header: res.Header,
77932		}
77933	}
77934	if err != nil {
77935		return nil, err
77936	}
77937	defer googleapi.CloseBody(res)
77938	if err := googleapi.CheckResponse(res); err != nil {
77939		return nil, err
77940	}
77941	ret := &Operation{
77942		ServerResponse: googleapi.ServerResponse{
77943			Header:         res.Header,
77944			HTTPStatusCode: res.StatusCode,
77945		},
77946	}
77947	target := &ret
77948	if err := gensupport.DecodeResponse(target, res); err != nil {
77949		return nil, err
77950	}
77951	return ret, nil
77952	// {
77953	//   "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.",
77954	//   "httpMethod": "DELETE",
77955	//   "id": "compute.instanceTemplates.delete",
77956	//   "parameterOrder": [
77957	//     "project",
77958	//     "instanceTemplate"
77959	//   ],
77960	//   "parameters": {
77961	//     "instanceTemplate": {
77962	//       "description": "The name of the instance template to delete.",
77963	//       "location": "path",
77964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77965	//       "required": true,
77966	//       "type": "string"
77967	//     },
77968	//     "project": {
77969	//       "description": "Project ID for this request.",
77970	//       "location": "path",
77971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77972	//       "required": true,
77973	//       "type": "string"
77974	//     },
77975	//     "requestId": {
77976	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77977	//       "location": "query",
77978	//       "type": "string"
77979	//     }
77980	//   },
77981	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
77982	//   "response": {
77983	//     "$ref": "Operation"
77984	//   },
77985	//   "scopes": [
77986	//     "https://www.googleapis.com/auth/cloud-platform",
77987	//     "https://www.googleapis.com/auth/compute"
77988	//   ]
77989	// }
77990
77991}
77992
77993// method id "compute.instanceTemplates.get":
77994
77995type InstanceTemplatesGetCall struct {
77996	s                *Service
77997	project          string
77998	instanceTemplate string
77999	urlParams_       gensupport.URLParams
78000	ifNoneMatch_     string
78001	ctx_             context.Context
78002	header_          http.Header
78003}
78004
78005// Get: Returns the specified instance template. Gets a list of
78006// available instance templates by making a list() request.
78007// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
78008func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
78009	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78010	c.project = project
78011	c.instanceTemplate = instanceTemplate
78012	return c
78013}
78014
78015// Fields allows partial responses to be retrieved. See
78016// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78017// for more information.
78018func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
78019	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78020	return c
78021}
78022
78023// IfNoneMatch sets the optional parameter which makes the operation
78024// fail if the object's ETag matches the given value. This is useful for
78025// getting updates only after the object has changed since the last
78026// request. Use googleapi.IsNotModified to check whether the response
78027// error from Do is the result of In-None-Match.
78028func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
78029	c.ifNoneMatch_ = entityTag
78030	return c
78031}
78032
78033// Context sets the context to be used in this call's Do method. Any
78034// pending HTTP request will be aborted if the provided context is
78035// canceled.
78036func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
78037	c.ctx_ = ctx
78038	return c
78039}
78040
78041// Header returns an http.Header that can be modified by the caller to
78042// add HTTP headers to the request.
78043func (c *InstanceTemplatesGetCall) Header() http.Header {
78044	if c.header_ == nil {
78045		c.header_ = make(http.Header)
78046	}
78047	return c.header_
78048}
78049
78050func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
78051	reqHeaders := make(http.Header)
78052	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78053	for k, v := range c.header_ {
78054		reqHeaders[k] = v
78055	}
78056	reqHeaders.Set("User-Agent", c.s.userAgent())
78057	if c.ifNoneMatch_ != "" {
78058		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78059	}
78060	var body io.Reader = nil
78061	c.urlParams_.Set("alt", alt)
78062	c.urlParams_.Set("prettyPrint", "false")
78063	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
78064	urls += "?" + c.urlParams_.Encode()
78065	req, err := http.NewRequest("GET", urls, body)
78066	if err != nil {
78067		return nil, err
78068	}
78069	req.Header = reqHeaders
78070	googleapi.Expand(req.URL, map[string]string{
78071		"project":          c.project,
78072		"instanceTemplate": c.instanceTemplate,
78073	})
78074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78075}
78076
78077// Do executes the "compute.instanceTemplates.get" call.
78078// Exactly one of *InstanceTemplate or error will be non-nil. Any
78079// non-2xx status code is an error. Response headers are in either
78080// *InstanceTemplate.ServerResponse.Header or (if a response was
78081// returned at all) in error.(*googleapi.Error).Header. Use
78082// googleapi.IsNotModified to check whether the returned error was
78083// because http.StatusNotModified was returned.
78084func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
78085	gensupport.SetOptions(c.urlParams_, opts...)
78086	res, err := c.doRequest("json")
78087	if res != nil && res.StatusCode == http.StatusNotModified {
78088		if res.Body != nil {
78089			res.Body.Close()
78090		}
78091		return nil, &googleapi.Error{
78092			Code:   res.StatusCode,
78093			Header: res.Header,
78094		}
78095	}
78096	if err != nil {
78097		return nil, err
78098	}
78099	defer googleapi.CloseBody(res)
78100	if err := googleapi.CheckResponse(res); err != nil {
78101		return nil, err
78102	}
78103	ret := &InstanceTemplate{
78104		ServerResponse: googleapi.ServerResponse{
78105			Header:         res.Header,
78106			HTTPStatusCode: res.StatusCode,
78107		},
78108	}
78109	target := &ret
78110	if err := gensupport.DecodeResponse(target, res); err != nil {
78111		return nil, err
78112	}
78113	return ret, nil
78114	// {
78115	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
78116	//   "httpMethod": "GET",
78117	//   "id": "compute.instanceTemplates.get",
78118	//   "parameterOrder": [
78119	//     "project",
78120	//     "instanceTemplate"
78121	//   ],
78122	//   "parameters": {
78123	//     "instanceTemplate": {
78124	//       "description": "The name of the instance template.",
78125	//       "location": "path",
78126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78127	//       "required": true,
78128	//       "type": "string"
78129	//     },
78130	//     "project": {
78131	//       "description": "Project ID for this request.",
78132	//       "location": "path",
78133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78134	//       "required": true,
78135	//       "type": "string"
78136	//     }
78137	//   },
78138	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
78139	//   "response": {
78140	//     "$ref": "InstanceTemplate"
78141	//   },
78142	//   "scopes": [
78143	//     "https://www.googleapis.com/auth/cloud-platform",
78144	//     "https://www.googleapis.com/auth/compute",
78145	//     "https://www.googleapis.com/auth/compute.readonly"
78146	//   ]
78147	// }
78148
78149}
78150
78151// method id "compute.instanceTemplates.getIamPolicy":
78152
78153type InstanceTemplatesGetIamPolicyCall struct {
78154	s            *Service
78155	project      string
78156	resource     string
78157	urlParams_   gensupport.URLParams
78158	ifNoneMatch_ string
78159	ctx_         context.Context
78160	header_      http.Header
78161}
78162
78163// GetIamPolicy: Gets the access control policy for a resource. May be
78164// empty if no such policy or resource exists.
78165func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
78166	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78167	c.project = project
78168	c.resource = resource
78169	return c
78170}
78171
78172// OptionsRequestedPolicyVersion sets the optional parameter
78173// "optionsRequestedPolicyVersion": Requested IAM Policy version.
78174func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
78175	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
78176	return c
78177}
78178
78179// Fields allows partial responses to be retrieved. See
78180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78181// for more information.
78182func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
78183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78184	return c
78185}
78186
78187// IfNoneMatch sets the optional parameter which makes the operation
78188// fail if the object's ETag matches the given value. This is useful for
78189// getting updates only after the object has changed since the last
78190// request. Use googleapi.IsNotModified to check whether the response
78191// error from Do is the result of In-None-Match.
78192func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
78193	c.ifNoneMatch_ = entityTag
78194	return c
78195}
78196
78197// Context sets the context to be used in this call's Do method. Any
78198// pending HTTP request will be aborted if the provided context is
78199// canceled.
78200func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
78201	c.ctx_ = ctx
78202	return c
78203}
78204
78205// Header returns an http.Header that can be modified by the caller to
78206// add HTTP headers to the request.
78207func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
78208	if c.header_ == nil {
78209		c.header_ = make(http.Header)
78210	}
78211	return c.header_
78212}
78213
78214func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
78215	reqHeaders := make(http.Header)
78216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78217	for k, v := range c.header_ {
78218		reqHeaders[k] = v
78219	}
78220	reqHeaders.Set("User-Agent", c.s.userAgent())
78221	if c.ifNoneMatch_ != "" {
78222		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78223	}
78224	var body io.Reader = nil
78225	c.urlParams_.Set("alt", alt)
78226	c.urlParams_.Set("prettyPrint", "false")
78227	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/getIamPolicy")
78228	urls += "?" + c.urlParams_.Encode()
78229	req, err := http.NewRequest("GET", urls, body)
78230	if err != nil {
78231		return nil, err
78232	}
78233	req.Header = reqHeaders
78234	googleapi.Expand(req.URL, map[string]string{
78235		"project":  c.project,
78236		"resource": c.resource,
78237	})
78238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78239}
78240
78241// Do executes the "compute.instanceTemplates.getIamPolicy" call.
78242// Exactly one of *Policy or error will be non-nil. Any non-2xx status
78243// code is an error. Response headers are in either
78244// *Policy.ServerResponse.Header or (if a response was returned at all)
78245// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78246// check whether the returned error was because http.StatusNotModified
78247// was returned.
78248func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
78249	gensupport.SetOptions(c.urlParams_, opts...)
78250	res, err := c.doRequest("json")
78251	if res != nil && res.StatusCode == http.StatusNotModified {
78252		if res.Body != nil {
78253			res.Body.Close()
78254		}
78255		return nil, &googleapi.Error{
78256			Code:   res.StatusCode,
78257			Header: res.Header,
78258		}
78259	}
78260	if err != nil {
78261		return nil, err
78262	}
78263	defer googleapi.CloseBody(res)
78264	if err := googleapi.CheckResponse(res); err != nil {
78265		return nil, err
78266	}
78267	ret := &Policy{
78268		ServerResponse: googleapi.ServerResponse{
78269			Header:         res.Header,
78270			HTTPStatusCode: res.StatusCode,
78271		},
78272	}
78273	target := &ret
78274	if err := gensupport.DecodeResponse(target, res); err != nil {
78275		return nil, err
78276	}
78277	return ret, nil
78278	// {
78279	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
78280	//   "httpMethod": "GET",
78281	//   "id": "compute.instanceTemplates.getIamPolicy",
78282	//   "parameterOrder": [
78283	//     "project",
78284	//     "resource"
78285	//   ],
78286	//   "parameters": {
78287	//     "optionsRequestedPolicyVersion": {
78288	//       "description": "Requested IAM Policy version.",
78289	//       "format": "int32",
78290	//       "location": "query",
78291	//       "type": "integer"
78292	//     },
78293	//     "project": {
78294	//       "description": "Project ID for this request.",
78295	//       "location": "path",
78296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78297	//       "required": true,
78298	//       "type": "string"
78299	//     },
78300	//     "resource": {
78301	//       "description": "Name or id of the resource for this request.",
78302	//       "location": "path",
78303	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78304	//       "required": true,
78305	//       "type": "string"
78306	//     }
78307	//   },
78308	//   "path": "{project}/global/instanceTemplates/{resource}/getIamPolicy",
78309	//   "response": {
78310	//     "$ref": "Policy"
78311	//   },
78312	//   "scopes": [
78313	//     "https://www.googleapis.com/auth/cloud-platform",
78314	//     "https://www.googleapis.com/auth/compute",
78315	//     "https://www.googleapis.com/auth/compute.readonly"
78316	//   ]
78317	// }
78318
78319}
78320
78321// method id "compute.instanceTemplates.insert":
78322
78323type InstanceTemplatesInsertCall struct {
78324	s                *Service
78325	project          string
78326	instancetemplate *InstanceTemplate
78327	urlParams_       gensupport.URLParams
78328	ctx_             context.Context
78329	header_          http.Header
78330}
78331
78332// Insert: Creates an instance template in the specified project using
78333// the data that is included in the request. If you are creating a new
78334// template to update an existing instance group, your new instance
78335// template must use the same network or, if applicable, the same
78336// subnetwork as the original template.
78337// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
78338func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
78339	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78340	c.project = project
78341	c.instancetemplate = instancetemplate
78342	return c
78343}
78344
78345// RequestId sets the optional parameter "requestId": An optional
78346// request ID to identify requests. Specify a unique request ID so that
78347// if you must retry your request, the server will know to ignore the
78348// request if it has already been completed.
78349//
78350// For example, consider a situation where you make an initial request
78351// and the request times out. If you make the request again with the
78352// same request ID, the server can check if original operation with the
78353// same request ID was received, and if so, will ignore the second
78354// request. This prevents clients from accidentally creating duplicate
78355// commitments.
78356//
78357// The request ID must be a valid UUID with the exception that zero UUID
78358// is not supported (00000000-0000-0000-0000-000000000000).
78359func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
78360	c.urlParams_.Set("requestId", requestId)
78361	return c
78362}
78363
78364// Fields allows partial responses to be retrieved. See
78365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78366// for more information.
78367func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
78368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78369	return c
78370}
78371
78372// Context sets the context to be used in this call's Do method. Any
78373// pending HTTP request will be aborted if the provided context is
78374// canceled.
78375func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
78376	c.ctx_ = ctx
78377	return c
78378}
78379
78380// Header returns an http.Header that can be modified by the caller to
78381// add HTTP headers to the request.
78382func (c *InstanceTemplatesInsertCall) Header() http.Header {
78383	if c.header_ == nil {
78384		c.header_ = make(http.Header)
78385	}
78386	return c.header_
78387}
78388
78389func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
78390	reqHeaders := make(http.Header)
78391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78392	for k, v := range c.header_ {
78393		reqHeaders[k] = v
78394	}
78395	reqHeaders.Set("User-Agent", c.s.userAgent())
78396	var body io.Reader = nil
78397	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
78398	if err != nil {
78399		return nil, err
78400	}
78401	reqHeaders.Set("Content-Type", "application/json")
78402	c.urlParams_.Set("alt", alt)
78403	c.urlParams_.Set("prettyPrint", "false")
78404	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
78405	urls += "?" + c.urlParams_.Encode()
78406	req, err := http.NewRequest("POST", urls, body)
78407	if err != nil {
78408		return nil, err
78409	}
78410	req.Header = reqHeaders
78411	googleapi.Expand(req.URL, map[string]string{
78412		"project": c.project,
78413	})
78414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78415}
78416
78417// Do executes the "compute.instanceTemplates.insert" call.
78418// Exactly one of *Operation or error will be non-nil. Any non-2xx
78419// status code is an error. Response headers are in either
78420// *Operation.ServerResponse.Header or (if a response was returned at
78421// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78422// to check whether the returned error was because
78423// http.StatusNotModified was returned.
78424func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78425	gensupport.SetOptions(c.urlParams_, opts...)
78426	res, err := c.doRequest("json")
78427	if res != nil && res.StatusCode == http.StatusNotModified {
78428		if res.Body != nil {
78429			res.Body.Close()
78430		}
78431		return nil, &googleapi.Error{
78432			Code:   res.StatusCode,
78433			Header: res.Header,
78434		}
78435	}
78436	if err != nil {
78437		return nil, err
78438	}
78439	defer googleapi.CloseBody(res)
78440	if err := googleapi.CheckResponse(res); err != nil {
78441		return nil, err
78442	}
78443	ret := &Operation{
78444		ServerResponse: googleapi.ServerResponse{
78445			Header:         res.Header,
78446			HTTPStatusCode: res.StatusCode,
78447		},
78448	}
78449	target := &ret
78450	if err := gensupport.DecodeResponse(target, res); err != nil {
78451		return nil, err
78452	}
78453	return ret, nil
78454	// {
78455	//   "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.",
78456	//   "httpMethod": "POST",
78457	//   "id": "compute.instanceTemplates.insert",
78458	//   "parameterOrder": [
78459	//     "project"
78460	//   ],
78461	//   "parameters": {
78462	//     "project": {
78463	//       "description": "Project ID for this request.",
78464	//       "location": "path",
78465	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78466	//       "required": true,
78467	//       "type": "string"
78468	//     },
78469	//     "requestId": {
78470	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78471	//       "location": "query",
78472	//       "type": "string"
78473	//     }
78474	//   },
78475	//   "path": "{project}/global/instanceTemplates",
78476	//   "request": {
78477	//     "$ref": "InstanceTemplate"
78478	//   },
78479	//   "response": {
78480	//     "$ref": "Operation"
78481	//   },
78482	//   "scopes": [
78483	//     "https://www.googleapis.com/auth/cloud-platform",
78484	//     "https://www.googleapis.com/auth/compute"
78485	//   ]
78486	// }
78487
78488}
78489
78490// method id "compute.instanceTemplates.list":
78491
78492type InstanceTemplatesListCall struct {
78493	s            *Service
78494	project      string
78495	urlParams_   gensupport.URLParams
78496	ifNoneMatch_ string
78497	ctx_         context.Context
78498	header_      http.Header
78499}
78500
78501// List: Retrieves a list of instance templates that are contained
78502// within the specified project.
78503// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
78504func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
78505	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78506	c.project = project
78507	return c
78508}
78509
78510// Filter sets the optional parameter "filter": A filter expression that
78511// filters resources listed in the response. The expression must specify
78512// the field name, a comparison operator, and the value that you want to
78513// use for filtering. The value must be a string, a number, or a
78514// boolean. The comparison operator must be either `=`, `!=`, `>`, or
78515// `<`.
78516//
78517// For example, if you are filtering Compute Engine instances, you can
78518// exclude instances named `example-instance` by specifying `name !=
78519// example-instance`.
78520//
78521// You can also filter nested fields. For example, you could specify
78522// `scheduling.automaticRestart = false` to include instances only if
78523// they are not scheduled for automatic restarts. You can use filtering
78524// on nested fields to filter based on resource labels.
78525//
78526// To filter on multiple expressions, provide each separate expression
78527// within parentheses. For example: ``` (scheduling.automaticRestart =
78528// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
78529// is an `AND` expression. However, you can include `AND` and `OR`
78530// expressions explicitly. For example: ``` (cpuPlatform = "Intel
78531// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
78532// (scheduling.automaticRestart = true) ```
78533func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
78534	c.urlParams_.Set("filter", filter)
78535	return c
78536}
78537
78538// MaxResults sets the optional parameter "maxResults": The maximum
78539// number of results per page that should be returned. If the number of
78540// available results is larger than `maxResults`, Compute Engine returns
78541// a `nextPageToken` that can be used to get the next page of results in
78542// subsequent list requests. Acceptable values are `0` to `500`,
78543// inclusive. (Default: `500`)
78544func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
78545	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78546	return c
78547}
78548
78549// OrderBy sets the optional parameter "orderBy": Sorts list results by
78550// a certain order. By default, results are returned in alphanumerical
78551// order based on the resource name.
78552//
78553// You can also sort results in descending order based on the creation
78554// timestamp using `orderBy="creationTimestamp desc". This sorts
78555// results based on the `creationTimestamp` field in reverse
78556// chronological order (newest result first). Use this to sort resources
78557// like operations so that the newest operation is returned
78558// first.
78559//
78560// Currently, only sorting by `name` or `creationTimestamp desc` is
78561// supported.
78562func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
78563	c.urlParams_.Set("orderBy", orderBy)
78564	return c
78565}
78566
78567// PageToken sets the optional parameter "pageToken": Specifies a page
78568// token to use. Set `pageToken` to the `nextPageToken` returned by a
78569// previous list request to get the next page of results.
78570func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
78571	c.urlParams_.Set("pageToken", pageToken)
78572	return c
78573}
78574
78575// Fields allows partial responses to be retrieved. See
78576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78577// for more information.
78578func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
78579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78580	return c
78581}
78582
78583// IfNoneMatch sets the optional parameter which makes the operation
78584// fail if the object's ETag matches the given value. This is useful for
78585// getting updates only after the object has changed since the last
78586// request. Use googleapi.IsNotModified to check whether the response
78587// error from Do is the result of In-None-Match.
78588func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
78589	c.ifNoneMatch_ = entityTag
78590	return c
78591}
78592
78593// Context sets the context to be used in this call's Do method. Any
78594// pending HTTP request will be aborted if the provided context is
78595// canceled.
78596func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
78597	c.ctx_ = ctx
78598	return c
78599}
78600
78601// Header returns an http.Header that can be modified by the caller to
78602// add HTTP headers to the request.
78603func (c *InstanceTemplatesListCall) Header() http.Header {
78604	if c.header_ == nil {
78605		c.header_ = make(http.Header)
78606	}
78607	return c.header_
78608}
78609
78610func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
78611	reqHeaders := make(http.Header)
78612	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78613	for k, v := range c.header_ {
78614		reqHeaders[k] = v
78615	}
78616	reqHeaders.Set("User-Agent", c.s.userAgent())
78617	if c.ifNoneMatch_ != "" {
78618		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78619	}
78620	var body io.Reader = nil
78621	c.urlParams_.Set("alt", alt)
78622	c.urlParams_.Set("prettyPrint", "false")
78623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
78624	urls += "?" + c.urlParams_.Encode()
78625	req, err := http.NewRequest("GET", urls, body)
78626	if err != nil {
78627		return nil, err
78628	}
78629	req.Header = reqHeaders
78630	googleapi.Expand(req.URL, map[string]string{
78631		"project": c.project,
78632	})
78633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78634}
78635
78636// Do executes the "compute.instanceTemplates.list" call.
78637// Exactly one of *InstanceTemplateList or error will be non-nil. Any
78638// non-2xx status code is an error. Response headers are in either
78639// *InstanceTemplateList.ServerResponse.Header or (if a response was
78640// returned at all) in error.(*googleapi.Error).Header. Use
78641// googleapi.IsNotModified to check whether the returned error was
78642// because http.StatusNotModified was returned.
78643func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
78644	gensupport.SetOptions(c.urlParams_, opts...)
78645	res, err := c.doRequest("json")
78646	if res != nil && res.StatusCode == http.StatusNotModified {
78647		if res.Body != nil {
78648			res.Body.Close()
78649		}
78650		return nil, &googleapi.Error{
78651			Code:   res.StatusCode,
78652			Header: res.Header,
78653		}
78654	}
78655	if err != nil {
78656		return nil, err
78657	}
78658	defer googleapi.CloseBody(res)
78659	if err := googleapi.CheckResponse(res); err != nil {
78660		return nil, err
78661	}
78662	ret := &InstanceTemplateList{
78663		ServerResponse: googleapi.ServerResponse{
78664			Header:         res.Header,
78665			HTTPStatusCode: res.StatusCode,
78666		},
78667	}
78668	target := &ret
78669	if err := gensupport.DecodeResponse(target, res); err != nil {
78670		return nil, err
78671	}
78672	return ret, nil
78673	// {
78674	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
78675	//   "httpMethod": "GET",
78676	//   "id": "compute.instanceTemplates.list",
78677	//   "parameterOrder": [
78678	//     "project"
78679	//   ],
78680	//   "parameters": {
78681	//     "filter": {
78682	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
78683	//       "location": "query",
78684	//       "type": "string"
78685	//     },
78686	//     "maxResults": {
78687	//       "default": "500",
78688	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
78689	//       "format": "uint32",
78690	//       "location": "query",
78691	//       "minimum": "0",
78692	//       "type": "integer"
78693	//     },
78694	//     "orderBy": {
78695	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
78696	//       "location": "query",
78697	//       "type": "string"
78698	//     },
78699	//     "pageToken": {
78700	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
78701	//       "location": "query",
78702	//       "type": "string"
78703	//     },
78704	//     "project": {
78705	//       "description": "Project ID for this request.",
78706	//       "location": "path",
78707	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78708	//       "required": true,
78709	//       "type": "string"
78710	//     }
78711	//   },
78712	//   "path": "{project}/global/instanceTemplates",
78713	//   "response": {
78714	//     "$ref": "InstanceTemplateList"
78715	//   },
78716	//   "scopes": [
78717	//     "https://www.googleapis.com/auth/cloud-platform",
78718	//     "https://www.googleapis.com/auth/compute",
78719	//     "https://www.googleapis.com/auth/compute.readonly"
78720	//   ]
78721	// }
78722
78723}
78724
78725// Pages invokes f for each page of results.
78726// A non-nil error returned from f will halt the iteration.
78727// The provided context supersedes any context provided to the Context method.
78728func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
78729	c.ctx_ = ctx
78730	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78731	for {
78732		x, err := c.Do()
78733		if err != nil {
78734			return err
78735		}
78736		if err := f(x); err != nil {
78737			return err
78738		}
78739		if x.NextPageToken == "" {
78740			return nil
78741		}
78742		c.PageToken(x.NextPageToken)
78743	}
78744}
78745
78746// method id "compute.instanceTemplates.setIamPolicy":
78747
78748type InstanceTemplatesSetIamPolicyCall struct {
78749	s                      *Service
78750	project                string
78751	resource               string
78752	globalsetpolicyrequest *GlobalSetPolicyRequest
78753	urlParams_             gensupport.URLParams
78754	ctx_                   context.Context
78755	header_                http.Header
78756}
78757
78758// SetIamPolicy: Sets the access control policy on the specified
78759// resource. Replaces any existing policy.
78760func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
78761	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78762	c.project = project
78763	c.resource = resource
78764	c.globalsetpolicyrequest = globalsetpolicyrequest
78765	return c
78766}
78767
78768// Fields allows partial responses to be retrieved. See
78769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78770// for more information.
78771func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
78772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78773	return c
78774}
78775
78776// Context sets the context to be used in this call's Do method. Any
78777// pending HTTP request will be aborted if the provided context is
78778// canceled.
78779func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
78780	c.ctx_ = ctx
78781	return c
78782}
78783
78784// Header returns an http.Header that can be modified by the caller to
78785// add HTTP headers to the request.
78786func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
78787	if c.header_ == nil {
78788		c.header_ = make(http.Header)
78789	}
78790	return c.header_
78791}
78792
78793func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
78794	reqHeaders := make(http.Header)
78795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78796	for k, v := range c.header_ {
78797		reqHeaders[k] = v
78798	}
78799	reqHeaders.Set("User-Agent", c.s.userAgent())
78800	var body io.Reader = nil
78801	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
78802	if err != nil {
78803		return nil, err
78804	}
78805	reqHeaders.Set("Content-Type", "application/json")
78806	c.urlParams_.Set("alt", alt)
78807	c.urlParams_.Set("prettyPrint", "false")
78808	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/setIamPolicy")
78809	urls += "?" + c.urlParams_.Encode()
78810	req, err := http.NewRequest("POST", urls, body)
78811	if err != nil {
78812		return nil, err
78813	}
78814	req.Header = reqHeaders
78815	googleapi.Expand(req.URL, map[string]string{
78816		"project":  c.project,
78817		"resource": c.resource,
78818	})
78819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78820}
78821
78822// Do executes the "compute.instanceTemplates.setIamPolicy" call.
78823// Exactly one of *Policy or error will be non-nil. Any non-2xx status
78824// code is an error. Response headers are in either
78825// *Policy.ServerResponse.Header or (if a response was returned at all)
78826// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78827// check whether the returned error was because http.StatusNotModified
78828// was returned.
78829func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
78830	gensupport.SetOptions(c.urlParams_, opts...)
78831	res, err := c.doRequest("json")
78832	if res != nil && res.StatusCode == http.StatusNotModified {
78833		if res.Body != nil {
78834			res.Body.Close()
78835		}
78836		return nil, &googleapi.Error{
78837			Code:   res.StatusCode,
78838			Header: res.Header,
78839		}
78840	}
78841	if err != nil {
78842		return nil, err
78843	}
78844	defer googleapi.CloseBody(res)
78845	if err := googleapi.CheckResponse(res); err != nil {
78846		return nil, err
78847	}
78848	ret := &Policy{
78849		ServerResponse: googleapi.ServerResponse{
78850			Header:         res.Header,
78851			HTTPStatusCode: res.StatusCode,
78852		},
78853	}
78854	target := &ret
78855	if err := gensupport.DecodeResponse(target, res); err != nil {
78856		return nil, err
78857	}
78858	return ret, nil
78859	// {
78860	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
78861	//   "httpMethod": "POST",
78862	//   "id": "compute.instanceTemplates.setIamPolicy",
78863	//   "parameterOrder": [
78864	//     "project",
78865	//     "resource"
78866	//   ],
78867	//   "parameters": {
78868	//     "project": {
78869	//       "description": "Project ID for this request.",
78870	//       "location": "path",
78871	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78872	//       "required": true,
78873	//       "type": "string"
78874	//     },
78875	//     "resource": {
78876	//       "description": "Name or id of the resource for this request.",
78877	//       "location": "path",
78878	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78879	//       "required": true,
78880	//       "type": "string"
78881	//     }
78882	//   },
78883	//   "path": "{project}/global/instanceTemplates/{resource}/setIamPolicy",
78884	//   "request": {
78885	//     "$ref": "GlobalSetPolicyRequest"
78886	//   },
78887	//   "response": {
78888	//     "$ref": "Policy"
78889	//   },
78890	//   "scopes": [
78891	//     "https://www.googleapis.com/auth/cloud-platform",
78892	//     "https://www.googleapis.com/auth/compute"
78893	//   ]
78894	// }
78895
78896}
78897
78898// method id "compute.instanceTemplates.testIamPermissions":
78899
78900type InstanceTemplatesTestIamPermissionsCall struct {
78901	s                      *Service
78902	project                string
78903	resource               string
78904	testpermissionsrequest *TestPermissionsRequest
78905	urlParams_             gensupport.URLParams
78906	ctx_                   context.Context
78907	header_                http.Header
78908}
78909
78910// TestIamPermissions: Returns permissions that a caller has on the
78911// specified resource.
78912func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
78913	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78914	c.project = project
78915	c.resource = resource
78916	c.testpermissionsrequest = testpermissionsrequest
78917	return c
78918}
78919
78920// Fields allows partial responses to be retrieved. See
78921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78922// for more information.
78923func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
78924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78925	return c
78926}
78927
78928// Context sets the context to be used in this call's Do method. Any
78929// pending HTTP request will be aborted if the provided context is
78930// canceled.
78931func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
78932	c.ctx_ = ctx
78933	return c
78934}
78935
78936// Header returns an http.Header that can be modified by the caller to
78937// add HTTP headers to the request.
78938func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
78939	if c.header_ == nil {
78940		c.header_ = make(http.Header)
78941	}
78942	return c.header_
78943}
78944
78945func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
78946	reqHeaders := make(http.Header)
78947	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
78948	for k, v := range c.header_ {
78949		reqHeaders[k] = v
78950	}
78951	reqHeaders.Set("User-Agent", c.s.userAgent())
78952	var body io.Reader = nil
78953	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
78954	if err != nil {
78955		return nil, err
78956	}
78957	reqHeaders.Set("Content-Type", "application/json")
78958	c.urlParams_.Set("alt", alt)
78959	c.urlParams_.Set("prettyPrint", "false")
78960	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/testIamPermissions")
78961	urls += "?" + c.urlParams_.Encode()
78962	req, err := http.NewRequest("POST", urls, body)
78963	if err != nil {
78964		return nil, err
78965	}
78966	req.Header = reqHeaders
78967	googleapi.Expand(req.URL, map[string]string{
78968		"project":  c.project,
78969		"resource": c.resource,
78970	})
78971	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78972}
78973
78974// Do executes the "compute.instanceTemplates.testIamPermissions" call.
78975// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
78976// non-2xx status code is an error. Response headers are in either
78977// *TestPermissionsResponse.ServerResponse.Header or (if a response was
78978// returned at all) in error.(*googleapi.Error).Header. Use
78979// googleapi.IsNotModified to check whether the returned error was
78980// because http.StatusNotModified was returned.
78981func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
78982	gensupport.SetOptions(c.urlParams_, opts...)
78983	res, err := c.doRequest("json")
78984	if res != nil && res.StatusCode == http.StatusNotModified {
78985		if res.Body != nil {
78986			res.Body.Close()
78987		}
78988		return nil, &googleapi.Error{
78989			Code:   res.StatusCode,
78990			Header: res.Header,
78991		}
78992	}
78993	if err != nil {
78994		return nil, err
78995	}
78996	defer googleapi.CloseBody(res)
78997	if err := googleapi.CheckResponse(res); err != nil {
78998		return nil, err
78999	}
79000	ret := &TestPermissionsResponse{
79001		ServerResponse: googleapi.ServerResponse{
79002			Header:         res.Header,
79003			HTTPStatusCode: res.StatusCode,
79004		},
79005	}
79006	target := &ret
79007	if err := gensupport.DecodeResponse(target, res); err != nil {
79008		return nil, err
79009	}
79010	return ret, nil
79011	// {
79012	//   "description": "Returns permissions that a caller has on the specified resource.",
79013	//   "httpMethod": "POST",
79014	//   "id": "compute.instanceTemplates.testIamPermissions",
79015	//   "parameterOrder": [
79016	//     "project",
79017	//     "resource"
79018	//   ],
79019	//   "parameters": {
79020	//     "project": {
79021	//       "description": "Project ID for this request.",
79022	//       "location": "path",
79023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79024	//       "required": true,
79025	//       "type": "string"
79026	//     },
79027	//     "resource": {
79028	//       "description": "Name or id of the resource for this request.",
79029	//       "location": "path",
79030	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79031	//       "required": true,
79032	//       "type": "string"
79033	//     }
79034	//   },
79035	//   "path": "{project}/global/instanceTemplates/{resource}/testIamPermissions",
79036	//   "request": {
79037	//     "$ref": "TestPermissionsRequest"
79038	//   },
79039	//   "response": {
79040	//     "$ref": "TestPermissionsResponse"
79041	//   },
79042	//   "scopes": [
79043	//     "https://www.googleapis.com/auth/cloud-platform",
79044	//     "https://www.googleapis.com/auth/compute",
79045	//     "https://www.googleapis.com/auth/compute.readonly"
79046	//   ]
79047	// }
79048
79049}
79050
79051// method id "compute.instances.addAccessConfig":
79052
79053type InstancesAddAccessConfigCall struct {
79054	s            *Service
79055	project      string
79056	zone         string
79057	instance     string
79058	accessconfig *AccessConfig
79059	urlParams_   gensupport.URLParams
79060	ctx_         context.Context
79061	header_      http.Header
79062}
79063
79064// AddAccessConfig: Adds an access config to an instance's network
79065// interface.
79066// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
79067func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
79068	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79069	c.project = project
79070	c.zone = zone
79071	c.instance = instance
79072	c.urlParams_.Set("networkInterface", networkInterface)
79073	c.accessconfig = accessconfig
79074	return c
79075}
79076
79077// RequestId sets the optional parameter "requestId": An optional
79078// request ID to identify requests. Specify a unique request ID so that
79079// if you must retry your request, the server will know to ignore the
79080// request if it has already been completed.
79081//
79082// For example, consider a situation where you make an initial request
79083// and the request times out. If you make the request again with the
79084// same request ID, the server can check if original operation with the
79085// same request ID was received, and if so, will ignore the second
79086// request. This prevents clients from accidentally creating duplicate
79087// commitments.
79088//
79089// The request ID must be a valid UUID with the exception that zero UUID
79090// is not supported (00000000-0000-0000-0000-000000000000).
79091func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
79092	c.urlParams_.Set("requestId", requestId)
79093	return c
79094}
79095
79096// Fields allows partial responses to be retrieved. See
79097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79098// for more information.
79099func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
79100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79101	return c
79102}
79103
79104// Context sets the context to be used in this call's Do method. Any
79105// pending HTTP request will be aborted if the provided context is
79106// canceled.
79107func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
79108	c.ctx_ = ctx
79109	return c
79110}
79111
79112// Header returns an http.Header that can be modified by the caller to
79113// add HTTP headers to the request.
79114func (c *InstancesAddAccessConfigCall) Header() http.Header {
79115	if c.header_ == nil {
79116		c.header_ = make(http.Header)
79117	}
79118	return c.header_
79119}
79120
79121func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
79122	reqHeaders := make(http.Header)
79123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79124	for k, v := range c.header_ {
79125		reqHeaders[k] = v
79126	}
79127	reqHeaders.Set("User-Agent", c.s.userAgent())
79128	var body io.Reader = nil
79129	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
79130	if err != nil {
79131		return nil, err
79132	}
79133	reqHeaders.Set("Content-Type", "application/json")
79134	c.urlParams_.Set("alt", alt)
79135	c.urlParams_.Set("prettyPrint", "false")
79136	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
79137	urls += "?" + c.urlParams_.Encode()
79138	req, err := http.NewRequest("POST", urls, body)
79139	if err != nil {
79140		return nil, err
79141	}
79142	req.Header = reqHeaders
79143	googleapi.Expand(req.URL, map[string]string{
79144		"project":  c.project,
79145		"zone":     c.zone,
79146		"instance": c.instance,
79147	})
79148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79149}
79150
79151// Do executes the "compute.instances.addAccessConfig" call.
79152// Exactly one of *Operation or error will be non-nil. Any non-2xx
79153// status code is an error. Response headers are in either
79154// *Operation.ServerResponse.Header or (if a response was returned at
79155// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79156// to check whether the returned error was because
79157// http.StatusNotModified was returned.
79158func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79159	gensupport.SetOptions(c.urlParams_, opts...)
79160	res, err := c.doRequest("json")
79161	if res != nil && res.StatusCode == http.StatusNotModified {
79162		if res.Body != nil {
79163			res.Body.Close()
79164		}
79165		return nil, &googleapi.Error{
79166			Code:   res.StatusCode,
79167			Header: res.Header,
79168		}
79169	}
79170	if err != nil {
79171		return nil, err
79172	}
79173	defer googleapi.CloseBody(res)
79174	if err := googleapi.CheckResponse(res); err != nil {
79175		return nil, err
79176	}
79177	ret := &Operation{
79178		ServerResponse: googleapi.ServerResponse{
79179			Header:         res.Header,
79180			HTTPStatusCode: res.StatusCode,
79181		},
79182	}
79183	target := &ret
79184	if err := gensupport.DecodeResponse(target, res); err != nil {
79185		return nil, err
79186	}
79187	return ret, nil
79188	// {
79189	//   "description": "Adds an access config to an instance's network interface.",
79190	//   "httpMethod": "POST",
79191	//   "id": "compute.instances.addAccessConfig",
79192	//   "parameterOrder": [
79193	//     "project",
79194	//     "zone",
79195	//     "instance",
79196	//     "networkInterface"
79197	//   ],
79198	//   "parameters": {
79199	//     "instance": {
79200	//       "description": "The instance name for this request.",
79201	//       "location": "path",
79202	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79203	//       "required": true,
79204	//       "type": "string"
79205	//     },
79206	//     "networkInterface": {
79207	//       "description": "The name of the network interface to add to this instance.",
79208	//       "location": "query",
79209	//       "required": true,
79210	//       "type": "string"
79211	//     },
79212	//     "project": {
79213	//       "description": "Project ID for this request.",
79214	//       "location": "path",
79215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79216	//       "required": true,
79217	//       "type": "string"
79218	//     },
79219	//     "requestId": {
79220	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79221	//       "location": "query",
79222	//       "type": "string"
79223	//     },
79224	//     "zone": {
79225	//       "description": "The name of the zone for this request.",
79226	//       "location": "path",
79227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79228	//       "required": true,
79229	//       "type": "string"
79230	//     }
79231	//   },
79232	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
79233	//   "request": {
79234	//     "$ref": "AccessConfig"
79235	//   },
79236	//   "response": {
79237	//     "$ref": "Operation"
79238	//   },
79239	//   "scopes": [
79240	//     "https://www.googleapis.com/auth/cloud-platform",
79241	//     "https://www.googleapis.com/auth/compute"
79242	//   ]
79243	// }
79244
79245}
79246
79247// method id "compute.instances.addResourcePolicies":
79248
79249type InstancesAddResourcePoliciesCall struct {
79250	s                                   *Service
79251	project                             string
79252	zone                                string
79253	instance                            string
79254	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
79255	urlParams_                          gensupport.URLParams
79256	ctx_                                context.Context
79257	header_                             http.Header
79258}
79259
79260// AddResourcePolicies: Adds existing resource policies to an instance.
79261// You can only add one policy right now which will be applied to this
79262// instance for scheduling live migrations.
79263func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
79264	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79265	c.project = project
79266	c.zone = zone
79267	c.instance = instance
79268	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
79269	return c
79270}
79271
79272// RequestId sets the optional parameter "requestId": An optional
79273// request ID to identify requests. Specify a unique request ID so that
79274// if you must retry your request, the server will know to ignore the
79275// request if it has already been completed.
79276//
79277// For example, consider a situation where you make an initial request
79278// and the request times out. If you make the request again with the
79279// same request ID, the server can check if original operation with the
79280// same request ID was received, and if so, will ignore the second
79281// request. This prevents clients from accidentally creating duplicate
79282// commitments.
79283//
79284// The request ID must be a valid UUID with the exception that zero UUID
79285// is not supported (00000000-0000-0000-0000-000000000000).
79286func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
79287	c.urlParams_.Set("requestId", requestId)
79288	return c
79289}
79290
79291// Fields allows partial responses to be retrieved. See
79292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79293// for more information.
79294func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
79295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79296	return c
79297}
79298
79299// Context sets the context to be used in this call's Do method. Any
79300// pending HTTP request will be aborted if the provided context is
79301// canceled.
79302func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
79303	c.ctx_ = ctx
79304	return c
79305}
79306
79307// Header returns an http.Header that can be modified by the caller to
79308// add HTTP headers to the request.
79309func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
79310	if c.header_ == nil {
79311		c.header_ = make(http.Header)
79312	}
79313	return c.header_
79314}
79315
79316func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
79317	reqHeaders := make(http.Header)
79318	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79319	for k, v := range c.header_ {
79320		reqHeaders[k] = v
79321	}
79322	reqHeaders.Set("User-Agent", c.s.userAgent())
79323	var body io.Reader = nil
79324	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
79325	if err != nil {
79326		return nil, err
79327	}
79328	reqHeaders.Set("Content-Type", "application/json")
79329	c.urlParams_.Set("alt", alt)
79330	c.urlParams_.Set("prettyPrint", "false")
79331	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
79332	urls += "?" + c.urlParams_.Encode()
79333	req, err := http.NewRequest("POST", urls, body)
79334	if err != nil {
79335		return nil, err
79336	}
79337	req.Header = reqHeaders
79338	googleapi.Expand(req.URL, map[string]string{
79339		"project":  c.project,
79340		"zone":     c.zone,
79341		"instance": c.instance,
79342	})
79343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79344}
79345
79346// Do executes the "compute.instances.addResourcePolicies" call.
79347// Exactly one of *Operation or error will be non-nil. Any non-2xx
79348// status code is an error. Response headers are in either
79349// *Operation.ServerResponse.Header or (if a response was returned at
79350// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79351// to check whether the returned error was because
79352// http.StatusNotModified was returned.
79353func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79354	gensupport.SetOptions(c.urlParams_, opts...)
79355	res, err := c.doRequest("json")
79356	if res != nil && res.StatusCode == http.StatusNotModified {
79357		if res.Body != nil {
79358			res.Body.Close()
79359		}
79360		return nil, &googleapi.Error{
79361			Code:   res.StatusCode,
79362			Header: res.Header,
79363		}
79364	}
79365	if err != nil {
79366		return nil, err
79367	}
79368	defer googleapi.CloseBody(res)
79369	if err := googleapi.CheckResponse(res); err != nil {
79370		return nil, err
79371	}
79372	ret := &Operation{
79373		ServerResponse: googleapi.ServerResponse{
79374			Header:         res.Header,
79375			HTTPStatusCode: res.StatusCode,
79376		},
79377	}
79378	target := &ret
79379	if err := gensupport.DecodeResponse(target, res); err != nil {
79380		return nil, err
79381	}
79382	return ret, nil
79383	// {
79384	//   "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.",
79385	//   "httpMethod": "POST",
79386	//   "id": "compute.instances.addResourcePolicies",
79387	//   "parameterOrder": [
79388	//     "project",
79389	//     "zone",
79390	//     "instance"
79391	//   ],
79392	//   "parameters": {
79393	//     "instance": {
79394	//       "description": "The instance name for this request.",
79395	//       "location": "path",
79396	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79397	//       "required": true,
79398	//       "type": "string"
79399	//     },
79400	//     "project": {
79401	//       "description": "Project ID for this request.",
79402	//       "location": "path",
79403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79404	//       "required": true,
79405	//       "type": "string"
79406	//     },
79407	//     "requestId": {
79408	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79409	//       "location": "query",
79410	//       "type": "string"
79411	//     },
79412	//     "zone": {
79413	//       "description": "The name of the zone for this request.",
79414	//       "location": "path",
79415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79416	//       "required": true,
79417	//       "type": "string"
79418	//     }
79419	//   },
79420	//   "path": "{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
79421	//   "request": {
79422	//     "$ref": "InstancesAddResourcePoliciesRequest"
79423	//   },
79424	//   "response": {
79425	//     "$ref": "Operation"
79426	//   },
79427	//   "scopes": [
79428	//     "https://www.googleapis.com/auth/cloud-platform",
79429	//     "https://www.googleapis.com/auth/compute"
79430	//   ]
79431	// }
79432
79433}
79434
79435// method id "compute.instances.aggregatedList":
79436
79437type InstancesAggregatedListCall struct {
79438	s            *Service
79439	project      string
79440	urlParams_   gensupport.URLParams
79441	ifNoneMatch_ string
79442	ctx_         context.Context
79443	header_      http.Header
79444}
79445
79446// AggregatedList: Retrieves aggregated list of all of the instances in
79447// your project across all regions and zones.
79448// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
79449func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
79450	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79451	c.project = project
79452	return c
79453}
79454
79455// Filter sets the optional parameter "filter": A filter expression that
79456// filters resources listed in the response. The expression must specify
79457// the field name, a comparison operator, and the value that you want to
79458// use for filtering. The value must be a string, a number, or a
79459// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79460// `<`.
79461//
79462// For example, if you are filtering Compute Engine instances, you can
79463// exclude instances named `example-instance` by specifying `name !=
79464// example-instance`.
79465//
79466// You can also filter nested fields. For example, you could specify
79467// `scheduling.automaticRestart = false` to include instances only if
79468// they are not scheduled for automatic restarts. You can use filtering
79469// on nested fields to filter based on resource labels.
79470//
79471// To filter on multiple expressions, provide each separate expression
79472// within parentheses. For example: ``` (scheduling.automaticRestart =
79473// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79474// is an `AND` expression. However, you can include `AND` and `OR`
79475// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79476// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79477// (scheduling.automaticRestart = true) ```
79478func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
79479	c.urlParams_.Set("filter", filter)
79480	return c
79481}
79482
79483// IncludeAllScopes sets the optional parameter "includeAllScopes":
79484// Indicates whether every visible scope for each scope type (zone,
79485// region, global) should be included in the response. For new resource
79486// types added after this field, the flag has no effect as new resource
79487// types will always include every visible scope for each scope type in
79488// response. For resource types which predate this field, if this flag
79489// is omitted or false, only scopes of the scope types where the
79490// resource type is expected to be found will be included.
79491func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
79492	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
79493	return c
79494}
79495
79496// MaxResults sets the optional parameter "maxResults": The maximum
79497// number of results per page that should be returned. If the number of
79498// available results is larger than `maxResults`, Compute Engine returns
79499// a `nextPageToken` that can be used to get the next page of results in
79500// subsequent list requests. Acceptable values are `0` to `500`,
79501// inclusive. (Default: `500`)
79502func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
79503	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79504	return c
79505}
79506
79507// OrderBy sets the optional parameter "orderBy": Sorts list results by
79508// a certain order. By default, results are returned in alphanumerical
79509// order based on the resource name.
79510//
79511// You can also sort results in descending order based on the creation
79512// timestamp using `orderBy="creationTimestamp desc". This sorts
79513// results based on the `creationTimestamp` field in reverse
79514// chronological order (newest result first). Use this to sort resources
79515// like operations so that the newest operation is returned
79516// first.
79517//
79518// Currently, only sorting by `name` or `creationTimestamp desc` is
79519// supported.
79520func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
79521	c.urlParams_.Set("orderBy", orderBy)
79522	return c
79523}
79524
79525// PageToken sets the optional parameter "pageToken": Specifies a page
79526// token to use. Set `pageToken` to the `nextPageToken` returned by a
79527// previous list request to get the next page of results.
79528func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
79529	c.urlParams_.Set("pageToken", pageToken)
79530	return c
79531}
79532
79533// Fields allows partial responses to be retrieved. See
79534// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79535// for more information.
79536func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
79537	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79538	return c
79539}
79540
79541// IfNoneMatch sets the optional parameter which makes the operation
79542// fail if the object's ETag matches the given value. This is useful for
79543// getting updates only after the object has changed since the last
79544// request. Use googleapi.IsNotModified to check whether the response
79545// error from Do is the result of In-None-Match.
79546func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
79547	c.ifNoneMatch_ = entityTag
79548	return c
79549}
79550
79551// Context sets the context to be used in this call's Do method. Any
79552// pending HTTP request will be aborted if the provided context is
79553// canceled.
79554func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
79555	c.ctx_ = ctx
79556	return c
79557}
79558
79559// Header returns an http.Header that can be modified by the caller to
79560// add HTTP headers to the request.
79561func (c *InstancesAggregatedListCall) Header() http.Header {
79562	if c.header_ == nil {
79563		c.header_ = make(http.Header)
79564	}
79565	return c.header_
79566}
79567
79568func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
79569	reqHeaders := make(http.Header)
79570	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79571	for k, v := range c.header_ {
79572		reqHeaders[k] = v
79573	}
79574	reqHeaders.Set("User-Agent", c.s.userAgent())
79575	if c.ifNoneMatch_ != "" {
79576		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79577	}
79578	var body io.Reader = nil
79579	c.urlParams_.Set("alt", alt)
79580	c.urlParams_.Set("prettyPrint", "false")
79581	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
79582	urls += "?" + c.urlParams_.Encode()
79583	req, err := http.NewRequest("GET", urls, body)
79584	if err != nil {
79585		return nil, err
79586	}
79587	req.Header = reqHeaders
79588	googleapi.Expand(req.URL, map[string]string{
79589		"project": c.project,
79590	})
79591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79592}
79593
79594// Do executes the "compute.instances.aggregatedList" call.
79595// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
79596// non-2xx status code is an error. Response headers are in either
79597// *InstanceAggregatedList.ServerResponse.Header or (if a response was
79598// returned at all) in error.(*googleapi.Error).Header. Use
79599// googleapi.IsNotModified to check whether the returned error was
79600// because http.StatusNotModified was returned.
79601func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
79602	gensupport.SetOptions(c.urlParams_, opts...)
79603	res, err := c.doRequest("json")
79604	if res != nil && res.StatusCode == http.StatusNotModified {
79605		if res.Body != nil {
79606			res.Body.Close()
79607		}
79608		return nil, &googleapi.Error{
79609			Code:   res.StatusCode,
79610			Header: res.Header,
79611		}
79612	}
79613	if err != nil {
79614		return nil, err
79615	}
79616	defer googleapi.CloseBody(res)
79617	if err := googleapi.CheckResponse(res); err != nil {
79618		return nil, err
79619	}
79620	ret := &InstanceAggregatedList{
79621		ServerResponse: googleapi.ServerResponse{
79622			Header:         res.Header,
79623			HTTPStatusCode: res.StatusCode,
79624		},
79625	}
79626	target := &ret
79627	if err := gensupport.DecodeResponse(target, res); err != nil {
79628		return nil, err
79629	}
79630	return ret, nil
79631	// {
79632	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
79633	//   "httpMethod": "GET",
79634	//   "id": "compute.instances.aggregatedList",
79635	//   "parameterOrder": [
79636	//     "project"
79637	//   ],
79638	//   "parameters": {
79639	//     "filter": {
79640	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
79641	//       "location": "query",
79642	//       "type": "string"
79643	//     },
79644	//     "includeAllScopes": {
79645	//       "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.",
79646	//       "location": "query",
79647	//       "type": "boolean"
79648	//     },
79649	//     "maxResults": {
79650	//       "default": "500",
79651	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
79652	//       "format": "uint32",
79653	//       "location": "query",
79654	//       "minimum": "0",
79655	//       "type": "integer"
79656	//     },
79657	//     "orderBy": {
79658	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
79659	//       "location": "query",
79660	//       "type": "string"
79661	//     },
79662	//     "pageToken": {
79663	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
79664	//       "location": "query",
79665	//       "type": "string"
79666	//     },
79667	//     "project": {
79668	//       "description": "Project ID for this request.",
79669	//       "location": "path",
79670	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79671	//       "required": true,
79672	//       "type": "string"
79673	//     }
79674	//   },
79675	//   "path": "{project}/aggregated/instances",
79676	//   "response": {
79677	//     "$ref": "InstanceAggregatedList"
79678	//   },
79679	//   "scopes": [
79680	//     "https://www.googleapis.com/auth/cloud-platform",
79681	//     "https://www.googleapis.com/auth/compute",
79682	//     "https://www.googleapis.com/auth/compute.readonly"
79683	//   ]
79684	// }
79685
79686}
79687
79688// Pages invokes f for each page of results.
79689// A non-nil error returned from f will halt the iteration.
79690// The provided context supersedes any context provided to the Context method.
79691func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
79692	c.ctx_ = ctx
79693	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79694	for {
79695		x, err := c.Do()
79696		if err != nil {
79697			return err
79698		}
79699		if err := f(x); err != nil {
79700			return err
79701		}
79702		if x.NextPageToken == "" {
79703			return nil
79704		}
79705		c.PageToken(x.NextPageToken)
79706	}
79707}
79708
79709// method id "compute.instances.attachDisk":
79710
79711type InstancesAttachDiskCall struct {
79712	s            *Service
79713	project      string
79714	zone         string
79715	instance     string
79716	attacheddisk *AttachedDisk
79717	urlParams_   gensupport.URLParams
79718	ctx_         context.Context
79719	header_      http.Header
79720}
79721
79722// AttachDisk: Attaches an existing Disk resource to an instance. You
79723// must first create the disk before you can attach it. It is not
79724// possible to create and attach a disk at the same time. For more
79725// information, read Adding a persistent disk to your instance.
79726// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
79727func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
79728	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79729	c.project = project
79730	c.zone = zone
79731	c.instance = instance
79732	c.attacheddisk = attacheddisk
79733	return c
79734}
79735
79736// ForceAttach sets the optional parameter "forceAttach": Whether to
79737// force attach the disk even if it's currently attached to another
79738// instance.
79739func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
79740	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
79741	return c
79742}
79743
79744// RequestId sets the optional parameter "requestId": An optional
79745// request ID to identify requests. Specify a unique request ID so that
79746// if you must retry your request, the server will know to ignore the
79747// request if it has already been completed.
79748//
79749// For example, consider a situation where you make an initial request
79750// and the request times out. If you make the request again with the
79751// same request ID, the server can check if original operation with the
79752// same request ID was received, and if so, will ignore the second
79753// request. This prevents clients from accidentally creating duplicate
79754// commitments.
79755//
79756// The request ID must be a valid UUID with the exception that zero UUID
79757// is not supported (00000000-0000-0000-0000-000000000000).
79758func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
79759	c.urlParams_.Set("requestId", requestId)
79760	return c
79761}
79762
79763// Fields allows partial responses to be retrieved. See
79764// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79765// for more information.
79766func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
79767	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79768	return c
79769}
79770
79771// Context sets the context to be used in this call's Do method. Any
79772// pending HTTP request will be aborted if the provided context is
79773// canceled.
79774func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
79775	c.ctx_ = ctx
79776	return c
79777}
79778
79779// Header returns an http.Header that can be modified by the caller to
79780// add HTTP headers to the request.
79781func (c *InstancesAttachDiskCall) Header() http.Header {
79782	if c.header_ == nil {
79783		c.header_ = make(http.Header)
79784	}
79785	return c.header_
79786}
79787
79788func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
79789	reqHeaders := make(http.Header)
79790	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79791	for k, v := range c.header_ {
79792		reqHeaders[k] = v
79793	}
79794	reqHeaders.Set("User-Agent", c.s.userAgent())
79795	var body io.Reader = nil
79796	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
79797	if err != nil {
79798		return nil, err
79799	}
79800	reqHeaders.Set("Content-Type", "application/json")
79801	c.urlParams_.Set("alt", alt)
79802	c.urlParams_.Set("prettyPrint", "false")
79803	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
79804	urls += "?" + c.urlParams_.Encode()
79805	req, err := http.NewRequest("POST", urls, body)
79806	if err != nil {
79807		return nil, err
79808	}
79809	req.Header = reqHeaders
79810	googleapi.Expand(req.URL, map[string]string{
79811		"project":  c.project,
79812		"zone":     c.zone,
79813		"instance": c.instance,
79814	})
79815	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79816}
79817
79818// Do executes the "compute.instances.attachDisk" call.
79819// Exactly one of *Operation or error will be non-nil. Any non-2xx
79820// status code is an error. Response headers are in either
79821// *Operation.ServerResponse.Header or (if a response was returned at
79822// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79823// to check whether the returned error was because
79824// http.StatusNotModified was returned.
79825func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79826	gensupport.SetOptions(c.urlParams_, opts...)
79827	res, err := c.doRequest("json")
79828	if res != nil && res.StatusCode == http.StatusNotModified {
79829		if res.Body != nil {
79830			res.Body.Close()
79831		}
79832		return nil, &googleapi.Error{
79833			Code:   res.StatusCode,
79834			Header: res.Header,
79835		}
79836	}
79837	if err != nil {
79838		return nil, err
79839	}
79840	defer googleapi.CloseBody(res)
79841	if err := googleapi.CheckResponse(res); err != nil {
79842		return nil, err
79843	}
79844	ret := &Operation{
79845		ServerResponse: googleapi.ServerResponse{
79846			Header:         res.Header,
79847			HTTPStatusCode: res.StatusCode,
79848		},
79849	}
79850	target := &ret
79851	if err := gensupport.DecodeResponse(target, res); err != nil {
79852		return nil, err
79853	}
79854	return ret, nil
79855	// {
79856	//   "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.",
79857	//   "httpMethod": "POST",
79858	//   "id": "compute.instances.attachDisk",
79859	//   "parameterOrder": [
79860	//     "project",
79861	//     "zone",
79862	//     "instance"
79863	//   ],
79864	//   "parameters": {
79865	//     "forceAttach": {
79866	//       "description": "Whether to force attach the disk even if it's currently attached to another instance.",
79867	//       "location": "query",
79868	//       "type": "boolean"
79869	//     },
79870	//     "instance": {
79871	//       "description": "The instance name for this request.",
79872	//       "location": "path",
79873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79874	//       "required": true,
79875	//       "type": "string"
79876	//     },
79877	//     "project": {
79878	//       "description": "Project ID for this request.",
79879	//       "location": "path",
79880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79881	//       "required": true,
79882	//       "type": "string"
79883	//     },
79884	//     "requestId": {
79885	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79886	//       "location": "query",
79887	//       "type": "string"
79888	//     },
79889	//     "zone": {
79890	//       "description": "The name of the zone for this request.",
79891	//       "location": "path",
79892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79893	//       "required": true,
79894	//       "type": "string"
79895	//     }
79896	//   },
79897	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
79898	//   "request": {
79899	//     "$ref": "AttachedDisk"
79900	//   },
79901	//   "response": {
79902	//     "$ref": "Operation"
79903	//   },
79904	//   "scopes": [
79905	//     "https://www.googleapis.com/auth/cloud-platform",
79906	//     "https://www.googleapis.com/auth/compute"
79907	//   ]
79908	// }
79909
79910}
79911
79912// method id "compute.instances.delete":
79913
79914type InstancesDeleteCall struct {
79915	s          *Service
79916	project    string
79917	zone       string
79918	instance   string
79919	urlParams_ gensupport.URLParams
79920	ctx_       context.Context
79921	header_    http.Header
79922}
79923
79924// Delete: Deletes the specified Instance resource. For more
79925// information, see Stopping or Deleting an Instance.
79926// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
79927func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
79928	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79929	c.project = project
79930	c.zone = zone
79931	c.instance = instance
79932	return c
79933}
79934
79935// RequestId sets the optional parameter "requestId": An optional
79936// request ID to identify requests. Specify a unique request ID so that
79937// if you must retry your request, the server will know to ignore the
79938// request if it has already been completed.
79939//
79940// For example, consider a situation where you make an initial request
79941// and the request times out. If you make the request again with the
79942// same request ID, the server can check if original operation with the
79943// same request ID was received, and if so, will ignore the second
79944// request. This prevents clients from accidentally creating duplicate
79945// commitments.
79946//
79947// The request ID must be a valid UUID with the exception that zero UUID
79948// is not supported (00000000-0000-0000-0000-000000000000).
79949func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
79950	c.urlParams_.Set("requestId", requestId)
79951	return c
79952}
79953
79954// Fields allows partial responses to be retrieved. See
79955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79956// for more information.
79957func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
79958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79959	return c
79960}
79961
79962// Context sets the context to be used in this call's Do method. Any
79963// pending HTTP request will be aborted if the provided context is
79964// canceled.
79965func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
79966	c.ctx_ = ctx
79967	return c
79968}
79969
79970// Header returns an http.Header that can be modified by the caller to
79971// add HTTP headers to the request.
79972func (c *InstancesDeleteCall) Header() http.Header {
79973	if c.header_ == nil {
79974		c.header_ = make(http.Header)
79975	}
79976	return c.header_
79977}
79978
79979func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
79980	reqHeaders := make(http.Header)
79981	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
79982	for k, v := range c.header_ {
79983		reqHeaders[k] = v
79984	}
79985	reqHeaders.Set("User-Agent", c.s.userAgent())
79986	var body io.Reader = nil
79987	c.urlParams_.Set("alt", alt)
79988	c.urlParams_.Set("prettyPrint", "false")
79989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
79990	urls += "?" + c.urlParams_.Encode()
79991	req, err := http.NewRequest("DELETE", urls, body)
79992	if err != nil {
79993		return nil, err
79994	}
79995	req.Header = reqHeaders
79996	googleapi.Expand(req.URL, map[string]string{
79997		"project":  c.project,
79998		"zone":     c.zone,
79999		"instance": c.instance,
80000	})
80001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80002}
80003
80004// Do executes the "compute.instances.delete" call.
80005// Exactly one of *Operation or error will be non-nil. Any non-2xx
80006// status code is an error. Response headers are in either
80007// *Operation.ServerResponse.Header or (if a response was returned at
80008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80009// to check whether the returned error was because
80010// http.StatusNotModified was returned.
80011func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80012	gensupport.SetOptions(c.urlParams_, opts...)
80013	res, err := c.doRequest("json")
80014	if res != nil && res.StatusCode == http.StatusNotModified {
80015		if res.Body != nil {
80016			res.Body.Close()
80017		}
80018		return nil, &googleapi.Error{
80019			Code:   res.StatusCode,
80020			Header: res.Header,
80021		}
80022	}
80023	if err != nil {
80024		return nil, err
80025	}
80026	defer googleapi.CloseBody(res)
80027	if err := googleapi.CheckResponse(res); err != nil {
80028		return nil, err
80029	}
80030	ret := &Operation{
80031		ServerResponse: googleapi.ServerResponse{
80032			Header:         res.Header,
80033			HTTPStatusCode: res.StatusCode,
80034		},
80035	}
80036	target := &ret
80037	if err := gensupport.DecodeResponse(target, res); err != nil {
80038		return nil, err
80039	}
80040	return ret, nil
80041	// {
80042	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
80043	//   "httpMethod": "DELETE",
80044	//   "id": "compute.instances.delete",
80045	//   "parameterOrder": [
80046	//     "project",
80047	//     "zone",
80048	//     "instance"
80049	//   ],
80050	//   "parameters": {
80051	//     "instance": {
80052	//       "description": "Name of the instance resource to delete.",
80053	//       "location": "path",
80054	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80055	//       "required": true,
80056	//       "type": "string"
80057	//     },
80058	//     "project": {
80059	//       "description": "Project ID for this request.",
80060	//       "location": "path",
80061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80062	//       "required": true,
80063	//       "type": "string"
80064	//     },
80065	//     "requestId": {
80066	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80067	//       "location": "query",
80068	//       "type": "string"
80069	//     },
80070	//     "zone": {
80071	//       "description": "The name of the zone for this request.",
80072	//       "location": "path",
80073	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80074	//       "required": true,
80075	//       "type": "string"
80076	//     }
80077	//   },
80078	//   "path": "{project}/zones/{zone}/instances/{instance}",
80079	//   "response": {
80080	//     "$ref": "Operation"
80081	//   },
80082	//   "scopes": [
80083	//     "https://www.googleapis.com/auth/cloud-platform",
80084	//     "https://www.googleapis.com/auth/compute"
80085	//   ]
80086	// }
80087
80088}
80089
80090// method id "compute.instances.deleteAccessConfig":
80091
80092type InstancesDeleteAccessConfigCall struct {
80093	s          *Service
80094	project    string
80095	zone       string
80096	instance   string
80097	urlParams_ gensupport.URLParams
80098	ctx_       context.Context
80099	header_    http.Header
80100}
80101
80102// DeleteAccessConfig: Deletes an access config from an instance's
80103// network interface.
80104// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
80105func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
80106	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80107	c.project = project
80108	c.zone = zone
80109	c.instance = instance
80110	c.urlParams_.Set("accessConfig", accessConfig)
80111	c.urlParams_.Set("networkInterface", networkInterface)
80112	return c
80113}
80114
80115// RequestId sets the optional parameter "requestId": An optional
80116// request ID to identify requests. Specify a unique request ID so that
80117// if you must retry your request, the server will know to ignore the
80118// request if it has already been completed.
80119//
80120// For example, consider a situation where you make an initial request
80121// and the request times out. If you make the request again with the
80122// same request ID, the server can check if original operation with the
80123// same request ID was received, and if so, will ignore the second
80124// request. This prevents clients from accidentally creating duplicate
80125// commitments.
80126//
80127// The request ID must be a valid UUID with the exception that zero UUID
80128// is not supported (00000000-0000-0000-0000-000000000000).
80129func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
80130	c.urlParams_.Set("requestId", requestId)
80131	return c
80132}
80133
80134// Fields allows partial responses to be retrieved. See
80135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80136// for more information.
80137func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
80138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80139	return c
80140}
80141
80142// Context sets the context to be used in this call's Do method. Any
80143// pending HTTP request will be aborted if the provided context is
80144// canceled.
80145func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
80146	c.ctx_ = ctx
80147	return c
80148}
80149
80150// Header returns an http.Header that can be modified by the caller to
80151// add HTTP headers to the request.
80152func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
80153	if c.header_ == nil {
80154		c.header_ = make(http.Header)
80155	}
80156	return c.header_
80157}
80158
80159func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
80160	reqHeaders := make(http.Header)
80161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80162	for k, v := range c.header_ {
80163		reqHeaders[k] = v
80164	}
80165	reqHeaders.Set("User-Agent", c.s.userAgent())
80166	var body io.Reader = nil
80167	c.urlParams_.Set("alt", alt)
80168	c.urlParams_.Set("prettyPrint", "false")
80169	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
80170	urls += "?" + c.urlParams_.Encode()
80171	req, err := http.NewRequest("POST", urls, body)
80172	if err != nil {
80173		return nil, err
80174	}
80175	req.Header = reqHeaders
80176	googleapi.Expand(req.URL, map[string]string{
80177		"project":  c.project,
80178		"zone":     c.zone,
80179		"instance": c.instance,
80180	})
80181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80182}
80183
80184// Do executes the "compute.instances.deleteAccessConfig" call.
80185// Exactly one of *Operation or error will be non-nil. Any non-2xx
80186// status code is an error. Response headers are in either
80187// *Operation.ServerResponse.Header or (if a response was returned at
80188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80189// to check whether the returned error was because
80190// http.StatusNotModified was returned.
80191func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80192	gensupport.SetOptions(c.urlParams_, opts...)
80193	res, err := c.doRequest("json")
80194	if res != nil && res.StatusCode == http.StatusNotModified {
80195		if res.Body != nil {
80196			res.Body.Close()
80197		}
80198		return nil, &googleapi.Error{
80199			Code:   res.StatusCode,
80200			Header: res.Header,
80201		}
80202	}
80203	if err != nil {
80204		return nil, err
80205	}
80206	defer googleapi.CloseBody(res)
80207	if err := googleapi.CheckResponse(res); err != nil {
80208		return nil, err
80209	}
80210	ret := &Operation{
80211		ServerResponse: googleapi.ServerResponse{
80212			Header:         res.Header,
80213			HTTPStatusCode: res.StatusCode,
80214		},
80215	}
80216	target := &ret
80217	if err := gensupport.DecodeResponse(target, res); err != nil {
80218		return nil, err
80219	}
80220	return ret, nil
80221	// {
80222	//   "description": "Deletes an access config from an instance's network interface.",
80223	//   "httpMethod": "POST",
80224	//   "id": "compute.instances.deleteAccessConfig",
80225	//   "parameterOrder": [
80226	//     "project",
80227	//     "zone",
80228	//     "instance",
80229	//     "accessConfig",
80230	//     "networkInterface"
80231	//   ],
80232	//   "parameters": {
80233	//     "accessConfig": {
80234	//       "description": "The name of the access config to delete.",
80235	//       "location": "query",
80236	//       "required": true,
80237	//       "type": "string"
80238	//     },
80239	//     "instance": {
80240	//       "description": "The instance name for this request.",
80241	//       "location": "path",
80242	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80243	//       "required": true,
80244	//       "type": "string"
80245	//     },
80246	//     "networkInterface": {
80247	//       "description": "The name of the network interface.",
80248	//       "location": "query",
80249	//       "required": true,
80250	//       "type": "string"
80251	//     },
80252	//     "project": {
80253	//       "description": "Project ID for this request.",
80254	//       "location": "path",
80255	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80256	//       "required": true,
80257	//       "type": "string"
80258	//     },
80259	//     "requestId": {
80260	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80261	//       "location": "query",
80262	//       "type": "string"
80263	//     },
80264	//     "zone": {
80265	//       "description": "The name of the zone for this request.",
80266	//       "location": "path",
80267	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80268	//       "required": true,
80269	//       "type": "string"
80270	//     }
80271	//   },
80272	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
80273	//   "response": {
80274	//     "$ref": "Operation"
80275	//   },
80276	//   "scopes": [
80277	//     "https://www.googleapis.com/auth/cloud-platform",
80278	//     "https://www.googleapis.com/auth/compute"
80279	//   ]
80280	// }
80281
80282}
80283
80284// method id "compute.instances.detachDisk":
80285
80286type InstancesDetachDiskCall struct {
80287	s          *Service
80288	project    string
80289	zone       string
80290	instance   string
80291	urlParams_ gensupport.URLParams
80292	ctx_       context.Context
80293	header_    http.Header
80294}
80295
80296// DetachDisk: Detaches a disk from an instance.
80297// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
80298func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
80299	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80300	c.project = project
80301	c.zone = zone
80302	c.instance = instance
80303	c.urlParams_.Set("deviceName", deviceName)
80304	return c
80305}
80306
80307// RequestId sets the optional parameter "requestId": An optional
80308// request ID to identify requests. Specify a unique request ID so that
80309// if you must retry your request, the server will know to ignore the
80310// request if it has already been completed.
80311//
80312// For example, consider a situation where you make an initial request
80313// and the request times out. If you make the request again with the
80314// same request ID, the server can check if original operation with the
80315// same request ID was received, and if so, will ignore the second
80316// request. This prevents clients from accidentally creating duplicate
80317// commitments.
80318//
80319// The request ID must be a valid UUID with the exception that zero UUID
80320// is not supported (00000000-0000-0000-0000-000000000000).
80321func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
80322	c.urlParams_.Set("requestId", requestId)
80323	return c
80324}
80325
80326// Fields allows partial responses to be retrieved. See
80327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80328// for more information.
80329func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
80330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80331	return c
80332}
80333
80334// Context sets the context to be used in this call's Do method. Any
80335// pending HTTP request will be aborted if the provided context is
80336// canceled.
80337func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
80338	c.ctx_ = ctx
80339	return c
80340}
80341
80342// Header returns an http.Header that can be modified by the caller to
80343// add HTTP headers to the request.
80344func (c *InstancesDetachDiskCall) Header() http.Header {
80345	if c.header_ == nil {
80346		c.header_ = make(http.Header)
80347	}
80348	return c.header_
80349}
80350
80351func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
80352	reqHeaders := make(http.Header)
80353	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80354	for k, v := range c.header_ {
80355		reqHeaders[k] = v
80356	}
80357	reqHeaders.Set("User-Agent", c.s.userAgent())
80358	var body io.Reader = nil
80359	c.urlParams_.Set("alt", alt)
80360	c.urlParams_.Set("prettyPrint", "false")
80361	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
80362	urls += "?" + c.urlParams_.Encode()
80363	req, err := http.NewRequest("POST", urls, body)
80364	if err != nil {
80365		return nil, err
80366	}
80367	req.Header = reqHeaders
80368	googleapi.Expand(req.URL, map[string]string{
80369		"project":  c.project,
80370		"zone":     c.zone,
80371		"instance": c.instance,
80372	})
80373	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80374}
80375
80376// Do executes the "compute.instances.detachDisk" call.
80377// Exactly one of *Operation or error will be non-nil. Any non-2xx
80378// status code is an error. Response headers are in either
80379// *Operation.ServerResponse.Header or (if a response was returned at
80380// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80381// to check whether the returned error was because
80382// http.StatusNotModified was returned.
80383func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80384	gensupport.SetOptions(c.urlParams_, opts...)
80385	res, err := c.doRequest("json")
80386	if res != nil && res.StatusCode == http.StatusNotModified {
80387		if res.Body != nil {
80388			res.Body.Close()
80389		}
80390		return nil, &googleapi.Error{
80391			Code:   res.StatusCode,
80392			Header: res.Header,
80393		}
80394	}
80395	if err != nil {
80396		return nil, err
80397	}
80398	defer googleapi.CloseBody(res)
80399	if err := googleapi.CheckResponse(res); err != nil {
80400		return nil, err
80401	}
80402	ret := &Operation{
80403		ServerResponse: googleapi.ServerResponse{
80404			Header:         res.Header,
80405			HTTPStatusCode: res.StatusCode,
80406		},
80407	}
80408	target := &ret
80409	if err := gensupport.DecodeResponse(target, res); err != nil {
80410		return nil, err
80411	}
80412	return ret, nil
80413	// {
80414	//   "description": "Detaches a disk from an instance.",
80415	//   "httpMethod": "POST",
80416	//   "id": "compute.instances.detachDisk",
80417	//   "parameterOrder": [
80418	//     "project",
80419	//     "zone",
80420	//     "instance",
80421	//     "deviceName"
80422	//   ],
80423	//   "parameters": {
80424	//     "deviceName": {
80425	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
80426	//       "location": "query",
80427	//       "required": true,
80428	//       "type": "string"
80429	//     },
80430	//     "instance": {
80431	//       "description": "Instance name for this request.",
80432	//       "location": "path",
80433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80434	//       "required": true,
80435	//       "type": "string"
80436	//     },
80437	//     "project": {
80438	//       "description": "Project ID for this request.",
80439	//       "location": "path",
80440	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80441	//       "required": true,
80442	//       "type": "string"
80443	//     },
80444	//     "requestId": {
80445	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80446	//       "location": "query",
80447	//       "type": "string"
80448	//     },
80449	//     "zone": {
80450	//       "description": "The name of the zone for this request.",
80451	//       "location": "path",
80452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80453	//       "required": true,
80454	//       "type": "string"
80455	//     }
80456	//   },
80457	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
80458	//   "response": {
80459	//     "$ref": "Operation"
80460	//   },
80461	//   "scopes": [
80462	//     "https://www.googleapis.com/auth/cloud-platform",
80463	//     "https://www.googleapis.com/auth/compute"
80464	//   ]
80465	// }
80466
80467}
80468
80469// method id "compute.instances.get":
80470
80471type InstancesGetCall struct {
80472	s            *Service
80473	project      string
80474	zone         string
80475	instance     string
80476	urlParams_   gensupport.URLParams
80477	ifNoneMatch_ string
80478	ctx_         context.Context
80479	header_      http.Header
80480}
80481
80482// Get: Returns the specified Instance resource. Gets a list of
80483// available instances by making a list() request.
80484// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
80485func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
80486	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80487	c.project = project
80488	c.zone = zone
80489	c.instance = instance
80490	return c
80491}
80492
80493// Fields allows partial responses to be retrieved. See
80494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80495// for more information.
80496func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
80497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80498	return c
80499}
80500
80501// IfNoneMatch sets the optional parameter which makes the operation
80502// fail if the object's ETag matches the given value. This is useful for
80503// getting updates only after the object has changed since the last
80504// request. Use googleapi.IsNotModified to check whether the response
80505// error from Do is the result of In-None-Match.
80506func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
80507	c.ifNoneMatch_ = entityTag
80508	return c
80509}
80510
80511// Context sets the context to be used in this call's Do method. Any
80512// pending HTTP request will be aborted if the provided context is
80513// canceled.
80514func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
80515	c.ctx_ = ctx
80516	return c
80517}
80518
80519// Header returns an http.Header that can be modified by the caller to
80520// add HTTP headers to the request.
80521func (c *InstancesGetCall) Header() http.Header {
80522	if c.header_ == nil {
80523		c.header_ = make(http.Header)
80524	}
80525	return c.header_
80526}
80527
80528func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
80529	reqHeaders := make(http.Header)
80530	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80531	for k, v := range c.header_ {
80532		reqHeaders[k] = v
80533	}
80534	reqHeaders.Set("User-Agent", c.s.userAgent())
80535	if c.ifNoneMatch_ != "" {
80536		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80537	}
80538	var body io.Reader = nil
80539	c.urlParams_.Set("alt", alt)
80540	c.urlParams_.Set("prettyPrint", "false")
80541	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
80542	urls += "?" + c.urlParams_.Encode()
80543	req, err := http.NewRequest("GET", urls, body)
80544	if err != nil {
80545		return nil, err
80546	}
80547	req.Header = reqHeaders
80548	googleapi.Expand(req.URL, map[string]string{
80549		"project":  c.project,
80550		"zone":     c.zone,
80551		"instance": c.instance,
80552	})
80553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80554}
80555
80556// Do executes the "compute.instances.get" call.
80557// Exactly one of *Instance or error will be non-nil. Any non-2xx status
80558// code is an error. Response headers are in either
80559// *Instance.ServerResponse.Header or (if a response was returned at
80560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80561// to check whether the returned error was because
80562// http.StatusNotModified was returned.
80563func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
80564	gensupport.SetOptions(c.urlParams_, opts...)
80565	res, err := c.doRequest("json")
80566	if res != nil && res.StatusCode == http.StatusNotModified {
80567		if res.Body != nil {
80568			res.Body.Close()
80569		}
80570		return nil, &googleapi.Error{
80571			Code:   res.StatusCode,
80572			Header: res.Header,
80573		}
80574	}
80575	if err != nil {
80576		return nil, err
80577	}
80578	defer googleapi.CloseBody(res)
80579	if err := googleapi.CheckResponse(res); err != nil {
80580		return nil, err
80581	}
80582	ret := &Instance{
80583		ServerResponse: googleapi.ServerResponse{
80584			Header:         res.Header,
80585			HTTPStatusCode: res.StatusCode,
80586		},
80587	}
80588	target := &ret
80589	if err := gensupport.DecodeResponse(target, res); err != nil {
80590		return nil, err
80591	}
80592	return ret, nil
80593	// {
80594	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
80595	//   "httpMethod": "GET",
80596	//   "id": "compute.instances.get",
80597	//   "parameterOrder": [
80598	//     "project",
80599	//     "zone",
80600	//     "instance"
80601	//   ],
80602	//   "parameters": {
80603	//     "instance": {
80604	//       "description": "Name of the instance resource to return.",
80605	//       "location": "path",
80606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80607	//       "required": true,
80608	//       "type": "string"
80609	//     },
80610	//     "project": {
80611	//       "description": "Project ID for this request.",
80612	//       "location": "path",
80613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80614	//       "required": true,
80615	//       "type": "string"
80616	//     },
80617	//     "zone": {
80618	//       "description": "The name of the zone for this request.",
80619	//       "location": "path",
80620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80621	//       "required": true,
80622	//       "type": "string"
80623	//     }
80624	//   },
80625	//   "path": "{project}/zones/{zone}/instances/{instance}",
80626	//   "response": {
80627	//     "$ref": "Instance"
80628	//   },
80629	//   "scopes": [
80630	//     "https://www.googleapis.com/auth/cloud-platform",
80631	//     "https://www.googleapis.com/auth/compute",
80632	//     "https://www.googleapis.com/auth/compute.readonly"
80633	//   ]
80634	// }
80635
80636}
80637
80638// method id "compute.instances.getEffectiveFirewalls":
80639
80640type InstancesGetEffectiveFirewallsCall struct {
80641	s            *Service
80642	project      string
80643	zone         string
80644	instance     string
80645	urlParams_   gensupport.URLParams
80646	ifNoneMatch_ string
80647	ctx_         context.Context
80648	header_      http.Header
80649}
80650
80651// GetEffectiveFirewalls: Returns effective firewalls applied to an
80652// interface of the instance.
80653func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
80654	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80655	c.project = project
80656	c.zone = zone
80657	c.instance = instance
80658	c.urlParams_.Set("networkInterface", networkInterface)
80659	return c
80660}
80661
80662// Fields allows partial responses to be retrieved. See
80663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80664// for more information.
80665func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
80666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80667	return c
80668}
80669
80670// IfNoneMatch sets the optional parameter which makes the operation
80671// fail if the object's ETag matches the given value. This is useful for
80672// getting updates only after the object has changed since the last
80673// request. Use googleapi.IsNotModified to check whether the response
80674// error from Do is the result of In-None-Match.
80675func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
80676	c.ifNoneMatch_ = entityTag
80677	return c
80678}
80679
80680// Context sets the context to be used in this call's Do method. Any
80681// pending HTTP request will be aborted if the provided context is
80682// canceled.
80683func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
80684	c.ctx_ = ctx
80685	return c
80686}
80687
80688// Header returns an http.Header that can be modified by the caller to
80689// add HTTP headers to the request.
80690func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
80691	if c.header_ == nil {
80692		c.header_ = make(http.Header)
80693	}
80694	return c.header_
80695}
80696
80697func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
80698	reqHeaders := make(http.Header)
80699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80700	for k, v := range c.header_ {
80701		reqHeaders[k] = v
80702	}
80703	reqHeaders.Set("User-Agent", c.s.userAgent())
80704	if c.ifNoneMatch_ != "" {
80705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80706	}
80707	var body io.Reader = nil
80708	c.urlParams_.Set("alt", alt)
80709	c.urlParams_.Set("prettyPrint", "false")
80710	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
80711	urls += "?" + c.urlParams_.Encode()
80712	req, err := http.NewRequest("GET", urls, body)
80713	if err != nil {
80714		return nil, err
80715	}
80716	req.Header = reqHeaders
80717	googleapi.Expand(req.URL, map[string]string{
80718		"project":  c.project,
80719		"zone":     c.zone,
80720		"instance": c.instance,
80721	})
80722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80723}
80724
80725// Do executes the "compute.instances.getEffectiveFirewalls" call.
80726// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
80727// be non-nil. Any non-2xx status code is an error. Response headers are
80728// in either
80729// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
80730// a response was returned at all) in error.(*googleapi.Error).Header.
80731// Use googleapi.IsNotModified to check whether the returned error was
80732// because http.StatusNotModified was returned.
80733func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
80734	gensupport.SetOptions(c.urlParams_, opts...)
80735	res, err := c.doRequest("json")
80736	if res != nil && res.StatusCode == http.StatusNotModified {
80737		if res.Body != nil {
80738			res.Body.Close()
80739		}
80740		return nil, &googleapi.Error{
80741			Code:   res.StatusCode,
80742			Header: res.Header,
80743		}
80744	}
80745	if err != nil {
80746		return nil, err
80747	}
80748	defer googleapi.CloseBody(res)
80749	if err := googleapi.CheckResponse(res); err != nil {
80750		return nil, err
80751	}
80752	ret := &InstancesGetEffectiveFirewallsResponse{
80753		ServerResponse: googleapi.ServerResponse{
80754			Header:         res.Header,
80755			HTTPStatusCode: res.StatusCode,
80756		},
80757	}
80758	target := &ret
80759	if err := gensupport.DecodeResponse(target, res); err != nil {
80760		return nil, err
80761	}
80762	return ret, nil
80763	// {
80764	//   "description": "Returns effective firewalls applied to an interface of the instance.",
80765	//   "httpMethod": "GET",
80766	//   "id": "compute.instances.getEffectiveFirewalls",
80767	//   "parameterOrder": [
80768	//     "project",
80769	//     "zone",
80770	//     "instance",
80771	//     "networkInterface"
80772	//   ],
80773	//   "parameters": {
80774	//     "instance": {
80775	//       "description": "Name of the instance scoping this request.",
80776	//       "location": "path",
80777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80778	//       "required": true,
80779	//       "type": "string"
80780	//     },
80781	//     "networkInterface": {
80782	//       "description": "The name of the network interface to get the effective firewalls.",
80783	//       "location": "query",
80784	//       "required": true,
80785	//       "type": "string"
80786	//     },
80787	//     "project": {
80788	//       "description": "Project ID for this request.",
80789	//       "location": "path",
80790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80791	//       "required": true,
80792	//       "type": "string"
80793	//     },
80794	//     "zone": {
80795	//       "description": "The name of the zone for this request.",
80796	//       "location": "path",
80797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80798	//       "required": true,
80799	//       "type": "string"
80800	//     }
80801	//   },
80802	//   "path": "{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
80803	//   "response": {
80804	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
80805	//   },
80806	//   "scopes": [
80807	//     "https://www.googleapis.com/auth/cloud-platform",
80808	//     "https://www.googleapis.com/auth/compute",
80809	//     "https://www.googleapis.com/auth/compute.readonly"
80810	//   ]
80811	// }
80812
80813}
80814
80815// method id "compute.instances.getGuestAttributes":
80816
80817type InstancesGetGuestAttributesCall struct {
80818	s            *Service
80819	project      string
80820	zone         string
80821	instance     string
80822	urlParams_   gensupport.URLParams
80823	ifNoneMatch_ string
80824	ctx_         context.Context
80825	header_      http.Header
80826}
80827
80828// GetGuestAttributes: Returns the specified guest attributes entry.
80829func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
80830	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80831	c.project = project
80832	c.zone = zone
80833	c.instance = instance
80834	return c
80835}
80836
80837// QueryPath sets the optional parameter "queryPath": Specifies the
80838// guest attributes path to be queried.
80839func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
80840	c.urlParams_.Set("queryPath", queryPath)
80841	return c
80842}
80843
80844// VariableKey sets the optional parameter "variableKey": Specifies the
80845// key for the guest attributes entry.
80846func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
80847	c.urlParams_.Set("variableKey", variableKey)
80848	return c
80849}
80850
80851// Fields allows partial responses to be retrieved. See
80852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80853// for more information.
80854func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
80855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80856	return c
80857}
80858
80859// IfNoneMatch sets the optional parameter which makes the operation
80860// fail if the object's ETag matches the given value. This is useful for
80861// getting updates only after the object has changed since the last
80862// request. Use googleapi.IsNotModified to check whether the response
80863// error from Do is the result of In-None-Match.
80864func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
80865	c.ifNoneMatch_ = entityTag
80866	return c
80867}
80868
80869// Context sets the context to be used in this call's Do method. Any
80870// pending HTTP request will be aborted if the provided context is
80871// canceled.
80872func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
80873	c.ctx_ = ctx
80874	return c
80875}
80876
80877// Header returns an http.Header that can be modified by the caller to
80878// add HTTP headers to the request.
80879func (c *InstancesGetGuestAttributesCall) Header() http.Header {
80880	if c.header_ == nil {
80881		c.header_ = make(http.Header)
80882	}
80883	return c.header_
80884}
80885
80886func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
80887	reqHeaders := make(http.Header)
80888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
80889	for k, v := range c.header_ {
80890		reqHeaders[k] = v
80891	}
80892	reqHeaders.Set("User-Agent", c.s.userAgent())
80893	if c.ifNoneMatch_ != "" {
80894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80895	}
80896	var body io.Reader = nil
80897	c.urlParams_.Set("alt", alt)
80898	c.urlParams_.Set("prettyPrint", "false")
80899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
80900	urls += "?" + c.urlParams_.Encode()
80901	req, err := http.NewRequest("GET", urls, body)
80902	if err != nil {
80903		return nil, err
80904	}
80905	req.Header = reqHeaders
80906	googleapi.Expand(req.URL, map[string]string{
80907		"project":  c.project,
80908		"zone":     c.zone,
80909		"instance": c.instance,
80910	})
80911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80912}
80913
80914// Do executes the "compute.instances.getGuestAttributes" call.
80915// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
80916// status code is an error. Response headers are in either
80917// *GuestAttributes.ServerResponse.Header or (if a response was returned
80918// at all) in error.(*googleapi.Error).Header. Use
80919// googleapi.IsNotModified to check whether the returned error was
80920// because http.StatusNotModified was returned.
80921func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
80922	gensupport.SetOptions(c.urlParams_, opts...)
80923	res, err := c.doRequest("json")
80924	if res != nil && res.StatusCode == http.StatusNotModified {
80925		if res.Body != nil {
80926			res.Body.Close()
80927		}
80928		return nil, &googleapi.Error{
80929			Code:   res.StatusCode,
80930			Header: res.Header,
80931		}
80932	}
80933	if err != nil {
80934		return nil, err
80935	}
80936	defer googleapi.CloseBody(res)
80937	if err := googleapi.CheckResponse(res); err != nil {
80938		return nil, err
80939	}
80940	ret := &GuestAttributes{
80941		ServerResponse: googleapi.ServerResponse{
80942			Header:         res.Header,
80943			HTTPStatusCode: res.StatusCode,
80944		},
80945	}
80946	target := &ret
80947	if err := gensupport.DecodeResponse(target, res); err != nil {
80948		return nil, err
80949	}
80950	return ret, nil
80951	// {
80952	//   "description": "Returns the specified guest attributes entry.",
80953	//   "httpMethod": "GET",
80954	//   "id": "compute.instances.getGuestAttributes",
80955	//   "parameterOrder": [
80956	//     "project",
80957	//     "zone",
80958	//     "instance"
80959	//   ],
80960	//   "parameters": {
80961	//     "instance": {
80962	//       "description": "Name of the instance scoping this request.",
80963	//       "location": "path",
80964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80965	//       "required": true,
80966	//       "type": "string"
80967	//     },
80968	//     "project": {
80969	//       "description": "Project ID for this request.",
80970	//       "location": "path",
80971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80972	//       "required": true,
80973	//       "type": "string"
80974	//     },
80975	//     "queryPath": {
80976	//       "description": "Specifies the guest attributes path to be queried.",
80977	//       "location": "query",
80978	//       "type": "string"
80979	//     },
80980	//     "variableKey": {
80981	//       "description": "Specifies the key for the guest attributes entry.",
80982	//       "location": "query",
80983	//       "type": "string"
80984	//     },
80985	//     "zone": {
80986	//       "description": "The name of the zone for this request.",
80987	//       "location": "path",
80988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80989	//       "required": true,
80990	//       "type": "string"
80991	//     }
80992	//   },
80993	//   "path": "{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
80994	//   "response": {
80995	//     "$ref": "GuestAttributes"
80996	//   },
80997	//   "scopes": [
80998	//     "https://www.googleapis.com/auth/cloud-platform",
80999	//     "https://www.googleapis.com/auth/compute",
81000	//     "https://www.googleapis.com/auth/compute.readonly"
81001	//   ]
81002	// }
81003
81004}
81005
81006// method id "compute.instances.getIamPolicy":
81007
81008type InstancesGetIamPolicyCall struct {
81009	s            *Service
81010	project      string
81011	zone         string
81012	resource     string
81013	urlParams_   gensupport.URLParams
81014	ifNoneMatch_ string
81015	ctx_         context.Context
81016	header_      http.Header
81017}
81018
81019// GetIamPolicy: Gets the access control policy for a resource. May be
81020// empty if no such policy or resource exists.
81021func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
81022	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81023	c.project = project
81024	c.zone = zone
81025	c.resource = resource
81026	return c
81027}
81028
81029// OptionsRequestedPolicyVersion sets the optional parameter
81030// "optionsRequestedPolicyVersion": Requested IAM Policy version.
81031func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
81032	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
81033	return c
81034}
81035
81036// Fields allows partial responses to be retrieved. See
81037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81038// for more information.
81039func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
81040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81041	return c
81042}
81043
81044// IfNoneMatch sets the optional parameter which makes the operation
81045// fail if the object's ETag matches the given value. This is useful for
81046// getting updates only after the object has changed since the last
81047// request. Use googleapi.IsNotModified to check whether the response
81048// error from Do is the result of In-None-Match.
81049func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
81050	c.ifNoneMatch_ = entityTag
81051	return c
81052}
81053
81054// Context sets the context to be used in this call's Do method. Any
81055// pending HTTP request will be aborted if the provided context is
81056// canceled.
81057func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
81058	c.ctx_ = ctx
81059	return c
81060}
81061
81062// Header returns an http.Header that can be modified by the caller to
81063// add HTTP headers to the request.
81064func (c *InstancesGetIamPolicyCall) Header() http.Header {
81065	if c.header_ == nil {
81066		c.header_ = make(http.Header)
81067	}
81068	return c.header_
81069}
81070
81071func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
81072	reqHeaders := make(http.Header)
81073	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81074	for k, v := range c.header_ {
81075		reqHeaders[k] = v
81076	}
81077	reqHeaders.Set("User-Agent", c.s.userAgent())
81078	if c.ifNoneMatch_ != "" {
81079		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81080	}
81081	var body io.Reader = nil
81082	c.urlParams_.Set("alt", alt)
81083	c.urlParams_.Set("prettyPrint", "false")
81084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/getIamPolicy")
81085	urls += "?" + c.urlParams_.Encode()
81086	req, err := http.NewRequest("GET", urls, body)
81087	if err != nil {
81088		return nil, err
81089	}
81090	req.Header = reqHeaders
81091	googleapi.Expand(req.URL, map[string]string{
81092		"project":  c.project,
81093		"zone":     c.zone,
81094		"resource": c.resource,
81095	})
81096	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81097}
81098
81099// Do executes the "compute.instances.getIamPolicy" call.
81100// Exactly one of *Policy or error will be non-nil. Any non-2xx status
81101// code is an error. Response headers are in either
81102// *Policy.ServerResponse.Header or (if a response was returned at all)
81103// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
81104// check whether the returned error was because http.StatusNotModified
81105// was returned.
81106func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
81107	gensupport.SetOptions(c.urlParams_, opts...)
81108	res, err := c.doRequest("json")
81109	if res != nil && res.StatusCode == http.StatusNotModified {
81110		if res.Body != nil {
81111			res.Body.Close()
81112		}
81113		return nil, &googleapi.Error{
81114			Code:   res.StatusCode,
81115			Header: res.Header,
81116		}
81117	}
81118	if err != nil {
81119		return nil, err
81120	}
81121	defer googleapi.CloseBody(res)
81122	if err := googleapi.CheckResponse(res); err != nil {
81123		return nil, err
81124	}
81125	ret := &Policy{
81126		ServerResponse: googleapi.ServerResponse{
81127			Header:         res.Header,
81128			HTTPStatusCode: res.StatusCode,
81129		},
81130	}
81131	target := &ret
81132	if err := gensupport.DecodeResponse(target, res); err != nil {
81133		return nil, err
81134	}
81135	return ret, nil
81136	// {
81137	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
81138	//   "httpMethod": "GET",
81139	//   "id": "compute.instances.getIamPolicy",
81140	//   "parameterOrder": [
81141	//     "project",
81142	//     "zone",
81143	//     "resource"
81144	//   ],
81145	//   "parameters": {
81146	//     "optionsRequestedPolicyVersion": {
81147	//       "description": "Requested IAM Policy version.",
81148	//       "format": "int32",
81149	//       "location": "query",
81150	//       "type": "integer"
81151	//     },
81152	//     "project": {
81153	//       "description": "Project ID for this request.",
81154	//       "location": "path",
81155	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81156	//       "required": true,
81157	//       "type": "string"
81158	//     },
81159	//     "resource": {
81160	//       "description": "Name or id of the resource for this request.",
81161	//       "location": "path",
81162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81163	//       "required": true,
81164	//       "type": "string"
81165	//     },
81166	//     "zone": {
81167	//       "description": "The name of the zone for this request.",
81168	//       "location": "path",
81169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81170	//       "required": true,
81171	//       "type": "string"
81172	//     }
81173	//   },
81174	//   "path": "{project}/zones/{zone}/instances/{resource}/getIamPolicy",
81175	//   "response": {
81176	//     "$ref": "Policy"
81177	//   },
81178	//   "scopes": [
81179	//     "https://www.googleapis.com/auth/cloud-platform",
81180	//     "https://www.googleapis.com/auth/compute",
81181	//     "https://www.googleapis.com/auth/compute.readonly"
81182	//   ]
81183	// }
81184
81185}
81186
81187// method id "compute.instances.getScreenshot":
81188
81189type InstancesGetScreenshotCall struct {
81190	s            *Service
81191	project      string
81192	zone         string
81193	instance     string
81194	urlParams_   gensupport.URLParams
81195	ifNoneMatch_ string
81196	ctx_         context.Context
81197	header_      http.Header
81198}
81199
81200// GetScreenshot: Returns the screenshot from the specified instance.
81201func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
81202	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81203	c.project = project
81204	c.zone = zone
81205	c.instance = instance
81206	return c
81207}
81208
81209// Fields allows partial responses to be retrieved. See
81210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81211// for more information.
81212func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
81213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81214	return c
81215}
81216
81217// IfNoneMatch sets the optional parameter which makes the operation
81218// fail if the object's ETag matches the given value. This is useful for
81219// getting updates only after the object has changed since the last
81220// request. Use googleapi.IsNotModified to check whether the response
81221// error from Do is the result of In-None-Match.
81222func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
81223	c.ifNoneMatch_ = entityTag
81224	return c
81225}
81226
81227// Context sets the context to be used in this call's Do method. Any
81228// pending HTTP request will be aborted if the provided context is
81229// canceled.
81230func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
81231	c.ctx_ = ctx
81232	return c
81233}
81234
81235// Header returns an http.Header that can be modified by the caller to
81236// add HTTP headers to the request.
81237func (c *InstancesGetScreenshotCall) Header() http.Header {
81238	if c.header_ == nil {
81239		c.header_ = make(http.Header)
81240	}
81241	return c.header_
81242}
81243
81244func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
81245	reqHeaders := make(http.Header)
81246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81247	for k, v := range c.header_ {
81248		reqHeaders[k] = v
81249	}
81250	reqHeaders.Set("User-Agent", c.s.userAgent())
81251	if c.ifNoneMatch_ != "" {
81252		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81253	}
81254	var body io.Reader = nil
81255	c.urlParams_.Set("alt", alt)
81256	c.urlParams_.Set("prettyPrint", "false")
81257	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/screenshot")
81258	urls += "?" + c.urlParams_.Encode()
81259	req, err := http.NewRequest("GET", urls, body)
81260	if err != nil {
81261		return nil, err
81262	}
81263	req.Header = reqHeaders
81264	googleapi.Expand(req.URL, map[string]string{
81265		"project":  c.project,
81266		"zone":     c.zone,
81267		"instance": c.instance,
81268	})
81269	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81270}
81271
81272// Do executes the "compute.instances.getScreenshot" call.
81273// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
81274// status code is an error. Response headers are in either
81275// *Screenshot.ServerResponse.Header or (if a response was returned at
81276// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81277// to check whether the returned error was because
81278// http.StatusNotModified was returned.
81279func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
81280	gensupport.SetOptions(c.urlParams_, opts...)
81281	res, err := c.doRequest("json")
81282	if res != nil && res.StatusCode == http.StatusNotModified {
81283		if res.Body != nil {
81284			res.Body.Close()
81285		}
81286		return nil, &googleapi.Error{
81287			Code:   res.StatusCode,
81288			Header: res.Header,
81289		}
81290	}
81291	if err != nil {
81292		return nil, err
81293	}
81294	defer googleapi.CloseBody(res)
81295	if err := googleapi.CheckResponse(res); err != nil {
81296		return nil, err
81297	}
81298	ret := &Screenshot{
81299		ServerResponse: googleapi.ServerResponse{
81300			Header:         res.Header,
81301			HTTPStatusCode: res.StatusCode,
81302		},
81303	}
81304	target := &ret
81305	if err := gensupport.DecodeResponse(target, res); err != nil {
81306		return nil, err
81307	}
81308	return ret, nil
81309	// {
81310	//   "description": "Returns the screenshot from the specified instance.",
81311	//   "httpMethod": "GET",
81312	//   "id": "compute.instances.getScreenshot",
81313	//   "parameterOrder": [
81314	//     "project",
81315	//     "zone",
81316	//     "instance"
81317	//   ],
81318	//   "parameters": {
81319	//     "instance": {
81320	//       "description": "Name of the instance scoping this request.",
81321	//       "location": "path",
81322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81323	//       "required": true,
81324	//       "type": "string"
81325	//     },
81326	//     "project": {
81327	//       "description": "Project ID for this request.",
81328	//       "location": "path",
81329	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81330	//       "required": true,
81331	//       "type": "string"
81332	//     },
81333	//     "zone": {
81334	//       "description": "The name of the zone for this request.",
81335	//       "location": "path",
81336	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81337	//       "required": true,
81338	//       "type": "string"
81339	//     }
81340	//   },
81341	//   "path": "{project}/zones/{zone}/instances/{instance}/screenshot",
81342	//   "response": {
81343	//     "$ref": "Screenshot"
81344	//   },
81345	//   "scopes": [
81346	//     "https://www.googleapis.com/auth/cloud-platform",
81347	//     "https://www.googleapis.com/auth/compute",
81348	//     "https://www.googleapis.com/auth/compute.readonly"
81349	//   ]
81350	// }
81351
81352}
81353
81354// method id "compute.instances.getSerialPortOutput":
81355
81356type InstancesGetSerialPortOutputCall struct {
81357	s            *Service
81358	project      string
81359	zone         string
81360	instance     string
81361	urlParams_   gensupport.URLParams
81362	ifNoneMatch_ string
81363	ctx_         context.Context
81364	header_      http.Header
81365}
81366
81367// GetSerialPortOutput: Returns the last 1 MB of serial port output from
81368// the specified instance.
81369// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
81370func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
81371	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81372	c.project = project
81373	c.zone = zone
81374	c.instance = instance
81375	return c
81376}
81377
81378// Port sets the optional parameter "port": Specifies which COM or
81379// serial port to retrieve data from.
81380func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
81381	c.urlParams_.Set("port", fmt.Sprint(port))
81382	return c
81383}
81384
81385// Start sets the optional parameter "start": Returns output starting
81386// from a specific byte position. Use this to page through output when
81387// the output is too large to return in a single request. For the
81388// initial request, leave this field unspecified. For subsequent calls,
81389// this field should be set to the next value returned in the previous
81390// call.
81391func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
81392	c.urlParams_.Set("start", fmt.Sprint(start))
81393	return c
81394}
81395
81396// Fields allows partial responses to be retrieved. See
81397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81398// for more information.
81399func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
81400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81401	return c
81402}
81403
81404// IfNoneMatch sets the optional parameter which makes the operation
81405// fail if the object's ETag matches the given value. This is useful for
81406// getting updates only after the object has changed since the last
81407// request. Use googleapi.IsNotModified to check whether the response
81408// error from Do is the result of In-None-Match.
81409func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
81410	c.ifNoneMatch_ = entityTag
81411	return c
81412}
81413
81414// Context sets the context to be used in this call's Do method. Any
81415// pending HTTP request will be aborted if the provided context is
81416// canceled.
81417func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
81418	c.ctx_ = ctx
81419	return c
81420}
81421
81422// Header returns an http.Header that can be modified by the caller to
81423// add HTTP headers to the request.
81424func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
81425	if c.header_ == nil {
81426		c.header_ = make(http.Header)
81427	}
81428	return c.header_
81429}
81430
81431func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
81432	reqHeaders := make(http.Header)
81433	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81434	for k, v := range c.header_ {
81435		reqHeaders[k] = v
81436	}
81437	reqHeaders.Set("User-Agent", c.s.userAgent())
81438	if c.ifNoneMatch_ != "" {
81439		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81440	}
81441	var body io.Reader = nil
81442	c.urlParams_.Set("alt", alt)
81443	c.urlParams_.Set("prettyPrint", "false")
81444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
81445	urls += "?" + c.urlParams_.Encode()
81446	req, err := http.NewRequest("GET", urls, body)
81447	if err != nil {
81448		return nil, err
81449	}
81450	req.Header = reqHeaders
81451	googleapi.Expand(req.URL, map[string]string{
81452		"project":  c.project,
81453		"zone":     c.zone,
81454		"instance": c.instance,
81455	})
81456	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81457}
81458
81459// Do executes the "compute.instances.getSerialPortOutput" call.
81460// Exactly one of *SerialPortOutput or error will be non-nil. Any
81461// non-2xx status code is an error. Response headers are in either
81462// *SerialPortOutput.ServerResponse.Header or (if a response was
81463// returned at all) in error.(*googleapi.Error).Header. Use
81464// googleapi.IsNotModified to check whether the returned error was
81465// because http.StatusNotModified was returned.
81466func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
81467	gensupport.SetOptions(c.urlParams_, opts...)
81468	res, err := c.doRequest("json")
81469	if res != nil && res.StatusCode == http.StatusNotModified {
81470		if res.Body != nil {
81471			res.Body.Close()
81472		}
81473		return nil, &googleapi.Error{
81474			Code:   res.StatusCode,
81475			Header: res.Header,
81476		}
81477	}
81478	if err != nil {
81479		return nil, err
81480	}
81481	defer googleapi.CloseBody(res)
81482	if err := googleapi.CheckResponse(res); err != nil {
81483		return nil, err
81484	}
81485	ret := &SerialPortOutput{
81486		ServerResponse: googleapi.ServerResponse{
81487			Header:         res.Header,
81488			HTTPStatusCode: res.StatusCode,
81489		},
81490	}
81491	target := &ret
81492	if err := gensupport.DecodeResponse(target, res); err != nil {
81493		return nil, err
81494	}
81495	return ret, nil
81496	// {
81497	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
81498	//   "httpMethod": "GET",
81499	//   "id": "compute.instances.getSerialPortOutput",
81500	//   "parameterOrder": [
81501	//     "project",
81502	//     "zone",
81503	//     "instance"
81504	//   ],
81505	//   "parameters": {
81506	//     "instance": {
81507	//       "description": "Name of the instance scoping this request.",
81508	//       "location": "path",
81509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81510	//       "required": true,
81511	//       "type": "string"
81512	//     },
81513	//     "port": {
81514	//       "default": "1",
81515	//       "description": "Specifies which COM or serial port to retrieve data from.",
81516	//       "format": "int32",
81517	//       "location": "query",
81518	//       "maximum": "4",
81519	//       "minimum": "1",
81520	//       "type": "integer"
81521	//     },
81522	//     "project": {
81523	//       "description": "Project ID for this request.",
81524	//       "location": "path",
81525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81526	//       "required": true,
81527	//       "type": "string"
81528	//     },
81529	//     "start": {
81530	//       "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.",
81531	//       "format": "int64",
81532	//       "location": "query",
81533	//       "type": "string"
81534	//     },
81535	//     "zone": {
81536	//       "description": "The name of the zone for this request.",
81537	//       "location": "path",
81538	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81539	//       "required": true,
81540	//       "type": "string"
81541	//     }
81542	//   },
81543	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
81544	//   "response": {
81545	//     "$ref": "SerialPortOutput"
81546	//   },
81547	//   "scopes": [
81548	//     "https://www.googleapis.com/auth/cloud-platform",
81549	//     "https://www.googleapis.com/auth/compute",
81550	//     "https://www.googleapis.com/auth/compute.readonly"
81551	//   ]
81552	// }
81553
81554}
81555
81556// method id "compute.instances.getShieldedInstanceIdentity":
81557
81558type InstancesGetShieldedInstanceIdentityCall struct {
81559	s            *Service
81560	project      string
81561	zone         string
81562	instance     string
81563	urlParams_   gensupport.URLParams
81564	ifNoneMatch_ string
81565	ctx_         context.Context
81566	header_      http.Header
81567}
81568
81569// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
81570// of an instance
81571func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
81572	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81573	c.project = project
81574	c.zone = zone
81575	c.instance = instance
81576	return c
81577}
81578
81579// Fields allows partial responses to be retrieved. See
81580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81581// for more information.
81582func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
81583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81584	return c
81585}
81586
81587// IfNoneMatch sets the optional parameter which makes the operation
81588// fail if the object's ETag matches the given value. This is useful for
81589// getting updates only after the object has changed since the last
81590// request. Use googleapi.IsNotModified to check whether the response
81591// error from Do is the result of In-None-Match.
81592func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
81593	c.ifNoneMatch_ = entityTag
81594	return c
81595}
81596
81597// Context sets the context to be used in this call's Do method. Any
81598// pending HTTP request will be aborted if the provided context is
81599// canceled.
81600func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
81601	c.ctx_ = ctx
81602	return c
81603}
81604
81605// Header returns an http.Header that can be modified by the caller to
81606// add HTTP headers to the request.
81607func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
81608	if c.header_ == nil {
81609		c.header_ = make(http.Header)
81610	}
81611	return c.header_
81612}
81613
81614func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
81615	reqHeaders := make(http.Header)
81616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81617	for k, v := range c.header_ {
81618		reqHeaders[k] = v
81619	}
81620	reqHeaders.Set("User-Agent", c.s.userAgent())
81621	if c.ifNoneMatch_ != "" {
81622		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81623	}
81624	var body io.Reader = nil
81625	c.urlParams_.Set("alt", alt)
81626	c.urlParams_.Set("prettyPrint", "false")
81627	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
81628	urls += "?" + c.urlParams_.Encode()
81629	req, err := http.NewRequest("GET", urls, body)
81630	if err != nil {
81631		return nil, err
81632	}
81633	req.Header = reqHeaders
81634	googleapi.Expand(req.URL, map[string]string{
81635		"project":  c.project,
81636		"zone":     c.zone,
81637		"instance": c.instance,
81638	})
81639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81640}
81641
81642// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
81643// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
81644// Any non-2xx status code is an error. Response headers are in either
81645// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
81646// returned at all) in error.(*googleapi.Error).Header. Use
81647// googleapi.IsNotModified to check whether the returned error was
81648// because http.StatusNotModified was returned.
81649func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
81650	gensupport.SetOptions(c.urlParams_, opts...)
81651	res, err := c.doRequest("json")
81652	if res != nil && res.StatusCode == http.StatusNotModified {
81653		if res.Body != nil {
81654			res.Body.Close()
81655		}
81656		return nil, &googleapi.Error{
81657			Code:   res.StatusCode,
81658			Header: res.Header,
81659		}
81660	}
81661	if err != nil {
81662		return nil, err
81663	}
81664	defer googleapi.CloseBody(res)
81665	if err := googleapi.CheckResponse(res); err != nil {
81666		return nil, err
81667	}
81668	ret := &ShieldedInstanceIdentity{
81669		ServerResponse: googleapi.ServerResponse{
81670			Header:         res.Header,
81671			HTTPStatusCode: res.StatusCode,
81672		},
81673	}
81674	target := &ret
81675	if err := gensupport.DecodeResponse(target, res); err != nil {
81676		return nil, err
81677	}
81678	return ret, nil
81679	// {
81680	//   "description": "Returns the Shielded Instance Identity of an instance",
81681	//   "httpMethod": "GET",
81682	//   "id": "compute.instances.getShieldedInstanceIdentity",
81683	//   "parameterOrder": [
81684	//     "project",
81685	//     "zone",
81686	//     "instance"
81687	//   ],
81688	//   "parameters": {
81689	//     "instance": {
81690	//       "description": "Name or id of the instance scoping this request.",
81691	//       "location": "path",
81692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81693	//       "required": true,
81694	//       "type": "string"
81695	//     },
81696	//     "project": {
81697	//       "description": "Project ID for this request.",
81698	//       "location": "path",
81699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81700	//       "required": true,
81701	//       "type": "string"
81702	//     },
81703	//     "zone": {
81704	//       "description": "The name of the zone for this request.",
81705	//       "location": "path",
81706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81707	//       "required": true,
81708	//       "type": "string"
81709	//     }
81710	//   },
81711	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
81712	//   "response": {
81713	//     "$ref": "ShieldedInstanceIdentity"
81714	//   },
81715	//   "scopes": [
81716	//     "https://www.googleapis.com/auth/cloud-platform",
81717	//     "https://www.googleapis.com/auth/compute",
81718	//     "https://www.googleapis.com/auth/compute.readonly"
81719	//   ]
81720	// }
81721
81722}
81723
81724// method id "compute.instances.getShieldedVmIdentity":
81725
81726type InstancesGetShieldedVmIdentityCall struct {
81727	s            *Service
81728	project      string
81729	zone         string
81730	instance     string
81731	urlParams_   gensupport.URLParams
81732	ifNoneMatch_ string
81733	ctx_         context.Context
81734	header_      http.Header
81735}
81736
81737// GetShieldedVmIdentity: Returns the Shielded VM Identity of an
81738// instance
81739func (r *InstancesService) GetShieldedVmIdentity(project string, zone string, instance string) *InstancesGetShieldedVmIdentityCall {
81740	c := &InstancesGetShieldedVmIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81741	c.project = project
81742	c.zone = zone
81743	c.instance = instance
81744	return c
81745}
81746
81747// Fields allows partial responses to be retrieved. See
81748// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81749// for more information.
81750func (c *InstancesGetShieldedVmIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedVmIdentityCall {
81751	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81752	return c
81753}
81754
81755// IfNoneMatch sets the optional parameter which makes the operation
81756// fail if the object's ETag matches the given value. This is useful for
81757// getting updates only after the object has changed since the last
81758// request. Use googleapi.IsNotModified to check whether the response
81759// error from Do is the result of In-None-Match.
81760func (c *InstancesGetShieldedVmIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedVmIdentityCall {
81761	c.ifNoneMatch_ = entityTag
81762	return c
81763}
81764
81765// Context sets the context to be used in this call's Do method. Any
81766// pending HTTP request will be aborted if the provided context is
81767// canceled.
81768func (c *InstancesGetShieldedVmIdentityCall) Context(ctx context.Context) *InstancesGetShieldedVmIdentityCall {
81769	c.ctx_ = ctx
81770	return c
81771}
81772
81773// Header returns an http.Header that can be modified by the caller to
81774// add HTTP headers to the request.
81775func (c *InstancesGetShieldedVmIdentityCall) Header() http.Header {
81776	if c.header_ == nil {
81777		c.header_ = make(http.Header)
81778	}
81779	return c.header_
81780}
81781
81782func (c *InstancesGetShieldedVmIdentityCall) doRequest(alt string) (*http.Response, error) {
81783	reqHeaders := make(http.Header)
81784	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81785	for k, v := range c.header_ {
81786		reqHeaders[k] = v
81787	}
81788	reqHeaders.Set("User-Agent", c.s.userAgent())
81789	if c.ifNoneMatch_ != "" {
81790		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81791	}
81792	var body io.Reader = nil
81793	c.urlParams_.Set("alt", alt)
81794	c.urlParams_.Set("prettyPrint", "false")
81795	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity")
81796	urls += "?" + c.urlParams_.Encode()
81797	req, err := http.NewRequest("GET", urls, body)
81798	if err != nil {
81799		return nil, err
81800	}
81801	req.Header = reqHeaders
81802	googleapi.Expand(req.URL, map[string]string{
81803		"project":  c.project,
81804		"zone":     c.zone,
81805		"instance": c.instance,
81806	})
81807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81808}
81809
81810// Do executes the "compute.instances.getShieldedVmIdentity" call.
81811// Exactly one of *ShieldedVmIdentity or error will be non-nil. Any
81812// non-2xx status code is an error. Response headers are in either
81813// *ShieldedVmIdentity.ServerResponse.Header or (if a response was
81814// returned at all) in error.(*googleapi.Error).Header. Use
81815// googleapi.IsNotModified to check whether the returned error was
81816// because http.StatusNotModified was returned.
81817func (c *InstancesGetShieldedVmIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedVmIdentity, error) {
81818	gensupport.SetOptions(c.urlParams_, opts...)
81819	res, err := c.doRequest("json")
81820	if res != nil && res.StatusCode == http.StatusNotModified {
81821		if res.Body != nil {
81822			res.Body.Close()
81823		}
81824		return nil, &googleapi.Error{
81825			Code:   res.StatusCode,
81826			Header: res.Header,
81827		}
81828	}
81829	if err != nil {
81830		return nil, err
81831	}
81832	defer googleapi.CloseBody(res)
81833	if err := googleapi.CheckResponse(res); err != nil {
81834		return nil, err
81835	}
81836	ret := &ShieldedVmIdentity{
81837		ServerResponse: googleapi.ServerResponse{
81838			Header:         res.Header,
81839			HTTPStatusCode: res.StatusCode,
81840		},
81841	}
81842	target := &ret
81843	if err := gensupport.DecodeResponse(target, res); err != nil {
81844		return nil, err
81845	}
81846	return ret, nil
81847	// {
81848	//   "description": "Returns the Shielded VM Identity of an instance",
81849	//   "httpMethod": "GET",
81850	//   "id": "compute.instances.getShieldedVmIdentity",
81851	//   "parameterOrder": [
81852	//     "project",
81853	//     "zone",
81854	//     "instance"
81855	//   ],
81856	//   "parameters": {
81857	//     "instance": {
81858	//       "description": "Name of the instance scoping this request.",
81859	//       "location": "path",
81860	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81861	//       "required": true,
81862	//       "type": "string"
81863	//     },
81864	//     "project": {
81865	//       "description": "Project ID for this request.",
81866	//       "location": "path",
81867	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81868	//       "required": true,
81869	//       "type": "string"
81870	//     },
81871	//     "zone": {
81872	//       "description": "The name of the zone for this request.",
81873	//       "location": "path",
81874	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81875	//       "required": true,
81876	//       "type": "string"
81877	//     }
81878	//   },
81879	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity",
81880	//   "response": {
81881	//     "$ref": "ShieldedVmIdentity"
81882	//   },
81883	//   "scopes": [
81884	//     "https://www.googleapis.com/auth/cloud-platform",
81885	//     "https://www.googleapis.com/auth/compute",
81886	//     "https://www.googleapis.com/auth/compute.readonly"
81887	//   ]
81888	// }
81889
81890}
81891
81892// method id "compute.instances.insert":
81893
81894type InstancesInsertCall struct {
81895	s          *Service
81896	project    string
81897	zone       string
81898	instance   *Instance
81899	urlParams_ gensupport.URLParams
81900	ctx_       context.Context
81901	header_    http.Header
81902}
81903
81904// Insert: Creates an instance resource in the specified project using
81905// the data included in the request.
81906// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
81907func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
81908	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81909	c.project = project
81910	c.zone = zone
81911	c.instance = instance
81912	return c
81913}
81914
81915// RequestId sets the optional parameter "requestId": An optional
81916// request ID to identify requests. Specify a unique request ID so that
81917// if you must retry your request, the server will know to ignore the
81918// request if it has already been completed.
81919//
81920// For example, consider a situation where you make an initial request
81921// and the request times out. If you make the request again with the
81922// same request ID, the server can check if original operation with the
81923// same request ID was received, and if so, will ignore the second
81924// request. This prevents clients from accidentally creating duplicate
81925// commitments.
81926//
81927// The request ID must be a valid UUID with the exception that zero UUID
81928// is not supported (00000000-0000-0000-0000-000000000000).
81929func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
81930	c.urlParams_.Set("requestId", requestId)
81931	return c
81932}
81933
81934// SourceInstanceTemplate sets the optional parameter
81935// "sourceInstanceTemplate": Specifies instance template to create the
81936// instance.
81937//
81938// This field is optional. It can be a full or partial URL. For example,
81939// the following are all valid URLs to an instance template:
81940// -
81941// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
81942// - projects/project/global/instanceTemplates/instanceTemplate
81943// - global/instanceTemplates/instanceTemplate
81944func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
81945	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
81946	return c
81947}
81948
81949// SourceMachineImage sets the optional parameter "sourceMachineImage":
81950// Specifies instance machine to create the instance.
81951//
81952// This field is optional. It can be a full or partial URL. For example,
81953// the following are all valid URLs to an instance template:
81954// -
81955// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
81956// - projects/project/global/global/machineImages/machineImage
81957// - global/machineImages/machineImage
81958func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall {
81959	c.urlParams_.Set("sourceMachineImage", sourceMachineImage)
81960	return c
81961}
81962
81963// Fields allows partial responses to be retrieved. See
81964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81965// for more information.
81966func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
81967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81968	return c
81969}
81970
81971// Context sets the context to be used in this call's Do method. Any
81972// pending HTTP request will be aborted if the provided context is
81973// canceled.
81974func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
81975	c.ctx_ = ctx
81976	return c
81977}
81978
81979// Header returns an http.Header that can be modified by the caller to
81980// add HTTP headers to the request.
81981func (c *InstancesInsertCall) Header() http.Header {
81982	if c.header_ == nil {
81983		c.header_ = make(http.Header)
81984	}
81985	return c.header_
81986}
81987
81988func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
81989	reqHeaders := make(http.Header)
81990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
81991	for k, v := range c.header_ {
81992		reqHeaders[k] = v
81993	}
81994	reqHeaders.Set("User-Agent", c.s.userAgent())
81995	var body io.Reader = nil
81996	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
81997	if err != nil {
81998		return nil, err
81999	}
82000	reqHeaders.Set("Content-Type", "application/json")
82001	c.urlParams_.Set("alt", alt)
82002	c.urlParams_.Set("prettyPrint", "false")
82003	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
82004	urls += "?" + c.urlParams_.Encode()
82005	req, err := http.NewRequest("POST", urls, body)
82006	if err != nil {
82007		return nil, err
82008	}
82009	req.Header = reqHeaders
82010	googleapi.Expand(req.URL, map[string]string{
82011		"project": c.project,
82012		"zone":    c.zone,
82013	})
82014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82015}
82016
82017// Do executes the "compute.instances.insert" call.
82018// Exactly one of *Operation or error will be non-nil. Any non-2xx
82019// status code is an error. Response headers are in either
82020// *Operation.ServerResponse.Header or (if a response was returned at
82021// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82022// to check whether the returned error was because
82023// http.StatusNotModified was returned.
82024func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82025	gensupport.SetOptions(c.urlParams_, opts...)
82026	res, err := c.doRequest("json")
82027	if res != nil && res.StatusCode == http.StatusNotModified {
82028		if res.Body != nil {
82029			res.Body.Close()
82030		}
82031		return nil, &googleapi.Error{
82032			Code:   res.StatusCode,
82033			Header: res.Header,
82034		}
82035	}
82036	if err != nil {
82037		return nil, err
82038	}
82039	defer googleapi.CloseBody(res)
82040	if err := googleapi.CheckResponse(res); err != nil {
82041		return nil, err
82042	}
82043	ret := &Operation{
82044		ServerResponse: googleapi.ServerResponse{
82045			Header:         res.Header,
82046			HTTPStatusCode: res.StatusCode,
82047		},
82048	}
82049	target := &ret
82050	if err := gensupport.DecodeResponse(target, res); err != nil {
82051		return nil, err
82052	}
82053	return ret, nil
82054	// {
82055	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
82056	//   "httpMethod": "POST",
82057	//   "id": "compute.instances.insert",
82058	//   "parameterOrder": [
82059	//     "project",
82060	//     "zone"
82061	//   ],
82062	//   "parameters": {
82063	//     "project": {
82064	//       "description": "Project ID for this request.",
82065	//       "location": "path",
82066	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82067	//       "required": true,
82068	//       "type": "string"
82069	//     },
82070	//     "requestId": {
82071	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82072	//       "location": "query",
82073	//       "type": "string"
82074	//     },
82075	//     "sourceInstanceTemplate": {
82076	//       "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",
82077	//       "location": "query",
82078	//       "type": "string"
82079	//     },
82080	//     "sourceMachineImage": {
82081	//       "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",
82082	//       "location": "query",
82083	//       "type": "string"
82084	//     },
82085	//     "zone": {
82086	//       "description": "The name of the zone for this request.",
82087	//       "location": "path",
82088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82089	//       "required": true,
82090	//       "type": "string"
82091	//     }
82092	//   },
82093	//   "path": "{project}/zones/{zone}/instances",
82094	//   "request": {
82095	//     "$ref": "Instance"
82096	//   },
82097	//   "response": {
82098	//     "$ref": "Operation"
82099	//   },
82100	//   "scopes": [
82101	//     "https://www.googleapis.com/auth/cloud-platform",
82102	//     "https://www.googleapis.com/auth/compute"
82103	//   ]
82104	// }
82105
82106}
82107
82108// method id "compute.instances.list":
82109
82110type InstancesListCall struct {
82111	s            *Service
82112	project      string
82113	zone         string
82114	urlParams_   gensupport.URLParams
82115	ifNoneMatch_ string
82116	ctx_         context.Context
82117	header_      http.Header
82118}
82119
82120// List: Retrieves the list of instances contained within the specified
82121// zone.
82122// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
82123func (r *InstancesService) List(project string, zone string) *InstancesListCall {
82124	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82125	c.project = project
82126	c.zone = zone
82127	return c
82128}
82129
82130// Filter sets the optional parameter "filter": A filter expression that
82131// filters resources listed in the response. The expression must specify
82132// the field name, a comparison operator, and the value that you want to
82133// use for filtering. The value must be a string, a number, or a
82134// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82135// `<`.
82136//
82137// For example, if you are filtering Compute Engine instances, you can
82138// exclude instances named `example-instance` by specifying `name !=
82139// example-instance`.
82140//
82141// You can also filter nested fields. For example, you could specify
82142// `scheduling.automaticRestart = false` to include instances only if
82143// they are not scheduled for automatic restarts. You can use filtering
82144// on nested fields to filter based on resource labels.
82145//
82146// To filter on multiple expressions, provide each separate expression
82147// within parentheses. For example: ``` (scheduling.automaticRestart =
82148// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82149// is an `AND` expression. However, you can include `AND` and `OR`
82150// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82151// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82152// (scheduling.automaticRestart = true) ```
82153func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
82154	c.urlParams_.Set("filter", filter)
82155	return c
82156}
82157
82158// MaxResults sets the optional parameter "maxResults": The maximum
82159// number of results per page that should be returned. If the number of
82160// available results is larger than `maxResults`, Compute Engine returns
82161// a `nextPageToken` that can be used to get the next page of results in
82162// subsequent list requests. Acceptable values are `0` to `500`,
82163// inclusive. (Default: `500`)
82164func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
82165	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82166	return c
82167}
82168
82169// OrderBy sets the optional parameter "orderBy": Sorts list results by
82170// a certain order. By default, results are returned in alphanumerical
82171// order based on the resource name.
82172//
82173// You can also sort results in descending order based on the creation
82174// timestamp using `orderBy="creationTimestamp desc". This sorts
82175// results based on the `creationTimestamp` field in reverse
82176// chronological order (newest result first). Use this to sort resources
82177// like operations so that the newest operation is returned
82178// first.
82179//
82180// Currently, only sorting by `name` or `creationTimestamp desc` is
82181// supported.
82182func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
82183	c.urlParams_.Set("orderBy", orderBy)
82184	return c
82185}
82186
82187// PageToken sets the optional parameter "pageToken": Specifies a page
82188// token to use. Set `pageToken` to the `nextPageToken` returned by a
82189// previous list request to get the next page of results.
82190func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
82191	c.urlParams_.Set("pageToken", pageToken)
82192	return c
82193}
82194
82195// Fields allows partial responses to be retrieved. See
82196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82197// for more information.
82198func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
82199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82200	return c
82201}
82202
82203// IfNoneMatch sets the optional parameter which makes the operation
82204// fail if the object's ETag matches the given value. This is useful for
82205// getting updates only after the object has changed since the last
82206// request. Use googleapi.IsNotModified to check whether the response
82207// error from Do is the result of In-None-Match.
82208func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
82209	c.ifNoneMatch_ = entityTag
82210	return c
82211}
82212
82213// Context sets the context to be used in this call's Do method. Any
82214// pending HTTP request will be aborted if the provided context is
82215// canceled.
82216func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
82217	c.ctx_ = ctx
82218	return c
82219}
82220
82221// Header returns an http.Header that can be modified by the caller to
82222// add HTTP headers to the request.
82223func (c *InstancesListCall) Header() http.Header {
82224	if c.header_ == nil {
82225		c.header_ = make(http.Header)
82226	}
82227	return c.header_
82228}
82229
82230func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
82231	reqHeaders := make(http.Header)
82232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82233	for k, v := range c.header_ {
82234		reqHeaders[k] = v
82235	}
82236	reqHeaders.Set("User-Agent", c.s.userAgent())
82237	if c.ifNoneMatch_ != "" {
82238		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82239	}
82240	var body io.Reader = nil
82241	c.urlParams_.Set("alt", alt)
82242	c.urlParams_.Set("prettyPrint", "false")
82243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
82244	urls += "?" + c.urlParams_.Encode()
82245	req, err := http.NewRequest("GET", urls, body)
82246	if err != nil {
82247		return nil, err
82248	}
82249	req.Header = reqHeaders
82250	googleapi.Expand(req.URL, map[string]string{
82251		"project": c.project,
82252		"zone":    c.zone,
82253	})
82254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82255}
82256
82257// Do executes the "compute.instances.list" call.
82258// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
82259// status code is an error. Response headers are in either
82260// *InstanceList.ServerResponse.Header or (if a response was returned at
82261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82262// to check whether the returned error was because
82263// http.StatusNotModified was returned.
82264func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
82265	gensupport.SetOptions(c.urlParams_, opts...)
82266	res, err := c.doRequest("json")
82267	if res != nil && res.StatusCode == http.StatusNotModified {
82268		if res.Body != nil {
82269			res.Body.Close()
82270		}
82271		return nil, &googleapi.Error{
82272			Code:   res.StatusCode,
82273			Header: res.Header,
82274		}
82275	}
82276	if err != nil {
82277		return nil, err
82278	}
82279	defer googleapi.CloseBody(res)
82280	if err := googleapi.CheckResponse(res); err != nil {
82281		return nil, err
82282	}
82283	ret := &InstanceList{
82284		ServerResponse: googleapi.ServerResponse{
82285			Header:         res.Header,
82286			HTTPStatusCode: res.StatusCode,
82287		},
82288	}
82289	target := &ret
82290	if err := gensupport.DecodeResponse(target, res); err != nil {
82291		return nil, err
82292	}
82293	return ret, nil
82294	// {
82295	//   "description": "Retrieves the list of instances contained within the specified zone.",
82296	//   "httpMethod": "GET",
82297	//   "id": "compute.instances.list",
82298	//   "parameterOrder": [
82299	//     "project",
82300	//     "zone"
82301	//   ],
82302	//   "parameters": {
82303	//     "filter": {
82304	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82305	//       "location": "query",
82306	//       "type": "string"
82307	//     },
82308	//     "maxResults": {
82309	//       "default": "500",
82310	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82311	//       "format": "uint32",
82312	//       "location": "query",
82313	//       "minimum": "0",
82314	//       "type": "integer"
82315	//     },
82316	//     "orderBy": {
82317	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
82318	//       "location": "query",
82319	//       "type": "string"
82320	//     },
82321	//     "pageToken": {
82322	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82323	//       "location": "query",
82324	//       "type": "string"
82325	//     },
82326	//     "project": {
82327	//       "description": "Project ID for this request.",
82328	//       "location": "path",
82329	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82330	//       "required": true,
82331	//       "type": "string"
82332	//     },
82333	//     "zone": {
82334	//       "description": "The name of the zone for this request.",
82335	//       "location": "path",
82336	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82337	//       "required": true,
82338	//       "type": "string"
82339	//     }
82340	//   },
82341	//   "path": "{project}/zones/{zone}/instances",
82342	//   "response": {
82343	//     "$ref": "InstanceList"
82344	//   },
82345	//   "scopes": [
82346	//     "https://www.googleapis.com/auth/cloud-platform",
82347	//     "https://www.googleapis.com/auth/compute",
82348	//     "https://www.googleapis.com/auth/compute.readonly"
82349	//   ]
82350	// }
82351
82352}
82353
82354// Pages invokes f for each page of results.
82355// A non-nil error returned from f will halt the iteration.
82356// The provided context supersedes any context provided to the Context method.
82357func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
82358	c.ctx_ = ctx
82359	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82360	for {
82361		x, err := c.Do()
82362		if err != nil {
82363			return err
82364		}
82365		if err := f(x); err != nil {
82366			return err
82367		}
82368		if x.NextPageToken == "" {
82369			return nil
82370		}
82371		c.PageToken(x.NextPageToken)
82372	}
82373}
82374
82375// method id "compute.instances.listReferrers":
82376
82377type InstancesListReferrersCall struct {
82378	s            *Service
82379	project      string
82380	zone         string
82381	instance     string
82382	urlParams_   gensupport.URLParams
82383	ifNoneMatch_ string
82384	ctx_         context.Context
82385	header_      http.Header
82386}
82387
82388// ListReferrers: Retrieves a list of resources that refer to the VM
82389// instance specified in the request. For example, if the VM instance is
82390// part of a managed instance group, the referrers list includes the
82391// managed instance group. For more information, read Viewing Referrers
82392// to VM Instances.
82393func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
82394	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82395	c.project = project
82396	c.zone = zone
82397	c.instance = instance
82398	return c
82399}
82400
82401// Filter sets the optional parameter "filter": A filter expression that
82402// filters resources listed in the response. The expression must specify
82403// the field name, a comparison operator, and the value that you want to
82404// use for filtering. The value must be a string, a number, or a
82405// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82406// `<`.
82407//
82408// For example, if you are filtering Compute Engine instances, you can
82409// exclude instances named `example-instance` by specifying `name !=
82410// example-instance`.
82411//
82412// You can also filter nested fields. For example, you could specify
82413// `scheduling.automaticRestart = false` to include instances only if
82414// they are not scheduled for automatic restarts. You can use filtering
82415// on nested fields to filter based on resource labels.
82416//
82417// To filter on multiple expressions, provide each separate expression
82418// within parentheses. For example: ``` (scheduling.automaticRestart =
82419// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82420// is an `AND` expression. However, you can include `AND` and `OR`
82421// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82422// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82423// (scheduling.automaticRestart = true) ```
82424func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
82425	c.urlParams_.Set("filter", filter)
82426	return c
82427}
82428
82429// MaxResults sets the optional parameter "maxResults": The maximum
82430// number of results per page that should be returned. If the number of
82431// available results is larger than `maxResults`, Compute Engine returns
82432// a `nextPageToken` that can be used to get the next page of results in
82433// subsequent list requests. Acceptable values are `0` to `500`,
82434// inclusive. (Default: `500`)
82435func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
82436	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82437	return c
82438}
82439
82440// OrderBy sets the optional parameter "orderBy": Sorts list results by
82441// a certain order. By default, results are returned in alphanumerical
82442// order based on the resource name.
82443//
82444// You can also sort results in descending order based on the creation
82445// timestamp using `orderBy="creationTimestamp desc". This sorts
82446// results based on the `creationTimestamp` field in reverse
82447// chronological order (newest result first). Use this to sort resources
82448// like operations so that the newest operation is returned
82449// first.
82450//
82451// Currently, only sorting by `name` or `creationTimestamp desc` is
82452// supported.
82453func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
82454	c.urlParams_.Set("orderBy", orderBy)
82455	return c
82456}
82457
82458// PageToken sets the optional parameter "pageToken": Specifies a page
82459// token to use. Set `pageToken` to the `nextPageToken` returned by a
82460// previous list request to get the next page of results.
82461func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
82462	c.urlParams_.Set("pageToken", pageToken)
82463	return c
82464}
82465
82466// Fields allows partial responses to be retrieved. See
82467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82468// for more information.
82469func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
82470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82471	return c
82472}
82473
82474// IfNoneMatch sets the optional parameter which makes the operation
82475// fail if the object's ETag matches the given value. This is useful for
82476// getting updates only after the object has changed since the last
82477// request. Use googleapi.IsNotModified to check whether the response
82478// error from Do is the result of In-None-Match.
82479func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
82480	c.ifNoneMatch_ = entityTag
82481	return c
82482}
82483
82484// Context sets the context to be used in this call's Do method. Any
82485// pending HTTP request will be aborted if the provided context is
82486// canceled.
82487func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
82488	c.ctx_ = ctx
82489	return c
82490}
82491
82492// Header returns an http.Header that can be modified by the caller to
82493// add HTTP headers to the request.
82494func (c *InstancesListReferrersCall) Header() http.Header {
82495	if c.header_ == nil {
82496		c.header_ = make(http.Header)
82497	}
82498	return c.header_
82499}
82500
82501func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
82502	reqHeaders := make(http.Header)
82503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82504	for k, v := range c.header_ {
82505		reqHeaders[k] = v
82506	}
82507	reqHeaders.Set("User-Agent", c.s.userAgent())
82508	if c.ifNoneMatch_ != "" {
82509		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82510	}
82511	var body io.Reader = nil
82512	c.urlParams_.Set("alt", alt)
82513	c.urlParams_.Set("prettyPrint", "false")
82514	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
82515	urls += "?" + c.urlParams_.Encode()
82516	req, err := http.NewRequest("GET", urls, body)
82517	if err != nil {
82518		return nil, err
82519	}
82520	req.Header = reqHeaders
82521	googleapi.Expand(req.URL, map[string]string{
82522		"project":  c.project,
82523		"zone":     c.zone,
82524		"instance": c.instance,
82525	})
82526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82527}
82528
82529// Do executes the "compute.instances.listReferrers" call.
82530// Exactly one of *InstanceListReferrers or error will be non-nil. Any
82531// non-2xx status code is an error. Response headers are in either
82532// *InstanceListReferrers.ServerResponse.Header or (if a response was
82533// returned at all) in error.(*googleapi.Error).Header. Use
82534// googleapi.IsNotModified to check whether the returned error was
82535// because http.StatusNotModified was returned.
82536func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
82537	gensupport.SetOptions(c.urlParams_, opts...)
82538	res, err := c.doRequest("json")
82539	if res != nil && res.StatusCode == http.StatusNotModified {
82540		if res.Body != nil {
82541			res.Body.Close()
82542		}
82543		return nil, &googleapi.Error{
82544			Code:   res.StatusCode,
82545			Header: res.Header,
82546		}
82547	}
82548	if err != nil {
82549		return nil, err
82550	}
82551	defer googleapi.CloseBody(res)
82552	if err := googleapi.CheckResponse(res); err != nil {
82553		return nil, err
82554	}
82555	ret := &InstanceListReferrers{
82556		ServerResponse: googleapi.ServerResponse{
82557			Header:         res.Header,
82558			HTTPStatusCode: res.StatusCode,
82559		},
82560	}
82561	target := &ret
82562	if err := gensupport.DecodeResponse(target, res); err != nil {
82563		return nil, err
82564	}
82565	return ret, nil
82566	// {
82567	//   "description": "Retrieves a list of resources that refer to the VM instance specified in the request. For example, if the VM instance is part of a managed instance group, the referrers list includes the managed instance group. For more information, read Viewing Referrers to VM Instances.",
82568	//   "httpMethod": "GET",
82569	//   "id": "compute.instances.listReferrers",
82570	//   "parameterOrder": [
82571	//     "project",
82572	//     "zone",
82573	//     "instance"
82574	//   ],
82575	//   "parameters": {
82576	//     "filter": {
82577	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82578	//       "location": "query",
82579	//       "type": "string"
82580	//     },
82581	//     "instance": {
82582	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
82583	//       "location": "path",
82584	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82585	//       "required": true,
82586	//       "type": "string"
82587	//     },
82588	//     "maxResults": {
82589	//       "default": "500",
82590	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82591	//       "format": "uint32",
82592	//       "location": "query",
82593	//       "minimum": "0",
82594	//       "type": "integer"
82595	//     },
82596	//     "orderBy": {
82597	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
82598	//       "location": "query",
82599	//       "type": "string"
82600	//     },
82601	//     "pageToken": {
82602	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82603	//       "location": "query",
82604	//       "type": "string"
82605	//     },
82606	//     "project": {
82607	//       "description": "Project ID for this request.",
82608	//       "location": "path",
82609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82610	//       "required": true,
82611	//       "type": "string"
82612	//     },
82613	//     "zone": {
82614	//       "description": "The name of the zone for this request.",
82615	//       "location": "path",
82616	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82617	//       "required": true,
82618	//       "type": "string"
82619	//     }
82620	//   },
82621	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
82622	//   "response": {
82623	//     "$ref": "InstanceListReferrers"
82624	//   },
82625	//   "scopes": [
82626	//     "https://www.googleapis.com/auth/cloud-platform",
82627	//     "https://www.googleapis.com/auth/compute",
82628	//     "https://www.googleapis.com/auth/compute.readonly"
82629	//   ]
82630	// }
82631
82632}
82633
82634// Pages invokes f for each page of results.
82635// A non-nil error returned from f will halt the iteration.
82636// The provided context supersedes any context provided to the Context method.
82637func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
82638	c.ctx_ = ctx
82639	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82640	for {
82641		x, err := c.Do()
82642		if err != nil {
82643			return err
82644		}
82645		if err := f(x); err != nil {
82646			return err
82647		}
82648		if x.NextPageToken == "" {
82649			return nil
82650		}
82651		c.PageToken(x.NextPageToken)
82652	}
82653}
82654
82655// method id "compute.instances.removeResourcePolicies":
82656
82657type InstancesRemoveResourcePoliciesCall struct {
82658	s                                      *Service
82659	project                                string
82660	zone                                   string
82661	instance                               string
82662	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
82663	urlParams_                             gensupport.URLParams
82664	ctx_                                   context.Context
82665	header_                                http.Header
82666}
82667
82668// RemoveResourcePolicies: Removes resource policies from an instance.
82669func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
82670	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82671	c.project = project
82672	c.zone = zone
82673	c.instance = instance
82674	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
82675	return c
82676}
82677
82678// RequestId sets the optional parameter "requestId": An optional
82679// request ID to identify requests. Specify a unique request ID so that
82680// if you must retry your request, the server will know to ignore the
82681// request if it has already been completed.
82682//
82683// For example, consider a situation where you make an initial request
82684// and the request times out. If you make the request again with the
82685// same request ID, the server can check if original operation with the
82686// same request ID was received, and if so, will ignore the second
82687// request. This prevents clients from accidentally creating duplicate
82688// commitments.
82689//
82690// The request ID must be a valid UUID with the exception that zero UUID
82691// is not supported (00000000-0000-0000-0000-000000000000).
82692func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
82693	c.urlParams_.Set("requestId", requestId)
82694	return c
82695}
82696
82697// Fields allows partial responses to be retrieved. See
82698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82699// for more information.
82700func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
82701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82702	return c
82703}
82704
82705// Context sets the context to be used in this call's Do method. Any
82706// pending HTTP request will be aborted if the provided context is
82707// canceled.
82708func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
82709	c.ctx_ = ctx
82710	return c
82711}
82712
82713// Header returns an http.Header that can be modified by the caller to
82714// add HTTP headers to the request.
82715func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
82716	if c.header_ == nil {
82717		c.header_ = make(http.Header)
82718	}
82719	return c.header_
82720}
82721
82722func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
82723	reqHeaders := make(http.Header)
82724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82725	for k, v := range c.header_ {
82726		reqHeaders[k] = v
82727	}
82728	reqHeaders.Set("User-Agent", c.s.userAgent())
82729	var body io.Reader = nil
82730	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
82731	if err != nil {
82732		return nil, err
82733	}
82734	reqHeaders.Set("Content-Type", "application/json")
82735	c.urlParams_.Set("alt", alt)
82736	c.urlParams_.Set("prettyPrint", "false")
82737	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
82738	urls += "?" + c.urlParams_.Encode()
82739	req, err := http.NewRequest("POST", urls, body)
82740	if err != nil {
82741		return nil, err
82742	}
82743	req.Header = reqHeaders
82744	googleapi.Expand(req.URL, map[string]string{
82745		"project":  c.project,
82746		"zone":     c.zone,
82747		"instance": c.instance,
82748	})
82749	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82750}
82751
82752// Do executes the "compute.instances.removeResourcePolicies" call.
82753// Exactly one of *Operation or error will be non-nil. Any non-2xx
82754// status code is an error. Response headers are in either
82755// *Operation.ServerResponse.Header or (if a response was returned at
82756// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82757// to check whether the returned error was because
82758// http.StatusNotModified was returned.
82759func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82760	gensupport.SetOptions(c.urlParams_, opts...)
82761	res, err := c.doRequest("json")
82762	if res != nil && res.StatusCode == http.StatusNotModified {
82763		if res.Body != nil {
82764			res.Body.Close()
82765		}
82766		return nil, &googleapi.Error{
82767			Code:   res.StatusCode,
82768			Header: res.Header,
82769		}
82770	}
82771	if err != nil {
82772		return nil, err
82773	}
82774	defer googleapi.CloseBody(res)
82775	if err := googleapi.CheckResponse(res); err != nil {
82776		return nil, err
82777	}
82778	ret := &Operation{
82779		ServerResponse: googleapi.ServerResponse{
82780			Header:         res.Header,
82781			HTTPStatusCode: res.StatusCode,
82782		},
82783	}
82784	target := &ret
82785	if err := gensupport.DecodeResponse(target, res); err != nil {
82786		return nil, err
82787	}
82788	return ret, nil
82789	// {
82790	//   "description": "Removes resource policies from an instance.",
82791	//   "httpMethod": "POST",
82792	//   "id": "compute.instances.removeResourcePolicies",
82793	//   "parameterOrder": [
82794	//     "project",
82795	//     "zone",
82796	//     "instance"
82797	//   ],
82798	//   "parameters": {
82799	//     "instance": {
82800	//       "description": "The instance name for this request.",
82801	//       "location": "path",
82802	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82803	//       "required": true,
82804	//       "type": "string"
82805	//     },
82806	//     "project": {
82807	//       "description": "Project ID for this request.",
82808	//       "location": "path",
82809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82810	//       "required": true,
82811	//       "type": "string"
82812	//     },
82813	//     "requestId": {
82814	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82815	//       "location": "query",
82816	//       "type": "string"
82817	//     },
82818	//     "zone": {
82819	//       "description": "The name of the zone for this request.",
82820	//       "location": "path",
82821	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82822	//       "required": true,
82823	//       "type": "string"
82824	//     }
82825	//   },
82826	//   "path": "{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
82827	//   "request": {
82828	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
82829	//   },
82830	//   "response": {
82831	//     "$ref": "Operation"
82832	//   },
82833	//   "scopes": [
82834	//     "https://www.googleapis.com/auth/cloud-platform",
82835	//     "https://www.googleapis.com/auth/compute"
82836	//   ]
82837	// }
82838
82839}
82840
82841// method id "compute.instances.reset":
82842
82843type InstancesResetCall struct {
82844	s          *Service
82845	project    string
82846	zone       string
82847	instance   string
82848	urlParams_ gensupport.URLParams
82849	ctx_       context.Context
82850	header_    http.Header
82851}
82852
82853// Reset: Performs a reset on the instance. This is a hard reset the VM
82854// does not do a graceful shutdown. For more information, see Resetting
82855// an instance.
82856// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
82857func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
82858	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82859	c.project = project
82860	c.zone = zone
82861	c.instance = instance
82862	return c
82863}
82864
82865// RequestId sets the optional parameter "requestId": An optional
82866// request ID to identify requests. Specify a unique request ID so that
82867// if you must retry your request, the server will know to ignore the
82868// request if it has already been completed.
82869//
82870// For example, consider a situation where you make an initial request
82871// and the request times out. If you make the request again with the
82872// same request ID, the server can check if original operation with the
82873// same request ID was received, and if so, will ignore the second
82874// request. This prevents clients from accidentally creating duplicate
82875// commitments.
82876//
82877// The request ID must be a valid UUID with the exception that zero UUID
82878// is not supported (00000000-0000-0000-0000-000000000000).
82879func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
82880	c.urlParams_.Set("requestId", requestId)
82881	return c
82882}
82883
82884// Fields allows partial responses to be retrieved. See
82885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82886// for more information.
82887func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
82888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82889	return c
82890}
82891
82892// Context sets the context to be used in this call's Do method. Any
82893// pending HTTP request will be aborted if the provided context is
82894// canceled.
82895func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
82896	c.ctx_ = ctx
82897	return c
82898}
82899
82900// Header returns an http.Header that can be modified by the caller to
82901// add HTTP headers to the request.
82902func (c *InstancesResetCall) Header() http.Header {
82903	if c.header_ == nil {
82904		c.header_ = make(http.Header)
82905	}
82906	return c.header_
82907}
82908
82909func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
82910	reqHeaders := make(http.Header)
82911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
82912	for k, v := range c.header_ {
82913		reqHeaders[k] = v
82914	}
82915	reqHeaders.Set("User-Agent", c.s.userAgent())
82916	var body io.Reader = nil
82917	c.urlParams_.Set("alt", alt)
82918	c.urlParams_.Set("prettyPrint", "false")
82919	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
82920	urls += "?" + c.urlParams_.Encode()
82921	req, err := http.NewRequest("POST", urls, body)
82922	if err != nil {
82923		return nil, err
82924	}
82925	req.Header = reqHeaders
82926	googleapi.Expand(req.URL, map[string]string{
82927		"project":  c.project,
82928		"zone":     c.zone,
82929		"instance": c.instance,
82930	})
82931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82932}
82933
82934// Do executes the "compute.instances.reset" call.
82935// Exactly one of *Operation or error will be non-nil. Any non-2xx
82936// status code is an error. Response headers are in either
82937// *Operation.ServerResponse.Header or (if a response was returned at
82938// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82939// to check whether the returned error was because
82940// http.StatusNotModified was returned.
82941func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82942	gensupport.SetOptions(c.urlParams_, opts...)
82943	res, err := c.doRequest("json")
82944	if res != nil && res.StatusCode == http.StatusNotModified {
82945		if res.Body != nil {
82946			res.Body.Close()
82947		}
82948		return nil, &googleapi.Error{
82949			Code:   res.StatusCode,
82950			Header: res.Header,
82951		}
82952	}
82953	if err != nil {
82954		return nil, err
82955	}
82956	defer googleapi.CloseBody(res)
82957	if err := googleapi.CheckResponse(res); err != nil {
82958		return nil, err
82959	}
82960	ret := &Operation{
82961		ServerResponse: googleapi.ServerResponse{
82962			Header:         res.Header,
82963			HTTPStatusCode: res.StatusCode,
82964		},
82965	}
82966	target := &ret
82967	if err := gensupport.DecodeResponse(target, res); err != nil {
82968		return nil, err
82969	}
82970	return ret, nil
82971	// {
82972	//   "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.",
82973	//   "httpMethod": "POST",
82974	//   "id": "compute.instances.reset",
82975	//   "parameterOrder": [
82976	//     "project",
82977	//     "zone",
82978	//     "instance"
82979	//   ],
82980	//   "parameters": {
82981	//     "instance": {
82982	//       "description": "Name of the instance scoping this request.",
82983	//       "location": "path",
82984	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82985	//       "required": true,
82986	//       "type": "string"
82987	//     },
82988	//     "project": {
82989	//       "description": "Project ID for this request.",
82990	//       "location": "path",
82991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82992	//       "required": true,
82993	//       "type": "string"
82994	//     },
82995	//     "requestId": {
82996	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82997	//       "location": "query",
82998	//       "type": "string"
82999	//     },
83000	//     "zone": {
83001	//       "description": "The name of the zone for this request.",
83002	//       "location": "path",
83003	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83004	//       "required": true,
83005	//       "type": "string"
83006	//     }
83007	//   },
83008	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
83009	//   "response": {
83010	//     "$ref": "Operation"
83011	//   },
83012	//   "scopes": [
83013	//     "https://www.googleapis.com/auth/cloud-platform",
83014	//     "https://www.googleapis.com/auth/compute"
83015	//   ]
83016	// }
83017
83018}
83019
83020// method id "compute.instances.resume":
83021
83022type InstancesResumeCall struct {
83023	s                      *Service
83024	project                string
83025	zone                   string
83026	instance               string
83027	instancesresumerequest *InstancesResumeRequest
83028	urlParams_             gensupport.URLParams
83029	ctx_                   context.Context
83030	header_                http.Header
83031}
83032
83033// Resume: Resumes an instance that was suspended using the
83034// instances().suspend method.
83035func (r *InstancesService) Resume(project string, zone string, instance string, instancesresumerequest *InstancesResumeRequest) *InstancesResumeCall {
83036	c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83037	c.project = project
83038	c.zone = zone
83039	c.instance = instance
83040	c.instancesresumerequest = instancesresumerequest
83041	return c
83042}
83043
83044// RequestId sets the optional parameter "requestId": An optional
83045// request ID to identify requests. Specify a unique request ID so that
83046// if you must retry your request, the server will know to ignore the
83047// request if it has already been completed.
83048//
83049// For example, consider a situation where you make an initial request
83050// and the request times out. If you make the request again with the
83051// same request ID, the server can check if original operation with the
83052// same request ID was received, and if so, will ignore the second
83053// request. This prevents clients from accidentally creating duplicate
83054// commitments.
83055//
83056// The request ID must be a valid UUID with the exception that zero UUID
83057// is not supported (00000000-0000-0000-0000-000000000000).
83058func (c *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall {
83059	c.urlParams_.Set("requestId", requestId)
83060	return c
83061}
83062
83063// Fields allows partial responses to be retrieved. See
83064// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83065// for more information.
83066func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall {
83067	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83068	return c
83069}
83070
83071// Context sets the context to be used in this call's Do method. Any
83072// pending HTTP request will be aborted if the provided context is
83073// canceled.
83074func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall {
83075	c.ctx_ = ctx
83076	return c
83077}
83078
83079// Header returns an http.Header that can be modified by the caller to
83080// add HTTP headers to the request.
83081func (c *InstancesResumeCall) Header() http.Header {
83082	if c.header_ == nil {
83083		c.header_ = make(http.Header)
83084	}
83085	return c.header_
83086}
83087
83088func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) {
83089	reqHeaders := make(http.Header)
83090	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83091	for k, v := range c.header_ {
83092		reqHeaders[k] = v
83093	}
83094	reqHeaders.Set("User-Agent", c.s.userAgent())
83095	var body io.Reader = nil
83096	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesresumerequest)
83097	if err != nil {
83098		return nil, err
83099	}
83100	reqHeaders.Set("Content-Type", "application/json")
83101	c.urlParams_.Set("alt", alt)
83102	c.urlParams_.Set("prettyPrint", "false")
83103	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/resume")
83104	urls += "?" + c.urlParams_.Encode()
83105	req, err := http.NewRequest("POST", urls, body)
83106	if err != nil {
83107		return nil, err
83108	}
83109	req.Header = reqHeaders
83110	googleapi.Expand(req.URL, map[string]string{
83111		"project":  c.project,
83112		"zone":     c.zone,
83113		"instance": c.instance,
83114	})
83115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83116}
83117
83118// Do executes the "compute.instances.resume" call.
83119// Exactly one of *Operation or error will be non-nil. Any non-2xx
83120// status code is an error. Response headers are in either
83121// *Operation.ServerResponse.Header or (if a response was returned at
83122// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83123// to check whether the returned error was because
83124// http.StatusNotModified was returned.
83125func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83126	gensupport.SetOptions(c.urlParams_, opts...)
83127	res, err := c.doRequest("json")
83128	if res != nil && res.StatusCode == http.StatusNotModified {
83129		if res.Body != nil {
83130			res.Body.Close()
83131		}
83132		return nil, &googleapi.Error{
83133			Code:   res.StatusCode,
83134			Header: res.Header,
83135		}
83136	}
83137	if err != nil {
83138		return nil, err
83139	}
83140	defer googleapi.CloseBody(res)
83141	if err := googleapi.CheckResponse(res); err != nil {
83142		return nil, err
83143	}
83144	ret := &Operation{
83145		ServerResponse: googleapi.ServerResponse{
83146			Header:         res.Header,
83147			HTTPStatusCode: res.StatusCode,
83148		},
83149	}
83150	target := &ret
83151	if err := gensupport.DecodeResponse(target, res); err != nil {
83152		return nil, err
83153	}
83154	return ret, nil
83155	// {
83156	//   "description": "Resumes an instance that was suspended using the instances().suspend method.",
83157	//   "httpMethod": "POST",
83158	//   "id": "compute.instances.resume",
83159	//   "parameterOrder": [
83160	//     "project",
83161	//     "zone",
83162	//     "instance"
83163	//   ],
83164	//   "parameters": {
83165	//     "instance": {
83166	//       "description": "Name of the instance resource to resume.",
83167	//       "location": "path",
83168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83169	//       "required": true,
83170	//       "type": "string"
83171	//     },
83172	//     "project": {
83173	//       "description": "Project ID for this request.",
83174	//       "location": "path",
83175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83176	//       "required": true,
83177	//       "type": "string"
83178	//     },
83179	//     "requestId": {
83180	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83181	//       "location": "query",
83182	//       "type": "string"
83183	//     },
83184	//     "zone": {
83185	//       "description": "The name of the zone for this request.",
83186	//       "location": "path",
83187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83188	//       "required": true,
83189	//       "type": "string"
83190	//     }
83191	//   },
83192	//   "path": "{project}/zones/{zone}/instances/{instance}/resume",
83193	//   "request": {
83194	//     "$ref": "InstancesResumeRequest"
83195	//   },
83196	//   "response": {
83197	//     "$ref": "Operation"
83198	//   },
83199	//   "scopes": [
83200	//     "https://www.googleapis.com/auth/cloud-platform",
83201	//     "https://www.googleapis.com/auth/compute"
83202	//   ]
83203	// }
83204
83205}
83206
83207// method id "compute.instances.setDeletionProtection":
83208
83209type InstancesSetDeletionProtectionCall struct {
83210	s          *Service
83211	project    string
83212	zone       string
83213	resource   string
83214	urlParams_ gensupport.URLParams
83215	ctx_       context.Context
83216	header_    http.Header
83217}
83218
83219// SetDeletionProtection: Sets deletion protection on the instance.
83220func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
83221	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83222	c.project = project
83223	c.zone = zone
83224	c.resource = resource
83225	return c
83226}
83227
83228// DeletionProtection sets the optional parameter "deletionProtection":
83229// Whether the resource should be protected against deletion.
83230func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
83231	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
83232	return c
83233}
83234
83235// RequestId sets the optional parameter "requestId": An optional
83236// request ID to identify requests. Specify a unique request ID so that
83237// if you must retry your request, the server will know to ignore the
83238// request if it has already been completed.
83239//
83240// For example, consider a situation where you make an initial request
83241// and the request times out. If you make the request again with the
83242// same request ID, the server can check if original operation with the
83243// same request ID was received, and if so, will ignore the second
83244// request. This prevents clients from accidentally creating duplicate
83245// commitments.
83246//
83247// The request ID must be a valid UUID with the exception that zero UUID
83248// is not supported (00000000-0000-0000-0000-000000000000).
83249func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
83250	c.urlParams_.Set("requestId", requestId)
83251	return c
83252}
83253
83254// Fields allows partial responses to be retrieved. See
83255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83256// for more information.
83257func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
83258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83259	return c
83260}
83261
83262// Context sets the context to be used in this call's Do method. Any
83263// pending HTTP request will be aborted if the provided context is
83264// canceled.
83265func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
83266	c.ctx_ = ctx
83267	return c
83268}
83269
83270// Header returns an http.Header that can be modified by the caller to
83271// add HTTP headers to the request.
83272func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
83273	if c.header_ == nil {
83274		c.header_ = make(http.Header)
83275	}
83276	return c.header_
83277}
83278
83279func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
83280	reqHeaders := make(http.Header)
83281	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83282	for k, v := range c.header_ {
83283		reqHeaders[k] = v
83284	}
83285	reqHeaders.Set("User-Agent", c.s.userAgent())
83286	var body io.Reader = nil
83287	c.urlParams_.Set("alt", alt)
83288	c.urlParams_.Set("prettyPrint", "false")
83289	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
83290	urls += "?" + c.urlParams_.Encode()
83291	req, err := http.NewRequest("POST", urls, body)
83292	if err != nil {
83293		return nil, err
83294	}
83295	req.Header = reqHeaders
83296	googleapi.Expand(req.URL, map[string]string{
83297		"project":  c.project,
83298		"zone":     c.zone,
83299		"resource": c.resource,
83300	})
83301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83302}
83303
83304// Do executes the "compute.instances.setDeletionProtection" call.
83305// Exactly one of *Operation or error will be non-nil. Any non-2xx
83306// status code is an error. Response headers are in either
83307// *Operation.ServerResponse.Header or (if a response was returned at
83308// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83309// to check whether the returned error was because
83310// http.StatusNotModified was returned.
83311func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83312	gensupport.SetOptions(c.urlParams_, opts...)
83313	res, err := c.doRequest("json")
83314	if res != nil && res.StatusCode == http.StatusNotModified {
83315		if res.Body != nil {
83316			res.Body.Close()
83317		}
83318		return nil, &googleapi.Error{
83319			Code:   res.StatusCode,
83320			Header: res.Header,
83321		}
83322	}
83323	if err != nil {
83324		return nil, err
83325	}
83326	defer googleapi.CloseBody(res)
83327	if err := googleapi.CheckResponse(res); err != nil {
83328		return nil, err
83329	}
83330	ret := &Operation{
83331		ServerResponse: googleapi.ServerResponse{
83332			Header:         res.Header,
83333			HTTPStatusCode: res.StatusCode,
83334		},
83335	}
83336	target := &ret
83337	if err := gensupport.DecodeResponse(target, res); err != nil {
83338		return nil, err
83339	}
83340	return ret, nil
83341	// {
83342	//   "description": "Sets deletion protection on the instance.",
83343	//   "httpMethod": "POST",
83344	//   "id": "compute.instances.setDeletionProtection",
83345	//   "parameterOrder": [
83346	//     "project",
83347	//     "zone",
83348	//     "resource"
83349	//   ],
83350	//   "parameters": {
83351	//     "deletionProtection": {
83352	//       "default": "true",
83353	//       "description": "Whether the resource should be protected against deletion.",
83354	//       "location": "query",
83355	//       "type": "boolean"
83356	//     },
83357	//     "project": {
83358	//       "description": "Project ID for this request.",
83359	//       "location": "path",
83360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83361	//       "required": true,
83362	//       "type": "string"
83363	//     },
83364	//     "requestId": {
83365	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83366	//       "location": "query",
83367	//       "type": "string"
83368	//     },
83369	//     "resource": {
83370	//       "description": "Name or id of the resource for this request.",
83371	//       "location": "path",
83372	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83373	//       "required": true,
83374	//       "type": "string"
83375	//     },
83376	//     "zone": {
83377	//       "description": "The name of the zone for this request.",
83378	//       "location": "path",
83379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83380	//       "required": true,
83381	//       "type": "string"
83382	//     }
83383	//   },
83384	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
83385	//   "response": {
83386	//     "$ref": "Operation"
83387	//   },
83388	//   "scopes": [
83389	//     "https://www.googleapis.com/auth/cloud-platform",
83390	//     "https://www.googleapis.com/auth/compute"
83391	//   ]
83392	// }
83393
83394}
83395
83396// method id "compute.instances.setDiskAutoDelete":
83397
83398type InstancesSetDiskAutoDeleteCall struct {
83399	s          *Service
83400	project    string
83401	zone       string
83402	instance   string
83403	urlParams_ gensupport.URLParams
83404	ctx_       context.Context
83405	header_    http.Header
83406}
83407
83408// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
83409// an instance.
83410// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
83411func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
83412	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83413	c.project = project
83414	c.zone = zone
83415	c.instance = instance
83416	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
83417	c.urlParams_.Set("deviceName", deviceName)
83418	return c
83419}
83420
83421// RequestId sets the optional parameter "requestId": An optional
83422// request ID to identify requests. Specify a unique request ID so that
83423// if you must retry your request, the server will know to ignore the
83424// request if it has already been completed.
83425//
83426// For example, consider a situation where you make an initial request
83427// and the request times out. If you make the request again with the
83428// same request ID, the server can check if original operation with the
83429// same request ID was received, and if so, will ignore the second
83430// request. This prevents clients from accidentally creating duplicate
83431// commitments.
83432//
83433// The request ID must be a valid UUID with the exception that zero UUID
83434// is not supported (00000000-0000-0000-0000-000000000000).
83435func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
83436	c.urlParams_.Set("requestId", requestId)
83437	return c
83438}
83439
83440// Fields allows partial responses to be retrieved. See
83441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83442// for more information.
83443func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
83444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83445	return c
83446}
83447
83448// Context sets the context to be used in this call's Do method. Any
83449// pending HTTP request will be aborted if the provided context is
83450// canceled.
83451func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
83452	c.ctx_ = ctx
83453	return c
83454}
83455
83456// Header returns an http.Header that can be modified by the caller to
83457// add HTTP headers to the request.
83458func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
83459	if c.header_ == nil {
83460		c.header_ = make(http.Header)
83461	}
83462	return c.header_
83463}
83464
83465func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
83466	reqHeaders := make(http.Header)
83467	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83468	for k, v := range c.header_ {
83469		reqHeaders[k] = v
83470	}
83471	reqHeaders.Set("User-Agent", c.s.userAgent())
83472	var body io.Reader = nil
83473	c.urlParams_.Set("alt", alt)
83474	c.urlParams_.Set("prettyPrint", "false")
83475	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
83476	urls += "?" + c.urlParams_.Encode()
83477	req, err := http.NewRequest("POST", urls, body)
83478	if err != nil {
83479		return nil, err
83480	}
83481	req.Header = reqHeaders
83482	googleapi.Expand(req.URL, map[string]string{
83483		"project":  c.project,
83484		"zone":     c.zone,
83485		"instance": c.instance,
83486	})
83487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83488}
83489
83490// Do executes the "compute.instances.setDiskAutoDelete" call.
83491// Exactly one of *Operation or error will be non-nil. Any non-2xx
83492// status code is an error. Response headers are in either
83493// *Operation.ServerResponse.Header or (if a response was returned at
83494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83495// to check whether the returned error was because
83496// http.StatusNotModified was returned.
83497func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83498	gensupport.SetOptions(c.urlParams_, opts...)
83499	res, err := c.doRequest("json")
83500	if res != nil && res.StatusCode == http.StatusNotModified {
83501		if res.Body != nil {
83502			res.Body.Close()
83503		}
83504		return nil, &googleapi.Error{
83505			Code:   res.StatusCode,
83506			Header: res.Header,
83507		}
83508	}
83509	if err != nil {
83510		return nil, err
83511	}
83512	defer googleapi.CloseBody(res)
83513	if err := googleapi.CheckResponse(res); err != nil {
83514		return nil, err
83515	}
83516	ret := &Operation{
83517		ServerResponse: googleapi.ServerResponse{
83518			Header:         res.Header,
83519			HTTPStatusCode: res.StatusCode,
83520		},
83521	}
83522	target := &ret
83523	if err := gensupport.DecodeResponse(target, res); err != nil {
83524		return nil, err
83525	}
83526	return ret, nil
83527	// {
83528	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
83529	//   "httpMethod": "POST",
83530	//   "id": "compute.instances.setDiskAutoDelete",
83531	//   "parameterOrder": [
83532	//     "project",
83533	//     "zone",
83534	//     "instance",
83535	//     "autoDelete",
83536	//     "deviceName"
83537	//   ],
83538	//   "parameters": {
83539	//     "autoDelete": {
83540	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
83541	//       "location": "query",
83542	//       "required": true,
83543	//       "type": "boolean"
83544	//     },
83545	//     "deviceName": {
83546	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
83547	//       "location": "query",
83548	//       "pattern": "\\w[\\w.-]{0,254}",
83549	//       "required": true,
83550	//       "type": "string"
83551	//     },
83552	//     "instance": {
83553	//       "description": "The instance name for this request.",
83554	//       "location": "path",
83555	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83556	//       "required": true,
83557	//       "type": "string"
83558	//     },
83559	//     "project": {
83560	//       "description": "Project ID for this request.",
83561	//       "location": "path",
83562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83563	//       "required": true,
83564	//       "type": "string"
83565	//     },
83566	//     "requestId": {
83567	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83568	//       "location": "query",
83569	//       "type": "string"
83570	//     },
83571	//     "zone": {
83572	//       "description": "The name of the zone for this request.",
83573	//       "location": "path",
83574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83575	//       "required": true,
83576	//       "type": "string"
83577	//     }
83578	//   },
83579	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
83580	//   "response": {
83581	//     "$ref": "Operation"
83582	//   },
83583	//   "scopes": [
83584	//     "https://www.googleapis.com/auth/cloud-platform",
83585	//     "https://www.googleapis.com/auth/compute"
83586	//   ]
83587	// }
83588
83589}
83590
83591// method id "compute.instances.setIamPolicy":
83592
83593type InstancesSetIamPolicyCall struct {
83594	s                    *Service
83595	project              string
83596	zone                 string
83597	resource             string
83598	zonesetpolicyrequest *ZoneSetPolicyRequest
83599	urlParams_           gensupport.URLParams
83600	ctx_                 context.Context
83601	header_              http.Header
83602}
83603
83604// SetIamPolicy: Sets the access control policy on the specified
83605// resource. Replaces any existing policy.
83606func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
83607	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83608	c.project = project
83609	c.zone = zone
83610	c.resource = resource
83611	c.zonesetpolicyrequest = zonesetpolicyrequest
83612	return c
83613}
83614
83615// Fields allows partial responses to be retrieved. See
83616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83617// for more information.
83618func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
83619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83620	return c
83621}
83622
83623// Context sets the context to be used in this call's Do method. Any
83624// pending HTTP request will be aborted if the provided context is
83625// canceled.
83626func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
83627	c.ctx_ = ctx
83628	return c
83629}
83630
83631// Header returns an http.Header that can be modified by the caller to
83632// add HTTP headers to the request.
83633func (c *InstancesSetIamPolicyCall) Header() http.Header {
83634	if c.header_ == nil {
83635		c.header_ = make(http.Header)
83636	}
83637	return c.header_
83638}
83639
83640func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
83641	reqHeaders := make(http.Header)
83642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83643	for k, v := range c.header_ {
83644		reqHeaders[k] = v
83645	}
83646	reqHeaders.Set("User-Agent", c.s.userAgent())
83647	var body io.Reader = nil
83648	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
83649	if err != nil {
83650		return nil, err
83651	}
83652	reqHeaders.Set("Content-Type", "application/json")
83653	c.urlParams_.Set("alt", alt)
83654	c.urlParams_.Set("prettyPrint", "false")
83655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setIamPolicy")
83656	urls += "?" + c.urlParams_.Encode()
83657	req, err := http.NewRequest("POST", urls, body)
83658	if err != nil {
83659		return nil, err
83660	}
83661	req.Header = reqHeaders
83662	googleapi.Expand(req.URL, map[string]string{
83663		"project":  c.project,
83664		"zone":     c.zone,
83665		"resource": c.resource,
83666	})
83667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83668}
83669
83670// Do executes the "compute.instances.setIamPolicy" call.
83671// Exactly one of *Policy or error will be non-nil. Any non-2xx status
83672// code is an error. Response headers are in either
83673// *Policy.ServerResponse.Header or (if a response was returned at all)
83674// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
83675// check whether the returned error was because http.StatusNotModified
83676// was returned.
83677func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
83678	gensupport.SetOptions(c.urlParams_, opts...)
83679	res, err := c.doRequest("json")
83680	if res != nil && res.StatusCode == http.StatusNotModified {
83681		if res.Body != nil {
83682			res.Body.Close()
83683		}
83684		return nil, &googleapi.Error{
83685			Code:   res.StatusCode,
83686			Header: res.Header,
83687		}
83688	}
83689	if err != nil {
83690		return nil, err
83691	}
83692	defer googleapi.CloseBody(res)
83693	if err := googleapi.CheckResponse(res); err != nil {
83694		return nil, err
83695	}
83696	ret := &Policy{
83697		ServerResponse: googleapi.ServerResponse{
83698			Header:         res.Header,
83699			HTTPStatusCode: res.StatusCode,
83700		},
83701	}
83702	target := &ret
83703	if err := gensupport.DecodeResponse(target, res); err != nil {
83704		return nil, err
83705	}
83706	return ret, nil
83707	// {
83708	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
83709	//   "httpMethod": "POST",
83710	//   "id": "compute.instances.setIamPolicy",
83711	//   "parameterOrder": [
83712	//     "project",
83713	//     "zone",
83714	//     "resource"
83715	//   ],
83716	//   "parameters": {
83717	//     "project": {
83718	//       "description": "Project ID for this request.",
83719	//       "location": "path",
83720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83721	//       "required": true,
83722	//       "type": "string"
83723	//     },
83724	//     "resource": {
83725	//       "description": "Name or id of the resource for this request.",
83726	//       "location": "path",
83727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83728	//       "required": true,
83729	//       "type": "string"
83730	//     },
83731	//     "zone": {
83732	//       "description": "The name of the zone for this request.",
83733	//       "location": "path",
83734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83735	//       "required": true,
83736	//       "type": "string"
83737	//     }
83738	//   },
83739	//   "path": "{project}/zones/{zone}/instances/{resource}/setIamPolicy",
83740	//   "request": {
83741	//     "$ref": "ZoneSetPolicyRequest"
83742	//   },
83743	//   "response": {
83744	//     "$ref": "Policy"
83745	//   },
83746	//   "scopes": [
83747	//     "https://www.googleapis.com/auth/cloud-platform",
83748	//     "https://www.googleapis.com/auth/compute"
83749	//   ]
83750	// }
83751
83752}
83753
83754// method id "compute.instances.setLabels":
83755
83756type InstancesSetLabelsCall struct {
83757	s                         *Service
83758	project                   string
83759	zone                      string
83760	instance                  string
83761	instancessetlabelsrequest *InstancesSetLabelsRequest
83762	urlParams_                gensupport.URLParams
83763	ctx_                      context.Context
83764	header_                   http.Header
83765}
83766
83767// SetLabels: Sets labels on an instance. To learn more about labels,
83768// read the Labeling Resources documentation.
83769func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
83770	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83771	c.project = project
83772	c.zone = zone
83773	c.instance = instance
83774	c.instancessetlabelsrequest = instancessetlabelsrequest
83775	return c
83776}
83777
83778// RequestId sets the optional parameter "requestId": An optional
83779// request ID to identify requests. Specify a unique request ID so that
83780// if you must retry your request, the server will know to ignore the
83781// request if it has already been completed.
83782//
83783// For example, consider a situation where you make an initial request
83784// and the request times out. If you make the request again with the
83785// same request ID, the server can check if original operation with the
83786// same request ID was received, and if so, will ignore the second
83787// request. This prevents clients from accidentally creating duplicate
83788// commitments.
83789//
83790// The request ID must be a valid UUID with the exception that zero UUID
83791// is not supported (00000000-0000-0000-0000-000000000000).
83792func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
83793	c.urlParams_.Set("requestId", requestId)
83794	return c
83795}
83796
83797// Fields allows partial responses to be retrieved. See
83798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83799// for more information.
83800func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
83801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83802	return c
83803}
83804
83805// Context sets the context to be used in this call's Do method. Any
83806// pending HTTP request will be aborted if the provided context is
83807// canceled.
83808func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
83809	c.ctx_ = ctx
83810	return c
83811}
83812
83813// Header returns an http.Header that can be modified by the caller to
83814// add HTTP headers to the request.
83815func (c *InstancesSetLabelsCall) Header() http.Header {
83816	if c.header_ == nil {
83817		c.header_ = make(http.Header)
83818	}
83819	return c.header_
83820}
83821
83822func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
83823	reqHeaders := make(http.Header)
83824	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
83825	for k, v := range c.header_ {
83826		reqHeaders[k] = v
83827	}
83828	reqHeaders.Set("User-Agent", c.s.userAgent())
83829	var body io.Reader = nil
83830	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
83831	if err != nil {
83832		return nil, err
83833	}
83834	reqHeaders.Set("Content-Type", "application/json")
83835	c.urlParams_.Set("alt", alt)
83836	c.urlParams_.Set("prettyPrint", "false")
83837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
83838	urls += "?" + c.urlParams_.Encode()
83839	req, err := http.NewRequest("POST", urls, body)
83840	if err != nil {
83841		return nil, err
83842	}
83843	req.Header = reqHeaders
83844	googleapi.Expand(req.URL, map[string]string{
83845		"project":  c.project,
83846		"zone":     c.zone,
83847		"instance": c.instance,
83848	})
83849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83850}
83851
83852// Do executes the "compute.instances.setLabels" call.
83853// Exactly one of *Operation or error will be non-nil. Any non-2xx
83854// status code is an error. Response headers are in either
83855// *Operation.ServerResponse.Header or (if a response was returned at
83856// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83857// to check whether the returned error was because
83858// http.StatusNotModified was returned.
83859func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83860	gensupport.SetOptions(c.urlParams_, opts...)
83861	res, err := c.doRequest("json")
83862	if res != nil && res.StatusCode == http.StatusNotModified {
83863		if res.Body != nil {
83864			res.Body.Close()
83865		}
83866		return nil, &googleapi.Error{
83867			Code:   res.StatusCode,
83868			Header: res.Header,
83869		}
83870	}
83871	if err != nil {
83872		return nil, err
83873	}
83874	defer googleapi.CloseBody(res)
83875	if err := googleapi.CheckResponse(res); err != nil {
83876		return nil, err
83877	}
83878	ret := &Operation{
83879		ServerResponse: googleapi.ServerResponse{
83880			Header:         res.Header,
83881			HTTPStatusCode: res.StatusCode,
83882		},
83883	}
83884	target := &ret
83885	if err := gensupport.DecodeResponse(target, res); err != nil {
83886		return nil, err
83887	}
83888	return ret, nil
83889	// {
83890	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
83891	//   "httpMethod": "POST",
83892	//   "id": "compute.instances.setLabels",
83893	//   "parameterOrder": [
83894	//     "project",
83895	//     "zone",
83896	//     "instance"
83897	//   ],
83898	//   "parameters": {
83899	//     "instance": {
83900	//       "description": "Name of the instance scoping this request.",
83901	//       "location": "path",
83902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83903	//       "required": true,
83904	//       "type": "string"
83905	//     },
83906	//     "project": {
83907	//       "description": "Project ID for this request.",
83908	//       "location": "path",
83909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83910	//       "required": true,
83911	//       "type": "string"
83912	//     },
83913	//     "requestId": {
83914	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83915	//       "location": "query",
83916	//       "type": "string"
83917	//     },
83918	//     "zone": {
83919	//       "description": "The name of the zone for this request.",
83920	//       "location": "path",
83921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83922	//       "required": true,
83923	//       "type": "string"
83924	//     }
83925	//   },
83926	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
83927	//   "request": {
83928	//     "$ref": "InstancesSetLabelsRequest"
83929	//   },
83930	//   "response": {
83931	//     "$ref": "Operation"
83932	//   },
83933	//   "scopes": [
83934	//     "https://www.googleapis.com/auth/cloud-platform",
83935	//     "https://www.googleapis.com/auth/compute"
83936	//   ]
83937	// }
83938
83939}
83940
83941// method id "compute.instances.setMachineResources":
83942
83943type InstancesSetMachineResourcesCall struct {
83944	s                                   *Service
83945	project                             string
83946	zone                                string
83947	instance                            string
83948	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
83949	urlParams_                          gensupport.URLParams
83950	ctx_                                context.Context
83951	header_                             http.Header
83952}
83953
83954// SetMachineResources: Changes the number and/or type of accelerator
83955// for a stopped instance to the values specified in the request.
83956func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
83957	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83958	c.project = project
83959	c.zone = zone
83960	c.instance = instance
83961	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
83962	return c
83963}
83964
83965// RequestId sets the optional parameter "requestId": An optional
83966// request ID to identify requests. Specify a unique request ID so that
83967// if you must retry your request, the server will know to ignore the
83968// request if it has already been completed.
83969//
83970// For example, consider a situation where you make an initial request
83971// and the request times out. If you make the request again with the
83972// same request ID, the server can check if original operation with the
83973// same request ID was received, and if so, will ignore the second
83974// request. This prevents clients from accidentally creating duplicate
83975// commitments.
83976//
83977// The request ID must be a valid UUID with the exception that zero UUID
83978// is not supported (00000000-0000-0000-0000-000000000000).
83979func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
83980	c.urlParams_.Set("requestId", requestId)
83981	return c
83982}
83983
83984// Fields allows partial responses to be retrieved. See
83985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83986// for more information.
83987func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
83988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83989	return c
83990}
83991
83992// Context sets the context to be used in this call's Do method. Any
83993// pending HTTP request will be aborted if the provided context is
83994// canceled.
83995func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
83996	c.ctx_ = ctx
83997	return c
83998}
83999
84000// Header returns an http.Header that can be modified by the caller to
84001// add HTTP headers to the request.
84002func (c *InstancesSetMachineResourcesCall) Header() http.Header {
84003	if c.header_ == nil {
84004		c.header_ = make(http.Header)
84005	}
84006	return c.header_
84007}
84008
84009func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
84010	reqHeaders := make(http.Header)
84011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84012	for k, v := range c.header_ {
84013		reqHeaders[k] = v
84014	}
84015	reqHeaders.Set("User-Agent", c.s.userAgent())
84016	var body io.Reader = nil
84017	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
84018	if err != nil {
84019		return nil, err
84020	}
84021	reqHeaders.Set("Content-Type", "application/json")
84022	c.urlParams_.Set("alt", alt)
84023	c.urlParams_.Set("prettyPrint", "false")
84024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
84025	urls += "?" + c.urlParams_.Encode()
84026	req, err := http.NewRequest("POST", urls, body)
84027	if err != nil {
84028		return nil, err
84029	}
84030	req.Header = reqHeaders
84031	googleapi.Expand(req.URL, map[string]string{
84032		"project":  c.project,
84033		"zone":     c.zone,
84034		"instance": c.instance,
84035	})
84036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84037}
84038
84039// Do executes the "compute.instances.setMachineResources" call.
84040// Exactly one of *Operation or error will be non-nil. Any non-2xx
84041// status code is an error. Response headers are in either
84042// *Operation.ServerResponse.Header or (if a response was returned at
84043// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84044// to check whether the returned error was because
84045// http.StatusNotModified was returned.
84046func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84047	gensupport.SetOptions(c.urlParams_, opts...)
84048	res, err := c.doRequest("json")
84049	if res != nil && res.StatusCode == http.StatusNotModified {
84050		if res.Body != nil {
84051			res.Body.Close()
84052		}
84053		return nil, &googleapi.Error{
84054			Code:   res.StatusCode,
84055			Header: res.Header,
84056		}
84057	}
84058	if err != nil {
84059		return nil, err
84060	}
84061	defer googleapi.CloseBody(res)
84062	if err := googleapi.CheckResponse(res); err != nil {
84063		return nil, err
84064	}
84065	ret := &Operation{
84066		ServerResponse: googleapi.ServerResponse{
84067			Header:         res.Header,
84068			HTTPStatusCode: res.StatusCode,
84069		},
84070	}
84071	target := &ret
84072	if err := gensupport.DecodeResponse(target, res); err != nil {
84073		return nil, err
84074	}
84075	return ret, nil
84076	// {
84077	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
84078	//   "httpMethod": "POST",
84079	//   "id": "compute.instances.setMachineResources",
84080	//   "parameterOrder": [
84081	//     "project",
84082	//     "zone",
84083	//     "instance"
84084	//   ],
84085	//   "parameters": {
84086	//     "instance": {
84087	//       "description": "Name of the instance scoping this request.",
84088	//       "location": "path",
84089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84090	//       "required": true,
84091	//       "type": "string"
84092	//     },
84093	//     "project": {
84094	//       "description": "Project ID for this request.",
84095	//       "location": "path",
84096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84097	//       "required": true,
84098	//       "type": "string"
84099	//     },
84100	//     "requestId": {
84101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84102	//       "location": "query",
84103	//       "type": "string"
84104	//     },
84105	//     "zone": {
84106	//       "description": "The name of the zone for this request.",
84107	//       "location": "path",
84108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84109	//       "required": true,
84110	//       "type": "string"
84111	//     }
84112	//   },
84113	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
84114	//   "request": {
84115	//     "$ref": "InstancesSetMachineResourcesRequest"
84116	//   },
84117	//   "response": {
84118	//     "$ref": "Operation"
84119	//   },
84120	//   "scopes": [
84121	//     "https://www.googleapis.com/auth/cloud-platform",
84122	//     "https://www.googleapis.com/auth/compute"
84123	//   ]
84124	// }
84125
84126}
84127
84128// method id "compute.instances.setMachineType":
84129
84130type InstancesSetMachineTypeCall struct {
84131	s                              *Service
84132	project                        string
84133	zone                           string
84134	instance                       string
84135	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
84136	urlParams_                     gensupport.URLParams
84137	ctx_                           context.Context
84138	header_                        http.Header
84139}
84140
84141// SetMachineType: Changes the machine type for a stopped instance to
84142// the machine type specified in the request.
84143func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
84144	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84145	c.project = project
84146	c.zone = zone
84147	c.instance = instance
84148	c.instancessetmachinetyperequest = instancessetmachinetyperequest
84149	return c
84150}
84151
84152// RequestId sets the optional parameter "requestId": An optional
84153// request ID to identify requests. Specify a unique request ID so that
84154// if you must retry your request, the server will know to ignore the
84155// request if it has already been completed.
84156//
84157// For example, consider a situation where you make an initial request
84158// and the request times out. If you make the request again with the
84159// same request ID, the server can check if original operation with the
84160// same request ID was received, and if so, will ignore the second
84161// request. This prevents clients from accidentally creating duplicate
84162// commitments.
84163//
84164// The request ID must be a valid UUID with the exception that zero UUID
84165// is not supported (00000000-0000-0000-0000-000000000000).
84166func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
84167	c.urlParams_.Set("requestId", requestId)
84168	return c
84169}
84170
84171// Fields allows partial responses to be retrieved. See
84172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84173// for more information.
84174func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
84175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84176	return c
84177}
84178
84179// Context sets the context to be used in this call's Do method. Any
84180// pending HTTP request will be aborted if the provided context is
84181// canceled.
84182func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
84183	c.ctx_ = ctx
84184	return c
84185}
84186
84187// Header returns an http.Header that can be modified by the caller to
84188// add HTTP headers to the request.
84189func (c *InstancesSetMachineTypeCall) Header() http.Header {
84190	if c.header_ == nil {
84191		c.header_ = make(http.Header)
84192	}
84193	return c.header_
84194}
84195
84196func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
84197	reqHeaders := make(http.Header)
84198	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84199	for k, v := range c.header_ {
84200		reqHeaders[k] = v
84201	}
84202	reqHeaders.Set("User-Agent", c.s.userAgent())
84203	var body io.Reader = nil
84204	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
84205	if err != nil {
84206		return nil, err
84207	}
84208	reqHeaders.Set("Content-Type", "application/json")
84209	c.urlParams_.Set("alt", alt)
84210	c.urlParams_.Set("prettyPrint", "false")
84211	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
84212	urls += "?" + c.urlParams_.Encode()
84213	req, err := http.NewRequest("POST", urls, body)
84214	if err != nil {
84215		return nil, err
84216	}
84217	req.Header = reqHeaders
84218	googleapi.Expand(req.URL, map[string]string{
84219		"project":  c.project,
84220		"zone":     c.zone,
84221		"instance": c.instance,
84222	})
84223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84224}
84225
84226// Do executes the "compute.instances.setMachineType" call.
84227// Exactly one of *Operation or error will be non-nil. Any non-2xx
84228// status code is an error. Response headers are in either
84229// *Operation.ServerResponse.Header or (if a response was returned at
84230// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84231// to check whether the returned error was because
84232// http.StatusNotModified was returned.
84233func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84234	gensupport.SetOptions(c.urlParams_, opts...)
84235	res, err := c.doRequest("json")
84236	if res != nil && res.StatusCode == http.StatusNotModified {
84237		if res.Body != nil {
84238			res.Body.Close()
84239		}
84240		return nil, &googleapi.Error{
84241			Code:   res.StatusCode,
84242			Header: res.Header,
84243		}
84244	}
84245	if err != nil {
84246		return nil, err
84247	}
84248	defer googleapi.CloseBody(res)
84249	if err := googleapi.CheckResponse(res); err != nil {
84250		return nil, err
84251	}
84252	ret := &Operation{
84253		ServerResponse: googleapi.ServerResponse{
84254			Header:         res.Header,
84255			HTTPStatusCode: res.StatusCode,
84256		},
84257	}
84258	target := &ret
84259	if err := gensupport.DecodeResponse(target, res); err != nil {
84260		return nil, err
84261	}
84262	return ret, nil
84263	// {
84264	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
84265	//   "httpMethod": "POST",
84266	//   "id": "compute.instances.setMachineType",
84267	//   "parameterOrder": [
84268	//     "project",
84269	//     "zone",
84270	//     "instance"
84271	//   ],
84272	//   "parameters": {
84273	//     "instance": {
84274	//       "description": "Name of the instance scoping this request.",
84275	//       "location": "path",
84276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84277	//       "required": true,
84278	//       "type": "string"
84279	//     },
84280	//     "project": {
84281	//       "description": "Project ID for this request.",
84282	//       "location": "path",
84283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84284	//       "required": true,
84285	//       "type": "string"
84286	//     },
84287	//     "requestId": {
84288	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84289	//       "location": "query",
84290	//       "type": "string"
84291	//     },
84292	//     "zone": {
84293	//       "description": "The name of the zone for this request.",
84294	//       "location": "path",
84295	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84296	//       "required": true,
84297	//       "type": "string"
84298	//     }
84299	//   },
84300	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
84301	//   "request": {
84302	//     "$ref": "InstancesSetMachineTypeRequest"
84303	//   },
84304	//   "response": {
84305	//     "$ref": "Operation"
84306	//   },
84307	//   "scopes": [
84308	//     "https://www.googleapis.com/auth/cloud-platform",
84309	//     "https://www.googleapis.com/auth/compute"
84310	//   ]
84311	// }
84312
84313}
84314
84315// method id "compute.instances.setMetadata":
84316
84317type InstancesSetMetadataCall struct {
84318	s          *Service
84319	project    string
84320	zone       string
84321	instance   string
84322	metadata   *Metadata
84323	urlParams_ gensupport.URLParams
84324	ctx_       context.Context
84325	header_    http.Header
84326}
84327
84328// SetMetadata: Sets metadata for the specified instance to the data
84329// included in the request.
84330// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
84331func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
84332	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84333	c.project = project
84334	c.zone = zone
84335	c.instance = instance
84336	c.metadata = metadata
84337	return c
84338}
84339
84340// RequestId sets the optional parameter "requestId": An optional
84341// request ID to identify requests. Specify a unique request ID so that
84342// if you must retry your request, the server will know to ignore the
84343// request if it has already been completed.
84344//
84345// For example, consider a situation where you make an initial request
84346// and the request times out. If you make the request again with the
84347// same request ID, the server can check if original operation with the
84348// same request ID was received, and if so, will ignore the second
84349// request. This prevents clients from accidentally creating duplicate
84350// commitments.
84351//
84352// The request ID must be a valid UUID with the exception that zero UUID
84353// is not supported (00000000-0000-0000-0000-000000000000).
84354func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
84355	c.urlParams_.Set("requestId", requestId)
84356	return c
84357}
84358
84359// Fields allows partial responses to be retrieved. See
84360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84361// for more information.
84362func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
84363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84364	return c
84365}
84366
84367// Context sets the context to be used in this call's Do method. Any
84368// pending HTTP request will be aborted if the provided context is
84369// canceled.
84370func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
84371	c.ctx_ = ctx
84372	return c
84373}
84374
84375// Header returns an http.Header that can be modified by the caller to
84376// add HTTP headers to the request.
84377func (c *InstancesSetMetadataCall) Header() http.Header {
84378	if c.header_ == nil {
84379		c.header_ = make(http.Header)
84380	}
84381	return c.header_
84382}
84383
84384func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
84385	reqHeaders := make(http.Header)
84386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84387	for k, v := range c.header_ {
84388		reqHeaders[k] = v
84389	}
84390	reqHeaders.Set("User-Agent", c.s.userAgent())
84391	var body io.Reader = nil
84392	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
84393	if err != nil {
84394		return nil, err
84395	}
84396	reqHeaders.Set("Content-Type", "application/json")
84397	c.urlParams_.Set("alt", alt)
84398	c.urlParams_.Set("prettyPrint", "false")
84399	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
84400	urls += "?" + c.urlParams_.Encode()
84401	req, err := http.NewRequest("POST", urls, body)
84402	if err != nil {
84403		return nil, err
84404	}
84405	req.Header = reqHeaders
84406	googleapi.Expand(req.URL, map[string]string{
84407		"project":  c.project,
84408		"zone":     c.zone,
84409		"instance": c.instance,
84410	})
84411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84412}
84413
84414// Do executes the "compute.instances.setMetadata" call.
84415// Exactly one of *Operation or error will be non-nil. Any non-2xx
84416// status code is an error. Response headers are in either
84417// *Operation.ServerResponse.Header or (if a response was returned at
84418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84419// to check whether the returned error was because
84420// http.StatusNotModified was returned.
84421func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84422	gensupport.SetOptions(c.urlParams_, opts...)
84423	res, err := c.doRequest("json")
84424	if res != nil && res.StatusCode == http.StatusNotModified {
84425		if res.Body != nil {
84426			res.Body.Close()
84427		}
84428		return nil, &googleapi.Error{
84429			Code:   res.StatusCode,
84430			Header: res.Header,
84431		}
84432	}
84433	if err != nil {
84434		return nil, err
84435	}
84436	defer googleapi.CloseBody(res)
84437	if err := googleapi.CheckResponse(res); err != nil {
84438		return nil, err
84439	}
84440	ret := &Operation{
84441		ServerResponse: googleapi.ServerResponse{
84442			Header:         res.Header,
84443			HTTPStatusCode: res.StatusCode,
84444		},
84445	}
84446	target := &ret
84447	if err := gensupport.DecodeResponse(target, res); err != nil {
84448		return nil, err
84449	}
84450	return ret, nil
84451	// {
84452	//   "description": "Sets metadata for the specified instance to the data included in the request.",
84453	//   "httpMethod": "POST",
84454	//   "id": "compute.instances.setMetadata",
84455	//   "parameterOrder": [
84456	//     "project",
84457	//     "zone",
84458	//     "instance"
84459	//   ],
84460	//   "parameters": {
84461	//     "instance": {
84462	//       "description": "Name of the instance scoping this request.",
84463	//       "location": "path",
84464	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84465	//       "required": true,
84466	//       "type": "string"
84467	//     },
84468	//     "project": {
84469	//       "description": "Project ID for this request.",
84470	//       "location": "path",
84471	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84472	//       "required": true,
84473	//       "type": "string"
84474	//     },
84475	//     "requestId": {
84476	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84477	//       "location": "query",
84478	//       "type": "string"
84479	//     },
84480	//     "zone": {
84481	//       "description": "The name of the zone for this request.",
84482	//       "location": "path",
84483	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84484	//       "required": true,
84485	//       "type": "string"
84486	//     }
84487	//   },
84488	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
84489	//   "request": {
84490	//     "$ref": "Metadata"
84491	//   },
84492	//   "response": {
84493	//     "$ref": "Operation"
84494	//   },
84495	//   "scopes": [
84496	//     "https://www.googleapis.com/auth/cloud-platform",
84497	//     "https://www.googleapis.com/auth/compute"
84498	//   ]
84499	// }
84500
84501}
84502
84503// method id "compute.instances.setMinCpuPlatform":
84504
84505type InstancesSetMinCpuPlatformCall struct {
84506	s                                 *Service
84507	project                           string
84508	zone                              string
84509	instance                          string
84510	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
84511	urlParams_                        gensupport.URLParams
84512	ctx_                              context.Context
84513	header_                           http.Header
84514}
84515
84516// SetMinCpuPlatform: Changes the minimum CPU platform that this
84517// instance should use. This method can only be called on a stopped
84518// instance. For more information, read Specifying a Minimum CPU
84519// Platform.
84520func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
84521	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84522	c.project = project
84523	c.zone = zone
84524	c.instance = instance
84525	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
84526	return c
84527}
84528
84529// RequestId sets the optional parameter "requestId": An optional
84530// request ID to identify requests. Specify a unique request ID so that
84531// if you must retry your request, the server will know to ignore the
84532// request if it has already been completed.
84533//
84534// For example, consider a situation where you make an initial request
84535// and the request times out. If you make the request again with the
84536// same request ID, the server can check if original operation with the
84537// same request ID was received, and if so, will ignore the second
84538// request. This prevents clients from accidentally creating duplicate
84539// commitments.
84540//
84541// The request ID must be a valid UUID with the exception that zero UUID
84542// is not supported (00000000-0000-0000-0000-000000000000).
84543func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
84544	c.urlParams_.Set("requestId", requestId)
84545	return c
84546}
84547
84548// Fields allows partial responses to be retrieved. See
84549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84550// for more information.
84551func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
84552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84553	return c
84554}
84555
84556// Context sets the context to be used in this call's Do method. Any
84557// pending HTTP request will be aborted if the provided context is
84558// canceled.
84559func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
84560	c.ctx_ = ctx
84561	return c
84562}
84563
84564// Header returns an http.Header that can be modified by the caller to
84565// add HTTP headers to the request.
84566func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
84567	if c.header_ == nil {
84568		c.header_ = make(http.Header)
84569	}
84570	return c.header_
84571}
84572
84573func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
84574	reqHeaders := make(http.Header)
84575	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84576	for k, v := range c.header_ {
84577		reqHeaders[k] = v
84578	}
84579	reqHeaders.Set("User-Agent", c.s.userAgent())
84580	var body io.Reader = nil
84581	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
84582	if err != nil {
84583		return nil, err
84584	}
84585	reqHeaders.Set("Content-Type", "application/json")
84586	c.urlParams_.Set("alt", alt)
84587	c.urlParams_.Set("prettyPrint", "false")
84588	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
84589	urls += "?" + c.urlParams_.Encode()
84590	req, err := http.NewRequest("POST", urls, body)
84591	if err != nil {
84592		return nil, err
84593	}
84594	req.Header = reqHeaders
84595	googleapi.Expand(req.URL, map[string]string{
84596		"project":  c.project,
84597		"zone":     c.zone,
84598		"instance": c.instance,
84599	})
84600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84601}
84602
84603// Do executes the "compute.instances.setMinCpuPlatform" call.
84604// Exactly one of *Operation or error will be non-nil. Any non-2xx
84605// status code is an error. Response headers are in either
84606// *Operation.ServerResponse.Header or (if a response was returned at
84607// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84608// to check whether the returned error was because
84609// http.StatusNotModified was returned.
84610func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84611	gensupport.SetOptions(c.urlParams_, opts...)
84612	res, err := c.doRequest("json")
84613	if res != nil && res.StatusCode == http.StatusNotModified {
84614		if res.Body != nil {
84615			res.Body.Close()
84616		}
84617		return nil, &googleapi.Error{
84618			Code:   res.StatusCode,
84619			Header: res.Header,
84620		}
84621	}
84622	if err != nil {
84623		return nil, err
84624	}
84625	defer googleapi.CloseBody(res)
84626	if err := googleapi.CheckResponse(res); err != nil {
84627		return nil, err
84628	}
84629	ret := &Operation{
84630		ServerResponse: googleapi.ServerResponse{
84631			Header:         res.Header,
84632			HTTPStatusCode: res.StatusCode,
84633		},
84634	}
84635	target := &ret
84636	if err := gensupport.DecodeResponse(target, res); err != nil {
84637		return nil, err
84638	}
84639	return ret, nil
84640	// {
84641	//   "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.",
84642	//   "httpMethod": "POST",
84643	//   "id": "compute.instances.setMinCpuPlatform",
84644	//   "parameterOrder": [
84645	//     "project",
84646	//     "zone",
84647	//     "instance"
84648	//   ],
84649	//   "parameters": {
84650	//     "instance": {
84651	//       "description": "Name of the instance scoping this request.",
84652	//       "location": "path",
84653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84654	//       "required": true,
84655	//       "type": "string"
84656	//     },
84657	//     "project": {
84658	//       "description": "Project ID for this request.",
84659	//       "location": "path",
84660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84661	//       "required": true,
84662	//       "type": "string"
84663	//     },
84664	//     "requestId": {
84665	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84666	//       "location": "query",
84667	//       "type": "string"
84668	//     },
84669	//     "zone": {
84670	//       "description": "The name of the zone for this request.",
84671	//       "location": "path",
84672	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84673	//       "required": true,
84674	//       "type": "string"
84675	//     }
84676	//   },
84677	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
84678	//   "request": {
84679	//     "$ref": "InstancesSetMinCpuPlatformRequest"
84680	//   },
84681	//   "response": {
84682	//     "$ref": "Operation"
84683	//   },
84684	//   "scopes": [
84685	//     "https://www.googleapis.com/auth/cloud-platform",
84686	//     "https://www.googleapis.com/auth/compute"
84687	//   ]
84688	// }
84689
84690}
84691
84692// method id "compute.instances.setScheduling":
84693
84694type InstancesSetSchedulingCall struct {
84695	s          *Service
84696	project    string
84697	zone       string
84698	instance   string
84699	scheduling *Scheduling
84700	urlParams_ gensupport.URLParams
84701	ctx_       context.Context
84702	header_    http.Header
84703}
84704
84705// SetScheduling: Sets an instance's scheduling options. You can only
84706// call this method on a stopped instance, that is, a VM instance that
84707// is in a `TERMINATED` state. See Instance Life Cycle for more
84708// information on the possible instance states.
84709// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
84710func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
84711	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84712	c.project = project
84713	c.zone = zone
84714	c.instance = instance
84715	c.scheduling = scheduling
84716	return c
84717}
84718
84719// RequestId sets the optional parameter "requestId": An optional
84720// request ID to identify requests. Specify a unique request ID so that
84721// if you must retry your request, the server will know to ignore the
84722// request if it has already been completed.
84723//
84724// For example, consider a situation where you make an initial request
84725// and the request times out. If you make the request again with the
84726// same request ID, the server can check if original operation with the
84727// same request ID was received, and if so, will ignore the second
84728// request. This prevents clients from accidentally creating duplicate
84729// commitments.
84730//
84731// The request ID must be a valid UUID with the exception that zero UUID
84732// is not supported (00000000-0000-0000-0000-000000000000).
84733func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
84734	c.urlParams_.Set("requestId", requestId)
84735	return c
84736}
84737
84738// Fields allows partial responses to be retrieved. See
84739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84740// for more information.
84741func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
84742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84743	return c
84744}
84745
84746// Context sets the context to be used in this call's Do method. Any
84747// pending HTTP request will be aborted if the provided context is
84748// canceled.
84749func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
84750	c.ctx_ = ctx
84751	return c
84752}
84753
84754// Header returns an http.Header that can be modified by the caller to
84755// add HTTP headers to the request.
84756func (c *InstancesSetSchedulingCall) Header() http.Header {
84757	if c.header_ == nil {
84758		c.header_ = make(http.Header)
84759	}
84760	return c.header_
84761}
84762
84763func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
84764	reqHeaders := make(http.Header)
84765	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84766	for k, v := range c.header_ {
84767		reqHeaders[k] = v
84768	}
84769	reqHeaders.Set("User-Agent", c.s.userAgent())
84770	var body io.Reader = nil
84771	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
84772	if err != nil {
84773		return nil, err
84774	}
84775	reqHeaders.Set("Content-Type", "application/json")
84776	c.urlParams_.Set("alt", alt)
84777	c.urlParams_.Set("prettyPrint", "false")
84778	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
84779	urls += "?" + c.urlParams_.Encode()
84780	req, err := http.NewRequest("POST", urls, body)
84781	if err != nil {
84782		return nil, err
84783	}
84784	req.Header = reqHeaders
84785	googleapi.Expand(req.URL, map[string]string{
84786		"project":  c.project,
84787		"zone":     c.zone,
84788		"instance": c.instance,
84789	})
84790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84791}
84792
84793// Do executes the "compute.instances.setScheduling" call.
84794// Exactly one of *Operation or error will be non-nil. Any non-2xx
84795// status code is an error. Response headers are in either
84796// *Operation.ServerResponse.Header or (if a response was returned at
84797// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84798// to check whether the returned error was because
84799// http.StatusNotModified was returned.
84800func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84801	gensupport.SetOptions(c.urlParams_, opts...)
84802	res, err := c.doRequest("json")
84803	if res != nil && res.StatusCode == http.StatusNotModified {
84804		if res.Body != nil {
84805			res.Body.Close()
84806		}
84807		return nil, &googleapi.Error{
84808			Code:   res.StatusCode,
84809			Header: res.Header,
84810		}
84811	}
84812	if err != nil {
84813		return nil, err
84814	}
84815	defer googleapi.CloseBody(res)
84816	if err := googleapi.CheckResponse(res); err != nil {
84817		return nil, err
84818	}
84819	ret := &Operation{
84820		ServerResponse: googleapi.ServerResponse{
84821			Header:         res.Header,
84822			HTTPStatusCode: res.StatusCode,
84823		},
84824	}
84825	target := &ret
84826	if err := gensupport.DecodeResponse(target, res); err != nil {
84827		return nil, err
84828	}
84829	return ret, nil
84830	// {
84831	//   "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.",
84832	//   "httpMethod": "POST",
84833	//   "id": "compute.instances.setScheduling",
84834	//   "parameterOrder": [
84835	//     "project",
84836	//     "zone",
84837	//     "instance"
84838	//   ],
84839	//   "parameters": {
84840	//     "instance": {
84841	//       "description": "Instance name for this request.",
84842	//       "location": "path",
84843	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84844	//       "required": true,
84845	//       "type": "string"
84846	//     },
84847	//     "project": {
84848	//       "description": "Project ID for this request.",
84849	//       "location": "path",
84850	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84851	//       "required": true,
84852	//       "type": "string"
84853	//     },
84854	//     "requestId": {
84855	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84856	//       "location": "query",
84857	//       "type": "string"
84858	//     },
84859	//     "zone": {
84860	//       "description": "The name of the zone for this request.",
84861	//       "location": "path",
84862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84863	//       "required": true,
84864	//       "type": "string"
84865	//     }
84866	//   },
84867	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
84868	//   "request": {
84869	//     "$ref": "Scheduling"
84870	//   },
84871	//   "response": {
84872	//     "$ref": "Operation"
84873	//   },
84874	//   "scopes": [
84875	//     "https://www.googleapis.com/auth/cloud-platform",
84876	//     "https://www.googleapis.com/auth/compute"
84877	//   ]
84878	// }
84879
84880}
84881
84882// method id "compute.instances.setServiceAccount":
84883
84884type InstancesSetServiceAccountCall struct {
84885	s                                 *Service
84886	project                           string
84887	zone                              string
84888	instance                          string
84889	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
84890	urlParams_                        gensupport.URLParams
84891	ctx_                              context.Context
84892	header_                           http.Header
84893}
84894
84895// SetServiceAccount: Sets the service account on the instance. For more
84896// information, read Changing the service account and access scopes for
84897// an instance.
84898func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
84899	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84900	c.project = project
84901	c.zone = zone
84902	c.instance = instance
84903	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
84904	return c
84905}
84906
84907// RequestId sets the optional parameter "requestId": An optional
84908// request ID to identify requests. Specify a unique request ID so that
84909// if you must retry your request, the server will know to ignore the
84910// request if it has already been completed.
84911//
84912// For example, consider a situation where you make an initial request
84913// and the request times out. If you make the request again with the
84914// same request ID, the server can check if original operation with the
84915// same request ID was received, and if so, will ignore the second
84916// request. This prevents clients from accidentally creating duplicate
84917// commitments.
84918//
84919// The request ID must be a valid UUID with the exception that zero UUID
84920// is not supported (00000000-0000-0000-0000-000000000000).
84921func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
84922	c.urlParams_.Set("requestId", requestId)
84923	return c
84924}
84925
84926// Fields allows partial responses to be retrieved. See
84927// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84928// for more information.
84929func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
84930	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84931	return c
84932}
84933
84934// Context sets the context to be used in this call's Do method. Any
84935// pending HTTP request will be aborted if the provided context is
84936// canceled.
84937func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
84938	c.ctx_ = ctx
84939	return c
84940}
84941
84942// Header returns an http.Header that can be modified by the caller to
84943// add HTTP headers to the request.
84944func (c *InstancesSetServiceAccountCall) Header() http.Header {
84945	if c.header_ == nil {
84946		c.header_ = make(http.Header)
84947	}
84948	return c.header_
84949}
84950
84951func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
84952	reqHeaders := make(http.Header)
84953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
84954	for k, v := range c.header_ {
84955		reqHeaders[k] = v
84956	}
84957	reqHeaders.Set("User-Agent", c.s.userAgent())
84958	var body io.Reader = nil
84959	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
84960	if err != nil {
84961		return nil, err
84962	}
84963	reqHeaders.Set("Content-Type", "application/json")
84964	c.urlParams_.Set("alt", alt)
84965	c.urlParams_.Set("prettyPrint", "false")
84966	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
84967	urls += "?" + c.urlParams_.Encode()
84968	req, err := http.NewRequest("POST", urls, body)
84969	if err != nil {
84970		return nil, err
84971	}
84972	req.Header = reqHeaders
84973	googleapi.Expand(req.URL, map[string]string{
84974		"project":  c.project,
84975		"zone":     c.zone,
84976		"instance": c.instance,
84977	})
84978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84979}
84980
84981// Do executes the "compute.instances.setServiceAccount" call.
84982// Exactly one of *Operation or error will be non-nil. Any non-2xx
84983// status code is an error. Response headers are in either
84984// *Operation.ServerResponse.Header or (if a response was returned at
84985// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84986// to check whether the returned error was because
84987// http.StatusNotModified was returned.
84988func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84989	gensupport.SetOptions(c.urlParams_, opts...)
84990	res, err := c.doRequest("json")
84991	if res != nil && res.StatusCode == http.StatusNotModified {
84992		if res.Body != nil {
84993			res.Body.Close()
84994		}
84995		return nil, &googleapi.Error{
84996			Code:   res.StatusCode,
84997			Header: res.Header,
84998		}
84999	}
85000	if err != nil {
85001		return nil, err
85002	}
85003	defer googleapi.CloseBody(res)
85004	if err := googleapi.CheckResponse(res); err != nil {
85005		return nil, err
85006	}
85007	ret := &Operation{
85008		ServerResponse: googleapi.ServerResponse{
85009			Header:         res.Header,
85010			HTTPStatusCode: res.StatusCode,
85011		},
85012	}
85013	target := &ret
85014	if err := gensupport.DecodeResponse(target, res); err != nil {
85015		return nil, err
85016	}
85017	return ret, nil
85018	// {
85019	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
85020	//   "httpMethod": "POST",
85021	//   "id": "compute.instances.setServiceAccount",
85022	//   "parameterOrder": [
85023	//     "project",
85024	//     "zone",
85025	//     "instance"
85026	//   ],
85027	//   "parameters": {
85028	//     "instance": {
85029	//       "description": "Name of the instance resource to start.",
85030	//       "location": "path",
85031	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85032	//       "required": true,
85033	//       "type": "string"
85034	//     },
85035	//     "project": {
85036	//       "description": "Project ID for this request.",
85037	//       "location": "path",
85038	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85039	//       "required": true,
85040	//       "type": "string"
85041	//     },
85042	//     "requestId": {
85043	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85044	//       "location": "query",
85045	//       "type": "string"
85046	//     },
85047	//     "zone": {
85048	//       "description": "The name of the zone for this request.",
85049	//       "location": "path",
85050	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85051	//       "required": true,
85052	//       "type": "string"
85053	//     }
85054	//   },
85055	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
85056	//   "request": {
85057	//     "$ref": "InstancesSetServiceAccountRequest"
85058	//   },
85059	//   "response": {
85060	//     "$ref": "Operation"
85061	//   },
85062	//   "scopes": [
85063	//     "https://www.googleapis.com/auth/cloud-platform",
85064	//     "https://www.googleapis.com/auth/compute"
85065	//   ]
85066	// }
85067
85068}
85069
85070// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
85071
85072type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
85073	s                               *Service
85074	project                         string
85075	zone                            string
85076	instance                        string
85077	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
85078	urlParams_                      gensupport.URLParams
85079	ctx_                            context.Context
85080	header_                         http.Header
85081}
85082
85083// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
85084// integrity policy for an instance. You can only use this method on a
85085// running instance. This method supports PATCH semantics and uses the
85086// JSON merge patch format and processing rules.
85087func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
85088	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85089	c.project = project
85090	c.zone = zone
85091	c.instance = instance
85092	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
85093	return c
85094}
85095
85096// RequestId sets the optional parameter "requestId": An optional
85097// request ID to identify requests. Specify a unique request ID so that
85098// if you must retry your request, the server will know to ignore the
85099// request if it has already been completed.
85100//
85101// For example, consider a situation where you make an initial request
85102// and the request times out. If you make the request again with the
85103// same request ID, the server can check if original operation with the
85104// same request ID was received, and if so, will ignore the second
85105// request. This prevents clients from accidentally creating duplicate
85106// commitments.
85107//
85108// The request ID must be a valid UUID with the exception that zero UUID
85109// is not supported (00000000-0000-0000-0000-000000000000).
85110func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
85111	c.urlParams_.Set("requestId", requestId)
85112	return c
85113}
85114
85115// Fields allows partial responses to be retrieved. See
85116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85117// for more information.
85118func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
85119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85120	return c
85121}
85122
85123// Context sets the context to be used in this call's Do method. Any
85124// pending HTTP request will be aborted if the provided context is
85125// canceled.
85126func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
85127	c.ctx_ = ctx
85128	return c
85129}
85130
85131// Header returns an http.Header that can be modified by the caller to
85132// add HTTP headers to the request.
85133func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
85134	if c.header_ == nil {
85135		c.header_ = make(http.Header)
85136	}
85137	return c.header_
85138}
85139
85140func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
85141	reqHeaders := make(http.Header)
85142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85143	for k, v := range c.header_ {
85144		reqHeaders[k] = v
85145	}
85146	reqHeaders.Set("User-Agent", c.s.userAgent())
85147	var body io.Reader = nil
85148	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
85149	if err != nil {
85150		return nil, err
85151	}
85152	reqHeaders.Set("Content-Type", "application/json")
85153	c.urlParams_.Set("alt", alt)
85154	c.urlParams_.Set("prettyPrint", "false")
85155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
85156	urls += "?" + c.urlParams_.Encode()
85157	req, err := http.NewRequest("PATCH", urls, body)
85158	if err != nil {
85159		return nil, err
85160	}
85161	req.Header = reqHeaders
85162	googleapi.Expand(req.URL, map[string]string{
85163		"project":  c.project,
85164		"zone":     c.zone,
85165		"instance": c.instance,
85166	})
85167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85168}
85169
85170// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
85171// Exactly one of *Operation or error will be non-nil. Any non-2xx
85172// status code is an error. Response headers are in either
85173// *Operation.ServerResponse.Header or (if a response was returned at
85174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85175// to check whether the returned error was because
85176// http.StatusNotModified was returned.
85177func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85178	gensupport.SetOptions(c.urlParams_, opts...)
85179	res, err := c.doRequest("json")
85180	if res != nil && res.StatusCode == http.StatusNotModified {
85181		if res.Body != nil {
85182			res.Body.Close()
85183		}
85184		return nil, &googleapi.Error{
85185			Code:   res.StatusCode,
85186			Header: res.Header,
85187		}
85188	}
85189	if err != nil {
85190		return nil, err
85191	}
85192	defer googleapi.CloseBody(res)
85193	if err := googleapi.CheckResponse(res); err != nil {
85194		return nil, err
85195	}
85196	ret := &Operation{
85197		ServerResponse: googleapi.ServerResponse{
85198			Header:         res.Header,
85199			HTTPStatusCode: res.StatusCode,
85200		},
85201	}
85202	target := &ret
85203	if err := gensupport.DecodeResponse(target, res); err != nil {
85204		return nil, err
85205	}
85206	return ret, nil
85207	// {
85208	//   "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.",
85209	//   "httpMethod": "PATCH",
85210	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
85211	//   "parameterOrder": [
85212	//     "project",
85213	//     "zone",
85214	//     "instance"
85215	//   ],
85216	//   "parameters": {
85217	//     "instance": {
85218	//       "description": "Name or id of the instance scoping this request.",
85219	//       "location": "path",
85220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85221	//       "required": true,
85222	//       "type": "string"
85223	//     },
85224	//     "project": {
85225	//       "description": "Project ID for this request.",
85226	//       "location": "path",
85227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85228	//       "required": true,
85229	//       "type": "string"
85230	//     },
85231	//     "requestId": {
85232	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85233	//       "location": "query",
85234	//       "type": "string"
85235	//     },
85236	//     "zone": {
85237	//       "description": "The name of the zone for this request.",
85238	//       "location": "path",
85239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85240	//       "required": true,
85241	//       "type": "string"
85242	//     }
85243	//   },
85244	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
85245	//   "request": {
85246	//     "$ref": "ShieldedInstanceIntegrityPolicy"
85247	//   },
85248	//   "response": {
85249	//     "$ref": "Operation"
85250	//   },
85251	//   "scopes": [
85252	//     "https://www.googleapis.com/auth/cloud-platform",
85253	//     "https://www.googleapis.com/auth/compute"
85254	//   ]
85255	// }
85256
85257}
85258
85259// method id "compute.instances.setShieldedVmIntegrityPolicy":
85260
85261type InstancesSetShieldedVmIntegrityPolicyCall struct {
85262	s                         *Service
85263	project                   string
85264	zone                      string
85265	instance                  string
85266	shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy
85267	urlParams_                gensupport.URLParams
85268	ctx_                      context.Context
85269	header_                   http.Header
85270}
85271
85272// SetShieldedVmIntegrityPolicy: Sets the Shielded VM integrity policy
85273// for a VM instance. You can only use this method on a running VM
85274// instance. This method supports PATCH semantics and uses the JSON
85275// merge patch format and processing rules.
85276func (r *InstancesService) SetShieldedVmIntegrityPolicy(project string, zone string, instance string, shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy) *InstancesSetShieldedVmIntegrityPolicyCall {
85277	c := &InstancesSetShieldedVmIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85278	c.project = project
85279	c.zone = zone
85280	c.instance = instance
85281	c.shieldedvmintegritypolicy = shieldedvmintegritypolicy
85282	return c
85283}
85284
85285// RequestId sets the optional parameter "requestId": An optional
85286// request ID to identify requests. Specify a unique request ID so that
85287// if you must retry your request, the server will know to ignore the
85288// request if it has already been completed.
85289//
85290// For example, consider a situation where you make an initial request
85291// and the request times out. If you make the request again with the
85292// same request ID, the server can check if original operation with the
85293// same request ID was received, and if so, will ignore the second
85294// request. This prevents clients from accidentally creating duplicate
85295// commitments.
85296//
85297// The request ID must be a valid UUID with the exception that zero UUID
85298// is not supported (00000000-0000-0000-0000-000000000000).
85299func (c *InstancesSetShieldedVmIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedVmIntegrityPolicyCall {
85300	c.urlParams_.Set("requestId", requestId)
85301	return c
85302}
85303
85304// Fields allows partial responses to be retrieved. See
85305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85306// for more information.
85307func (c *InstancesSetShieldedVmIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedVmIntegrityPolicyCall {
85308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85309	return c
85310}
85311
85312// Context sets the context to be used in this call's Do method. Any
85313// pending HTTP request will be aborted if the provided context is
85314// canceled.
85315func (c *InstancesSetShieldedVmIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedVmIntegrityPolicyCall {
85316	c.ctx_ = ctx
85317	return c
85318}
85319
85320// Header returns an http.Header that can be modified by the caller to
85321// add HTTP headers to the request.
85322func (c *InstancesSetShieldedVmIntegrityPolicyCall) Header() http.Header {
85323	if c.header_ == nil {
85324		c.header_ = make(http.Header)
85325	}
85326	return c.header_
85327}
85328
85329func (c *InstancesSetShieldedVmIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
85330	reqHeaders := make(http.Header)
85331	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85332	for k, v := range c.header_ {
85333		reqHeaders[k] = v
85334	}
85335	reqHeaders.Set("User-Agent", c.s.userAgent())
85336	var body io.Reader = nil
85337	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmintegritypolicy)
85338	if err != nil {
85339		return nil, err
85340	}
85341	reqHeaders.Set("Content-Type", "application/json")
85342	c.urlParams_.Set("alt", alt)
85343	c.urlParams_.Set("prettyPrint", "false")
85344	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy")
85345	urls += "?" + c.urlParams_.Encode()
85346	req, err := http.NewRequest("PATCH", urls, body)
85347	if err != nil {
85348		return nil, err
85349	}
85350	req.Header = reqHeaders
85351	googleapi.Expand(req.URL, map[string]string{
85352		"project":  c.project,
85353		"zone":     c.zone,
85354		"instance": c.instance,
85355	})
85356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85357}
85358
85359// Do executes the "compute.instances.setShieldedVmIntegrityPolicy" call.
85360// Exactly one of *Operation or error will be non-nil. Any non-2xx
85361// status code is an error. Response headers are in either
85362// *Operation.ServerResponse.Header or (if a response was returned at
85363// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85364// to check whether the returned error was because
85365// http.StatusNotModified was returned.
85366func (c *InstancesSetShieldedVmIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85367	gensupport.SetOptions(c.urlParams_, opts...)
85368	res, err := c.doRequest("json")
85369	if res != nil && res.StatusCode == http.StatusNotModified {
85370		if res.Body != nil {
85371			res.Body.Close()
85372		}
85373		return nil, &googleapi.Error{
85374			Code:   res.StatusCode,
85375			Header: res.Header,
85376		}
85377	}
85378	if err != nil {
85379		return nil, err
85380	}
85381	defer googleapi.CloseBody(res)
85382	if err := googleapi.CheckResponse(res); err != nil {
85383		return nil, err
85384	}
85385	ret := &Operation{
85386		ServerResponse: googleapi.ServerResponse{
85387			Header:         res.Header,
85388			HTTPStatusCode: res.StatusCode,
85389		},
85390	}
85391	target := &ret
85392	if err := gensupport.DecodeResponse(target, res); err != nil {
85393		return nil, err
85394	}
85395	return ret, nil
85396	// {
85397	//   "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.",
85398	//   "httpMethod": "PATCH",
85399	//   "id": "compute.instances.setShieldedVmIntegrityPolicy",
85400	//   "parameterOrder": [
85401	//     "project",
85402	//     "zone",
85403	//     "instance"
85404	//   ],
85405	//   "parameters": {
85406	//     "instance": {
85407	//       "description": "Name of the instance scoping this request.",
85408	//       "location": "path",
85409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85410	//       "required": true,
85411	//       "type": "string"
85412	//     },
85413	//     "project": {
85414	//       "description": "Project ID for this request.",
85415	//       "location": "path",
85416	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85417	//       "required": true,
85418	//       "type": "string"
85419	//     },
85420	//     "requestId": {
85421	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85422	//       "location": "query",
85423	//       "type": "string"
85424	//     },
85425	//     "zone": {
85426	//       "description": "The name of the zone for this request.",
85427	//       "location": "path",
85428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85429	//       "required": true,
85430	//       "type": "string"
85431	//     }
85432	//   },
85433	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy",
85434	//   "request": {
85435	//     "$ref": "ShieldedVmIntegrityPolicy"
85436	//   },
85437	//   "response": {
85438	//     "$ref": "Operation"
85439	//   },
85440	//   "scopes": [
85441	//     "https://www.googleapis.com/auth/cloud-platform",
85442	//     "https://www.googleapis.com/auth/compute"
85443	//   ]
85444	// }
85445
85446}
85447
85448// method id "compute.instances.setTags":
85449
85450type InstancesSetTagsCall struct {
85451	s          *Service
85452	project    string
85453	zone       string
85454	instance   string
85455	tags       *Tags
85456	urlParams_ gensupport.URLParams
85457	ctx_       context.Context
85458	header_    http.Header
85459}
85460
85461// SetTags: Sets network tags for the specified instance to the data
85462// included in the request.
85463// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
85464func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
85465	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85466	c.project = project
85467	c.zone = zone
85468	c.instance = instance
85469	c.tags = tags
85470	return c
85471}
85472
85473// RequestId sets the optional parameter "requestId": An optional
85474// request ID to identify requests. Specify a unique request ID so that
85475// if you must retry your request, the server will know to ignore the
85476// request if it has already been completed.
85477//
85478// For example, consider a situation where you make an initial request
85479// and the request times out. If you make the request again with the
85480// same request ID, the server can check if original operation with the
85481// same request ID was received, and if so, will ignore the second
85482// request. This prevents clients from accidentally creating duplicate
85483// commitments.
85484//
85485// The request ID must be a valid UUID with the exception that zero UUID
85486// is not supported (00000000-0000-0000-0000-000000000000).
85487func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
85488	c.urlParams_.Set("requestId", requestId)
85489	return c
85490}
85491
85492// Fields allows partial responses to be retrieved. See
85493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85494// for more information.
85495func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
85496	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85497	return c
85498}
85499
85500// Context sets the context to be used in this call's Do method. Any
85501// pending HTTP request will be aborted if the provided context is
85502// canceled.
85503func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
85504	c.ctx_ = ctx
85505	return c
85506}
85507
85508// Header returns an http.Header that can be modified by the caller to
85509// add HTTP headers to the request.
85510func (c *InstancesSetTagsCall) Header() http.Header {
85511	if c.header_ == nil {
85512		c.header_ = make(http.Header)
85513	}
85514	return c.header_
85515}
85516
85517func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
85518	reqHeaders := make(http.Header)
85519	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85520	for k, v := range c.header_ {
85521		reqHeaders[k] = v
85522	}
85523	reqHeaders.Set("User-Agent", c.s.userAgent())
85524	var body io.Reader = nil
85525	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
85526	if err != nil {
85527		return nil, err
85528	}
85529	reqHeaders.Set("Content-Type", "application/json")
85530	c.urlParams_.Set("alt", alt)
85531	c.urlParams_.Set("prettyPrint", "false")
85532	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
85533	urls += "?" + c.urlParams_.Encode()
85534	req, err := http.NewRequest("POST", urls, body)
85535	if err != nil {
85536		return nil, err
85537	}
85538	req.Header = reqHeaders
85539	googleapi.Expand(req.URL, map[string]string{
85540		"project":  c.project,
85541		"zone":     c.zone,
85542		"instance": c.instance,
85543	})
85544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85545}
85546
85547// Do executes the "compute.instances.setTags" call.
85548// Exactly one of *Operation or error will be non-nil. Any non-2xx
85549// status code is an error. Response headers are in either
85550// *Operation.ServerResponse.Header or (if a response was returned at
85551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85552// to check whether the returned error was because
85553// http.StatusNotModified was returned.
85554func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85555	gensupport.SetOptions(c.urlParams_, opts...)
85556	res, err := c.doRequest("json")
85557	if res != nil && res.StatusCode == http.StatusNotModified {
85558		if res.Body != nil {
85559			res.Body.Close()
85560		}
85561		return nil, &googleapi.Error{
85562			Code:   res.StatusCode,
85563			Header: res.Header,
85564		}
85565	}
85566	if err != nil {
85567		return nil, err
85568	}
85569	defer googleapi.CloseBody(res)
85570	if err := googleapi.CheckResponse(res); err != nil {
85571		return nil, err
85572	}
85573	ret := &Operation{
85574		ServerResponse: googleapi.ServerResponse{
85575			Header:         res.Header,
85576			HTTPStatusCode: res.StatusCode,
85577		},
85578	}
85579	target := &ret
85580	if err := gensupport.DecodeResponse(target, res); err != nil {
85581		return nil, err
85582	}
85583	return ret, nil
85584	// {
85585	//   "description": "Sets network tags for the specified instance to the data included in the request.",
85586	//   "httpMethod": "POST",
85587	//   "id": "compute.instances.setTags",
85588	//   "parameterOrder": [
85589	//     "project",
85590	//     "zone",
85591	//     "instance"
85592	//   ],
85593	//   "parameters": {
85594	//     "instance": {
85595	//       "description": "Name of the instance scoping this request.",
85596	//       "location": "path",
85597	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85598	//       "required": true,
85599	//       "type": "string"
85600	//     },
85601	//     "project": {
85602	//       "description": "Project ID for this request.",
85603	//       "location": "path",
85604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85605	//       "required": true,
85606	//       "type": "string"
85607	//     },
85608	//     "requestId": {
85609	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85610	//       "location": "query",
85611	//       "type": "string"
85612	//     },
85613	//     "zone": {
85614	//       "description": "The name of the zone for this request.",
85615	//       "location": "path",
85616	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85617	//       "required": true,
85618	//       "type": "string"
85619	//     }
85620	//   },
85621	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
85622	//   "request": {
85623	//     "$ref": "Tags"
85624	//   },
85625	//   "response": {
85626	//     "$ref": "Operation"
85627	//   },
85628	//   "scopes": [
85629	//     "https://www.googleapis.com/auth/cloud-platform",
85630	//     "https://www.googleapis.com/auth/compute"
85631	//   ]
85632	// }
85633
85634}
85635
85636// method id "compute.instances.simulateMaintenanceEvent":
85637
85638type InstancesSimulateMaintenanceEventCall struct {
85639	s          *Service
85640	project    string
85641	zone       string
85642	instance   string
85643	urlParams_ gensupport.URLParams
85644	ctx_       context.Context
85645	header_    http.Header
85646}
85647
85648// SimulateMaintenanceEvent: Simulates a maintenance event on the
85649// instance.
85650func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
85651	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85652	c.project = project
85653	c.zone = zone
85654	c.instance = instance
85655	return c
85656}
85657
85658// Fields allows partial responses to be retrieved. See
85659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85660// for more information.
85661func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
85662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85663	return c
85664}
85665
85666// Context sets the context to be used in this call's Do method. Any
85667// pending HTTP request will be aborted if the provided context is
85668// canceled.
85669func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
85670	c.ctx_ = ctx
85671	return c
85672}
85673
85674// Header returns an http.Header that can be modified by the caller to
85675// add HTTP headers to the request.
85676func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
85677	if c.header_ == nil {
85678		c.header_ = make(http.Header)
85679	}
85680	return c.header_
85681}
85682
85683func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
85684	reqHeaders := make(http.Header)
85685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85686	for k, v := range c.header_ {
85687		reqHeaders[k] = v
85688	}
85689	reqHeaders.Set("User-Agent", c.s.userAgent())
85690	var body io.Reader = nil
85691	c.urlParams_.Set("alt", alt)
85692	c.urlParams_.Set("prettyPrint", "false")
85693	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
85694	urls += "?" + c.urlParams_.Encode()
85695	req, err := http.NewRequest("POST", urls, body)
85696	if err != nil {
85697		return nil, err
85698	}
85699	req.Header = reqHeaders
85700	googleapi.Expand(req.URL, map[string]string{
85701		"project":  c.project,
85702		"zone":     c.zone,
85703		"instance": c.instance,
85704	})
85705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85706}
85707
85708// Do executes the "compute.instances.simulateMaintenanceEvent" call.
85709// Exactly one of *Operation or error will be non-nil. Any non-2xx
85710// status code is an error. Response headers are in either
85711// *Operation.ServerResponse.Header or (if a response was returned at
85712// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85713// to check whether the returned error was because
85714// http.StatusNotModified was returned.
85715func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85716	gensupport.SetOptions(c.urlParams_, opts...)
85717	res, err := c.doRequest("json")
85718	if res != nil && res.StatusCode == http.StatusNotModified {
85719		if res.Body != nil {
85720			res.Body.Close()
85721		}
85722		return nil, &googleapi.Error{
85723			Code:   res.StatusCode,
85724			Header: res.Header,
85725		}
85726	}
85727	if err != nil {
85728		return nil, err
85729	}
85730	defer googleapi.CloseBody(res)
85731	if err := googleapi.CheckResponse(res); err != nil {
85732		return nil, err
85733	}
85734	ret := &Operation{
85735		ServerResponse: googleapi.ServerResponse{
85736			Header:         res.Header,
85737			HTTPStatusCode: res.StatusCode,
85738		},
85739	}
85740	target := &ret
85741	if err := gensupport.DecodeResponse(target, res); err != nil {
85742		return nil, err
85743	}
85744	return ret, nil
85745	// {
85746	//   "description": "Simulates a maintenance event on the instance.",
85747	//   "httpMethod": "POST",
85748	//   "id": "compute.instances.simulateMaintenanceEvent",
85749	//   "parameterOrder": [
85750	//     "project",
85751	//     "zone",
85752	//     "instance"
85753	//   ],
85754	//   "parameters": {
85755	//     "instance": {
85756	//       "description": "Name of the instance scoping this request.",
85757	//       "location": "path",
85758	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85759	//       "required": true,
85760	//       "type": "string"
85761	//     },
85762	//     "project": {
85763	//       "description": "Project ID for this request.",
85764	//       "location": "path",
85765	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85766	//       "required": true,
85767	//       "type": "string"
85768	//     },
85769	//     "zone": {
85770	//       "description": "The name of the zone for this request.",
85771	//       "location": "path",
85772	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85773	//       "required": true,
85774	//       "type": "string"
85775	//     }
85776	//   },
85777	//   "path": "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
85778	//   "response": {
85779	//     "$ref": "Operation"
85780	//   },
85781	//   "scopes": [
85782	//     "https://www.googleapis.com/auth/cloud-platform",
85783	//     "https://www.googleapis.com/auth/compute"
85784	//   ]
85785	// }
85786
85787}
85788
85789// method id "compute.instances.start":
85790
85791type InstancesStartCall struct {
85792	s          *Service
85793	project    string
85794	zone       string
85795	instance   string
85796	urlParams_ gensupport.URLParams
85797	ctx_       context.Context
85798	header_    http.Header
85799}
85800
85801// Start: Starts an instance that was stopped using the instances().stop
85802// method. For more information, see Restart an instance.
85803// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
85804func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
85805	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85806	c.project = project
85807	c.zone = zone
85808	c.instance = instance
85809	return c
85810}
85811
85812// RequestId sets the optional parameter "requestId": An optional
85813// request ID to identify requests. Specify a unique request ID so that
85814// if you must retry your request, the server will know to ignore the
85815// request if it has already been completed.
85816//
85817// For example, consider a situation where you make an initial request
85818// and the request times out. If you make the request again with the
85819// same request ID, the server can check if original operation with the
85820// same request ID was received, and if so, will ignore the second
85821// request. This prevents clients from accidentally creating duplicate
85822// commitments.
85823//
85824// The request ID must be a valid UUID with the exception that zero UUID
85825// is not supported (00000000-0000-0000-0000-000000000000).
85826func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
85827	c.urlParams_.Set("requestId", requestId)
85828	return c
85829}
85830
85831// Fields allows partial responses to be retrieved. See
85832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85833// for more information.
85834func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
85835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85836	return c
85837}
85838
85839// Context sets the context to be used in this call's Do method. Any
85840// pending HTTP request will be aborted if the provided context is
85841// canceled.
85842func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
85843	c.ctx_ = ctx
85844	return c
85845}
85846
85847// Header returns an http.Header that can be modified by the caller to
85848// add HTTP headers to the request.
85849func (c *InstancesStartCall) Header() http.Header {
85850	if c.header_ == nil {
85851		c.header_ = make(http.Header)
85852	}
85853	return c.header_
85854}
85855
85856func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
85857	reqHeaders := make(http.Header)
85858	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
85859	for k, v := range c.header_ {
85860		reqHeaders[k] = v
85861	}
85862	reqHeaders.Set("User-Agent", c.s.userAgent())
85863	var body io.Reader = nil
85864	c.urlParams_.Set("alt", alt)
85865	c.urlParams_.Set("prettyPrint", "false")
85866	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
85867	urls += "?" + c.urlParams_.Encode()
85868	req, err := http.NewRequest("POST", urls, body)
85869	if err != nil {
85870		return nil, err
85871	}
85872	req.Header = reqHeaders
85873	googleapi.Expand(req.URL, map[string]string{
85874		"project":  c.project,
85875		"zone":     c.zone,
85876		"instance": c.instance,
85877	})
85878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85879}
85880
85881// Do executes the "compute.instances.start" call.
85882// Exactly one of *Operation or error will be non-nil. Any non-2xx
85883// status code is an error. Response headers are in either
85884// *Operation.ServerResponse.Header or (if a response was returned at
85885// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85886// to check whether the returned error was because
85887// http.StatusNotModified was returned.
85888func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85889	gensupport.SetOptions(c.urlParams_, opts...)
85890	res, err := c.doRequest("json")
85891	if res != nil && res.StatusCode == http.StatusNotModified {
85892		if res.Body != nil {
85893			res.Body.Close()
85894		}
85895		return nil, &googleapi.Error{
85896			Code:   res.StatusCode,
85897			Header: res.Header,
85898		}
85899	}
85900	if err != nil {
85901		return nil, err
85902	}
85903	defer googleapi.CloseBody(res)
85904	if err := googleapi.CheckResponse(res); err != nil {
85905		return nil, err
85906	}
85907	ret := &Operation{
85908		ServerResponse: googleapi.ServerResponse{
85909			Header:         res.Header,
85910			HTTPStatusCode: res.StatusCode,
85911		},
85912	}
85913	target := &ret
85914	if err := gensupport.DecodeResponse(target, res); err != nil {
85915		return nil, err
85916	}
85917	return ret, nil
85918	// {
85919	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
85920	//   "httpMethod": "POST",
85921	//   "id": "compute.instances.start",
85922	//   "parameterOrder": [
85923	//     "project",
85924	//     "zone",
85925	//     "instance"
85926	//   ],
85927	//   "parameters": {
85928	//     "instance": {
85929	//       "description": "Name of the instance resource to start.",
85930	//       "location": "path",
85931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85932	//       "required": true,
85933	//       "type": "string"
85934	//     },
85935	//     "project": {
85936	//       "description": "Project ID for this request.",
85937	//       "location": "path",
85938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85939	//       "required": true,
85940	//       "type": "string"
85941	//     },
85942	//     "requestId": {
85943	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85944	//       "location": "query",
85945	//       "type": "string"
85946	//     },
85947	//     "zone": {
85948	//       "description": "The name of the zone for this request.",
85949	//       "location": "path",
85950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85951	//       "required": true,
85952	//       "type": "string"
85953	//     }
85954	//   },
85955	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
85956	//   "response": {
85957	//     "$ref": "Operation"
85958	//   },
85959	//   "scopes": [
85960	//     "https://www.googleapis.com/auth/cloud-platform",
85961	//     "https://www.googleapis.com/auth/compute"
85962	//   ]
85963	// }
85964
85965}
85966
85967// method id "compute.instances.startWithEncryptionKey":
85968
85969type InstancesStartWithEncryptionKeyCall struct {
85970	s                                      *Service
85971	project                                string
85972	zone                                   string
85973	instance                               string
85974	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
85975	urlParams_                             gensupport.URLParams
85976	ctx_                                   context.Context
85977	header_                                http.Header
85978}
85979
85980// StartWithEncryptionKey: Starts an instance that was stopped using the
85981// instances().stop method. For more information, see Restart an
85982// instance.
85983func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
85984	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85985	c.project = project
85986	c.zone = zone
85987	c.instance = instance
85988	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
85989	return c
85990}
85991
85992// RequestId sets the optional parameter "requestId": An optional
85993// request ID to identify requests. Specify a unique request ID so that
85994// if you must retry your request, the server will know to ignore the
85995// request if it has already been completed.
85996//
85997// For example, consider a situation where you make an initial request
85998// and the request times out. If you make the request again with the
85999// same request ID, the server can check if original operation with the
86000// same request ID was received, and if so, will ignore the second
86001// request. This prevents clients from accidentally creating duplicate
86002// commitments.
86003//
86004// The request ID must be a valid UUID with the exception that zero UUID
86005// is not supported (00000000-0000-0000-0000-000000000000).
86006func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
86007	c.urlParams_.Set("requestId", requestId)
86008	return c
86009}
86010
86011// Fields allows partial responses to be retrieved. See
86012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86013// for more information.
86014func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
86015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86016	return c
86017}
86018
86019// Context sets the context to be used in this call's Do method. Any
86020// pending HTTP request will be aborted if the provided context is
86021// canceled.
86022func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
86023	c.ctx_ = ctx
86024	return c
86025}
86026
86027// Header returns an http.Header that can be modified by the caller to
86028// add HTTP headers to the request.
86029func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
86030	if c.header_ == nil {
86031		c.header_ = make(http.Header)
86032	}
86033	return c.header_
86034}
86035
86036func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
86037	reqHeaders := make(http.Header)
86038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86039	for k, v := range c.header_ {
86040		reqHeaders[k] = v
86041	}
86042	reqHeaders.Set("User-Agent", c.s.userAgent())
86043	var body io.Reader = nil
86044	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
86045	if err != nil {
86046		return nil, err
86047	}
86048	reqHeaders.Set("Content-Type", "application/json")
86049	c.urlParams_.Set("alt", alt)
86050	c.urlParams_.Set("prettyPrint", "false")
86051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
86052	urls += "?" + c.urlParams_.Encode()
86053	req, err := http.NewRequest("POST", urls, body)
86054	if err != nil {
86055		return nil, err
86056	}
86057	req.Header = reqHeaders
86058	googleapi.Expand(req.URL, map[string]string{
86059		"project":  c.project,
86060		"zone":     c.zone,
86061		"instance": c.instance,
86062	})
86063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86064}
86065
86066// Do executes the "compute.instances.startWithEncryptionKey" call.
86067// Exactly one of *Operation or error will be non-nil. Any non-2xx
86068// status code is an error. Response headers are in either
86069// *Operation.ServerResponse.Header or (if a response was returned at
86070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86071// to check whether the returned error was because
86072// http.StatusNotModified was returned.
86073func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86074	gensupport.SetOptions(c.urlParams_, opts...)
86075	res, err := c.doRequest("json")
86076	if res != nil && res.StatusCode == http.StatusNotModified {
86077		if res.Body != nil {
86078			res.Body.Close()
86079		}
86080		return nil, &googleapi.Error{
86081			Code:   res.StatusCode,
86082			Header: res.Header,
86083		}
86084	}
86085	if err != nil {
86086		return nil, err
86087	}
86088	defer googleapi.CloseBody(res)
86089	if err := googleapi.CheckResponse(res); err != nil {
86090		return nil, err
86091	}
86092	ret := &Operation{
86093		ServerResponse: googleapi.ServerResponse{
86094			Header:         res.Header,
86095			HTTPStatusCode: res.StatusCode,
86096		},
86097	}
86098	target := &ret
86099	if err := gensupport.DecodeResponse(target, res); err != nil {
86100		return nil, err
86101	}
86102	return ret, nil
86103	// {
86104	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
86105	//   "httpMethod": "POST",
86106	//   "id": "compute.instances.startWithEncryptionKey",
86107	//   "parameterOrder": [
86108	//     "project",
86109	//     "zone",
86110	//     "instance"
86111	//   ],
86112	//   "parameters": {
86113	//     "instance": {
86114	//       "description": "Name of the instance resource to start.",
86115	//       "location": "path",
86116	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86117	//       "required": true,
86118	//       "type": "string"
86119	//     },
86120	//     "project": {
86121	//       "description": "Project ID for this request.",
86122	//       "location": "path",
86123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86124	//       "required": true,
86125	//       "type": "string"
86126	//     },
86127	//     "requestId": {
86128	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86129	//       "location": "query",
86130	//       "type": "string"
86131	//     },
86132	//     "zone": {
86133	//       "description": "The name of the zone for this request.",
86134	//       "location": "path",
86135	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86136	//       "required": true,
86137	//       "type": "string"
86138	//     }
86139	//   },
86140	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
86141	//   "request": {
86142	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
86143	//   },
86144	//   "response": {
86145	//     "$ref": "Operation"
86146	//   },
86147	//   "scopes": [
86148	//     "https://www.googleapis.com/auth/cloud-platform",
86149	//     "https://www.googleapis.com/auth/compute"
86150	//   ]
86151	// }
86152
86153}
86154
86155// method id "compute.instances.stop":
86156
86157type InstancesStopCall struct {
86158	s          *Service
86159	project    string
86160	zone       string
86161	instance   string
86162	urlParams_ gensupport.URLParams
86163	ctx_       context.Context
86164	header_    http.Header
86165}
86166
86167// Stop: Stops a running instance, shutting it down cleanly, and allows
86168// you to restart the instance at a later time. Stopped instances do not
86169// incur VM usage charges while they are stopped. However, resources
86170// that the VM is using, such as persistent disks and static IP
86171// addresses, will continue to be charged until they are deleted. For
86172// more information, see Stopping an instance.
86173// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
86174func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
86175	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86176	c.project = project
86177	c.zone = zone
86178	c.instance = instance
86179	return c
86180}
86181
86182// RequestId sets the optional parameter "requestId": An optional
86183// request ID to identify requests. Specify a unique request ID so that
86184// if you must retry your request, the server will know to ignore the
86185// request if it has already been completed.
86186//
86187// For example, consider a situation where you make an initial request
86188// and the request times out. If you make the request again with the
86189// same request ID, the server can check if original operation with the
86190// same request ID was received, and if so, will ignore the second
86191// request. This prevents clients from accidentally creating duplicate
86192// commitments.
86193//
86194// The request ID must be a valid UUID with the exception that zero UUID
86195// is not supported (00000000-0000-0000-0000-000000000000).
86196func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
86197	c.urlParams_.Set("requestId", requestId)
86198	return c
86199}
86200
86201// Fields allows partial responses to be retrieved. See
86202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86203// for more information.
86204func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
86205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86206	return c
86207}
86208
86209// Context sets the context to be used in this call's Do method. Any
86210// pending HTTP request will be aborted if the provided context is
86211// canceled.
86212func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
86213	c.ctx_ = ctx
86214	return c
86215}
86216
86217// Header returns an http.Header that can be modified by the caller to
86218// add HTTP headers to the request.
86219func (c *InstancesStopCall) Header() http.Header {
86220	if c.header_ == nil {
86221		c.header_ = make(http.Header)
86222	}
86223	return c.header_
86224}
86225
86226func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
86227	reqHeaders := make(http.Header)
86228	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86229	for k, v := range c.header_ {
86230		reqHeaders[k] = v
86231	}
86232	reqHeaders.Set("User-Agent", c.s.userAgent())
86233	var body io.Reader = nil
86234	c.urlParams_.Set("alt", alt)
86235	c.urlParams_.Set("prettyPrint", "false")
86236	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
86237	urls += "?" + c.urlParams_.Encode()
86238	req, err := http.NewRequest("POST", urls, body)
86239	if err != nil {
86240		return nil, err
86241	}
86242	req.Header = reqHeaders
86243	googleapi.Expand(req.URL, map[string]string{
86244		"project":  c.project,
86245		"zone":     c.zone,
86246		"instance": c.instance,
86247	})
86248	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86249}
86250
86251// Do executes the "compute.instances.stop" call.
86252// Exactly one of *Operation or error will be non-nil. Any non-2xx
86253// status code is an error. Response headers are in either
86254// *Operation.ServerResponse.Header or (if a response was returned at
86255// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86256// to check whether the returned error was because
86257// http.StatusNotModified was returned.
86258func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86259	gensupport.SetOptions(c.urlParams_, opts...)
86260	res, err := c.doRequest("json")
86261	if res != nil && res.StatusCode == http.StatusNotModified {
86262		if res.Body != nil {
86263			res.Body.Close()
86264		}
86265		return nil, &googleapi.Error{
86266			Code:   res.StatusCode,
86267			Header: res.Header,
86268		}
86269	}
86270	if err != nil {
86271		return nil, err
86272	}
86273	defer googleapi.CloseBody(res)
86274	if err := googleapi.CheckResponse(res); err != nil {
86275		return nil, err
86276	}
86277	ret := &Operation{
86278		ServerResponse: googleapi.ServerResponse{
86279			Header:         res.Header,
86280			HTTPStatusCode: res.StatusCode,
86281		},
86282	}
86283	target := &ret
86284	if err := gensupport.DecodeResponse(target, res); err != nil {
86285		return nil, err
86286	}
86287	return ret, nil
86288	// {
86289	//   "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.",
86290	//   "httpMethod": "POST",
86291	//   "id": "compute.instances.stop",
86292	//   "parameterOrder": [
86293	//     "project",
86294	//     "zone",
86295	//     "instance"
86296	//   ],
86297	//   "parameters": {
86298	//     "instance": {
86299	//       "description": "Name of the instance resource to stop.",
86300	//       "location": "path",
86301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86302	//       "required": true,
86303	//       "type": "string"
86304	//     },
86305	//     "project": {
86306	//       "description": "Project ID for this request.",
86307	//       "location": "path",
86308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86309	//       "required": true,
86310	//       "type": "string"
86311	//     },
86312	//     "requestId": {
86313	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86314	//       "location": "query",
86315	//       "type": "string"
86316	//     },
86317	//     "zone": {
86318	//       "description": "The name of the zone for this request.",
86319	//       "location": "path",
86320	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86321	//       "required": true,
86322	//       "type": "string"
86323	//     }
86324	//   },
86325	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
86326	//   "response": {
86327	//     "$ref": "Operation"
86328	//   },
86329	//   "scopes": [
86330	//     "https://www.googleapis.com/auth/cloud-platform",
86331	//     "https://www.googleapis.com/auth/compute"
86332	//   ]
86333	// }
86334
86335}
86336
86337// method id "compute.instances.suspend":
86338
86339type InstancesSuspendCall struct {
86340	s          *Service
86341	project    string
86342	zone       string
86343	instance   string
86344	urlParams_ gensupport.URLParams
86345	ctx_       context.Context
86346	header_    http.Header
86347}
86348
86349// Suspend: This method suspends a running instance, saving its state to
86350// persistent storage, and allows you to resume the instance at a later
86351// time. Suspended instances incur reduced per-minute, virtual machine
86352// usage charges while they are suspended. Any resources the virtual
86353// machine is using, such as persistent disks and static IP addresses,
86354// will continue to be charged until they are deleted.
86355func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall {
86356	c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86357	c.project = project
86358	c.zone = zone
86359	c.instance = instance
86360	return c
86361}
86362
86363// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
86364// true, discard the contents of any attached localSSD partitions.
86365// Default value is false (== preserve localSSD data).
86366func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall {
86367	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
86368	return c
86369}
86370
86371// RequestId sets the optional parameter "requestId": An optional
86372// request ID to identify requests. Specify a unique request ID so that
86373// if you must retry your request, the server will know to ignore the
86374// request if it has already been completed.
86375//
86376// For example, consider a situation where you make an initial request
86377// and the request times out. If you make the request again with the
86378// same request ID, the server can check if original operation with the
86379// same request ID was received, and if so, will ignore the second
86380// request. This prevents clients from accidentally creating duplicate
86381// commitments.
86382//
86383// The request ID must be a valid UUID with the exception that zero UUID
86384// is not supported (00000000-0000-0000-0000-000000000000).
86385func (c *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall {
86386	c.urlParams_.Set("requestId", requestId)
86387	return c
86388}
86389
86390// Fields allows partial responses to be retrieved. See
86391// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86392// for more information.
86393func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall {
86394	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86395	return c
86396}
86397
86398// Context sets the context to be used in this call's Do method. Any
86399// pending HTTP request will be aborted if the provided context is
86400// canceled.
86401func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall {
86402	c.ctx_ = ctx
86403	return c
86404}
86405
86406// Header returns an http.Header that can be modified by the caller to
86407// add HTTP headers to the request.
86408func (c *InstancesSuspendCall) Header() http.Header {
86409	if c.header_ == nil {
86410		c.header_ = make(http.Header)
86411	}
86412	return c.header_
86413}
86414
86415func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) {
86416	reqHeaders := make(http.Header)
86417	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86418	for k, v := range c.header_ {
86419		reqHeaders[k] = v
86420	}
86421	reqHeaders.Set("User-Agent", c.s.userAgent())
86422	var body io.Reader = nil
86423	c.urlParams_.Set("alt", alt)
86424	c.urlParams_.Set("prettyPrint", "false")
86425	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/suspend")
86426	urls += "?" + c.urlParams_.Encode()
86427	req, err := http.NewRequest("POST", urls, body)
86428	if err != nil {
86429		return nil, err
86430	}
86431	req.Header = reqHeaders
86432	googleapi.Expand(req.URL, map[string]string{
86433		"project":  c.project,
86434		"zone":     c.zone,
86435		"instance": c.instance,
86436	})
86437	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86438}
86439
86440// Do executes the "compute.instances.suspend" call.
86441// Exactly one of *Operation or error will be non-nil. Any non-2xx
86442// status code is an error. Response headers are in either
86443// *Operation.ServerResponse.Header or (if a response was returned at
86444// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86445// to check whether the returned error was because
86446// http.StatusNotModified was returned.
86447func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86448	gensupport.SetOptions(c.urlParams_, opts...)
86449	res, err := c.doRequest("json")
86450	if res != nil && res.StatusCode == http.StatusNotModified {
86451		if res.Body != nil {
86452			res.Body.Close()
86453		}
86454		return nil, &googleapi.Error{
86455			Code:   res.StatusCode,
86456			Header: res.Header,
86457		}
86458	}
86459	if err != nil {
86460		return nil, err
86461	}
86462	defer googleapi.CloseBody(res)
86463	if err := googleapi.CheckResponse(res); err != nil {
86464		return nil, err
86465	}
86466	ret := &Operation{
86467		ServerResponse: googleapi.ServerResponse{
86468			Header:         res.Header,
86469			HTTPStatusCode: res.StatusCode,
86470		},
86471	}
86472	target := &ret
86473	if err := gensupport.DecodeResponse(target, res); err != nil {
86474		return nil, err
86475	}
86476	return ret, nil
86477	// {
86478	//   "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.",
86479	//   "httpMethod": "POST",
86480	//   "id": "compute.instances.suspend",
86481	//   "parameterOrder": [
86482	//     "project",
86483	//     "zone",
86484	//     "instance"
86485	//   ],
86486	//   "parameters": {
86487	//     "discardLocalSsd": {
86488	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
86489	//       "location": "query",
86490	//       "type": "boolean"
86491	//     },
86492	//     "instance": {
86493	//       "description": "Name of the instance resource to suspend.",
86494	//       "location": "path",
86495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86496	//       "required": true,
86497	//       "type": "string"
86498	//     },
86499	//     "project": {
86500	//       "description": "Project ID for this request.",
86501	//       "location": "path",
86502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86503	//       "required": true,
86504	//       "type": "string"
86505	//     },
86506	//     "requestId": {
86507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86508	//       "location": "query",
86509	//       "type": "string"
86510	//     },
86511	//     "zone": {
86512	//       "description": "The name of the zone for this request.",
86513	//       "location": "path",
86514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86515	//       "required": true,
86516	//       "type": "string"
86517	//     }
86518	//   },
86519	//   "path": "{project}/zones/{zone}/instances/{instance}/suspend",
86520	//   "response": {
86521	//     "$ref": "Operation"
86522	//   },
86523	//   "scopes": [
86524	//     "https://www.googleapis.com/auth/cloud-platform",
86525	//     "https://www.googleapis.com/auth/compute"
86526	//   ]
86527	// }
86528
86529}
86530
86531// method id "compute.instances.testIamPermissions":
86532
86533type InstancesTestIamPermissionsCall struct {
86534	s                      *Service
86535	project                string
86536	zone                   string
86537	resource               string
86538	testpermissionsrequest *TestPermissionsRequest
86539	urlParams_             gensupport.URLParams
86540	ctx_                   context.Context
86541	header_                http.Header
86542}
86543
86544// TestIamPermissions: Returns permissions that a caller has on the
86545// specified resource.
86546func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
86547	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86548	c.project = project
86549	c.zone = zone
86550	c.resource = resource
86551	c.testpermissionsrequest = testpermissionsrequest
86552	return c
86553}
86554
86555// Fields allows partial responses to be retrieved. See
86556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86557// for more information.
86558func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
86559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86560	return c
86561}
86562
86563// Context sets the context to be used in this call's Do method. Any
86564// pending HTTP request will be aborted if the provided context is
86565// canceled.
86566func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
86567	c.ctx_ = ctx
86568	return c
86569}
86570
86571// Header returns an http.Header that can be modified by the caller to
86572// add HTTP headers to the request.
86573func (c *InstancesTestIamPermissionsCall) Header() http.Header {
86574	if c.header_ == nil {
86575		c.header_ = make(http.Header)
86576	}
86577	return c.header_
86578}
86579
86580func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
86581	reqHeaders := make(http.Header)
86582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86583	for k, v := range c.header_ {
86584		reqHeaders[k] = v
86585	}
86586	reqHeaders.Set("User-Agent", c.s.userAgent())
86587	var body io.Reader = nil
86588	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
86589	if err != nil {
86590		return nil, err
86591	}
86592	reqHeaders.Set("Content-Type", "application/json")
86593	c.urlParams_.Set("alt", alt)
86594	c.urlParams_.Set("prettyPrint", "false")
86595	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/testIamPermissions")
86596	urls += "?" + c.urlParams_.Encode()
86597	req, err := http.NewRequest("POST", urls, body)
86598	if err != nil {
86599		return nil, err
86600	}
86601	req.Header = reqHeaders
86602	googleapi.Expand(req.URL, map[string]string{
86603		"project":  c.project,
86604		"zone":     c.zone,
86605		"resource": c.resource,
86606	})
86607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86608}
86609
86610// Do executes the "compute.instances.testIamPermissions" call.
86611// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
86612// non-2xx status code is an error. Response headers are in either
86613// *TestPermissionsResponse.ServerResponse.Header or (if a response was
86614// returned at all) in error.(*googleapi.Error).Header. Use
86615// googleapi.IsNotModified to check whether the returned error was
86616// because http.StatusNotModified was returned.
86617func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
86618	gensupport.SetOptions(c.urlParams_, opts...)
86619	res, err := c.doRequest("json")
86620	if res != nil && res.StatusCode == http.StatusNotModified {
86621		if res.Body != nil {
86622			res.Body.Close()
86623		}
86624		return nil, &googleapi.Error{
86625			Code:   res.StatusCode,
86626			Header: res.Header,
86627		}
86628	}
86629	if err != nil {
86630		return nil, err
86631	}
86632	defer googleapi.CloseBody(res)
86633	if err := googleapi.CheckResponse(res); err != nil {
86634		return nil, err
86635	}
86636	ret := &TestPermissionsResponse{
86637		ServerResponse: googleapi.ServerResponse{
86638			Header:         res.Header,
86639			HTTPStatusCode: res.StatusCode,
86640		},
86641	}
86642	target := &ret
86643	if err := gensupport.DecodeResponse(target, res); err != nil {
86644		return nil, err
86645	}
86646	return ret, nil
86647	// {
86648	//   "description": "Returns permissions that a caller has on the specified resource.",
86649	//   "httpMethod": "POST",
86650	//   "id": "compute.instances.testIamPermissions",
86651	//   "parameterOrder": [
86652	//     "project",
86653	//     "zone",
86654	//     "resource"
86655	//   ],
86656	//   "parameters": {
86657	//     "project": {
86658	//       "description": "Project ID for this request.",
86659	//       "location": "path",
86660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86661	//       "required": true,
86662	//       "type": "string"
86663	//     },
86664	//     "resource": {
86665	//       "description": "Name or id of the resource for this request.",
86666	//       "location": "path",
86667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86668	//       "required": true,
86669	//       "type": "string"
86670	//     },
86671	//     "zone": {
86672	//       "description": "The name of the zone for this request.",
86673	//       "location": "path",
86674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86675	//       "required": true,
86676	//       "type": "string"
86677	//     }
86678	//   },
86679	//   "path": "{project}/zones/{zone}/instances/{resource}/testIamPermissions",
86680	//   "request": {
86681	//     "$ref": "TestPermissionsRequest"
86682	//   },
86683	//   "response": {
86684	//     "$ref": "TestPermissionsResponse"
86685	//   },
86686	//   "scopes": [
86687	//     "https://www.googleapis.com/auth/cloud-platform",
86688	//     "https://www.googleapis.com/auth/compute",
86689	//     "https://www.googleapis.com/auth/compute.readonly"
86690	//   ]
86691	// }
86692
86693}
86694
86695// method id "compute.instances.update":
86696
86697type InstancesUpdateCall struct {
86698	s          *Service
86699	project    string
86700	zone       string
86701	instance   string
86702	instance2  *Instance
86703	urlParams_ gensupport.URLParams
86704	ctx_       context.Context
86705	header_    http.Header
86706}
86707
86708// Update: Updates an instance only if the necessary resources are
86709// available. This method can update only a specific set of instance
86710// properties. See  Updating a running instance for a list of updatable
86711// instance properties.
86712func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
86713	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86714	c.project = project
86715	c.zone = zone
86716	c.instance = instance
86717	c.instance2 = instance2
86718	return c
86719}
86720
86721// MinimalAction sets the optional parameter "minimalAction": Specifies
86722// the action to take when updating an instance even if the updated
86723// properties do not require it. If not specified, then Compute Engine
86724// acts based on the minimum action that the updated properties require.
86725//
86726// Possible values:
86727//   "INVALID"
86728//   "NO_EFFECT"
86729//   "REFRESH"
86730//   "RESTART"
86731func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
86732	c.urlParams_.Set("minimalAction", minimalAction)
86733	return c
86734}
86735
86736// MostDisruptiveAllowedAction sets the optional parameter
86737// "mostDisruptiveAllowedAction": Specifies the most disruptive action
86738// that can be taken on the instance as part of the update. Compute
86739// Engine returns an error if the instance properties require a more
86740// disruptive action as part of the instance update. Valid options from
86741// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
86742//
86743// Possible values:
86744//   "INVALID"
86745//   "NO_EFFECT"
86746//   "REFRESH"
86747//   "RESTART"
86748func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
86749	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
86750	return c
86751}
86752
86753// RequestId sets the optional parameter "requestId": An optional
86754// request ID to identify requests. Specify a unique request ID so that
86755// if you must retry your request, the server will know to ignore the
86756// request if it has already been completed.
86757//
86758// For example, consider a situation where you make an initial request
86759// and the request times out. If you make the request again with the
86760// same request ID, the server can check if original operation with the
86761// same request ID was received, and if so, will ignore the second
86762// request. This prevents clients from accidentally creating duplicate
86763// commitments.
86764//
86765// The request ID must be a valid UUID with the exception that zero UUID
86766// is not supported (00000000-0000-0000-0000-000000000000).
86767func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
86768	c.urlParams_.Set("requestId", requestId)
86769	return c
86770}
86771
86772// Fields allows partial responses to be retrieved. See
86773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86774// for more information.
86775func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
86776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86777	return c
86778}
86779
86780// Context sets the context to be used in this call's Do method. Any
86781// pending HTTP request will be aborted if the provided context is
86782// canceled.
86783func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
86784	c.ctx_ = ctx
86785	return c
86786}
86787
86788// Header returns an http.Header that can be modified by the caller to
86789// add HTTP headers to the request.
86790func (c *InstancesUpdateCall) Header() http.Header {
86791	if c.header_ == nil {
86792		c.header_ = make(http.Header)
86793	}
86794	return c.header_
86795}
86796
86797func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
86798	reqHeaders := make(http.Header)
86799	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
86800	for k, v := range c.header_ {
86801		reqHeaders[k] = v
86802	}
86803	reqHeaders.Set("User-Agent", c.s.userAgent())
86804	var body io.Reader = nil
86805	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
86806	if err != nil {
86807		return nil, err
86808	}
86809	reqHeaders.Set("Content-Type", "application/json")
86810	c.urlParams_.Set("alt", alt)
86811	c.urlParams_.Set("prettyPrint", "false")
86812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
86813	urls += "?" + c.urlParams_.Encode()
86814	req, err := http.NewRequest("PUT", urls, body)
86815	if err != nil {
86816		return nil, err
86817	}
86818	req.Header = reqHeaders
86819	googleapi.Expand(req.URL, map[string]string{
86820		"project":  c.project,
86821		"zone":     c.zone,
86822		"instance": c.instance,
86823	})
86824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86825}
86826
86827// Do executes the "compute.instances.update" call.
86828// Exactly one of *Operation or error will be non-nil. Any non-2xx
86829// status code is an error. Response headers are in either
86830// *Operation.ServerResponse.Header or (if a response was returned at
86831// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86832// to check whether the returned error was because
86833// http.StatusNotModified was returned.
86834func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86835	gensupport.SetOptions(c.urlParams_, opts...)
86836	res, err := c.doRequest("json")
86837	if res != nil && res.StatusCode == http.StatusNotModified {
86838		if res.Body != nil {
86839			res.Body.Close()
86840		}
86841		return nil, &googleapi.Error{
86842			Code:   res.StatusCode,
86843			Header: res.Header,
86844		}
86845	}
86846	if err != nil {
86847		return nil, err
86848	}
86849	defer googleapi.CloseBody(res)
86850	if err := googleapi.CheckResponse(res); err != nil {
86851		return nil, err
86852	}
86853	ret := &Operation{
86854		ServerResponse: googleapi.ServerResponse{
86855			Header:         res.Header,
86856			HTTPStatusCode: res.StatusCode,
86857		},
86858	}
86859	target := &ret
86860	if err := gensupport.DecodeResponse(target, res); err != nil {
86861		return nil, err
86862	}
86863	return ret, nil
86864	// {
86865	//   "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.",
86866	//   "httpMethod": "PUT",
86867	//   "id": "compute.instances.update",
86868	//   "parameterOrder": [
86869	//     "project",
86870	//     "zone",
86871	//     "instance"
86872	//   ],
86873	//   "parameters": {
86874	//     "instance": {
86875	//       "description": "Name of the instance resource to update.",
86876	//       "location": "path",
86877	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86878	//       "required": true,
86879	//       "type": "string"
86880	//     },
86881	//     "minimalAction": {
86882	//       "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.",
86883	//       "enum": [
86884	//         "INVALID",
86885	//         "NO_EFFECT",
86886	//         "REFRESH",
86887	//         "RESTART"
86888	//       ],
86889	//       "enumDescriptions": [
86890	//         "",
86891	//         "",
86892	//         "",
86893	//         ""
86894	//       ],
86895	//       "location": "query",
86896	//       "type": "string"
86897	//     },
86898	//     "mostDisruptiveAllowedAction": {
86899	//       "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.",
86900	//       "enum": [
86901	//         "INVALID",
86902	//         "NO_EFFECT",
86903	//         "REFRESH",
86904	//         "RESTART"
86905	//       ],
86906	//       "enumDescriptions": [
86907	//         "",
86908	//         "",
86909	//         "",
86910	//         ""
86911	//       ],
86912	//       "location": "query",
86913	//       "type": "string"
86914	//     },
86915	//     "project": {
86916	//       "description": "Project ID for this request.",
86917	//       "location": "path",
86918	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86919	//       "required": true,
86920	//       "type": "string"
86921	//     },
86922	//     "requestId": {
86923	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86924	//       "location": "query",
86925	//       "type": "string"
86926	//     },
86927	//     "zone": {
86928	//       "description": "The name of the zone for this request.",
86929	//       "location": "path",
86930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86931	//       "required": true,
86932	//       "type": "string"
86933	//     }
86934	//   },
86935	//   "path": "{project}/zones/{zone}/instances/{instance}",
86936	//   "request": {
86937	//     "$ref": "Instance"
86938	//   },
86939	//   "response": {
86940	//     "$ref": "Operation"
86941	//   },
86942	//   "scopes": [
86943	//     "https://www.googleapis.com/auth/cloud-platform",
86944	//     "https://www.googleapis.com/auth/compute"
86945	//   ]
86946	// }
86947
86948}
86949
86950// method id "compute.instances.updateAccessConfig":
86951
86952type InstancesUpdateAccessConfigCall struct {
86953	s            *Service
86954	project      string
86955	zone         string
86956	instance     string
86957	accessconfig *AccessConfig
86958	urlParams_   gensupport.URLParams
86959	ctx_         context.Context
86960	header_      http.Header
86961}
86962
86963// UpdateAccessConfig: Updates the specified access config from an
86964// instance's network interface with the data included in the request.
86965// This method supports PATCH semantics and uses the JSON merge patch
86966// format and processing rules.
86967func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
86968	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86969	c.project = project
86970	c.zone = zone
86971	c.instance = instance
86972	c.urlParams_.Set("networkInterface", networkInterface)
86973	c.accessconfig = accessconfig
86974	return c
86975}
86976
86977// RequestId sets the optional parameter "requestId": An optional
86978// request ID to identify requests. Specify a unique request ID so that
86979// if you must retry your request, the server will know to ignore the
86980// request if it has already been completed.
86981//
86982// For example, consider a situation where you make an initial request
86983// and the request times out. If you make the request again with the
86984// same request ID, the server can check if original operation with the
86985// same request ID was received, and if so, will ignore the second
86986// request. This prevents clients from accidentally creating duplicate
86987// commitments.
86988//
86989// The request ID must be a valid UUID with the exception that zero UUID
86990// is not supported (00000000-0000-0000-0000-000000000000).
86991func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
86992	c.urlParams_.Set("requestId", requestId)
86993	return c
86994}
86995
86996// Fields allows partial responses to be retrieved. See
86997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86998// for more information.
86999func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
87000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87001	return c
87002}
87003
87004// Context sets the context to be used in this call's Do method. Any
87005// pending HTTP request will be aborted if the provided context is
87006// canceled.
87007func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
87008	c.ctx_ = ctx
87009	return c
87010}
87011
87012// Header returns an http.Header that can be modified by the caller to
87013// add HTTP headers to the request.
87014func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
87015	if c.header_ == nil {
87016		c.header_ = make(http.Header)
87017	}
87018	return c.header_
87019}
87020
87021func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
87022	reqHeaders := make(http.Header)
87023	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87024	for k, v := range c.header_ {
87025		reqHeaders[k] = v
87026	}
87027	reqHeaders.Set("User-Agent", c.s.userAgent())
87028	var body io.Reader = nil
87029	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
87030	if err != nil {
87031		return nil, err
87032	}
87033	reqHeaders.Set("Content-Type", "application/json")
87034	c.urlParams_.Set("alt", alt)
87035	c.urlParams_.Set("prettyPrint", "false")
87036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
87037	urls += "?" + c.urlParams_.Encode()
87038	req, err := http.NewRequest("POST", urls, body)
87039	if err != nil {
87040		return nil, err
87041	}
87042	req.Header = reqHeaders
87043	googleapi.Expand(req.URL, map[string]string{
87044		"project":  c.project,
87045		"zone":     c.zone,
87046		"instance": c.instance,
87047	})
87048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87049}
87050
87051// Do executes the "compute.instances.updateAccessConfig" call.
87052// Exactly one of *Operation or error will be non-nil. Any non-2xx
87053// status code is an error. Response headers are in either
87054// *Operation.ServerResponse.Header or (if a response was returned at
87055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87056// to check whether the returned error was because
87057// http.StatusNotModified was returned.
87058func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87059	gensupport.SetOptions(c.urlParams_, opts...)
87060	res, err := c.doRequest("json")
87061	if res != nil && res.StatusCode == http.StatusNotModified {
87062		if res.Body != nil {
87063			res.Body.Close()
87064		}
87065		return nil, &googleapi.Error{
87066			Code:   res.StatusCode,
87067			Header: res.Header,
87068		}
87069	}
87070	if err != nil {
87071		return nil, err
87072	}
87073	defer googleapi.CloseBody(res)
87074	if err := googleapi.CheckResponse(res); err != nil {
87075		return nil, err
87076	}
87077	ret := &Operation{
87078		ServerResponse: googleapi.ServerResponse{
87079			Header:         res.Header,
87080			HTTPStatusCode: res.StatusCode,
87081		},
87082	}
87083	target := &ret
87084	if err := gensupport.DecodeResponse(target, res); err != nil {
87085		return nil, err
87086	}
87087	return ret, nil
87088	// {
87089	//   "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.",
87090	//   "httpMethod": "POST",
87091	//   "id": "compute.instances.updateAccessConfig",
87092	//   "parameterOrder": [
87093	//     "project",
87094	//     "zone",
87095	//     "instance",
87096	//     "networkInterface"
87097	//   ],
87098	//   "parameters": {
87099	//     "instance": {
87100	//       "description": "The instance name for this request.",
87101	//       "location": "path",
87102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87103	//       "required": true,
87104	//       "type": "string"
87105	//     },
87106	//     "networkInterface": {
87107	//       "description": "The name of the network interface where the access config is attached.",
87108	//       "location": "query",
87109	//       "required": true,
87110	//       "type": "string"
87111	//     },
87112	//     "project": {
87113	//       "description": "Project ID for this request.",
87114	//       "location": "path",
87115	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87116	//       "required": true,
87117	//       "type": "string"
87118	//     },
87119	//     "requestId": {
87120	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87121	//       "location": "query",
87122	//       "type": "string"
87123	//     },
87124	//     "zone": {
87125	//       "description": "The name of the zone for this request.",
87126	//       "location": "path",
87127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87128	//       "required": true,
87129	//       "type": "string"
87130	//     }
87131	//   },
87132	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
87133	//   "request": {
87134	//     "$ref": "AccessConfig"
87135	//   },
87136	//   "response": {
87137	//     "$ref": "Operation"
87138	//   },
87139	//   "scopes": [
87140	//     "https://www.googleapis.com/auth/cloud-platform",
87141	//     "https://www.googleapis.com/auth/compute"
87142	//   ]
87143	// }
87144
87145}
87146
87147// method id "compute.instances.updateDisplayDevice":
87148
87149type InstancesUpdateDisplayDeviceCall struct {
87150	s             *Service
87151	project       string
87152	zone          string
87153	instance      string
87154	displaydevice *DisplayDevice
87155	urlParams_    gensupport.URLParams
87156	ctx_          context.Context
87157	header_       http.Header
87158}
87159
87160// UpdateDisplayDevice: Updates the Display config for a VM instance.
87161// You can only use this method on a stopped VM instance. This method
87162// supports PATCH semantics and uses the JSON merge patch format and
87163// processing rules.
87164func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
87165	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87166	c.project = project
87167	c.zone = zone
87168	c.instance = instance
87169	c.displaydevice = displaydevice
87170	return c
87171}
87172
87173// RequestId sets the optional parameter "requestId": An optional
87174// request ID to identify requests. Specify a unique request ID so that
87175// if you must retry your request, the server will know to ignore the
87176// request if it has already been completed.
87177//
87178// For example, consider a situation where you make an initial request
87179// and the request times out. If you make the request again with the
87180// same request ID, the server can check if original operation with the
87181// same request ID was received, and if so, will ignore the second
87182// request. This prevents clients from accidentally creating duplicate
87183// commitments.
87184//
87185// The request ID must be a valid UUID with the exception that zero UUID
87186// is not supported (00000000-0000-0000-0000-000000000000).
87187func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
87188	c.urlParams_.Set("requestId", requestId)
87189	return c
87190}
87191
87192// Fields allows partial responses to be retrieved. See
87193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87194// for more information.
87195func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
87196	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87197	return c
87198}
87199
87200// Context sets the context to be used in this call's Do method. Any
87201// pending HTTP request will be aborted if the provided context is
87202// canceled.
87203func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
87204	c.ctx_ = ctx
87205	return c
87206}
87207
87208// Header returns an http.Header that can be modified by the caller to
87209// add HTTP headers to the request.
87210func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
87211	if c.header_ == nil {
87212		c.header_ = make(http.Header)
87213	}
87214	return c.header_
87215}
87216
87217func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
87218	reqHeaders := make(http.Header)
87219	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87220	for k, v := range c.header_ {
87221		reqHeaders[k] = v
87222	}
87223	reqHeaders.Set("User-Agent", c.s.userAgent())
87224	var body io.Reader = nil
87225	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
87226	if err != nil {
87227		return nil, err
87228	}
87229	reqHeaders.Set("Content-Type", "application/json")
87230	c.urlParams_.Set("alt", alt)
87231	c.urlParams_.Set("prettyPrint", "false")
87232	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
87233	urls += "?" + c.urlParams_.Encode()
87234	req, err := http.NewRequest("PATCH", urls, body)
87235	if err != nil {
87236		return nil, err
87237	}
87238	req.Header = reqHeaders
87239	googleapi.Expand(req.URL, map[string]string{
87240		"project":  c.project,
87241		"zone":     c.zone,
87242		"instance": c.instance,
87243	})
87244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87245}
87246
87247// Do executes the "compute.instances.updateDisplayDevice" call.
87248// Exactly one of *Operation or error will be non-nil. Any non-2xx
87249// status code is an error. Response headers are in either
87250// *Operation.ServerResponse.Header or (if a response was returned at
87251// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87252// to check whether the returned error was because
87253// http.StatusNotModified was returned.
87254func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87255	gensupport.SetOptions(c.urlParams_, opts...)
87256	res, err := c.doRequest("json")
87257	if res != nil && res.StatusCode == http.StatusNotModified {
87258		if res.Body != nil {
87259			res.Body.Close()
87260		}
87261		return nil, &googleapi.Error{
87262			Code:   res.StatusCode,
87263			Header: res.Header,
87264		}
87265	}
87266	if err != nil {
87267		return nil, err
87268	}
87269	defer googleapi.CloseBody(res)
87270	if err := googleapi.CheckResponse(res); err != nil {
87271		return nil, err
87272	}
87273	ret := &Operation{
87274		ServerResponse: googleapi.ServerResponse{
87275			Header:         res.Header,
87276			HTTPStatusCode: res.StatusCode,
87277		},
87278	}
87279	target := &ret
87280	if err := gensupport.DecodeResponse(target, res); err != nil {
87281		return nil, err
87282	}
87283	return ret, nil
87284	// {
87285	//   "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.",
87286	//   "httpMethod": "PATCH",
87287	//   "id": "compute.instances.updateDisplayDevice",
87288	//   "parameterOrder": [
87289	//     "project",
87290	//     "zone",
87291	//     "instance"
87292	//   ],
87293	//   "parameters": {
87294	//     "instance": {
87295	//       "description": "Name of the instance scoping this request.",
87296	//       "location": "path",
87297	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87298	//       "required": true,
87299	//       "type": "string"
87300	//     },
87301	//     "project": {
87302	//       "description": "Project ID for this request.",
87303	//       "location": "path",
87304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87305	//       "required": true,
87306	//       "type": "string"
87307	//     },
87308	//     "requestId": {
87309	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87310	//       "location": "query",
87311	//       "type": "string"
87312	//     },
87313	//     "zone": {
87314	//       "description": "The name of the zone for this request.",
87315	//       "location": "path",
87316	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87317	//       "required": true,
87318	//       "type": "string"
87319	//     }
87320	//   },
87321	//   "path": "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
87322	//   "request": {
87323	//     "$ref": "DisplayDevice"
87324	//   },
87325	//   "response": {
87326	//     "$ref": "Operation"
87327	//   },
87328	//   "scopes": [
87329	//     "https://www.googleapis.com/auth/cloud-platform",
87330	//     "https://www.googleapis.com/auth/compute"
87331	//   ]
87332	// }
87333
87334}
87335
87336// method id "compute.instances.updateNetworkInterface":
87337
87338type InstancesUpdateNetworkInterfaceCall struct {
87339	s                *Service
87340	project          string
87341	zone             string
87342	instance         string
87343	networkinterface *NetworkInterface
87344	urlParams_       gensupport.URLParams
87345	ctx_             context.Context
87346	header_          http.Header
87347}
87348
87349// UpdateNetworkInterface: Updates an instance's network interface. This
87350// method follows PATCH semantics.
87351func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
87352	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87353	c.project = project
87354	c.zone = zone
87355	c.instance = instance
87356	c.urlParams_.Set("networkInterface", networkInterface)
87357	c.networkinterface = networkinterface
87358	return c
87359}
87360
87361// RequestId sets the optional parameter "requestId": An optional
87362// request ID to identify requests. Specify a unique request ID so that
87363// if you must retry your request, the server will know to ignore the
87364// request if it has already been completed.
87365//
87366// For example, consider a situation where you make an initial request
87367// and the request times out. If you make the request again with the
87368// same request ID, the server can check if original operation with the
87369// same request ID was received, and if so, will ignore the second
87370// request. This prevents clients from accidentally creating duplicate
87371// commitments.
87372//
87373// The request ID must be a valid UUID with the exception that zero UUID
87374// is not supported (00000000-0000-0000-0000-000000000000).
87375func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
87376	c.urlParams_.Set("requestId", requestId)
87377	return c
87378}
87379
87380// Fields allows partial responses to be retrieved. See
87381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87382// for more information.
87383func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
87384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87385	return c
87386}
87387
87388// Context sets the context to be used in this call's Do method. Any
87389// pending HTTP request will be aborted if the provided context is
87390// canceled.
87391func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
87392	c.ctx_ = ctx
87393	return c
87394}
87395
87396// Header returns an http.Header that can be modified by the caller to
87397// add HTTP headers to the request.
87398func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
87399	if c.header_ == nil {
87400		c.header_ = make(http.Header)
87401	}
87402	return c.header_
87403}
87404
87405func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
87406	reqHeaders := make(http.Header)
87407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87408	for k, v := range c.header_ {
87409		reqHeaders[k] = v
87410	}
87411	reqHeaders.Set("User-Agent", c.s.userAgent())
87412	var body io.Reader = nil
87413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
87414	if err != nil {
87415		return nil, err
87416	}
87417	reqHeaders.Set("Content-Type", "application/json")
87418	c.urlParams_.Set("alt", alt)
87419	c.urlParams_.Set("prettyPrint", "false")
87420	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
87421	urls += "?" + c.urlParams_.Encode()
87422	req, err := http.NewRequest("PATCH", urls, body)
87423	if err != nil {
87424		return nil, err
87425	}
87426	req.Header = reqHeaders
87427	googleapi.Expand(req.URL, map[string]string{
87428		"project":  c.project,
87429		"zone":     c.zone,
87430		"instance": c.instance,
87431	})
87432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87433}
87434
87435// Do executes the "compute.instances.updateNetworkInterface" call.
87436// Exactly one of *Operation or error will be non-nil. Any non-2xx
87437// status code is an error. Response headers are in either
87438// *Operation.ServerResponse.Header or (if a response was returned at
87439// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87440// to check whether the returned error was because
87441// http.StatusNotModified was returned.
87442func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87443	gensupport.SetOptions(c.urlParams_, opts...)
87444	res, err := c.doRequest("json")
87445	if res != nil && res.StatusCode == http.StatusNotModified {
87446		if res.Body != nil {
87447			res.Body.Close()
87448		}
87449		return nil, &googleapi.Error{
87450			Code:   res.StatusCode,
87451			Header: res.Header,
87452		}
87453	}
87454	if err != nil {
87455		return nil, err
87456	}
87457	defer googleapi.CloseBody(res)
87458	if err := googleapi.CheckResponse(res); err != nil {
87459		return nil, err
87460	}
87461	ret := &Operation{
87462		ServerResponse: googleapi.ServerResponse{
87463			Header:         res.Header,
87464			HTTPStatusCode: res.StatusCode,
87465		},
87466	}
87467	target := &ret
87468	if err := gensupport.DecodeResponse(target, res); err != nil {
87469		return nil, err
87470	}
87471	return ret, nil
87472	// {
87473	//   "description": "Updates an instance's network interface. This method follows PATCH semantics.",
87474	//   "httpMethod": "PATCH",
87475	//   "id": "compute.instances.updateNetworkInterface",
87476	//   "parameterOrder": [
87477	//     "project",
87478	//     "zone",
87479	//     "instance",
87480	//     "networkInterface"
87481	//   ],
87482	//   "parameters": {
87483	//     "instance": {
87484	//       "description": "The instance name for this request.",
87485	//       "location": "path",
87486	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87487	//       "required": true,
87488	//       "type": "string"
87489	//     },
87490	//     "networkInterface": {
87491	//       "description": "The name of the network interface to update.",
87492	//       "location": "query",
87493	//       "required": true,
87494	//       "type": "string"
87495	//     },
87496	//     "project": {
87497	//       "description": "Project ID for this request.",
87498	//       "location": "path",
87499	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87500	//       "required": true,
87501	//       "type": "string"
87502	//     },
87503	//     "requestId": {
87504	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87505	//       "location": "query",
87506	//       "type": "string"
87507	//     },
87508	//     "zone": {
87509	//       "description": "The name of the zone for this request.",
87510	//       "location": "path",
87511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87512	//       "required": true,
87513	//       "type": "string"
87514	//     }
87515	//   },
87516	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
87517	//   "request": {
87518	//     "$ref": "NetworkInterface"
87519	//   },
87520	//   "response": {
87521	//     "$ref": "Operation"
87522	//   },
87523	//   "scopes": [
87524	//     "https://www.googleapis.com/auth/cloud-platform",
87525	//     "https://www.googleapis.com/auth/compute"
87526	//   ]
87527	// }
87528
87529}
87530
87531// method id "compute.instances.updateShieldedInstanceConfig":
87532
87533type InstancesUpdateShieldedInstanceConfigCall struct {
87534	s                      *Service
87535	project                string
87536	zone                   string
87537	instance               string
87538	shieldedinstanceconfig *ShieldedInstanceConfig
87539	urlParams_             gensupport.URLParams
87540	ctx_                   context.Context
87541	header_                http.Header
87542}
87543
87544// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
87545// for an instance. You can only use this method on a stopped instance.
87546// This method supports PATCH semantics and uses the JSON merge patch
87547// format and processing rules.
87548func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
87549	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87550	c.project = project
87551	c.zone = zone
87552	c.instance = instance
87553	c.shieldedinstanceconfig = shieldedinstanceconfig
87554	return c
87555}
87556
87557// RequestId sets the optional parameter "requestId": An optional
87558// request ID to identify requests. Specify a unique request ID so that
87559// if you must retry your request, the server will know to ignore the
87560// request if it has already been completed.
87561//
87562// For example, consider a situation where you make an initial request
87563// and the request times out. If you make the request again with the
87564// same request ID, the server can check if original operation with the
87565// same request ID was received, and if so, will ignore the second
87566// request. This prevents clients from accidentally creating duplicate
87567// commitments.
87568//
87569// The request ID must be a valid UUID with the exception that zero UUID
87570// is not supported (00000000-0000-0000-0000-000000000000).
87571func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
87572	c.urlParams_.Set("requestId", requestId)
87573	return c
87574}
87575
87576// Fields allows partial responses to be retrieved. See
87577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87578// for more information.
87579func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
87580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87581	return c
87582}
87583
87584// Context sets the context to be used in this call's Do method. Any
87585// pending HTTP request will be aborted if the provided context is
87586// canceled.
87587func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
87588	c.ctx_ = ctx
87589	return c
87590}
87591
87592// Header returns an http.Header that can be modified by the caller to
87593// add HTTP headers to the request.
87594func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
87595	if c.header_ == nil {
87596		c.header_ = make(http.Header)
87597	}
87598	return c.header_
87599}
87600
87601func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
87602	reqHeaders := make(http.Header)
87603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87604	for k, v := range c.header_ {
87605		reqHeaders[k] = v
87606	}
87607	reqHeaders.Set("User-Agent", c.s.userAgent())
87608	var body io.Reader = nil
87609	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
87610	if err != nil {
87611		return nil, err
87612	}
87613	reqHeaders.Set("Content-Type", "application/json")
87614	c.urlParams_.Set("alt", alt)
87615	c.urlParams_.Set("prettyPrint", "false")
87616	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
87617	urls += "?" + c.urlParams_.Encode()
87618	req, err := http.NewRequest("PATCH", urls, body)
87619	if err != nil {
87620		return nil, err
87621	}
87622	req.Header = reqHeaders
87623	googleapi.Expand(req.URL, map[string]string{
87624		"project":  c.project,
87625		"zone":     c.zone,
87626		"instance": c.instance,
87627	})
87628	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87629}
87630
87631// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
87632// Exactly one of *Operation or error will be non-nil. Any non-2xx
87633// status code is an error. Response headers are in either
87634// *Operation.ServerResponse.Header or (if a response was returned at
87635// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87636// to check whether the returned error was because
87637// http.StatusNotModified was returned.
87638func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87639	gensupport.SetOptions(c.urlParams_, opts...)
87640	res, err := c.doRequest("json")
87641	if res != nil && res.StatusCode == http.StatusNotModified {
87642		if res.Body != nil {
87643			res.Body.Close()
87644		}
87645		return nil, &googleapi.Error{
87646			Code:   res.StatusCode,
87647			Header: res.Header,
87648		}
87649	}
87650	if err != nil {
87651		return nil, err
87652	}
87653	defer googleapi.CloseBody(res)
87654	if err := googleapi.CheckResponse(res); err != nil {
87655		return nil, err
87656	}
87657	ret := &Operation{
87658		ServerResponse: googleapi.ServerResponse{
87659			Header:         res.Header,
87660			HTTPStatusCode: res.StatusCode,
87661		},
87662	}
87663	target := &ret
87664	if err := gensupport.DecodeResponse(target, res); err != nil {
87665		return nil, err
87666	}
87667	return ret, nil
87668	// {
87669	//   "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.",
87670	//   "httpMethod": "PATCH",
87671	//   "id": "compute.instances.updateShieldedInstanceConfig",
87672	//   "parameterOrder": [
87673	//     "project",
87674	//     "zone",
87675	//     "instance"
87676	//   ],
87677	//   "parameters": {
87678	//     "instance": {
87679	//       "description": "Name or id of the instance scoping this request.",
87680	//       "location": "path",
87681	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
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	//     "requestId": {
87693	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87694	//       "location": "query",
87695	//       "type": "string"
87696	//     },
87697	//     "zone": {
87698	//       "description": "The name of the zone for this request.",
87699	//       "location": "path",
87700	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87701	//       "required": true,
87702	//       "type": "string"
87703	//     }
87704	//   },
87705	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
87706	//   "request": {
87707	//     "$ref": "ShieldedInstanceConfig"
87708	//   },
87709	//   "response": {
87710	//     "$ref": "Operation"
87711	//   },
87712	//   "scopes": [
87713	//     "https://www.googleapis.com/auth/cloud-platform",
87714	//     "https://www.googleapis.com/auth/compute"
87715	//   ]
87716	// }
87717
87718}
87719
87720// method id "compute.instances.updateShieldedVmConfig":
87721
87722type InstancesUpdateShieldedVmConfigCall struct {
87723	s                *Service
87724	project          string
87725	zone             string
87726	instance         string
87727	shieldedvmconfig *ShieldedVmConfig
87728	urlParams_       gensupport.URLParams
87729	ctx_             context.Context
87730	header_          http.Header
87731}
87732
87733// UpdateShieldedVmConfig: Updates the Shielded VM config for a VM
87734// instance. You can only use this method on a stopped VM instance. This
87735// method supports PATCH semantics and uses the JSON merge patch format
87736// and processing rules.
87737func (r *InstancesService) UpdateShieldedVmConfig(project string, zone string, instance string, shieldedvmconfig *ShieldedVmConfig) *InstancesUpdateShieldedVmConfigCall {
87738	c := &InstancesUpdateShieldedVmConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87739	c.project = project
87740	c.zone = zone
87741	c.instance = instance
87742	c.shieldedvmconfig = shieldedvmconfig
87743	return c
87744}
87745
87746// RequestId sets the optional parameter "requestId": An optional
87747// request ID to identify requests. Specify a unique request ID so that
87748// if you must retry your request, the server will know to ignore the
87749// request if it has already been completed.
87750//
87751// For example, consider a situation where you make an initial request
87752// and the request times out. If you make the request again with the
87753// same request ID, the server can check if original operation with the
87754// same request ID was received, and if so, will ignore the second
87755// request. This prevents clients from accidentally creating duplicate
87756// commitments.
87757//
87758// The request ID must be a valid UUID with the exception that zero UUID
87759// is not supported (00000000-0000-0000-0000-000000000000).
87760func (c *InstancesUpdateShieldedVmConfigCall) RequestId(requestId string) *InstancesUpdateShieldedVmConfigCall {
87761	c.urlParams_.Set("requestId", requestId)
87762	return c
87763}
87764
87765// Fields allows partial responses to be retrieved. See
87766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87767// for more information.
87768func (c *InstancesUpdateShieldedVmConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedVmConfigCall {
87769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87770	return c
87771}
87772
87773// Context sets the context to be used in this call's Do method. Any
87774// pending HTTP request will be aborted if the provided context is
87775// canceled.
87776func (c *InstancesUpdateShieldedVmConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedVmConfigCall {
87777	c.ctx_ = ctx
87778	return c
87779}
87780
87781// Header returns an http.Header that can be modified by the caller to
87782// add HTTP headers to the request.
87783func (c *InstancesUpdateShieldedVmConfigCall) Header() http.Header {
87784	if c.header_ == nil {
87785		c.header_ = make(http.Header)
87786	}
87787	return c.header_
87788}
87789
87790func (c *InstancesUpdateShieldedVmConfigCall) doRequest(alt string) (*http.Response, error) {
87791	reqHeaders := make(http.Header)
87792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
87793	for k, v := range c.header_ {
87794		reqHeaders[k] = v
87795	}
87796	reqHeaders.Set("User-Agent", c.s.userAgent())
87797	var body io.Reader = nil
87798	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmconfig)
87799	if err != nil {
87800		return nil, err
87801	}
87802	reqHeaders.Set("Content-Type", "application/json")
87803	c.urlParams_.Set("alt", alt)
87804	c.urlParams_.Set("prettyPrint", "false")
87805	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig")
87806	urls += "?" + c.urlParams_.Encode()
87807	req, err := http.NewRequest("PATCH", urls, body)
87808	if err != nil {
87809		return nil, err
87810	}
87811	req.Header = reqHeaders
87812	googleapi.Expand(req.URL, map[string]string{
87813		"project":  c.project,
87814		"zone":     c.zone,
87815		"instance": c.instance,
87816	})
87817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87818}
87819
87820// Do executes the "compute.instances.updateShieldedVmConfig" call.
87821// Exactly one of *Operation or error will be non-nil. Any non-2xx
87822// status code is an error. Response headers are in either
87823// *Operation.ServerResponse.Header or (if a response was returned at
87824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87825// to check whether the returned error was because
87826// http.StatusNotModified was returned.
87827func (c *InstancesUpdateShieldedVmConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87828	gensupport.SetOptions(c.urlParams_, opts...)
87829	res, err := c.doRequest("json")
87830	if res != nil && res.StatusCode == http.StatusNotModified {
87831		if res.Body != nil {
87832			res.Body.Close()
87833		}
87834		return nil, &googleapi.Error{
87835			Code:   res.StatusCode,
87836			Header: res.Header,
87837		}
87838	}
87839	if err != nil {
87840		return nil, err
87841	}
87842	defer googleapi.CloseBody(res)
87843	if err := googleapi.CheckResponse(res); err != nil {
87844		return nil, err
87845	}
87846	ret := &Operation{
87847		ServerResponse: googleapi.ServerResponse{
87848			Header:         res.Header,
87849			HTTPStatusCode: res.StatusCode,
87850		},
87851	}
87852	target := &ret
87853	if err := gensupport.DecodeResponse(target, res); err != nil {
87854		return nil, err
87855	}
87856	return ret, nil
87857	// {
87858	//   "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.",
87859	//   "httpMethod": "PATCH",
87860	//   "id": "compute.instances.updateShieldedVmConfig",
87861	//   "parameterOrder": [
87862	//     "project",
87863	//     "zone",
87864	//     "instance"
87865	//   ],
87866	//   "parameters": {
87867	//     "instance": {
87868	//       "description": "Name of the instance scoping this request.",
87869	//       "location": "path",
87870	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87871	//       "required": true,
87872	//       "type": "string"
87873	//     },
87874	//     "project": {
87875	//       "description": "Project ID for this request.",
87876	//       "location": "path",
87877	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87878	//       "required": true,
87879	//       "type": "string"
87880	//     },
87881	//     "requestId": {
87882	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87883	//       "location": "query",
87884	//       "type": "string"
87885	//     },
87886	//     "zone": {
87887	//       "description": "The name of the zone for this request.",
87888	//       "location": "path",
87889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87890	//       "required": true,
87891	//       "type": "string"
87892	//     }
87893	//   },
87894	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig",
87895	//   "request": {
87896	//     "$ref": "ShieldedVmConfig"
87897	//   },
87898	//   "response": {
87899	//     "$ref": "Operation"
87900	//   },
87901	//   "scopes": [
87902	//     "https://www.googleapis.com/auth/cloud-platform",
87903	//     "https://www.googleapis.com/auth/compute"
87904	//   ]
87905	// }
87906
87907}
87908
87909// method id "compute.interconnectAttachments.aggregatedList":
87910
87911type InterconnectAttachmentsAggregatedListCall struct {
87912	s            *Service
87913	project      string
87914	urlParams_   gensupport.URLParams
87915	ifNoneMatch_ string
87916	ctx_         context.Context
87917	header_      http.Header
87918}
87919
87920// AggregatedList: Retrieves an aggregated list of interconnect
87921// attachments.
87922func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
87923	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87924	c.project = project
87925	return c
87926}
87927
87928// Filter sets the optional parameter "filter": A filter expression that
87929// filters resources listed in the response. The expression must specify
87930// the field name, a comparison operator, and the value that you want to
87931// use for filtering. The value must be a string, a number, or a
87932// boolean. The comparison operator must be either `=`, `!=`, `>`, or
87933// `<`.
87934//
87935// For example, if you are filtering Compute Engine instances, you can
87936// exclude instances named `example-instance` by specifying `name !=
87937// example-instance`.
87938//
87939// You can also filter nested fields. For example, you could specify
87940// `scheduling.automaticRestart = false` to include instances only if
87941// they are not scheduled for automatic restarts. You can use filtering
87942// on nested fields to filter based on resource labels.
87943//
87944// To filter on multiple expressions, provide each separate expression
87945// within parentheses. For example: ``` (scheduling.automaticRestart =
87946// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
87947// is an `AND` expression. However, you can include `AND` and `OR`
87948// expressions explicitly. For example: ``` (cpuPlatform = "Intel
87949// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
87950// (scheduling.automaticRestart = true) ```
87951func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
87952	c.urlParams_.Set("filter", filter)
87953	return c
87954}
87955
87956// IncludeAllScopes sets the optional parameter "includeAllScopes":
87957// Indicates whether every visible scope for each scope type (zone,
87958// region, global) should be included in the response. For new resource
87959// types added after this field, the flag has no effect as new resource
87960// types will always include every visible scope for each scope type in
87961// response. For resource types which predate this field, if this flag
87962// is omitted or false, only scopes of the scope types where the
87963// resource type is expected to be found will be included.
87964func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
87965	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
87966	return c
87967}
87968
87969// MaxResults sets the optional parameter "maxResults": The maximum
87970// number of results per page that should be returned. If the number of
87971// available results is larger than `maxResults`, Compute Engine returns
87972// a `nextPageToken` that can be used to get the next page of results in
87973// subsequent list requests. Acceptable values are `0` to `500`,
87974// inclusive. (Default: `500`)
87975func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
87976	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87977	return c
87978}
87979
87980// OrderBy sets the optional parameter "orderBy": Sorts list results by
87981// a certain order. By default, results are returned in alphanumerical
87982// order based on the resource name.
87983//
87984// You can also sort results in descending order based on the creation
87985// timestamp using `orderBy="creationTimestamp desc". This sorts
87986// results based on the `creationTimestamp` field in reverse
87987// chronological order (newest result first). Use this to sort resources
87988// like operations so that the newest operation is returned
87989// first.
87990//
87991// Currently, only sorting by `name` or `creationTimestamp desc` is
87992// supported.
87993func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
87994	c.urlParams_.Set("orderBy", orderBy)
87995	return c
87996}
87997
87998// PageToken sets the optional parameter "pageToken": Specifies a page
87999// token to use. Set `pageToken` to the `nextPageToken` returned by a
88000// previous list request to get the next page of results.
88001func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
88002	c.urlParams_.Set("pageToken", pageToken)
88003	return c
88004}
88005
88006// Fields allows partial responses to be retrieved. See
88007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88008// for more information.
88009func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
88010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88011	return c
88012}
88013
88014// IfNoneMatch sets the optional parameter which makes the operation
88015// fail if the object's ETag matches the given value. This is useful for
88016// getting updates only after the object has changed since the last
88017// request. Use googleapi.IsNotModified to check whether the response
88018// error from Do is the result of In-None-Match.
88019func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
88020	c.ifNoneMatch_ = entityTag
88021	return c
88022}
88023
88024// Context sets the context to be used in this call's Do method. Any
88025// pending HTTP request will be aborted if the provided context is
88026// canceled.
88027func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
88028	c.ctx_ = ctx
88029	return c
88030}
88031
88032// Header returns an http.Header that can be modified by the caller to
88033// add HTTP headers to the request.
88034func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
88035	if c.header_ == nil {
88036		c.header_ = make(http.Header)
88037	}
88038	return c.header_
88039}
88040
88041func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
88042	reqHeaders := make(http.Header)
88043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88044	for k, v := range c.header_ {
88045		reqHeaders[k] = v
88046	}
88047	reqHeaders.Set("User-Agent", c.s.userAgent())
88048	if c.ifNoneMatch_ != "" {
88049		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88050	}
88051	var body io.Reader = nil
88052	c.urlParams_.Set("alt", alt)
88053	c.urlParams_.Set("prettyPrint", "false")
88054	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
88055	urls += "?" + c.urlParams_.Encode()
88056	req, err := http.NewRequest("GET", urls, body)
88057	if err != nil {
88058		return nil, err
88059	}
88060	req.Header = reqHeaders
88061	googleapi.Expand(req.URL, map[string]string{
88062		"project": c.project,
88063	})
88064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88065}
88066
88067// Do executes the "compute.interconnectAttachments.aggregatedList" call.
88068// Exactly one of *InterconnectAttachmentAggregatedList or error will be
88069// non-nil. Any non-2xx status code is an error. Response headers are in
88070// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
88071// (if a response was returned at all) in
88072// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
88073// whether the returned error was because http.StatusNotModified was
88074// returned.
88075func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
88076	gensupport.SetOptions(c.urlParams_, opts...)
88077	res, err := c.doRequest("json")
88078	if res != nil && res.StatusCode == http.StatusNotModified {
88079		if res.Body != nil {
88080			res.Body.Close()
88081		}
88082		return nil, &googleapi.Error{
88083			Code:   res.StatusCode,
88084			Header: res.Header,
88085		}
88086	}
88087	if err != nil {
88088		return nil, err
88089	}
88090	defer googleapi.CloseBody(res)
88091	if err := googleapi.CheckResponse(res); err != nil {
88092		return nil, err
88093	}
88094	ret := &InterconnectAttachmentAggregatedList{
88095		ServerResponse: googleapi.ServerResponse{
88096			Header:         res.Header,
88097			HTTPStatusCode: res.StatusCode,
88098		},
88099	}
88100	target := &ret
88101	if err := gensupport.DecodeResponse(target, res); err != nil {
88102		return nil, err
88103	}
88104	return ret, nil
88105	// {
88106	//   "description": "Retrieves an aggregated list of interconnect attachments.",
88107	//   "httpMethod": "GET",
88108	//   "id": "compute.interconnectAttachments.aggregatedList",
88109	//   "parameterOrder": [
88110	//     "project"
88111	//   ],
88112	//   "parameters": {
88113	//     "filter": {
88114	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
88115	//       "location": "query",
88116	//       "type": "string"
88117	//     },
88118	//     "includeAllScopes": {
88119	//       "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.",
88120	//       "location": "query",
88121	//       "type": "boolean"
88122	//     },
88123	//     "maxResults": {
88124	//       "default": "500",
88125	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
88126	//       "format": "uint32",
88127	//       "location": "query",
88128	//       "minimum": "0",
88129	//       "type": "integer"
88130	//     },
88131	//     "orderBy": {
88132	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
88133	//       "location": "query",
88134	//       "type": "string"
88135	//     },
88136	//     "pageToken": {
88137	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
88138	//       "location": "query",
88139	//       "type": "string"
88140	//     },
88141	//     "project": {
88142	//       "description": "Project ID for this request.",
88143	//       "location": "path",
88144	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88145	//       "required": true,
88146	//       "type": "string"
88147	//     }
88148	//   },
88149	//   "path": "{project}/aggregated/interconnectAttachments",
88150	//   "response": {
88151	//     "$ref": "InterconnectAttachmentAggregatedList"
88152	//   },
88153	//   "scopes": [
88154	//     "https://www.googleapis.com/auth/cloud-platform",
88155	//     "https://www.googleapis.com/auth/compute",
88156	//     "https://www.googleapis.com/auth/compute.readonly"
88157	//   ]
88158	// }
88159
88160}
88161
88162// Pages invokes f for each page of results.
88163// A non-nil error returned from f will halt the iteration.
88164// The provided context supersedes any context provided to the Context method.
88165func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
88166	c.ctx_ = ctx
88167	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
88168	for {
88169		x, err := c.Do()
88170		if err != nil {
88171			return err
88172		}
88173		if err := f(x); err != nil {
88174			return err
88175		}
88176		if x.NextPageToken == "" {
88177			return nil
88178		}
88179		c.PageToken(x.NextPageToken)
88180	}
88181}
88182
88183// method id "compute.interconnectAttachments.delete":
88184
88185type InterconnectAttachmentsDeleteCall struct {
88186	s                      *Service
88187	project                string
88188	region                 string
88189	interconnectAttachment string
88190	urlParams_             gensupport.URLParams
88191	ctx_                   context.Context
88192	header_                http.Header
88193}
88194
88195// Delete: Deletes the specified interconnect attachment.
88196func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
88197	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88198	c.project = project
88199	c.region = region
88200	c.interconnectAttachment = interconnectAttachment
88201	return c
88202}
88203
88204// RequestId sets the optional parameter "requestId": An optional
88205// request ID to identify requests. Specify a unique request ID so that
88206// if you must retry your request, the server will know to ignore the
88207// request if it has already been completed.
88208//
88209// For example, consider a situation where you make an initial request
88210// and the request times out. If you make the request again with the
88211// same request ID, the server can check if original operation with the
88212// same request ID was received, and if so, will ignore the second
88213// request. This prevents clients from accidentally creating duplicate
88214// commitments.
88215//
88216// The request ID must be a valid UUID with the exception that zero UUID
88217// is not supported (00000000-0000-0000-0000-000000000000).
88218func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
88219	c.urlParams_.Set("requestId", requestId)
88220	return c
88221}
88222
88223// Fields allows partial responses to be retrieved. See
88224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88225// for more information.
88226func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
88227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88228	return c
88229}
88230
88231// Context sets the context to be used in this call's Do method. Any
88232// pending HTTP request will be aborted if the provided context is
88233// canceled.
88234func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
88235	c.ctx_ = ctx
88236	return c
88237}
88238
88239// Header returns an http.Header that can be modified by the caller to
88240// add HTTP headers to the request.
88241func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
88242	if c.header_ == nil {
88243		c.header_ = make(http.Header)
88244	}
88245	return c.header_
88246}
88247
88248func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
88249	reqHeaders := make(http.Header)
88250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88251	for k, v := range c.header_ {
88252		reqHeaders[k] = v
88253	}
88254	reqHeaders.Set("User-Agent", c.s.userAgent())
88255	var body io.Reader = nil
88256	c.urlParams_.Set("alt", alt)
88257	c.urlParams_.Set("prettyPrint", "false")
88258	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
88259	urls += "?" + c.urlParams_.Encode()
88260	req, err := http.NewRequest("DELETE", urls, body)
88261	if err != nil {
88262		return nil, err
88263	}
88264	req.Header = reqHeaders
88265	googleapi.Expand(req.URL, map[string]string{
88266		"project":                c.project,
88267		"region":                 c.region,
88268		"interconnectAttachment": c.interconnectAttachment,
88269	})
88270	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88271}
88272
88273// Do executes the "compute.interconnectAttachments.delete" call.
88274// Exactly one of *Operation or error will be non-nil. Any non-2xx
88275// status code is an error. Response headers are in either
88276// *Operation.ServerResponse.Header or (if a response was returned at
88277// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88278// to check whether the returned error was because
88279// http.StatusNotModified was returned.
88280func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88281	gensupport.SetOptions(c.urlParams_, opts...)
88282	res, err := c.doRequest("json")
88283	if res != nil && res.StatusCode == http.StatusNotModified {
88284		if res.Body != nil {
88285			res.Body.Close()
88286		}
88287		return nil, &googleapi.Error{
88288			Code:   res.StatusCode,
88289			Header: res.Header,
88290		}
88291	}
88292	if err != nil {
88293		return nil, err
88294	}
88295	defer googleapi.CloseBody(res)
88296	if err := googleapi.CheckResponse(res); err != nil {
88297		return nil, err
88298	}
88299	ret := &Operation{
88300		ServerResponse: googleapi.ServerResponse{
88301			Header:         res.Header,
88302			HTTPStatusCode: res.StatusCode,
88303		},
88304	}
88305	target := &ret
88306	if err := gensupport.DecodeResponse(target, res); err != nil {
88307		return nil, err
88308	}
88309	return ret, nil
88310	// {
88311	//   "description": "Deletes the specified interconnect attachment.",
88312	//   "httpMethod": "DELETE",
88313	//   "id": "compute.interconnectAttachments.delete",
88314	//   "parameterOrder": [
88315	//     "project",
88316	//     "region",
88317	//     "interconnectAttachment"
88318	//   ],
88319	//   "parameters": {
88320	//     "interconnectAttachment": {
88321	//       "description": "Name of the interconnect attachment to delete.",
88322	//       "location": "path",
88323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88324	//       "required": true,
88325	//       "type": "string"
88326	//     },
88327	//     "project": {
88328	//       "description": "Project ID for this request.",
88329	//       "location": "path",
88330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88331	//       "required": true,
88332	//       "type": "string"
88333	//     },
88334	//     "region": {
88335	//       "description": "Name of the region for this request.",
88336	//       "location": "path",
88337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88338	//       "required": true,
88339	//       "type": "string"
88340	//     },
88341	//     "requestId": {
88342	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88343	//       "location": "query",
88344	//       "type": "string"
88345	//     }
88346	//   },
88347	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
88348	//   "response": {
88349	//     "$ref": "Operation"
88350	//   },
88351	//   "scopes": [
88352	//     "https://www.googleapis.com/auth/cloud-platform",
88353	//     "https://www.googleapis.com/auth/compute"
88354	//   ]
88355	// }
88356
88357}
88358
88359// method id "compute.interconnectAttachments.get":
88360
88361type InterconnectAttachmentsGetCall struct {
88362	s                      *Service
88363	project                string
88364	region                 string
88365	interconnectAttachment string
88366	urlParams_             gensupport.URLParams
88367	ifNoneMatch_           string
88368	ctx_                   context.Context
88369	header_                http.Header
88370}
88371
88372// Get: Returns the specified interconnect attachment.
88373func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
88374	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88375	c.project = project
88376	c.region = region
88377	c.interconnectAttachment = interconnectAttachment
88378	return c
88379}
88380
88381// Fields allows partial responses to be retrieved. See
88382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88383// for more information.
88384func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
88385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88386	return c
88387}
88388
88389// IfNoneMatch sets the optional parameter which makes the operation
88390// fail if the object's ETag matches the given value. This is useful for
88391// getting updates only after the object has changed since the last
88392// request. Use googleapi.IsNotModified to check whether the response
88393// error from Do is the result of In-None-Match.
88394func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
88395	c.ifNoneMatch_ = entityTag
88396	return c
88397}
88398
88399// Context sets the context to be used in this call's Do method. Any
88400// pending HTTP request will be aborted if the provided context is
88401// canceled.
88402func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
88403	c.ctx_ = ctx
88404	return c
88405}
88406
88407// Header returns an http.Header that can be modified by the caller to
88408// add HTTP headers to the request.
88409func (c *InterconnectAttachmentsGetCall) Header() http.Header {
88410	if c.header_ == nil {
88411		c.header_ = make(http.Header)
88412	}
88413	return c.header_
88414}
88415
88416func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
88417	reqHeaders := make(http.Header)
88418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88419	for k, v := range c.header_ {
88420		reqHeaders[k] = v
88421	}
88422	reqHeaders.Set("User-Agent", c.s.userAgent())
88423	if c.ifNoneMatch_ != "" {
88424		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88425	}
88426	var body io.Reader = nil
88427	c.urlParams_.Set("alt", alt)
88428	c.urlParams_.Set("prettyPrint", "false")
88429	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
88430	urls += "?" + c.urlParams_.Encode()
88431	req, err := http.NewRequest("GET", urls, body)
88432	if err != nil {
88433		return nil, err
88434	}
88435	req.Header = reqHeaders
88436	googleapi.Expand(req.URL, map[string]string{
88437		"project":                c.project,
88438		"region":                 c.region,
88439		"interconnectAttachment": c.interconnectAttachment,
88440	})
88441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88442}
88443
88444// Do executes the "compute.interconnectAttachments.get" call.
88445// Exactly one of *InterconnectAttachment or error will be non-nil. Any
88446// non-2xx status code is an error. Response headers are in either
88447// *InterconnectAttachment.ServerResponse.Header or (if a response was
88448// returned at all) in error.(*googleapi.Error).Header. Use
88449// googleapi.IsNotModified to check whether the returned error was
88450// because http.StatusNotModified was returned.
88451func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
88452	gensupport.SetOptions(c.urlParams_, opts...)
88453	res, err := c.doRequest("json")
88454	if res != nil && res.StatusCode == http.StatusNotModified {
88455		if res.Body != nil {
88456			res.Body.Close()
88457		}
88458		return nil, &googleapi.Error{
88459			Code:   res.StatusCode,
88460			Header: res.Header,
88461		}
88462	}
88463	if err != nil {
88464		return nil, err
88465	}
88466	defer googleapi.CloseBody(res)
88467	if err := googleapi.CheckResponse(res); err != nil {
88468		return nil, err
88469	}
88470	ret := &InterconnectAttachment{
88471		ServerResponse: googleapi.ServerResponse{
88472			Header:         res.Header,
88473			HTTPStatusCode: res.StatusCode,
88474		},
88475	}
88476	target := &ret
88477	if err := gensupport.DecodeResponse(target, res); err != nil {
88478		return nil, err
88479	}
88480	return ret, nil
88481	// {
88482	//   "description": "Returns the specified interconnect attachment.",
88483	//   "httpMethod": "GET",
88484	//   "id": "compute.interconnectAttachments.get",
88485	//   "parameterOrder": [
88486	//     "project",
88487	//     "region",
88488	//     "interconnectAttachment"
88489	//   ],
88490	//   "parameters": {
88491	//     "interconnectAttachment": {
88492	//       "description": "Name of the interconnect attachment to return.",
88493	//       "location": "path",
88494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88495	//       "required": true,
88496	//       "type": "string"
88497	//     },
88498	//     "project": {
88499	//       "description": "Project ID for this request.",
88500	//       "location": "path",
88501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88502	//       "required": true,
88503	//       "type": "string"
88504	//     },
88505	//     "region": {
88506	//       "description": "Name of the region for this request.",
88507	//       "location": "path",
88508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88509	//       "required": true,
88510	//       "type": "string"
88511	//     }
88512	//   },
88513	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
88514	//   "response": {
88515	//     "$ref": "InterconnectAttachment"
88516	//   },
88517	//   "scopes": [
88518	//     "https://www.googleapis.com/auth/cloud-platform",
88519	//     "https://www.googleapis.com/auth/compute",
88520	//     "https://www.googleapis.com/auth/compute.readonly"
88521	//   ]
88522	// }
88523
88524}
88525
88526// method id "compute.interconnectAttachments.insert":
88527
88528type InterconnectAttachmentsInsertCall struct {
88529	s                      *Service
88530	project                string
88531	region                 string
88532	interconnectattachment *InterconnectAttachment
88533	urlParams_             gensupport.URLParams
88534	ctx_                   context.Context
88535	header_                http.Header
88536}
88537
88538// Insert: Creates an InterconnectAttachment in the specified project
88539// using the data included in the request.
88540func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
88541	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88542	c.project = project
88543	c.region = region
88544	c.interconnectattachment = interconnectattachment
88545	return c
88546}
88547
88548// RequestId sets the optional parameter "requestId": An optional
88549// request ID to identify requests. Specify a unique request ID so that
88550// if you must retry your request, the server will know to ignore the
88551// request if it has already been completed.
88552//
88553// For example, consider a situation where you make an initial request
88554// and the request times out. If you make the request again with the
88555// same request ID, the server can check if original operation with the
88556// same request ID was received, and if so, will ignore the second
88557// request. This prevents clients from accidentally creating duplicate
88558// commitments.
88559//
88560// The request ID must be a valid UUID with the exception that zero UUID
88561// is not supported (00000000-0000-0000-0000-000000000000).
88562func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
88563	c.urlParams_.Set("requestId", requestId)
88564	return c
88565}
88566
88567// ValidateOnly sets the optional parameter "validateOnly": If true, the
88568// request will not be committed.
88569func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
88570	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
88571	return c
88572}
88573
88574// Fields allows partial responses to be retrieved. See
88575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88576// for more information.
88577func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
88578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88579	return c
88580}
88581
88582// Context sets the context to be used in this call's Do method. Any
88583// pending HTTP request will be aborted if the provided context is
88584// canceled.
88585func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
88586	c.ctx_ = ctx
88587	return c
88588}
88589
88590// Header returns an http.Header that can be modified by the caller to
88591// add HTTP headers to the request.
88592func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
88593	if c.header_ == nil {
88594		c.header_ = make(http.Header)
88595	}
88596	return c.header_
88597}
88598
88599func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
88600	reqHeaders := make(http.Header)
88601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88602	for k, v := range c.header_ {
88603		reqHeaders[k] = v
88604	}
88605	reqHeaders.Set("User-Agent", c.s.userAgent())
88606	var body io.Reader = nil
88607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
88608	if err != nil {
88609		return nil, err
88610	}
88611	reqHeaders.Set("Content-Type", "application/json")
88612	c.urlParams_.Set("alt", alt)
88613	c.urlParams_.Set("prettyPrint", "false")
88614	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
88615	urls += "?" + c.urlParams_.Encode()
88616	req, err := http.NewRequest("POST", urls, body)
88617	if err != nil {
88618		return nil, err
88619	}
88620	req.Header = reqHeaders
88621	googleapi.Expand(req.URL, map[string]string{
88622		"project": c.project,
88623		"region":  c.region,
88624	})
88625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88626}
88627
88628// Do executes the "compute.interconnectAttachments.insert" call.
88629// Exactly one of *Operation or error will be non-nil. Any non-2xx
88630// status code is an error. Response headers are in either
88631// *Operation.ServerResponse.Header or (if a response was returned at
88632// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88633// to check whether the returned error was because
88634// http.StatusNotModified was returned.
88635func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88636	gensupport.SetOptions(c.urlParams_, opts...)
88637	res, err := c.doRequest("json")
88638	if res != nil && res.StatusCode == http.StatusNotModified {
88639		if res.Body != nil {
88640			res.Body.Close()
88641		}
88642		return nil, &googleapi.Error{
88643			Code:   res.StatusCode,
88644			Header: res.Header,
88645		}
88646	}
88647	if err != nil {
88648		return nil, err
88649	}
88650	defer googleapi.CloseBody(res)
88651	if err := googleapi.CheckResponse(res); err != nil {
88652		return nil, err
88653	}
88654	ret := &Operation{
88655		ServerResponse: googleapi.ServerResponse{
88656			Header:         res.Header,
88657			HTTPStatusCode: res.StatusCode,
88658		},
88659	}
88660	target := &ret
88661	if err := gensupport.DecodeResponse(target, res); err != nil {
88662		return nil, err
88663	}
88664	return ret, nil
88665	// {
88666	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
88667	//   "httpMethod": "POST",
88668	//   "id": "compute.interconnectAttachments.insert",
88669	//   "parameterOrder": [
88670	//     "project",
88671	//     "region"
88672	//   ],
88673	//   "parameters": {
88674	//     "project": {
88675	//       "description": "Project ID for this request.",
88676	//       "location": "path",
88677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88678	//       "required": true,
88679	//       "type": "string"
88680	//     },
88681	//     "region": {
88682	//       "description": "Name of the region for this request.",
88683	//       "location": "path",
88684	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88685	//       "required": true,
88686	//       "type": "string"
88687	//     },
88688	//     "requestId": {
88689	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88690	//       "location": "query",
88691	//       "type": "string"
88692	//     },
88693	//     "validateOnly": {
88694	//       "description": "If true, the request will not be committed.",
88695	//       "location": "query",
88696	//       "type": "boolean"
88697	//     }
88698	//   },
88699	//   "path": "{project}/regions/{region}/interconnectAttachments",
88700	//   "request": {
88701	//     "$ref": "InterconnectAttachment"
88702	//   },
88703	//   "response": {
88704	//     "$ref": "Operation"
88705	//   },
88706	//   "scopes": [
88707	//     "https://www.googleapis.com/auth/cloud-platform",
88708	//     "https://www.googleapis.com/auth/compute"
88709	//   ]
88710	// }
88711
88712}
88713
88714// method id "compute.interconnectAttachments.list":
88715
88716type InterconnectAttachmentsListCall struct {
88717	s            *Service
88718	project      string
88719	region       string
88720	urlParams_   gensupport.URLParams
88721	ifNoneMatch_ string
88722	ctx_         context.Context
88723	header_      http.Header
88724}
88725
88726// List: Retrieves the list of interconnect attachments contained within
88727// the specified region.
88728func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
88729	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88730	c.project = project
88731	c.region = region
88732	return c
88733}
88734
88735// Filter sets the optional parameter "filter": A filter expression that
88736// filters resources listed in the response. The expression must specify
88737// the field name, a comparison operator, and the value that you want to
88738// use for filtering. The value must be a string, a number, or a
88739// boolean. The comparison operator must be either `=`, `!=`, `>`, or
88740// `<`.
88741//
88742// For example, if you are filtering Compute Engine instances, you can
88743// exclude instances named `example-instance` by specifying `name !=
88744// example-instance`.
88745//
88746// You can also filter nested fields. For example, you could specify
88747// `scheduling.automaticRestart = false` to include instances only if
88748// they are not scheduled for automatic restarts. You can use filtering
88749// on nested fields to filter based on resource labels.
88750//
88751// To filter on multiple expressions, provide each separate expression
88752// within parentheses. For example: ``` (scheduling.automaticRestart =
88753// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
88754// is an `AND` expression. However, you can include `AND` and `OR`
88755// expressions explicitly. For example: ``` (cpuPlatform = "Intel
88756// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
88757// (scheduling.automaticRestart = true) ```
88758func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
88759	c.urlParams_.Set("filter", filter)
88760	return c
88761}
88762
88763// MaxResults sets the optional parameter "maxResults": The maximum
88764// number of results per page that should be returned. If the number of
88765// available results is larger than `maxResults`, Compute Engine returns
88766// a `nextPageToken` that can be used to get the next page of results in
88767// subsequent list requests. Acceptable values are `0` to `500`,
88768// inclusive. (Default: `500`)
88769func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
88770	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88771	return c
88772}
88773
88774// OrderBy sets the optional parameter "orderBy": Sorts list results by
88775// a certain order. By default, results are returned in alphanumerical
88776// order based on the resource name.
88777//
88778// You can also sort results in descending order based on the creation
88779// timestamp using `orderBy="creationTimestamp desc". This sorts
88780// results based on the `creationTimestamp` field in reverse
88781// chronological order (newest result first). Use this to sort resources
88782// like operations so that the newest operation is returned
88783// first.
88784//
88785// Currently, only sorting by `name` or `creationTimestamp desc` is
88786// supported.
88787func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
88788	c.urlParams_.Set("orderBy", orderBy)
88789	return c
88790}
88791
88792// PageToken sets the optional parameter "pageToken": Specifies a page
88793// token to use. Set `pageToken` to the `nextPageToken` returned by a
88794// previous list request to get the next page of results.
88795func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
88796	c.urlParams_.Set("pageToken", pageToken)
88797	return c
88798}
88799
88800// Fields allows partial responses to be retrieved. See
88801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88802// for more information.
88803func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
88804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88805	return c
88806}
88807
88808// IfNoneMatch sets the optional parameter which makes the operation
88809// fail if the object's ETag matches the given value. This is useful for
88810// getting updates only after the object has changed since the last
88811// request. Use googleapi.IsNotModified to check whether the response
88812// error from Do is the result of In-None-Match.
88813func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
88814	c.ifNoneMatch_ = entityTag
88815	return c
88816}
88817
88818// Context sets the context to be used in this call's Do method. Any
88819// pending HTTP request will be aborted if the provided context is
88820// canceled.
88821func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
88822	c.ctx_ = ctx
88823	return c
88824}
88825
88826// Header returns an http.Header that can be modified by the caller to
88827// add HTTP headers to the request.
88828func (c *InterconnectAttachmentsListCall) Header() http.Header {
88829	if c.header_ == nil {
88830		c.header_ = make(http.Header)
88831	}
88832	return c.header_
88833}
88834
88835func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
88836	reqHeaders := make(http.Header)
88837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
88838	for k, v := range c.header_ {
88839		reqHeaders[k] = v
88840	}
88841	reqHeaders.Set("User-Agent", c.s.userAgent())
88842	if c.ifNoneMatch_ != "" {
88843		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88844	}
88845	var body io.Reader = nil
88846	c.urlParams_.Set("alt", alt)
88847	c.urlParams_.Set("prettyPrint", "false")
88848	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
88849	urls += "?" + c.urlParams_.Encode()
88850	req, err := http.NewRequest("GET", urls, body)
88851	if err != nil {
88852		return nil, err
88853	}
88854	req.Header = reqHeaders
88855	googleapi.Expand(req.URL, map[string]string{
88856		"project": c.project,
88857		"region":  c.region,
88858	})
88859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88860}
88861
88862// Do executes the "compute.interconnectAttachments.list" call.
88863// Exactly one of *InterconnectAttachmentList or error will be non-nil.
88864// Any non-2xx status code is an error. Response headers are in either
88865// *InterconnectAttachmentList.ServerResponse.Header or (if a response
88866// was returned at all) in error.(*googleapi.Error).Header. Use
88867// googleapi.IsNotModified to check whether the returned error was
88868// because http.StatusNotModified was returned.
88869func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
88870	gensupport.SetOptions(c.urlParams_, opts...)
88871	res, err := c.doRequest("json")
88872	if res != nil && res.StatusCode == http.StatusNotModified {
88873		if res.Body != nil {
88874			res.Body.Close()
88875		}
88876		return nil, &googleapi.Error{
88877			Code:   res.StatusCode,
88878			Header: res.Header,
88879		}
88880	}
88881	if err != nil {
88882		return nil, err
88883	}
88884	defer googleapi.CloseBody(res)
88885	if err := googleapi.CheckResponse(res); err != nil {
88886		return nil, err
88887	}
88888	ret := &InterconnectAttachmentList{
88889		ServerResponse: googleapi.ServerResponse{
88890			Header:         res.Header,
88891			HTTPStatusCode: res.StatusCode,
88892		},
88893	}
88894	target := &ret
88895	if err := gensupport.DecodeResponse(target, res); err != nil {
88896		return nil, err
88897	}
88898	return ret, nil
88899	// {
88900	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
88901	//   "httpMethod": "GET",
88902	//   "id": "compute.interconnectAttachments.list",
88903	//   "parameterOrder": [
88904	//     "project",
88905	//     "region"
88906	//   ],
88907	//   "parameters": {
88908	//     "filter": {
88909	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
88910	//       "location": "query",
88911	//       "type": "string"
88912	//     },
88913	//     "maxResults": {
88914	//       "default": "500",
88915	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
88916	//       "format": "uint32",
88917	//       "location": "query",
88918	//       "minimum": "0",
88919	//       "type": "integer"
88920	//     },
88921	//     "orderBy": {
88922	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
88923	//       "location": "query",
88924	//       "type": "string"
88925	//     },
88926	//     "pageToken": {
88927	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
88928	//       "location": "query",
88929	//       "type": "string"
88930	//     },
88931	//     "project": {
88932	//       "description": "Project ID for this request.",
88933	//       "location": "path",
88934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88935	//       "required": true,
88936	//       "type": "string"
88937	//     },
88938	//     "region": {
88939	//       "description": "Name of the region for this request.",
88940	//       "location": "path",
88941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88942	//       "required": true,
88943	//       "type": "string"
88944	//     }
88945	//   },
88946	//   "path": "{project}/regions/{region}/interconnectAttachments",
88947	//   "response": {
88948	//     "$ref": "InterconnectAttachmentList"
88949	//   },
88950	//   "scopes": [
88951	//     "https://www.googleapis.com/auth/cloud-platform",
88952	//     "https://www.googleapis.com/auth/compute",
88953	//     "https://www.googleapis.com/auth/compute.readonly"
88954	//   ]
88955	// }
88956
88957}
88958
88959// Pages invokes f for each page of results.
88960// A non-nil error returned from f will halt the iteration.
88961// The provided context supersedes any context provided to the Context method.
88962func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
88963	c.ctx_ = ctx
88964	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
88965	for {
88966		x, err := c.Do()
88967		if err != nil {
88968			return err
88969		}
88970		if err := f(x); err != nil {
88971			return err
88972		}
88973		if x.NextPageToken == "" {
88974			return nil
88975		}
88976		c.PageToken(x.NextPageToken)
88977	}
88978}
88979
88980// method id "compute.interconnectAttachments.patch":
88981
88982type InterconnectAttachmentsPatchCall struct {
88983	s                      *Service
88984	project                string
88985	region                 string
88986	interconnectAttachment string
88987	interconnectattachment *InterconnectAttachment
88988	urlParams_             gensupport.URLParams
88989	ctx_                   context.Context
88990	header_                http.Header
88991}
88992
88993// Patch: Updates the specified interconnect attachment with the data
88994// included in the request. This method supports PATCH semantics and
88995// uses the JSON merge patch format and processing rules.
88996func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
88997	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88998	c.project = project
88999	c.region = region
89000	c.interconnectAttachment = interconnectAttachment
89001	c.interconnectattachment = interconnectattachment
89002	return c
89003}
89004
89005// RequestId sets the optional parameter "requestId": An optional
89006// request ID to identify requests. Specify a unique request ID so that
89007// if you must retry your request, the server will know to ignore the
89008// request if it has already been completed.
89009//
89010// For example, consider a situation where you make an initial request
89011// and the request times out. If you make the request again with the
89012// same request ID, the server can check if original operation with the
89013// same request ID was received, and if so, will ignore the second
89014// request. This prevents clients from accidentally creating duplicate
89015// commitments.
89016//
89017// The request ID must be a valid UUID with the exception that zero UUID
89018// is not supported (00000000-0000-0000-0000-000000000000).
89019func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
89020	c.urlParams_.Set("requestId", requestId)
89021	return c
89022}
89023
89024// Fields allows partial responses to be retrieved. See
89025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89026// for more information.
89027func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
89028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89029	return c
89030}
89031
89032// Context sets the context to be used in this call's Do method. Any
89033// pending HTTP request will be aborted if the provided context is
89034// canceled.
89035func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
89036	c.ctx_ = ctx
89037	return c
89038}
89039
89040// Header returns an http.Header that can be modified by the caller to
89041// add HTTP headers to the request.
89042func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
89043	if c.header_ == nil {
89044		c.header_ = make(http.Header)
89045	}
89046	return c.header_
89047}
89048
89049func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
89050	reqHeaders := make(http.Header)
89051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89052	for k, v := range c.header_ {
89053		reqHeaders[k] = v
89054	}
89055	reqHeaders.Set("User-Agent", c.s.userAgent())
89056	var body io.Reader = nil
89057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
89058	if err != nil {
89059		return nil, err
89060	}
89061	reqHeaders.Set("Content-Type", "application/json")
89062	c.urlParams_.Set("alt", alt)
89063	c.urlParams_.Set("prettyPrint", "false")
89064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
89065	urls += "?" + c.urlParams_.Encode()
89066	req, err := http.NewRequest("PATCH", urls, body)
89067	if err != nil {
89068		return nil, err
89069	}
89070	req.Header = reqHeaders
89071	googleapi.Expand(req.URL, map[string]string{
89072		"project":                c.project,
89073		"region":                 c.region,
89074		"interconnectAttachment": c.interconnectAttachment,
89075	})
89076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89077}
89078
89079// Do executes the "compute.interconnectAttachments.patch" call.
89080// Exactly one of *Operation or error will be non-nil. Any non-2xx
89081// status code is an error. Response headers are in either
89082// *Operation.ServerResponse.Header or (if a response was returned at
89083// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89084// to check whether the returned error was because
89085// http.StatusNotModified was returned.
89086func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89087	gensupport.SetOptions(c.urlParams_, opts...)
89088	res, err := c.doRequest("json")
89089	if res != nil && res.StatusCode == http.StatusNotModified {
89090		if res.Body != nil {
89091			res.Body.Close()
89092		}
89093		return nil, &googleapi.Error{
89094			Code:   res.StatusCode,
89095			Header: res.Header,
89096		}
89097	}
89098	if err != nil {
89099		return nil, err
89100	}
89101	defer googleapi.CloseBody(res)
89102	if err := googleapi.CheckResponse(res); err != nil {
89103		return nil, err
89104	}
89105	ret := &Operation{
89106		ServerResponse: googleapi.ServerResponse{
89107			Header:         res.Header,
89108			HTTPStatusCode: res.StatusCode,
89109		},
89110	}
89111	target := &ret
89112	if err := gensupport.DecodeResponse(target, res); err != nil {
89113		return nil, err
89114	}
89115	return ret, nil
89116	// {
89117	//   "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.",
89118	//   "httpMethod": "PATCH",
89119	//   "id": "compute.interconnectAttachments.patch",
89120	//   "parameterOrder": [
89121	//     "project",
89122	//     "region",
89123	//     "interconnectAttachment"
89124	//   ],
89125	//   "parameters": {
89126	//     "interconnectAttachment": {
89127	//       "description": "Name of the interconnect attachment to patch.",
89128	//       "location": "path",
89129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89130	//       "required": true,
89131	//       "type": "string"
89132	//     },
89133	//     "project": {
89134	//       "description": "Project ID for this request.",
89135	//       "location": "path",
89136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89137	//       "required": true,
89138	//       "type": "string"
89139	//     },
89140	//     "region": {
89141	//       "description": "Name of the region scoping this request.",
89142	//       "location": "path",
89143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89144	//       "required": true,
89145	//       "type": "string"
89146	//     },
89147	//     "requestId": {
89148	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89149	//       "location": "query",
89150	//       "type": "string"
89151	//     }
89152	//   },
89153	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
89154	//   "request": {
89155	//     "$ref": "InterconnectAttachment"
89156	//   },
89157	//   "response": {
89158	//     "$ref": "Operation"
89159	//   },
89160	//   "scopes": [
89161	//     "https://www.googleapis.com/auth/cloud-platform",
89162	//     "https://www.googleapis.com/auth/compute"
89163	//   ]
89164	// }
89165
89166}
89167
89168// method id "compute.interconnectAttachments.setLabels":
89169
89170type InterconnectAttachmentsSetLabelsCall struct {
89171	s                      *Service
89172	project                string
89173	region                 string
89174	resource               string
89175	regionsetlabelsrequest *RegionSetLabelsRequest
89176	urlParams_             gensupport.URLParams
89177	ctx_                   context.Context
89178	header_                http.Header
89179}
89180
89181// SetLabels: Sets the labels on an InterconnectAttachment. To learn
89182// more about labels, read the Labeling Resources documentation.
89183func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall {
89184	c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89185	c.project = project
89186	c.region = region
89187	c.resource = resource
89188	c.regionsetlabelsrequest = regionsetlabelsrequest
89189	return c
89190}
89191
89192// RequestId sets the optional parameter "requestId": An optional
89193// request ID to identify requests. Specify a unique request ID so that
89194// if you must retry your request, the server will know to ignore the
89195// request if it has already been completed.
89196//
89197// For example, consider a situation where you make an initial request
89198// and the request times out. If you make the request again with the
89199// same request ID, the server can check if original operation with the
89200// same request ID was received, and if so, will ignore the second
89201// request. This prevents clients from accidentally creating duplicate
89202// commitments.
89203//
89204// The request ID must be a valid UUID with the exception that zero UUID
89205// is not supported (00000000-0000-0000-0000-000000000000).
89206func (c *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall {
89207	c.urlParams_.Set("requestId", requestId)
89208	return c
89209}
89210
89211// Fields allows partial responses to be retrieved. See
89212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89213// for more information.
89214func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall {
89215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89216	return c
89217}
89218
89219// Context sets the context to be used in this call's Do method. Any
89220// pending HTTP request will be aborted if the provided context is
89221// canceled.
89222func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall {
89223	c.ctx_ = ctx
89224	return c
89225}
89226
89227// Header returns an http.Header that can be modified by the caller to
89228// add HTTP headers to the request.
89229func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header {
89230	if c.header_ == nil {
89231		c.header_ = make(http.Header)
89232	}
89233	return c.header_
89234}
89235
89236func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
89237	reqHeaders := make(http.Header)
89238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89239	for k, v := range c.header_ {
89240		reqHeaders[k] = v
89241	}
89242	reqHeaders.Set("User-Agent", c.s.userAgent())
89243	var body io.Reader = nil
89244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
89245	if err != nil {
89246		return nil, err
89247	}
89248	reqHeaders.Set("Content-Type", "application/json")
89249	c.urlParams_.Set("alt", alt)
89250	c.urlParams_.Set("prettyPrint", "false")
89251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels")
89252	urls += "?" + c.urlParams_.Encode()
89253	req, err := http.NewRequest("POST", urls, body)
89254	if err != nil {
89255		return nil, err
89256	}
89257	req.Header = reqHeaders
89258	googleapi.Expand(req.URL, map[string]string{
89259		"project":  c.project,
89260		"region":   c.region,
89261		"resource": c.resource,
89262	})
89263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89264}
89265
89266// Do executes the "compute.interconnectAttachments.setLabels" call.
89267// Exactly one of *Operation or error will be non-nil. Any non-2xx
89268// status code is an error. Response headers are in either
89269// *Operation.ServerResponse.Header or (if a response was returned at
89270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89271// to check whether the returned error was because
89272// http.StatusNotModified was returned.
89273func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89274	gensupport.SetOptions(c.urlParams_, opts...)
89275	res, err := c.doRequest("json")
89276	if res != nil && res.StatusCode == http.StatusNotModified {
89277		if res.Body != nil {
89278			res.Body.Close()
89279		}
89280		return nil, &googleapi.Error{
89281			Code:   res.StatusCode,
89282			Header: res.Header,
89283		}
89284	}
89285	if err != nil {
89286		return nil, err
89287	}
89288	defer googleapi.CloseBody(res)
89289	if err := googleapi.CheckResponse(res); err != nil {
89290		return nil, err
89291	}
89292	ret := &Operation{
89293		ServerResponse: googleapi.ServerResponse{
89294			Header:         res.Header,
89295			HTTPStatusCode: res.StatusCode,
89296		},
89297	}
89298	target := &ret
89299	if err := gensupport.DecodeResponse(target, res); err != nil {
89300		return nil, err
89301	}
89302	return ret, nil
89303	// {
89304	//   "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.",
89305	//   "httpMethod": "POST",
89306	//   "id": "compute.interconnectAttachments.setLabels",
89307	//   "parameterOrder": [
89308	//     "project",
89309	//     "region",
89310	//     "resource"
89311	//   ],
89312	//   "parameters": {
89313	//     "project": {
89314	//       "description": "Project ID for this request.",
89315	//       "location": "path",
89316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89317	//       "required": true,
89318	//       "type": "string"
89319	//     },
89320	//     "region": {
89321	//       "description": "The region for this request.",
89322	//       "location": "path",
89323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89324	//       "required": true,
89325	//       "type": "string"
89326	//     },
89327	//     "requestId": {
89328	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89329	//       "location": "query",
89330	//       "type": "string"
89331	//     },
89332	//     "resource": {
89333	//       "description": "Name or id of the resource for this request.",
89334	//       "location": "path",
89335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89336	//       "required": true,
89337	//       "type": "string"
89338	//     }
89339	//   },
89340	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
89341	//   "request": {
89342	//     "$ref": "RegionSetLabelsRequest"
89343	//   },
89344	//   "response": {
89345	//     "$ref": "Operation"
89346	//   },
89347	//   "scopes": [
89348	//     "https://www.googleapis.com/auth/cloud-platform",
89349	//     "https://www.googleapis.com/auth/compute"
89350	//   ]
89351	// }
89352
89353}
89354
89355// method id "compute.interconnectAttachments.testIamPermissions":
89356
89357type InterconnectAttachmentsTestIamPermissionsCall struct {
89358	s                      *Service
89359	project                string
89360	region                 string
89361	resource               string
89362	testpermissionsrequest *TestPermissionsRequest
89363	urlParams_             gensupport.URLParams
89364	ctx_                   context.Context
89365	header_                http.Header
89366}
89367
89368// TestIamPermissions: Returns permissions that a caller has on the
89369// specified resource.
89370func (r *InterconnectAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentsTestIamPermissionsCall {
89371	c := &InterconnectAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89372	c.project = project
89373	c.region = region
89374	c.resource = resource
89375	c.testpermissionsrequest = testpermissionsrequest
89376	return c
89377}
89378
89379// Fields allows partial responses to be retrieved. See
89380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89381// for more information.
89382func (c *InterconnectAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsTestIamPermissionsCall {
89383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89384	return c
89385}
89386
89387// Context sets the context to be used in this call's Do method. Any
89388// pending HTTP request will be aborted if the provided context is
89389// canceled.
89390func (c *InterconnectAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentsTestIamPermissionsCall {
89391	c.ctx_ = ctx
89392	return c
89393}
89394
89395// Header returns an http.Header that can be modified by the caller to
89396// add HTTP headers to the request.
89397func (c *InterconnectAttachmentsTestIamPermissionsCall) Header() http.Header {
89398	if c.header_ == nil {
89399		c.header_ = make(http.Header)
89400	}
89401	return c.header_
89402}
89403
89404func (c *InterconnectAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
89405	reqHeaders := make(http.Header)
89406	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89407	for k, v := range c.header_ {
89408		reqHeaders[k] = v
89409	}
89410	reqHeaders.Set("User-Agent", c.s.userAgent())
89411	var body io.Reader = nil
89412	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
89413	if err != nil {
89414		return nil, err
89415	}
89416	reqHeaders.Set("Content-Type", "application/json")
89417	c.urlParams_.Set("alt", alt)
89418	c.urlParams_.Set("prettyPrint", "false")
89419	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions")
89420	urls += "?" + c.urlParams_.Encode()
89421	req, err := http.NewRequest("POST", urls, body)
89422	if err != nil {
89423		return nil, err
89424	}
89425	req.Header = reqHeaders
89426	googleapi.Expand(req.URL, map[string]string{
89427		"project":  c.project,
89428		"region":   c.region,
89429		"resource": c.resource,
89430	})
89431	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89432}
89433
89434// Do executes the "compute.interconnectAttachments.testIamPermissions" call.
89435// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
89436// non-2xx status code is an error. Response headers are in either
89437// *TestPermissionsResponse.ServerResponse.Header or (if a response was
89438// returned at all) in error.(*googleapi.Error).Header. Use
89439// googleapi.IsNotModified to check whether the returned error was
89440// because http.StatusNotModified was returned.
89441func (c *InterconnectAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
89442	gensupport.SetOptions(c.urlParams_, opts...)
89443	res, err := c.doRequest("json")
89444	if res != nil && res.StatusCode == http.StatusNotModified {
89445		if res.Body != nil {
89446			res.Body.Close()
89447		}
89448		return nil, &googleapi.Error{
89449			Code:   res.StatusCode,
89450			Header: res.Header,
89451		}
89452	}
89453	if err != nil {
89454		return nil, err
89455	}
89456	defer googleapi.CloseBody(res)
89457	if err := googleapi.CheckResponse(res); err != nil {
89458		return nil, err
89459	}
89460	ret := &TestPermissionsResponse{
89461		ServerResponse: googleapi.ServerResponse{
89462			Header:         res.Header,
89463			HTTPStatusCode: res.StatusCode,
89464		},
89465	}
89466	target := &ret
89467	if err := gensupport.DecodeResponse(target, res); err != nil {
89468		return nil, err
89469	}
89470	return ret, nil
89471	// {
89472	//   "description": "Returns permissions that a caller has on the specified resource.",
89473	//   "httpMethod": "POST",
89474	//   "id": "compute.interconnectAttachments.testIamPermissions",
89475	//   "parameterOrder": [
89476	//     "project",
89477	//     "region",
89478	//     "resource"
89479	//   ],
89480	//   "parameters": {
89481	//     "project": {
89482	//       "description": "Project ID for this request.",
89483	//       "location": "path",
89484	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89485	//       "required": true,
89486	//       "type": "string"
89487	//     },
89488	//     "region": {
89489	//       "description": "The name of the region for this request.",
89490	//       "location": "path",
89491	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89492	//       "required": true,
89493	//       "type": "string"
89494	//     },
89495	//     "resource": {
89496	//       "description": "Name or id of the resource for this request.",
89497	//       "location": "path",
89498	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89499	//       "required": true,
89500	//       "type": "string"
89501	//     }
89502	//   },
89503	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions",
89504	//   "request": {
89505	//     "$ref": "TestPermissionsRequest"
89506	//   },
89507	//   "response": {
89508	//     "$ref": "TestPermissionsResponse"
89509	//   },
89510	//   "scopes": [
89511	//     "https://www.googleapis.com/auth/cloud-platform",
89512	//     "https://www.googleapis.com/auth/compute",
89513	//     "https://www.googleapis.com/auth/compute.readonly"
89514	//   ]
89515	// }
89516
89517}
89518
89519// method id "compute.interconnectLocations.get":
89520
89521type InterconnectLocationsGetCall struct {
89522	s                    *Service
89523	project              string
89524	interconnectLocation string
89525	urlParams_           gensupport.URLParams
89526	ifNoneMatch_         string
89527	ctx_                 context.Context
89528	header_              http.Header
89529}
89530
89531// Get: Returns the details for the specified interconnect location.
89532// Gets a list of available interconnect locations by making a list()
89533// request.
89534func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
89535	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89536	c.project = project
89537	c.interconnectLocation = interconnectLocation
89538	return c
89539}
89540
89541// Fields allows partial responses to be retrieved. See
89542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89543// for more information.
89544func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
89545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89546	return c
89547}
89548
89549// IfNoneMatch sets the optional parameter which makes the operation
89550// fail if the object's ETag matches the given value. This is useful for
89551// getting updates only after the object has changed since the last
89552// request. Use googleapi.IsNotModified to check whether the response
89553// error from Do is the result of In-None-Match.
89554func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
89555	c.ifNoneMatch_ = entityTag
89556	return c
89557}
89558
89559// Context sets the context to be used in this call's Do method. Any
89560// pending HTTP request will be aborted if the provided context is
89561// canceled.
89562func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
89563	c.ctx_ = ctx
89564	return c
89565}
89566
89567// Header returns an http.Header that can be modified by the caller to
89568// add HTTP headers to the request.
89569func (c *InterconnectLocationsGetCall) Header() http.Header {
89570	if c.header_ == nil {
89571		c.header_ = make(http.Header)
89572	}
89573	return c.header_
89574}
89575
89576func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
89577	reqHeaders := make(http.Header)
89578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89579	for k, v := range c.header_ {
89580		reqHeaders[k] = v
89581	}
89582	reqHeaders.Set("User-Agent", c.s.userAgent())
89583	if c.ifNoneMatch_ != "" {
89584		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89585	}
89586	var body io.Reader = nil
89587	c.urlParams_.Set("alt", alt)
89588	c.urlParams_.Set("prettyPrint", "false")
89589	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
89590	urls += "?" + c.urlParams_.Encode()
89591	req, err := http.NewRequest("GET", urls, body)
89592	if err != nil {
89593		return nil, err
89594	}
89595	req.Header = reqHeaders
89596	googleapi.Expand(req.URL, map[string]string{
89597		"project":              c.project,
89598		"interconnectLocation": c.interconnectLocation,
89599	})
89600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89601}
89602
89603// Do executes the "compute.interconnectLocations.get" call.
89604// Exactly one of *InterconnectLocation or error will be non-nil. Any
89605// non-2xx status code is an error. Response headers are in either
89606// *InterconnectLocation.ServerResponse.Header or (if a response was
89607// returned at all) in error.(*googleapi.Error).Header. Use
89608// googleapi.IsNotModified to check whether the returned error was
89609// because http.StatusNotModified was returned.
89610func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
89611	gensupport.SetOptions(c.urlParams_, opts...)
89612	res, err := c.doRequest("json")
89613	if res != nil && res.StatusCode == http.StatusNotModified {
89614		if res.Body != nil {
89615			res.Body.Close()
89616		}
89617		return nil, &googleapi.Error{
89618			Code:   res.StatusCode,
89619			Header: res.Header,
89620		}
89621	}
89622	if err != nil {
89623		return nil, err
89624	}
89625	defer googleapi.CloseBody(res)
89626	if err := googleapi.CheckResponse(res); err != nil {
89627		return nil, err
89628	}
89629	ret := &InterconnectLocation{
89630		ServerResponse: googleapi.ServerResponse{
89631			Header:         res.Header,
89632			HTTPStatusCode: res.StatusCode,
89633		},
89634	}
89635	target := &ret
89636	if err := gensupport.DecodeResponse(target, res); err != nil {
89637		return nil, err
89638	}
89639	return ret, nil
89640	// {
89641	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
89642	//   "httpMethod": "GET",
89643	//   "id": "compute.interconnectLocations.get",
89644	//   "parameterOrder": [
89645	//     "project",
89646	//     "interconnectLocation"
89647	//   ],
89648	//   "parameters": {
89649	//     "interconnectLocation": {
89650	//       "description": "Name of the interconnect location to return.",
89651	//       "location": "path",
89652	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89653	//       "required": true,
89654	//       "type": "string"
89655	//     },
89656	//     "project": {
89657	//       "description": "Project ID for this request.",
89658	//       "location": "path",
89659	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89660	//       "required": true,
89661	//       "type": "string"
89662	//     }
89663	//   },
89664	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
89665	//   "response": {
89666	//     "$ref": "InterconnectLocation"
89667	//   },
89668	//   "scopes": [
89669	//     "https://www.googleapis.com/auth/cloud-platform",
89670	//     "https://www.googleapis.com/auth/compute",
89671	//     "https://www.googleapis.com/auth/compute.readonly"
89672	//   ]
89673	// }
89674
89675}
89676
89677// method id "compute.interconnectLocations.list":
89678
89679type InterconnectLocationsListCall struct {
89680	s            *Service
89681	project      string
89682	urlParams_   gensupport.URLParams
89683	ifNoneMatch_ string
89684	ctx_         context.Context
89685	header_      http.Header
89686}
89687
89688// List: Retrieves the list of interconnect locations available to the
89689// specified project.
89690func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
89691	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89692	c.project = project
89693	return c
89694}
89695
89696// Filter sets the optional parameter "filter": A filter expression that
89697// filters resources listed in the response. The expression must specify
89698// the field name, a comparison operator, and the value that you want to
89699// use for filtering. The value must be a string, a number, or a
89700// boolean. The comparison operator must be either `=`, `!=`, `>`, or
89701// `<`.
89702//
89703// For example, if you are filtering Compute Engine instances, you can
89704// exclude instances named `example-instance` by specifying `name !=
89705// example-instance`.
89706//
89707// You can also filter nested fields. For example, you could specify
89708// `scheduling.automaticRestart = false` to include instances only if
89709// they are not scheduled for automatic restarts. You can use filtering
89710// on nested fields to filter based on resource labels.
89711//
89712// To filter on multiple expressions, provide each separate expression
89713// within parentheses. For example: ``` (scheduling.automaticRestart =
89714// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
89715// is an `AND` expression. However, you can include `AND` and `OR`
89716// expressions explicitly. For example: ``` (cpuPlatform = "Intel
89717// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
89718// (scheduling.automaticRestart = true) ```
89719func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
89720	c.urlParams_.Set("filter", filter)
89721	return c
89722}
89723
89724// MaxResults sets the optional parameter "maxResults": The maximum
89725// number of results per page that should be returned. If the number of
89726// available results is larger than `maxResults`, Compute Engine returns
89727// a `nextPageToken` that can be used to get the next page of results in
89728// subsequent list requests. Acceptable values are `0` to `500`,
89729// inclusive. (Default: `500`)
89730func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
89731	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
89732	return c
89733}
89734
89735// OrderBy sets the optional parameter "orderBy": Sorts list results by
89736// a certain order. By default, results are returned in alphanumerical
89737// order based on the resource name.
89738//
89739// You can also sort results in descending order based on the creation
89740// timestamp using `orderBy="creationTimestamp desc". This sorts
89741// results based on the `creationTimestamp` field in reverse
89742// chronological order (newest result first). Use this to sort resources
89743// like operations so that the newest operation is returned
89744// first.
89745//
89746// Currently, only sorting by `name` or `creationTimestamp desc` is
89747// supported.
89748func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
89749	c.urlParams_.Set("orderBy", orderBy)
89750	return c
89751}
89752
89753// PageToken sets the optional parameter "pageToken": Specifies a page
89754// token to use. Set `pageToken` to the `nextPageToken` returned by a
89755// previous list request to get the next page of results.
89756func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
89757	c.urlParams_.Set("pageToken", pageToken)
89758	return c
89759}
89760
89761// Fields allows partial responses to be retrieved. See
89762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89763// for more information.
89764func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
89765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89766	return c
89767}
89768
89769// IfNoneMatch sets the optional parameter which makes the operation
89770// fail if the object's ETag matches the given value. This is useful for
89771// getting updates only after the object has changed since the last
89772// request. Use googleapi.IsNotModified to check whether the response
89773// error from Do is the result of In-None-Match.
89774func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
89775	c.ifNoneMatch_ = entityTag
89776	return c
89777}
89778
89779// Context sets the context to be used in this call's Do method. Any
89780// pending HTTP request will be aborted if the provided context is
89781// canceled.
89782func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
89783	c.ctx_ = ctx
89784	return c
89785}
89786
89787// Header returns an http.Header that can be modified by the caller to
89788// add HTTP headers to the request.
89789func (c *InterconnectLocationsListCall) Header() http.Header {
89790	if c.header_ == nil {
89791		c.header_ = make(http.Header)
89792	}
89793	return c.header_
89794}
89795
89796func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
89797	reqHeaders := make(http.Header)
89798	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89799	for k, v := range c.header_ {
89800		reqHeaders[k] = v
89801	}
89802	reqHeaders.Set("User-Agent", c.s.userAgent())
89803	if c.ifNoneMatch_ != "" {
89804		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89805	}
89806	var body io.Reader = nil
89807	c.urlParams_.Set("alt", alt)
89808	c.urlParams_.Set("prettyPrint", "false")
89809	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
89810	urls += "?" + c.urlParams_.Encode()
89811	req, err := http.NewRequest("GET", urls, body)
89812	if err != nil {
89813		return nil, err
89814	}
89815	req.Header = reqHeaders
89816	googleapi.Expand(req.URL, map[string]string{
89817		"project": c.project,
89818	})
89819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89820}
89821
89822// Do executes the "compute.interconnectLocations.list" call.
89823// Exactly one of *InterconnectLocationList or error will be non-nil.
89824// Any non-2xx status code is an error. Response headers are in either
89825// *InterconnectLocationList.ServerResponse.Header or (if a response was
89826// returned at all) in error.(*googleapi.Error).Header. Use
89827// googleapi.IsNotModified to check whether the returned error was
89828// because http.StatusNotModified was returned.
89829func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
89830	gensupport.SetOptions(c.urlParams_, opts...)
89831	res, err := c.doRequest("json")
89832	if res != nil && res.StatusCode == http.StatusNotModified {
89833		if res.Body != nil {
89834			res.Body.Close()
89835		}
89836		return nil, &googleapi.Error{
89837			Code:   res.StatusCode,
89838			Header: res.Header,
89839		}
89840	}
89841	if err != nil {
89842		return nil, err
89843	}
89844	defer googleapi.CloseBody(res)
89845	if err := googleapi.CheckResponse(res); err != nil {
89846		return nil, err
89847	}
89848	ret := &InterconnectLocationList{
89849		ServerResponse: googleapi.ServerResponse{
89850			Header:         res.Header,
89851			HTTPStatusCode: res.StatusCode,
89852		},
89853	}
89854	target := &ret
89855	if err := gensupport.DecodeResponse(target, res); err != nil {
89856		return nil, err
89857	}
89858	return ret, nil
89859	// {
89860	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
89861	//   "httpMethod": "GET",
89862	//   "id": "compute.interconnectLocations.list",
89863	//   "parameterOrder": [
89864	//     "project"
89865	//   ],
89866	//   "parameters": {
89867	//     "filter": {
89868	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
89869	//       "location": "query",
89870	//       "type": "string"
89871	//     },
89872	//     "maxResults": {
89873	//       "default": "500",
89874	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
89875	//       "format": "uint32",
89876	//       "location": "query",
89877	//       "minimum": "0",
89878	//       "type": "integer"
89879	//     },
89880	//     "orderBy": {
89881	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
89882	//       "location": "query",
89883	//       "type": "string"
89884	//     },
89885	//     "pageToken": {
89886	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
89887	//       "location": "query",
89888	//       "type": "string"
89889	//     },
89890	//     "project": {
89891	//       "description": "Project ID for this request.",
89892	//       "location": "path",
89893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89894	//       "required": true,
89895	//       "type": "string"
89896	//     }
89897	//   },
89898	//   "path": "{project}/global/interconnectLocations",
89899	//   "response": {
89900	//     "$ref": "InterconnectLocationList"
89901	//   },
89902	//   "scopes": [
89903	//     "https://www.googleapis.com/auth/cloud-platform",
89904	//     "https://www.googleapis.com/auth/compute",
89905	//     "https://www.googleapis.com/auth/compute.readonly"
89906	//   ]
89907	// }
89908
89909}
89910
89911// Pages invokes f for each page of results.
89912// A non-nil error returned from f will halt the iteration.
89913// The provided context supersedes any context provided to the Context method.
89914func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
89915	c.ctx_ = ctx
89916	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89917	for {
89918		x, err := c.Do()
89919		if err != nil {
89920			return err
89921		}
89922		if err := f(x); err != nil {
89923			return err
89924		}
89925		if x.NextPageToken == "" {
89926			return nil
89927		}
89928		c.PageToken(x.NextPageToken)
89929	}
89930}
89931
89932// method id "compute.interconnects.delete":
89933
89934type InterconnectsDeleteCall struct {
89935	s            *Service
89936	project      string
89937	interconnect string
89938	urlParams_   gensupport.URLParams
89939	ctx_         context.Context
89940	header_      http.Header
89941}
89942
89943// Delete: Deletes the specified interconnect.
89944func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
89945	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89946	c.project = project
89947	c.interconnect = interconnect
89948	return c
89949}
89950
89951// RequestId sets the optional parameter "requestId": An optional
89952// request ID to identify requests. Specify a unique request ID so that
89953// if you must retry your request, the server will know to ignore the
89954// request if it has already been completed.
89955//
89956// For example, consider a situation where you make an initial request
89957// and the request times out. If you make the request again with the
89958// same request ID, the server can check if original operation with the
89959// same request ID was received, and if so, will ignore the second
89960// request. This prevents clients from accidentally creating duplicate
89961// commitments.
89962//
89963// The request ID must be a valid UUID with the exception that zero UUID
89964// is not supported (00000000-0000-0000-0000-000000000000).
89965func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
89966	c.urlParams_.Set("requestId", requestId)
89967	return c
89968}
89969
89970// Fields allows partial responses to be retrieved. See
89971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89972// for more information.
89973func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
89974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89975	return c
89976}
89977
89978// Context sets the context to be used in this call's Do method. Any
89979// pending HTTP request will be aborted if the provided context is
89980// canceled.
89981func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
89982	c.ctx_ = ctx
89983	return c
89984}
89985
89986// Header returns an http.Header that can be modified by the caller to
89987// add HTTP headers to the request.
89988func (c *InterconnectsDeleteCall) Header() http.Header {
89989	if c.header_ == nil {
89990		c.header_ = make(http.Header)
89991	}
89992	return c.header_
89993}
89994
89995func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
89996	reqHeaders := make(http.Header)
89997	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
89998	for k, v := range c.header_ {
89999		reqHeaders[k] = v
90000	}
90001	reqHeaders.Set("User-Agent", c.s.userAgent())
90002	var body io.Reader = nil
90003	c.urlParams_.Set("alt", alt)
90004	c.urlParams_.Set("prettyPrint", "false")
90005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
90006	urls += "?" + c.urlParams_.Encode()
90007	req, err := http.NewRequest("DELETE", urls, body)
90008	if err != nil {
90009		return nil, err
90010	}
90011	req.Header = reqHeaders
90012	googleapi.Expand(req.URL, map[string]string{
90013		"project":      c.project,
90014		"interconnect": c.interconnect,
90015	})
90016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90017}
90018
90019// Do executes the "compute.interconnects.delete" call.
90020// Exactly one of *Operation or error will be non-nil. Any non-2xx
90021// status code is an error. Response headers are in either
90022// *Operation.ServerResponse.Header or (if a response was returned at
90023// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90024// to check whether the returned error was because
90025// http.StatusNotModified was returned.
90026func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90027	gensupport.SetOptions(c.urlParams_, opts...)
90028	res, err := c.doRequest("json")
90029	if res != nil && res.StatusCode == http.StatusNotModified {
90030		if res.Body != nil {
90031			res.Body.Close()
90032		}
90033		return nil, &googleapi.Error{
90034			Code:   res.StatusCode,
90035			Header: res.Header,
90036		}
90037	}
90038	if err != nil {
90039		return nil, err
90040	}
90041	defer googleapi.CloseBody(res)
90042	if err := googleapi.CheckResponse(res); err != nil {
90043		return nil, err
90044	}
90045	ret := &Operation{
90046		ServerResponse: googleapi.ServerResponse{
90047			Header:         res.Header,
90048			HTTPStatusCode: res.StatusCode,
90049		},
90050	}
90051	target := &ret
90052	if err := gensupport.DecodeResponse(target, res); err != nil {
90053		return nil, err
90054	}
90055	return ret, nil
90056	// {
90057	//   "description": "Deletes the specified interconnect.",
90058	//   "httpMethod": "DELETE",
90059	//   "id": "compute.interconnects.delete",
90060	//   "parameterOrder": [
90061	//     "project",
90062	//     "interconnect"
90063	//   ],
90064	//   "parameters": {
90065	//     "interconnect": {
90066	//       "description": "Name of the interconnect to delete.",
90067	//       "location": "path",
90068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90069	//       "required": true,
90070	//       "type": "string"
90071	//     },
90072	//     "project": {
90073	//       "description": "Project ID for this request.",
90074	//       "location": "path",
90075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90076	//       "required": true,
90077	//       "type": "string"
90078	//     },
90079	//     "requestId": {
90080	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90081	//       "location": "query",
90082	//       "type": "string"
90083	//     }
90084	//   },
90085	//   "path": "{project}/global/interconnects/{interconnect}",
90086	//   "response": {
90087	//     "$ref": "Operation"
90088	//   },
90089	//   "scopes": [
90090	//     "https://www.googleapis.com/auth/cloud-platform",
90091	//     "https://www.googleapis.com/auth/compute"
90092	//   ]
90093	// }
90094
90095}
90096
90097// method id "compute.interconnects.get":
90098
90099type InterconnectsGetCall struct {
90100	s            *Service
90101	project      string
90102	interconnect string
90103	urlParams_   gensupport.URLParams
90104	ifNoneMatch_ string
90105	ctx_         context.Context
90106	header_      http.Header
90107}
90108
90109// Get: Returns the specified interconnect. Get a list of available
90110// interconnects by making a list() request.
90111func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
90112	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90113	c.project = project
90114	c.interconnect = interconnect
90115	return c
90116}
90117
90118// Fields allows partial responses to be retrieved. See
90119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90120// for more information.
90121func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
90122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90123	return c
90124}
90125
90126// IfNoneMatch sets the optional parameter which makes the operation
90127// fail if the object's ETag matches the given value. This is useful for
90128// getting updates only after the object has changed since the last
90129// request. Use googleapi.IsNotModified to check whether the response
90130// error from Do is the result of In-None-Match.
90131func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
90132	c.ifNoneMatch_ = entityTag
90133	return c
90134}
90135
90136// Context sets the context to be used in this call's Do method. Any
90137// pending HTTP request will be aborted if the provided context is
90138// canceled.
90139func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
90140	c.ctx_ = ctx
90141	return c
90142}
90143
90144// Header returns an http.Header that can be modified by the caller to
90145// add HTTP headers to the request.
90146func (c *InterconnectsGetCall) Header() http.Header {
90147	if c.header_ == nil {
90148		c.header_ = make(http.Header)
90149	}
90150	return c.header_
90151}
90152
90153func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
90154	reqHeaders := make(http.Header)
90155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90156	for k, v := range c.header_ {
90157		reqHeaders[k] = v
90158	}
90159	reqHeaders.Set("User-Agent", c.s.userAgent())
90160	if c.ifNoneMatch_ != "" {
90161		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90162	}
90163	var body io.Reader = nil
90164	c.urlParams_.Set("alt", alt)
90165	c.urlParams_.Set("prettyPrint", "false")
90166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
90167	urls += "?" + c.urlParams_.Encode()
90168	req, err := http.NewRequest("GET", urls, body)
90169	if err != nil {
90170		return nil, err
90171	}
90172	req.Header = reqHeaders
90173	googleapi.Expand(req.URL, map[string]string{
90174		"project":      c.project,
90175		"interconnect": c.interconnect,
90176	})
90177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90178}
90179
90180// Do executes the "compute.interconnects.get" call.
90181// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
90182// status code is an error. Response headers are in either
90183// *Interconnect.ServerResponse.Header or (if a response was returned at
90184// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90185// to check whether the returned error was because
90186// http.StatusNotModified was returned.
90187func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
90188	gensupport.SetOptions(c.urlParams_, opts...)
90189	res, err := c.doRequest("json")
90190	if res != nil && res.StatusCode == http.StatusNotModified {
90191		if res.Body != nil {
90192			res.Body.Close()
90193		}
90194		return nil, &googleapi.Error{
90195			Code:   res.StatusCode,
90196			Header: res.Header,
90197		}
90198	}
90199	if err != nil {
90200		return nil, err
90201	}
90202	defer googleapi.CloseBody(res)
90203	if err := googleapi.CheckResponse(res); err != nil {
90204		return nil, err
90205	}
90206	ret := &Interconnect{
90207		ServerResponse: googleapi.ServerResponse{
90208			Header:         res.Header,
90209			HTTPStatusCode: res.StatusCode,
90210		},
90211	}
90212	target := &ret
90213	if err := gensupport.DecodeResponse(target, res); err != nil {
90214		return nil, err
90215	}
90216	return ret, nil
90217	// {
90218	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
90219	//   "httpMethod": "GET",
90220	//   "id": "compute.interconnects.get",
90221	//   "parameterOrder": [
90222	//     "project",
90223	//     "interconnect"
90224	//   ],
90225	//   "parameters": {
90226	//     "interconnect": {
90227	//       "description": "Name of the interconnect to return.",
90228	//       "location": "path",
90229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90230	//       "required": true,
90231	//       "type": "string"
90232	//     },
90233	//     "project": {
90234	//       "description": "Project ID for this request.",
90235	//       "location": "path",
90236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90237	//       "required": true,
90238	//       "type": "string"
90239	//     }
90240	//   },
90241	//   "path": "{project}/global/interconnects/{interconnect}",
90242	//   "response": {
90243	//     "$ref": "Interconnect"
90244	//   },
90245	//   "scopes": [
90246	//     "https://www.googleapis.com/auth/cloud-platform",
90247	//     "https://www.googleapis.com/auth/compute",
90248	//     "https://www.googleapis.com/auth/compute.readonly"
90249	//   ]
90250	// }
90251
90252}
90253
90254// method id "compute.interconnects.getDiagnostics":
90255
90256type InterconnectsGetDiagnosticsCall struct {
90257	s            *Service
90258	project      string
90259	interconnect string
90260	urlParams_   gensupport.URLParams
90261	ifNoneMatch_ string
90262	ctx_         context.Context
90263	header_      http.Header
90264}
90265
90266// GetDiagnostics: Returns the interconnectDiagnostics for the specified
90267// interconnect.
90268func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
90269	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90270	c.project = project
90271	c.interconnect = interconnect
90272	return c
90273}
90274
90275// Fields allows partial responses to be retrieved. See
90276// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90277// for more information.
90278func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
90279	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90280	return c
90281}
90282
90283// IfNoneMatch sets the optional parameter which makes the operation
90284// fail if the object's ETag matches the given value. This is useful for
90285// getting updates only after the object has changed since the last
90286// request. Use googleapi.IsNotModified to check whether the response
90287// error from Do is the result of In-None-Match.
90288func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
90289	c.ifNoneMatch_ = entityTag
90290	return c
90291}
90292
90293// Context sets the context to be used in this call's Do method. Any
90294// pending HTTP request will be aborted if the provided context is
90295// canceled.
90296func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
90297	c.ctx_ = ctx
90298	return c
90299}
90300
90301// Header returns an http.Header that can be modified by the caller to
90302// add HTTP headers to the request.
90303func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
90304	if c.header_ == nil {
90305		c.header_ = make(http.Header)
90306	}
90307	return c.header_
90308}
90309
90310func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
90311	reqHeaders := make(http.Header)
90312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90313	for k, v := range c.header_ {
90314		reqHeaders[k] = v
90315	}
90316	reqHeaders.Set("User-Agent", c.s.userAgent())
90317	if c.ifNoneMatch_ != "" {
90318		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90319	}
90320	var body io.Reader = nil
90321	c.urlParams_.Set("alt", alt)
90322	c.urlParams_.Set("prettyPrint", "false")
90323	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}/getDiagnostics")
90324	urls += "?" + c.urlParams_.Encode()
90325	req, err := http.NewRequest("GET", urls, body)
90326	if err != nil {
90327		return nil, err
90328	}
90329	req.Header = reqHeaders
90330	googleapi.Expand(req.URL, map[string]string{
90331		"project":      c.project,
90332		"interconnect": c.interconnect,
90333	})
90334	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90335}
90336
90337// Do executes the "compute.interconnects.getDiagnostics" call.
90338// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
90339// non-nil. Any non-2xx status code is an error. Response headers are in
90340// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
90341// (if a response was returned at all) in
90342// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
90343// whether the returned error was because http.StatusNotModified was
90344// returned.
90345func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
90346	gensupport.SetOptions(c.urlParams_, opts...)
90347	res, err := c.doRequest("json")
90348	if res != nil && res.StatusCode == http.StatusNotModified {
90349		if res.Body != nil {
90350			res.Body.Close()
90351		}
90352		return nil, &googleapi.Error{
90353			Code:   res.StatusCode,
90354			Header: res.Header,
90355		}
90356	}
90357	if err != nil {
90358		return nil, err
90359	}
90360	defer googleapi.CloseBody(res)
90361	if err := googleapi.CheckResponse(res); err != nil {
90362		return nil, err
90363	}
90364	ret := &InterconnectsGetDiagnosticsResponse{
90365		ServerResponse: googleapi.ServerResponse{
90366			Header:         res.Header,
90367			HTTPStatusCode: res.StatusCode,
90368		},
90369	}
90370	target := &ret
90371	if err := gensupport.DecodeResponse(target, res); err != nil {
90372		return nil, err
90373	}
90374	return ret, nil
90375	// {
90376	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
90377	//   "httpMethod": "GET",
90378	//   "id": "compute.interconnects.getDiagnostics",
90379	//   "parameterOrder": [
90380	//     "project",
90381	//     "interconnect"
90382	//   ],
90383	//   "parameters": {
90384	//     "interconnect": {
90385	//       "description": "Name of the interconnect resource to query.",
90386	//       "location": "path",
90387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90388	//       "required": true,
90389	//       "type": "string"
90390	//     },
90391	//     "project": {
90392	//       "description": "Project ID for this request.",
90393	//       "location": "path",
90394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90395	//       "required": true,
90396	//       "type": "string"
90397	//     }
90398	//   },
90399	//   "path": "{project}/global/interconnects/{interconnect}/getDiagnostics",
90400	//   "response": {
90401	//     "$ref": "InterconnectsGetDiagnosticsResponse"
90402	//   },
90403	//   "scopes": [
90404	//     "https://www.googleapis.com/auth/cloud-platform",
90405	//     "https://www.googleapis.com/auth/compute",
90406	//     "https://www.googleapis.com/auth/compute.readonly"
90407	//   ]
90408	// }
90409
90410}
90411
90412// method id "compute.interconnects.insert":
90413
90414type InterconnectsInsertCall struct {
90415	s            *Service
90416	project      string
90417	interconnect *Interconnect
90418	urlParams_   gensupport.URLParams
90419	ctx_         context.Context
90420	header_      http.Header
90421}
90422
90423// Insert: Creates a Interconnect in the specified project using the
90424// data included in the request.
90425func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
90426	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90427	c.project = project
90428	c.interconnect = interconnect
90429	return c
90430}
90431
90432// RequestId sets the optional parameter "requestId": An optional
90433// request ID to identify requests. Specify a unique request ID so that
90434// if you must retry your request, the server will know to ignore the
90435// request if it has already been completed.
90436//
90437// For example, consider a situation where you make an initial request
90438// and the request times out. If you make the request again with the
90439// same request ID, the server can check if original operation with the
90440// same request ID was received, and if so, will ignore the second
90441// request. This prevents clients from accidentally creating duplicate
90442// commitments.
90443//
90444// The request ID must be a valid UUID with the exception that zero UUID
90445// is not supported (00000000-0000-0000-0000-000000000000).
90446func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
90447	c.urlParams_.Set("requestId", requestId)
90448	return c
90449}
90450
90451// Fields allows partial responses to be retrieved. See
90452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90453// for more information.
90454func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
90455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90456	return c
90457}
90458
90459// Context sets the context to be used in this call's Do method. Any
90460// pending HTTP request will be aborted if the provided context is
90461// canceled.
90462func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
90463	c.ctx_ = ctx
90464	return c
90465}
90466
90467// Header returns an http.Header that can be modified by the caller to
90468// add HTTP headers to the request.
90469func (c *InterconnectsInsertCall) Header() http.Header {
90470	if c.header_ == nil {
90471		c.header_ = make(http.Header)
90472	}
90473	return c.header_
90474}
90475
90476func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
90477	reqHeaders := make(http.Header)
90478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90479	for k, v := range c.header_ {
90480		reqHeaders[k] = v
90481	}
90482	reqHeaders.Set("User-Agent", c.s.userAgent())
90483	var body io.Reader = nil
90484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
90485	if err != nil {
90486		return nil, err
90487	}
90488	reqHeaders.Set("Content-Type", "application/json")
90489	c.urlParams_.Set("alt", alt)
90490	c.urlParams_.Set("prettyPrint", "false")
90491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
90492	urls += "?" + c.urlParams_.Encode()
90493	req, err := http.NewRequest("POST", urls, body)
90494	if err != nil {
90495		return nil, err
90496	}
90497	req.Header = reqHeaders
90498	googleapi.Expand(req.URL, map[string]string{
90499		"project": c.project,
90500	})
90501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90502}
90503
90504// Do executes the "compute.interconnects.insert" call.
90505// Exactly one of *Operation or error will be non-nil. Any non-2xx
90506// status code is an error. Response headers are in either
90507// *Operation.ServerResponse.Header or (if a response was returned at
90508// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90509// to check whether the returned error was because
90510// http.StatusNotModified was returned.
90511func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90512	gensupport.SetOptions(c.urlParams_, opts...)
90513	res, err := c.doRequest("json")
90514	if res != nil && res.StatusCode == http.StatusNotModified {
90515		if res.Body != nil {
90516			res.Body.Close()
90517		}
90518		return nil, &googleapi.Error{
90519			Code:   res.StatusCode,
90520			Header: res.Header,
90521		}
90522	}
90523	if err != nil {
90524		return nil, err
90525	}
90526	defer googleapi.CloseBody(res)
90527	if err := googleapi.CheckResponse(res); err != nil {
90528		return nil, err
90529	}
90530	ret := &Operation{
90531		ServerResponse: googleapi.ServerResponse{
90532			Header:         res.Header,
90533			HTTPStatusCode: res.StatusCode,
90534		},
90535	}
90536	target := &ret
90537	if err := gensupport.DecodeResponse(target, res); err != nil {
90538		return nil, err
90539	}
90540	return ret, nil
90541	// {
90542	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
90543	//   "httpMethod": "POST",
90544	//   "id": "compute.interconnects.insert",
90545	//   "parameterOrder": [
90546	//     "project"
90547	//   ],
90548	//   "parameters": {
90549	//     "project": {
90550	//       "description": "Project ID for this request.",
90551	//       "location": "path",
90552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90553	//       "required": true,
90554	//       "type": "string"
90555	//     },
90556	//     "requestId": {
90557	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90558	//       "location": "query",
90559	//       "type": "string"
90560	//     }
90561	//   },
90562	//   "path": "{project}/global/interconnects",
90563	//   "request": {
90564	//     "$ref": "Interconnect"
90565	//   },
90566	//   "response": {
90567	//     "$ref": "Operation"
90568	//   },
90569	//   "scopes": [
90570	//     "https://www.googleapis.com/auth/cloud-platform",
90571	//     "https://www.googleapis.com/auth/compute"
90572	//   ]
90573	// }
90574
90575}
90576
90577// method id "compute.interconnects.list":
90578
90579type InterconnectsListCall struct {
90580	s            *Service
90581	project      string
90582	urlParams_   gensupport.URLParams
90583	ifNoneMatch_ string
90584	ctx_         context.Context
90585	header_      http.Header
90586}
90587
90588// List: Retrieves the list of interconnect available to the specified
90589// project.
90590func (r *InterconnectsService) List(project string) *InterconnectsListCall {
90591	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90592	c.project = project
90593	return c
90594}
90595
90596// Filter sets the optional parameter "filter": A filter expression that
90597// filters resources listed in the response. The expression must specify
90598// the field name, a comparison operator, and the value that you want to
90599// use for filtering. The value must be a string, a number, or a
90600// boolean. The comparison operator must be either `=`, `!=`, `>`, or
90601// `<`.
90602//
90603// For example, if you are filtering Compute Engine instances, you can
90604// exclude instances named `example-instance` by specifying `name !=
90605// example-instance`.
90606//
90607// You can also filter nested fields. For example, you could specify
90608// `scheduling.automaticRestart = false` to include instances only if
90609// they are not scheduled for automatic restarts. You can use filtering
90610// on nested fields to filter based on resource labels.
90611//
90612// To filter on multiple expressions, provide each separate expression
90613// within parentheses. For example: ``` (scheduling.automaticRestart =
90614// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
90615// is an `AND` expression. However, you can include `AND` and `OR`
90616// expressions explicitly. For example: ``` (cpuPlatform = "Intel
90617// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
90618// (scheduling.automaticRestart = true) ```
90619func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
90620	c.urlParams_.Set("filter", filter)
90621	return c
90622}
90623
90624// MaxResults sets the optional parameter "maxResults": The maximum
90625// number of results per page that should be returned. If the number of
90626// available results is larger than `maxResults`, Compute Engine returns
90627// a `nextPageToken` that can be used to get the next page of results in
90628// subsequent list requests. Acceptable values are `0` to `500`,
90629// inclusive. (Default: `500`)
90630func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
90631	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90632	return c
90633}
90634
90635// OrderBy sets the optional parameter "orderBy": Sorts list results by
90636// a certain order. By default, results are returned in alphanumerical
90637// order based on the resource name.
90638//
90639// You can also sort results in descending order based on the creation
90640// timestamp using `orderBy="creationTimestamp desc". This sorts
90641// results based on the `creationTimestamp` field in reverse
90642// chronological order (newest result first). Use this to sort resources
90643// like operations so that the newest operation is returned
90644// first.
90645//
90646// Currently, only sorting by `name` or `creationTimestamp desc` is
90647// supported.
90648func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
90649	c.urlParams_.Set("orderBy", orderBy)
90650	return c
90651}
90652
90653// PageToken sets the optional parameter "pageToken": Specifies a page
90654// token to use. Set `pageToken` to the `nextPageToken` returned by a
90655// previous list request to get the next page of results.
90656func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
90657	c.urlParams_.Set("pageToken", pageToken)
90658	return c
90659}
90660
90661// Fields allows partial responses to be retrieved. See
90662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90663// for more information.
90664func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
90665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90666	return c
90667}
90668
90669// IfNoneMatch sets the optional parameter which makes the operation
90670// fail if the object's ETag matches the given value. This is useful for
90671// getting updates only after the object has changed since the last
90672// request. Use googleapi.IsNotModified to check whether the response
90673// error from Do is the result of In-None-Match.
90674func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
90675	c.ifNoneMatch_ = entityTag
90676	return c
90677}
90678
90679// Context sets the context to be used in this call's Do method. Any
90680// pending HTTP request will be aborted if the provided context is
90681// canceled.
90682func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
90683	c.ctx_ = ctx
90684	return c
90685}
90686
90687// Header returns an http.Header that can be modified by the caller to
90688// add HTTP headers to the request.
90689func (c *InterconnectsListCall) Header() http.Header {
90690	if c.header_ == nil {
90691		c.header_ = make(http.Header)
90692	}
90693	return c.header_
90694}
90695
90696func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
90697	reqHeaders := make(http.Header)
90698	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90699	for k, v := range c.header_ {
90700		reqHeaders[k] = v
90701	}
90702	reqHeaders.Set("User-Agent", c.s.userAgent())
90703	if c.ifNoneMatch_ != "" {
90704		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90705	}
90706	var body io.Reader = nil
90707	c.urlParams_.Set("alt", alt)
90708	c.urlParams_.Set("prettyPrint", "false")
90709	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
90710	urls += "?" + c.urlParams_.Encode()
90711	req, err := http.NewRequest("GET", urls, body)
90712	if err != nil {
90713		return nil, err
90714	}
90715	req.Header = reqHeaders
90716	googleapi.Expand(req.URL, map[string]string{
90717		"project": c.project,
90718	})
90719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90720}
90721
90722// Do executes the "compute.interconnects.list" call.
90723// Exactly one of *InterconnectList or error will be non-nil. Any
90724// non-2xx status code is an error. Response headers are in either
90725// *InterconnectList.ServerResponse.Header or (if a response was
90726// returned at all) in error.(*googleapi.Error).Header. Use
90727// googleapi.IsNotModified to check whether the returned error was
90728// because http.StatusNotModified was returned.
90729func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
90730	gensupport.SetOptions(c.urlParams_, opts...)
90731	res, err := c.doRequest("json")
90732	if res != nil && res.StatusCode == http.StatusNotModified {
90733		if res.Body != nil {
90734			res.Body.Close()
90735		}
90736		return nil, &googleapi.Error{
90737			Code:   res.StatusCode,
90738			Header: res.Header,
90739		}
90740	}
90741	if err != nil {
90742		return nil, err
90743	}
90744	defer googleapi.CloseBody(res)
90745	if err := googleapi.CheckResponse(res); err != nil {
90746		return nil, err
90747	}
90748	ret := &InterconnectList{
90749		ServerResponse: googleapi.ServerResponse{
90750			Header:         res.Header,
90751			HTTPStatusCode: res.StatusCode,
90752		},
90753	}
90754	target := &ret
90755	if err := gensupport.DecodeResponse(target, res); err != nil {
90756		return nil, err
90757	}
90758	return ret, nil
90759	// {
90760	//   "description": "Retrieves the list of interconnect available to the specified project.",
90761	//   "httpMethod": "GET",
90762	//   "id": "compute.interconnects.list",
90763	//   "parameterOrder": [
90764	//     "project"
90765	//   ],
90766	//   "parameters": {
90767	//     "filter": {
90768	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
90769	//       "location": "query",
90770	//       "type": "string"
90771	//     },
90772	//     "maxResults": {
90773	//       "default": "500",
90774	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
90775	//       "format": "uint32",
90776	//       "location": "query",
90777	//       "minimum": "0",
90778	//       "type": "integer"
90779	//     },
90780	//     "orderBy": {
90781	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
90782	//       "location": "query",
90783	//       "type": "string"
90784	//     },
90785	//     "pageToken": {
90786	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
90787	//       "location": "query",
90788	//       "type": "string"
90789	//     },
90790	//     "project": {
90791	//       "description": "Project ID for this request.",
90792	//       "location": "path",
90793	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90794	//       "required": true,
90795	//       "type": "string"
90796	//     }
90797	//   },
90798	//   "path": "{project}/global/interconnects",
90799	//   "response": {
90800	//     "$ref": "InterconnectList"
90801	//   },
90802	//   "scopes": [
90803	//     "https://www.googleapis.com/auth/cloud-platform",
90804	//     "https://www.googleapis.com/auth/compute",
90805	//     "https://www.googleapis.com/auth/compute.readonly"
90806	//   ]
90807	// }
90808
90809}
90810
90811// Pages invokes f for each page of results.
90812// A non-nil error returned from f will halt the iteration.
90813// The provided context supersedes any context provided to the Context method.
90814func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
90815	c.ctx_ = ctx
90816	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90817	for {
90818		x, err := c.Do()
90819		if err != nil {
90820			return err
90821		}
90822		if err := f(x); err != nil {
90823			return err
90824		}
90825		if x.NextPageToken == "" {
90826			return nil
90827		}
90828		c.PageToken(x.NextPageToken)
90829	}
90830}
90831
90832// method id "compute.interconnects.patch":
90833
90834type InterconnectsPatchCall struct {
90835	s             *Service
90836	project       string
90837	interconnect  string
90838	interconnect2 *Interconnect
90839	urlParams_    gensupport.URLParams
90840	ctx_          context.Context
90841	header_       http.Header
90842}
90843
90844// Patch: Updates the specified interconnect with the data included in
90845// the request. This method supports PATCH semantics and uses the JSON
90846// merge patch format and processing rules.
90847func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
90848	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90849	c.project = project
90850	c.interconnect = interconnect
90851	c.interconnect2 = interconnect2
90852	return c
90853}
90854
90855// RequestId sets the optional parameter "requestId": An optional
90856// request ID to identify requests. Specify a unique request ID so that
90857// if you must retry your request, the server will know to ignore the
90858// request if it has already been completed.
90859//
90860// For example, consider a situation where you make an initial request
90861// and the request times out. If you make the request again with the
90862// same request ID, the server can check if original operation with the
90863// same request ID was received, and if so, will ignore the second
90864// request. This prevents clients from accidentally creating duplicate
90865// commitments.
90866//
90867// The request ID must be a valid UUID with the exception that zero UUID
90868// is not supported (00000000-0000-0000-0000-000000000000).
90869func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
90870	c.urlParams_.Set("requestId", requestId)
90871	return c
90872}
90873
90874// Fields allows partial responses to be retrieved. See
90875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90876// for more information.
90877func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
90878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90879	return c
90880}
90881
90882// Context sets the context to be used in this call's Do method. Any
90883// pending HTTP request will be aborted if the provided context is
90884// canceled.
90885func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
90886	c.ctx_ = ctx
90887	return c
90888}
90889
90890// Header returns an http.Header that can be modified by the caller to
90891// add HTTP headers to the request.
90892func (c *InterconnectsPatchCall) Header() http.Header {
90893	if c.header_ == nil {
90894		c.header_ = make(http.Header)
90895	}
90896	return c.header_
90897}
90898
90899func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
90900	reqHeaders := make(http.Header)
90901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
90902	for k, v := range c.header_ {
90903		reqHeaders[k] = v
90904	}
90905	reqHeaders.Set("User-Agent", c.s.userAgent())
90906	var body io.Reader = nil
90907	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
90908	if err != nil {
90909		return nil, err
90910	}
90911	reqHeaders.Set("Content-Type", "application/json")
90912	c.urlParams_.Set("alt", alt)
90913	c.urlParams_.Set("prettyPrint", "false")
90914	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
90915	urls += "?" + c.urlParams_.Encode()
90916	req, err := http.NewRequest("PATCH", urls, body)
90917	if err != nil {
90918		return nil, err
90919	}
90920	req.Header = reqHeaders
90921	googleapi.Expand(req.URL, map[string]string{
90922		"project":      c.project,
90923		"interconnect": c.interconnect,
90924	})
90925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90926}
90927
90928// Do executes the "compute.interconnects.patch" call.
90929// Exactly one of *Operation or error will be non-nil. Any non-2xx
90930// status code is an error. Response headers are in either
90931// *Operation.ServerResponse.Header or (if a response was returned at
90932// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90933// to check whether the returned error was because
90934// http.StatusNotModified was returned.
90935func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90936	gensupport.SetOptions(c.urlParams_, opts...)
90937	res, err := c.doRequest("json")
90938	if res != nil && res.StatusCode == http.StatusNotModified {
90939		if res.Body != nil {
90940			res.Body.Close()
90941		}
90942		return nil, &googleapi.Error{
90943			Code:   res.StatusCode,
90944			Header: res.Header,
90945		}
90946	}
90947	if err != nil {
90948		return nil, err
90949	}
90950	defer googleapi.CloseBody(res)
90951	if err := googleapi.CheckResponse(res); err != nil {
90952		return nil, err
90953	}
90954	ret := &Operation{
90955		ServerResponse: googleapi.ServerResponse{
90956			Header:         res.Header,
90957			HTTPStatusCode: res.StatusCode,
90958		},
90959	}
90960	target := &ret
90961	if err := gensupport.DecodeResponse(target, res); err != nil {
90962		return nil, err
90963	}
90964	return ret, nil
90965	// {
90966	//   "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.",
90967	//   "httpMethod": "PATCH",
90968	//   "id": "compute.interconnects.patch",
90969	//   "parameterOrder": [
90970	//     "project",
90971	//     "interconnect"
90972	//   ],
90973	//   "parameters": {
90974	//     "interconnect": {
90975	//       "description": "Name of the interconnect to update.",
90976	//       "location": "path",
90977	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90978	//       "required": true,
90979	//       "type": "string"
90980	//     },
90981	//     "project": {
90982	//       "description": "Project ID for this request.",
90983	//       "location": "path",
90984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90985	//       "required": true,
90986	//       "type": "string"
90987	//     },
90988	//     "requestId": {
90989	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90990	//       "location": "query",
90991	//       "type": "string"
90992	//     }
90993	//   },
90994	//   "path": "{project}/global/interconnects/{interconnect}",
90995	//   "request": {
90996	//     "$ref": "Interconnect"
90997	//   },
90998	//   "response": {
90999	//     "$ref": "Operation"
91000	//   },
91001	//   "scopes": [
91002	//     "https://www.googleapis.com/auth/cloud-platform",
91003	//     "https://www.googleapis.com/auth/compute"
91004	//   ]
91005	// }
91006
91007}
91008
91009// method id "compute.interconnects.setLabels":
91010
91011type InterconnectsSetLabelsCall struct {
91012	s                      *Service
91013	project                string
91014	resource               string
91015	globalsetlabelsrequest *GlobalSetLabelsRequest
91016	urlParams_             gensupport.URLParams
91017	ctx_                   context.Context
91018	header_                http.Header
91019}
91020
91021// SetLabels: Sets the labels on an Interconnect. To learn more about
91022// labels, read the Labeling Resources documentation.
91023func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall {
91024	c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91025	c.project = project
91026	c.resource = resource
91027	c.globalsetlabelsrequest = globalsetlabelsrequest
91028	return c
91029}
91030
91031// Fields allows partial responses to be retrieved. See
91032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91033// for more information.
91034func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall {
91035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91036	return c
91037}
91038
91039// Context sets the context to be used in this call's Do method. Any
91040// pending HTTP request will be aborted if the provided context is
91041// canceled.
91042func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall {
91043	c.ctx_ = ctx
91044	return c
91045}
91046
91047// Header returns an http.Header that can be modified by the caller to
91048// add HTTP headers to the request.
91049func (c *InterconnectsSetLabelsCall) Header() http.Header {
91050	if c.header_ == nil {
91051		c.header_ = make(http.Header)
91052	}
91053	return c.header_
91054}
91055
91056func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
91057	reqHeaders := make(http.Header)
91058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91059	for k, v := range c.header_ {
91060		reqHeaders[k] = v
91061	}
91062	reqHeaders.Set("User-Agent", c.s.userAgent())
91063	var body io.Reader = nil
91064	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
91065	if err != nil {
91066		return nil, err
91067	}
91068	reqHeaders.Set("Content-Type", "application/json")
91069	c.urlParams_.Set("alt", alt)
91070	c.urlParams_.Set("prettyPrint", "false")
91071	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setLabels")
91072	urls += "?" + c.urlParams_.Encode()
91073	req, err := http.NewRequest("POST", urls, body)
91074	if err != nil {
91075		return nil, err
91076	}
91077	req.Header = reqHeaders
91078	googleapi.Expand(req.URL, map[string]string{
91079		"project":  c.project,
91080		"resource": c.resource,
91081	})
91082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91083}
91084
91085// Do executes the "compute.interconnects.setLabels" call.
91086// Exactly one of *Operation or error will be non-nil. Any non-2xx
91087// status code is an error. Response headers are in either
91088// *Operation.ServerResponse.Header or (if a response was returned at
91089// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91090// to check whether the returned error was because
91091// http.StatusNotModified was returned.
91092func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91093	gensupport.SetOptions(c.urlParams_, opts...)
91094	res, err := c.doRequest("json")
91095	if res != nil && res.StatusCode == http.StatusNotModified {
91096		if res.Body != nil {
91097			res.Body.Close()
91098		}
91099		return nil, &googleapi.Error{
91100			Code:   res.StatusCode,
91101			Header: res.Header,
91102		}
91103	}
91104	if err != nil {
91105		return nil, err
91106	}
91107	defer googleapi.CloseBody(res)
91108	if err := googleapi.CheckResponse(res); err != nil {
91109		return nil, err
91110	}
91111	ret := &Operation{
91112		ServerResponse: googleapi.ServerResponse{
91113			Header:         res.Header,
91114			HTTPStatusCode: res.StatusCode,
91115		},
91116	}
91117	target := &ret
91118	if err := gensupport.DecodeResponse(target, res); err != nil {
91119		return nil, err
91120	}
91121	return ret, nil
91122	// {
91123	//   "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.",
91124	//   "httpMethod": "POST",
91125	//   "id": "compute.interconnects.setLabels",
91126	//   "parameterOrder": [
91127	//     "project",
91128	//     "resource"
91129	//   ],
91130	//   "parameters": {
91131	//     "project": {
91132	//       "description": "Project ID for this request.",
91133	//       "location": "path",
91134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91135	//       "required": true,
91136	//       "type": "string"
91137	//     },
91138	//     "resource": {
91139	//       "description": "Name or id of the resource for this request.",
91140	//       "location": "path",
91141	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91142	//       "required": true,
91143	//       "type": "string"
91144	//     }
91145	//   },
91146	//   "path": "{project}/global/interconnects/{resource}/setLabels",
91147	//   "request": {
91148	//     "$ref": "GlobalSetLabelsRequest"
91149	//   },
91150	//   "response": {
91151	//     "$ref": "Operation"
91152	//   },
91153	//   "scopes": [
91154	//     "https://www.googleapis.com/auth/cloud-platform",
91155	//     "https://www.googleapis.com/auth/compute"
91156	//   ]
91157	// }
91158
91159}
91160
91161// method id "compute.interconnects.testIamPermissions":
91162
91163type InterconnectsTestIamPermissionsCall struct {
91164	s                      *Service
91165	project                string
91166	resource               string
91167	testpermissionsrequest *TestPermissionsRequest
91168	urlParams_             gensupport.URLParams
91169	ctx_                   context.Context
91170	header_                http.Header
91171}
91172
91173// TestIamPermissions: Returns permissions that a caller has on the
91174// specified resource.
91175func (r *InterconnectsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectsTestIamPermissionsCall {
91176	c := &InterconnectsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91177	c.project = project
91178	c.resource = resource
91179	c.testpermissionsrequest = testpermissionsrequest
91180	return c
91181}
91182
91183// Fields allows partial responses to be retrieved. See
91184// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91185// for more information.
91186func (c *InterconnectsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectsTestIamPermissionsCall {
91187	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91188	return c
91189}
91190
91191// Context sets the context to be used in this call's Do method. Any
91192// pending HTTP request will be aborted if the provided context is
91193// canceled.
91194func (c *InterconnectsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectsTestIamPermissionsCall {
91195	c.ctx_ = ctx
91196	return c
91197}
91198
91199// Header returns an http.Header that can be modified by the caller to
91200// add HTTP headers to the request.
91201func (c *InterconnectsTestIamPermissionsCall) Header() http.Header {
91202	if c.header_ == nil {
91203		c.header_ = make(http.Header)
91204	}
91205	return c.header_
91206}
91207
91208func (c *InterconnectsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
91209	reqHeaders := make(http.Header)
91210	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91211	for k, v := range c.header_ {
91212		reqHeaders[k] = v
91213	}
91214	reqHeaders.Set("User-Agent", c.s.userAgent())
91215	var body io.Reader = nil
91216	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
91217	if err != nil {
91218		return nil, err
91219	}
91220	reqHeaders.Set("Content-Type", "application/json")
91221	c.urlParams_.Set("alt", alt)
91222	c.urlParams_.Set("prettyPrint", "false")
91223	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/testIamPermissions")
91224	urls += "?" + c.urlParams_.Encode()
91225	req, err := http.NewRequest("POST", urls, body)
91226	if err != nil {
91227		return nil, err
91228	}
91229	req.Header = reqHeaders
91230	googleapi.Expand(req.URL, map[string]string{
91231		"project":  c.project,
91232		"resource": c.resource,
91233	})
91234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91235}
91236
91237// Do executes the "compute.interconnects.testIamPermissions" call.
91238// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
91239// non-2xx status code is an error. Response headers are in either
91240// *TestPermissionsResponse.ServerResponse.Header or (if a response was
91241// returned at all) in error.(*googleapi.Error).Header. Use
91242// googleapi.IsNotModified to check whether the returned error was
91243// because http.StatusNotModified was returned.
91244func (c *InterconnectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
91245	gensupport.SetOptions(c.urlParams_, opts...)
91246	res, err := c.doRequest("json")
91247	if res != nil && res.StatusCode == http.StatusNotModified {
91248		if res.Body != nil {
91249			res.Body.Close()
91250		}
91251		return nil, &googleapi.Error{
91252			Code:   res.StatusCode,
91253			Header: res.Header,
91254		}
91255	}
91256	if err != nil {
91257		return nil, err
91258	}
91259	defer googleapi.CloseBody(res)
91260	if err := googleapi.CheckResponse(res); err != nil {
91261		return nil, err
91262	}
91263	ret := &TestPermissionsResponse{
91264		ServerResponse: googleapi.ServerResponse{
91265			Header:         res.Header,
91266			HTTPStatusCode: res.StatusCode,
91267		},
91268	}
91269	target := &ret
91270	if err := gensupport.DecodeResponse(target, res); err != nil {
91271		return nil, err
91272	}
91273	return ret, nil
91274	// {
91275	//   "description": "Returns permissions that a caller has on the specified resource.",
91276	//   "httpMethod": "POST",
91277	//   "id": "compute.interconnects.testIamPermissions",
91278	//   "parameterOrder": [
91279	//     "project",
91280	//     "resource"
91281	//   ],
91282	//   "parameters": {
91283	//     "project": {
91284	//       "description": "Project ID for this request.",
91285	//       "location": "path",
91286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91287	//       "required": true,
91288	//       "type": "string"
91289	//     },
91290	//     "resource": {
91291	//       "description": "Name or id of the resource for this request.",
91292	//       "location": "path",
91293	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91294	//       "required": true,
91295	//       "type": "string"
91296	//     }
91297	//   },
91298	//   "path": "{project}/global/interconnects/{resource}/testIamPermissions",
91299	//   "request": {
91300	//     "$ref": "TestPermissionsRequest"
91301	//   },
91302	//   "response": {
91303	//     "$ref": "TestPermissionsResponse"
91304	//   },
91305	//   "scopes": [
91306	//     "https://www.googleapis.com/auth/cloud-platform",
91307	//     "https://www.googleapis.com/auth/compute",
91308	//     "https://www.googleapis.com/auth/compute.readonly"
91309	//   ]
91310	// }
91311
91312}
91313
91314// method id "compute.licenseCodes.get":
91315
91316type LicenseCodesGetCall struct {
91317	s            *Service
91318	project      string
91319	licenseCode  string
91320	urlParams_   gensupport.URLParams
91321	ifNoneMatch_ string
91322	ctx_         context.Context
91323	header_      http.Header
91324}
91325
91326// Get: Return a specified license code. License codes are mirrored
91327// across all projects that have permissions to read the License Code.
91328// Caution This resource is intended for use only by third-party
91329// partners who are creating Cloud Marketplace images.
91330func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
91331	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91332	c.project = project
91333	c.licenseCode = licenseCode
91334	return c
91335}
91336
91337// Fields allows partial responses to be retrieved. See
91338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91339// for more information.
91340func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
91341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91342	return c
91343}
91344
91345// IfNoneMatch sets the optional parameter which makes the operation
91346// fail if the object's ETag matches the given value. This is useful for
91347// getting updates only after the object has changed since the last
91348// request. Use googleapi.IsNotModified to check whether the response
91349// error from Do is the result of In-None-Match.
91350func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
91351	c.ifNoneMatch_ = entityTag
91352	return c
91353}
91354
91355// Context sets the context to be used in this call's Do method. Any
91356// pending HTTP request will be aborted if the provided context is
91357// canceled.
91358func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
91359	c.ctx_ = ctx
91360	return c
91361}
91362
91363// Header returns an http.Header that can be modified by the caller to
91364// add HTTP headers to the request.
91365func (c *LicenseCodesGetCall) Header() http.Header {
91366	if c.header_ == nil {
91367		c.header_ = make(http.Header)
91368	}
91369	return c.header_
91370}
91371
91372func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
91373	reqHeaders := make(http.Header)
91374	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91375	for k, v := range c.header_ {
91376		reqHeaders[k] = v
91377	}
91378	reqHeaders.Set("User-Agent", c.s.userAgent())
91379	if c.ifNoneMatch_ != "" {
91380		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91381	}
91382	var body io.Reader = nil
91383	c.urlParams_.Set("alt", alt)
91384	c.urlParams_.Set("prettyPrint", "false")
91385	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
91386	urls += "?" + c.urlParams_.Encode()
91387	req, err := http.NewRequest("GET", urls, body)
91388	if err != nil {
91389		return nil, err
91390	}
91391	req.Header = reqHeaders
91392	googleapi.Expand(req.URL, map[string]string{
91393		"project":     c.project,
91394		"licenseCode": c.licenseCode,
91395	})
91396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91397}
91398
91399// Do executes the "compute.licenseCodes.get" call.
91400// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
91401// status code is an error. Response headers are in either
91402// *LicenseCode.ServerResponse.Header or (if a response was returned at
91403// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91404// to check whether the returned error was because
91405// http.StatusNotModified was returned.
91406func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
91407	gensupport.SetOptions(c.urlParams_, opts...)
91408	res, err := c.doRequest("json")
91409	if res != nil && res.StatusCode == http.StatusNotModified {
91410		if res.Body != nil {
91411			res.Body.Close()
91412		}
91413		return nil, &googleapi.Error{
91414			Code:   res.StatusCode,
91415			Header: res.Header,
91416		}
91417	}
91418	if err != nil {
91419		return nil, err
91420	}
91421	defer googleapi.CloseBody(res)
91422	if err := googleapi.CheckResponse(res); err != nil {
91423		return nil, err
91424	}
91425	ret := &LicenseCode{
91426		ServerResponse: googleapi.ServerResponse{
91427			Header:         res.Header,
91428			HTTPStatusCode: res.StatusCode,
91429		},
91430	}
91431	target := &ret
91432	if err := gensupport.DecodeResponse(target, res); err != nil {
91433		return nil, err
91434	}
91435	return ret, nil
91436	// {
91437	//   "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.",
91438	//   "httpMethod": "GET",
91439	//   "id": "compute.licenseCodes.get",
91440	//   "parameterOrder": [
91441	//     "project",
91442	//     "licenseCode"
91443	//   ],
91444	//   "parameters": {
91445	//     "licenseCode": {
91446	//       "description": "Number corresponding to the License code resource to return.",
91447	//       "location": "path",
91448	//       "pattern": "[0-9]{0,61}?",
91449	//       "required": true,
91450	//       "type": "string"
91451	//     },
91452	//     "project": {
91453	//       "description": "Project ID for this request.",
91454	//       "location": "path",
91455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91456	//       "required": true,
91457	//       "type": "string"
91458	//     }
91459	//   },
91460	//   "path": "{project}/global/licenseCodes/{licenseCode}",
91461	//   "response": {
91462	//     "$ref": "LicenseCode"
91463	//   },
91464	//   "scopes": [
91465	//     "https://www.googleapis.com/auth/cloud-platform",
91466	//     "https://www.googleapis.com/auth/compute",
91467	//     "https://www.googleapis.com/auth/compute.readonly"
91468	//   ]
91469	// }
91470
91471}
91472
91473// method id "compute.licenses.delete":
91474
91475type LicensesDeleteCall struct {
91476	s          *Service
91477	project    string
91478	license    string
91479	urlParams_ gensupport.URLParams
91480	ctx_       context.Context
91481	header_    http.Header
91482}
91483
91484// Delete: Deletes the specified license.  Caution This resource is
91485// intended for use only by third-party partners who are creating Cloud
91486// Marketplace images.
91487func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
91488	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91489	c.project = project
91490	c.license = license
91491	return c
91492}
91493
91494// RequestId sets the optional parameter "requestId": An optional
91495// request ID to identify requests. Specify a unique request ID so that
91496// if you must retry your request, the server will know to ignore the
91497// request if it has already been completed.
91498//
91499// For example, consider a situation where you make an initial request
91500// and the request times out. If you make the request again with the
91501// same request ID, the server can check if original operation with the
91502// same request ID was received, and if so, will ignore the second
91503// request. This prevents clients from accidentally creating duplicate
91504// commitments.
91505//
91506// The request ID must be a valid UUID with the exception that zero UUID
91507// is not supported (00000000-0000-0000-0000-000000000000).
91508func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
91509	c.urlParams_.Set("requestId", requestId)
91510	return c
91511}
91512
91513// Fields allows partial responses to be retrieved. See
91514// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91515// for more information.
91516func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
91517	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91518	return c
91519}
91520
91521// Context sets the context to be used in this call's Do method. Any
91522// pending HTTP request will be aborted if the provided context is
91523// canceled.
91524func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
91525	c.ctx_ = ctx
91526	return c
91527}
91528
91529// Header returns an http.Header that can be modified by the caller to
91530// add HTTP headers to the request.
91531func (c *LicensesDeleteCall) Header() http.Header {
91532	if c.header_ == nil {
91533		c.header_ = make(http.Header)
91534	}
91535	return c.header_
91536}
91537
91538func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
91539	reqHeaders := make(http.Header)
91540	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91541	for k, v := range c.header_ {
91542		reqHeaders[k] = v
91543	}
91544	reqHeaders.Set("User-Agent", c.s.userAgent())
91545	var body io.Reader = nil
91546	c.urlParams_.Set("alt", alt)
91547	c.urlParams_.Set("prettyPrint", "false")
91548	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
91549	urls += "?" + c.urlParams_.Encode()
91550	req, err := http.NewRequest("DELETE", urls, body)
91551	if err != nil {
91552		return nil, err
91553	}
91554	req.Header = reqHeaders
91555	googleapi.Expand(req.URL, map[string]string{
91556		"project": c.project,
91557		"license": c.license,
91558	})
91559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91560}
91561
91562// Do executes the "compute.licenses.delete" call.
91563// Exactly one of *Operation or error will be non-nil. Any non-2xx
91564// status code is an error. Response headers are in either
91565// *Operation.ServerResponse.Header or (if a response was returned at
91566// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91567// to check whether the returned error was because
91568// http.StatusNotModified was returned.
91569func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91570	gensupport.SetOptions(c.urlParams_, opts...)
91571	res, err := c.doRequest("json")
91572	if res != nil && res.StatusCode == http.StatusNotModified {
91573		if res.Body != nil {
91574			res.Body.Close()
91575		}
91576		return nil, &googleapi.Error{
91577			Code:   res.StatusCode,
91578			Header: res.Header,
91579		}
91580	}
91581	if err != nil {
91582		return nil, err
91583	}
91584	defer googleapi.CloseBody(res)
91585	if err := googleapi.CheckResponse(res); err != nil {
91586		return nil, err
91587	}
91588	ret := &Operation{
91589		ServerResponse: googleapi.ServerResponse{
91590			Header:         res.Header,
91591			HTTPStatusCode: res.StatusCode,
91592		},
91593	}
91594	target := &ret
91595	if err := gensupport.DecodeResponse(target, res); err != nil {
91596		return nil, err
91597	}
91598	return ret, nil
91599	// {
91600	//   "description": "Deletes the specified license.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
91601	//   "httpMethod": "DELETE",
91602	//   "id": "compute.licenses.delete",
91603	//   "parameterOrder": [
91604	//     "project",
91605	//     "license"
91606	//   ],
91607	//   "parameters": {
91608	//     "license": {
91609	//       "description": "Name of the license resource to delete.",
91610	//       "location": "path",
91611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91612	//       "required": true,
91613	//       "type": "string"
91614	//     },
91615	//     "project": {
91616	//       "description": "Project ID for this request.",
91617	//       "location": "path",
91618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91619	//       "required": true,
91620	//       "type": "string"
91621	//     },
91622	//     "requestId": {
91623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91624	//       "location": "query",
91625	//       "type": "string"
91626	//     }
91627	//   },
91628	//   "path": "{project}/global/licenses/{license}",
91629	//   "response": {
91630	//     "$ref": "Operation"
91631	//   },
91632	//   "scopes": [
91633	//     "https://www.googleapis.com/auth/cloud-platform",
91634	//     "https://www.googleapis.com/auth/compute"
91635	//   ]
91636	// }
91637
91638}
91639
91640// method id "compute.licenses.get":
91641
91642type LicensesGetCall struct {
91643	s            *Service
91644	project      string
91645	license      string
91646	urlParams_   gensupport.URLParams
91647	ifNoneMatch_ string
91648	ctx_         context.Context
91649	header_      http.Header
91650}
91651
91652// Get: Returns the specified License resource.  Caution This resource
91653// is intended for use only by third-party partners who are creating
91654// Cloud Marketplace images.
91655// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
91656func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
91657	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91658	c.project = project
91659	c.license = license
91660	return c
91661}
91662
91663// Fields allows partial responses to be retrieved. See
91664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91665// for more information.
91666func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
91667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91668	return c
91669}
91670
91671// IfNoneMatch sets the optional parameter which makes the operation
91672// fail if the object's ETag matches the given value. This is useful for
91673// getting updates only after the object has changed since the last
91674// request. Use googleapi.IsNotModified to check whether the response
91675// error from Do is the result of In-None-Match.
91676func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
91677	c.ifNoneMatch_ = entityTag
91678	return c
91679}
91680
91681// Context sets the context to be used in this call's Do method. Any
91682// pending HTTP request will be aborted if the provided context is
91683// canceled.
91684func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
91685	c.ctx_ = ctx
91686	return c
91687}
91688
91689// Header returns an http.Header that can be modified by the caller to
91690// add HTTP headers to the request.
91691func (c *LicensesGetCall) Header() http.Header {
91692	if c.header_ == nil {
91693		c.header_ = make(http.Header)
91694	}
91695	return c.header_
91696}
91697
91698func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
91699	reqHeaders := make(http.Header)
91700	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91701	for k, v := range c.header_ {
91702		reqHeaders[k] = v
91703	}
91704	reqHeaders.Set("User-Agent", c.s.userAgent())
91705	if c.ifNoneMatch_ != "" {
91706		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91707	}
91708	var body io.Reader = nil
91709	c.urlParams_.Set("alt", alt)
91710	c.urlParams_.Set("prettyPrint", "false")
91711	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
91712	urls += "?" + c.urlParams_.Encode()
91713	req, err := http.NewRequest("GET", urls, body)
91714	if err != nil {
91715		return nil, err
91716	}
91717	req.Header = reqHeaders
91718	googleapi.Expand(req.URL, map[string]string{
91719		"project": c.project,
91720		"license": c.license,
91721	})
91722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91723}
91724
91725// Do executes the "compute.licenses.get" call.
91726// Exactly one of *License or error will be non-nil. Any non-2xx status
91727// code is an error. Response headers are in either
91728// *License.ServerResponse.Header or (if a response was returned at all)
91729// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
91730// check whether the returned error was because http.StatusNotModified
91731// was returned.
91732func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
91733	gensupport.SetOptions(c.urlParams_, opts...)
91734	res, err := c.doRequest("json")
91735	if res != nil && res.StatusCode == http.StatusNotModified {
91736		if res.Body != nil {
91737			res.Body.Close()
91738		}
91739		return nil, &googleapi.Error{
91740			Code:   res.StatusCode,
91741			Header: res.Header,
91742		}
91743	}
91744	if err != nil {
91745		return nil, err
91746	}
91747	defer googleapi.CloseBody(res)
91748	if err := googleapi.CheckResponse(res); err != nil {
91749		return nil, err
91750	}
91751	ret := &License{
91752		ServerResponse: googleapi.ServerResponse{
91753			Header:         res.Header,
91754			HTTPStatusCode: res.StatusCode,
91755		},
91756	}
91757	target := &ret
91758	if err := gensupport.DecodeResponse(target, res); err != nil {
91759		return nil, err
91760	}
91761	return ret, nil
91762	// {
91763	//   "description": "Returns the specified License resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
91764	//   "httpMethod": "GET",
91765	//   "id": "compute.licenses.get",
91766	//   "parameterOrder": [
91767	//     "project",
91768	//     "license"
91769	//   ],
91770	//   "parameters": {
91771	//     "license": {
91772	//       "description": "Name of the License resource to return.",
91773	//       "location": "path",
91774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91775	//       "required": true,
91776	//       "type": "string"
91777	//     },
91778	//     "project": {
91779	//       "description": "Project ID for this request.",
91780	//       "location": "path",
91781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91782	//       "required": true,
91783	//       "type": "string"
91784	//     }
91785	//   },
91786	//   "path": "{project}/global/licenses/{license}",
91787	//   "response": {
91788	//     "$ref": "License"
91789	//   },
91790	//   "scopes": [
91791	//     "https://www.googleapis.com/auth/cloud-platform",
91792	//     "https://www.googleapis.com/auth/compute",
91793	//     "https://www.googleapis.com/auth/compute.readonly"
91794	//   ]
91795	// }
91796
91797}
91798
91799// method id "compute.licenses.getIamPolicy":
91800
91801type LicensesGetIamPolicyCall struct {
91802	s            *Service
91803	project      string
91804	resource     string
91805	urlParams_   gensupport.URLParams
91806	ifNoneMatch_ string
91807	ctx_         context.Context
91808	header_      http.Header
91809}
91810
91811// GetIamPolicy: Gets the access control policy for a resource. May be
91812// empty if no such policy or resource exists.  Caution This resource is
91813// intended for use only by third-party partners who are creating Cloud
91814// Marketplace images.
91815func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
91816	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91817	c.project = project
91818	c.resource = resource
91819	return c
91820}
91821
91822// OptionsRequestedPolicyVersion sets the optional parameter
91823// "optionsRequestedPolicyVersion": Requested IAM Policy version.
91824func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
91825	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
91826	return c
91827}
91828
91829// Fields allows partial responses to be retrieved. See
91830// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91831// for more information.
91832func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
91833	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91834	return c
91835}
91836
91837// IfNoneMatch sets the optional parameter which makes the operation
91838// fail if the object's ETag matches the given value. This is useful for
91839// getting updates only after the object has changed since the last
91840// request. Use googleapi.IsNotModified to check whether the response
91841// error from Do is the result of In-None-Match.
91842func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
91843	c.ifNoneMatch_ = entityTag
91844	return c
91845}
91846
91847// Context sets the context to be used in this call's Do method. Any
91848// pending HTTP request will be aborted if the provided context is
91849// canceled.
91850func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
91851	c.ctx_ = ctx
91852	return c
91853}
91854
91855// Header returns an http.Header that can be modified by the caller to
91856// add HTTP headers to the request.
91857func (c *LicensesGetIamPolicyCall) Header() http.Header {
91858	if c.header_ == nil {
91859		c.header_ = make(http.Header)
91860	}
91861	return c.header_
91862}
91863
91864func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
91865	reqHeaders := make(http.Header)
91866	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
91867	for k, v := range c.header_ {
91868		reqHeaders[k] = v
91869	}
91870	reqHeaders.Set("User-Agent", c.s.userAgent())
91871	if c.ifNoneMatch_ != "" {
91872		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91873	}
91874	var body io.Reader = nil
91875	c.urlParams_.Set("alt", alt)
91876	c.urlParams_.Set("prettyPrint", "false")
91877	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/getIamPolicy")
91878	urls += "?" + c.urlParams_.Encode()
91879	req, err := http.NewRequest("GET", urls, body)
91880	if err != nil {
91881		return nil, err
91882	}
91883	req.Header = reqHeaders
91884	googleapi.Expand(req.URL, map[string]string{
91885		"project":  c.project,
91886		"resource": c.resource,
91887	})
91888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91889}
91890
91891// Do executes the "compute.licenses.getIamPolicy" call.
91892// Exactly one of *Policy or error will be non-nil. Any non-2xx status
91893// code is an error. Response headers are in either
91894// *Policy.ServerResponse.Header or (if a response was returned at all)
91895// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
91896// check whether the returned error was because http.StatusNotModified
91897// was returned.
91898func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
91899	gensupport.SetOptions(c.urlParams_, opts...)
91900	res, err := c.doRequest("json")
91901	if res != nil && res.StatusCode == http.StatusNotModified {
91902		if res.Body != nil {
91903			res.Body.Close()
91904		}
91905		return nil, &googleapi.Error{
91906			Code:   res.StatusCode,
91907			Header: res.Header,
91908		}
91909	}
91910	if err != nil {
91911		return nil, err
91912	}
91913	defer googleapi.CloseBody(res)
91914	if err := googleapi.CheckResponse(res); err != nil {
91915		return nil, err
91916	}
91917	ret := &Policy{
91918		ServerResponse: googleapi.ServerResponse{
91919			Header:         res.Header,
91920			HTTPStatusCode: res.StatusCode,
91921		},
91922	}
91923	target := &ret
91924	if err := gensupport.DecodeResponse(target, res); err != nil {
91925		return nil, err
91926	}
91927	return ret, nil
91928	// {
91929	//   "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.",
91930	//   "httpMethod": "GET",
91931	//   "id": "compute.licenses.getIamPolicy",
91932	//   "parameterOrder": [
91933	//     "project",
91934	//     "resource"
91935	//   ],
91936	//   "parameters": {
91937	//     "optionsRequestedPolicyVersion": {
91938	//       "description": "Requested IAM Policy version.",
91939	//       "format": "int32",
91940	//       "location": "query",
91941	//       "type": "integer"
91942	//     },
91943	//     "project": {
91944	//       "description": "Project ID for this request.",
91945	//       "location": "path",
91946	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91947	//       "required": true,
91948	//       "type": "string"
91949	//     },
91950	//     "resource": {
91951	//       "description": "Name or id of the resource for this request.",
91952	//       "location": "path",
91953	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91954	//       "required": true,
91955	//       "type": "string"
91956	//     }
91957	//   },
91958	//   "path": "{project}/global/licenses/{resource}/getIamPolicy",
91959	//   "response": {
91960	//     "$ref": "Policy"
91961	//   },
91962	//   "scopes": [
91963	//     "https://www.googleapis.com/auth/cloud-platform",
91964	//     "https://www.googleapis.com/auth/compute",
91965	//     "https://www.googleapis.com/auth/compute.readonly"
91966	//   ]
91967	// }
91968
91969}
91970
91971// method id "compute.licenses.insert":
91972
91973type LicensesInsertCall struct {
91974	s          *Service
91975	project    string
91976	license    *License
91977	urlParams_ gensupport.URLParams
91978	ctx_       context.Context
91979	header_    http.Header
91980}
91981
91982// Insert: Create a License resource in the specified project.  Caution
91983// This resource is intended for use only by third-party partners who
91984// are creating Cloud Marketplace images.
91985func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
91986	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91987	c.project = project
91988	c.license = license
91989	return c
91990}
91991
91992// RequestId sets the optional parameter "requestId": An optional
91993// request ID to identify requests. Specify a unique request ID so that
91994// if you must retry your request, the server will know to ignore the
91995// request if it has already been completed.
91996//
91997// For example, consider a situation where you make an initial request
91998// and the request times out. If you make the request again with the
91999// same request ID, the server can check if original operation with the
92000// same request ID was received, and if so, will ignore the second
92001// request. This prevents clients from accidentally creating duplicate
92002// commitments.
92003//
92004// The request ID must be a valid UUID with the exception that zero UUID
92005// is not supported (00000000-0000-0000-0000-000000000000).
92006func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
92007	c.urlParams_.Set("requestId", requestId)
92008	return c
92009}
92010
92011// Fields allows partial responses to be retrieved. See
92012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92013// for more information.
92014func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
92015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92016	return c
92017}
92018
92019// Context sets the context to be used in this call's Do method. Any
92020// pending HTTP request will be aborted if the provided context is
92021// canceled.
92022func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
92023	c.ctx_ = ctx
92024	return c
92025}
92026
92027// Header returns an http.Header that can be modified by the caller to
92028// add HTTP headers to the request.
92029func (c *LicensesInsertCall) Header() http.Header {
92030	if c.header_ == nil {
92031		c.header_ = make(http.Header)
92032	}
92033	return c.header_
92034}
92035
92036func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
92037	reqHeaders := make(http.Header)
92038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92039	for k, v := range c.header_ {
92040		reqHeaders[k] = v
92041	}
92042	reqHeaders.Set("User-Agent", c.s.userAgent())
92043	var body io.Reader = nil
92044	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
92045	if err != nil {
92046		return nil, err
92047	}
92048	reqHeaders.Set("Content-Type", "application/json")
92049	c.urlParams_.Set("alt", alt)
92050	c.urlParams_.Set("prettyPrint", "false")
92051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
92052	urls += "?" + c.urlParams_.Encode()
92053	req, err := http.NewRequest("POST", urls, body)
92054	if err != nil {
92055		return nil, err
92056	}
92057	req.Header = reqHeaders
92058	googleapi.Expand(req.URL, map[string]string{
92059		"project": c.project,
92060	})
92061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92062}
92063
92064// Do executes the "compute.licenses.insert" call.
92065// Exactly one of *Operation or error will be non-nil. Any non-2xx
92066// status code is an error. Response headers are in either
92067// *Operation.ServerResponse.Header or (if a response was returned at
92068// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92069// to check whether the returned error was because
92070// http.StatusNotModified was returned.
92071func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92072	gensupport.SetOptions(c.urlParams_, opts...)
92073	res, err := c.doRequest("json")
92074	if res != nil && res.StatusCode == http.StatusNotModified {
92075		if res.Body != nil {
92076			res.Body.Close()
92077		}
92078		return nil, &googleapi.Error{
92079			Code:   res.StatusCode,
92080			Header: res.Header,
92081		}
92082	}
92083	if err != nil {
92084		return nil, err
92085	}
92086	defer googleapi.CloseBody(res)
92087	if err := googleapi.CheckResponse(res); err != nil {
92088		return nil, err
92089	}
92090	ret := &Operation{
92091		ServerResponse: googleapi.ServerResponse{
92092			Header:         res.Header,
92093			HTTPStatusCode: res.StatusCode,
92094		},
92095	}
92096	target := &ret
92097	if err := gensupport.DecodeResponse(target, res); err != nil {
92098		return nil, err
92099	}
92100	return ret, nil
92101	// {
92102	//   "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.",
92103	//   "httpMethod": "POST",
92104	//   "id": "compute.licenses.insert",
92105	//   "parameterOrder": [
92106	//     "project"
92107	//   ],
92108	//   "parameters": {
92109	//     "project": {
92110	//       "description": "Project ID for this request.",
92111	//       "location": "path",
92112	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92113	//       "required": true,
92114	//       "type": "string"
92115	//     },
92116	//     "requestId": {
92117	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92118	//       "location": "query",
92119	//       "type": "string"
92120	//     }
92121	//   },
92122	//   "path": "{project}/global/licenses",
92123	//   "request": {
92124	//     "$ref": "License"
92125	//   },
92126	//   "response": {
92127	//     "$ref": "Operation"
92128	//   },
92129	//   "scopes": [
92130	//     "https://www.googleapis.com/auth/cloud-platform",
92131	//     "https://www.googleapis.com/auth/compute",
92132	//     "https://www.googleapis.com/auth/devstorage.full_control",
92133	//     "https://www.googleapis.com/auth/devstorage.read_only",
92134	//     "https://www.googleapis.com/auth/devstorage.read_write"
92135	//   ]
92136	// }
92137
92138}
92139
92140// method id "compute.licenses.list":
92141
92142type LicensesListCall struct {
92143	s            *Service
92144	project      string
92145	urlParams_   gensupport.URLParams
92146	ifNoneMatch_ string
92147	ctx_         context.Context
92148	header_      http.Header
92149}
92150
92151// List: Retrieves the list of licenses available in the specified
92152// project. This method does not get any licenses that belong to other
92153// projects, including licenses attached to publicly-available images,
92154// like Debian 9. If you want to get a list of publicly-available
92155// licenses, use this method to make a request to the respective image
92156// project, such as debian-cloud or windows-cloud.  Caution This
92157// resource is intended for use only by third-party partners who are
92158// creating Cloud Marketplace images.
92159func (r *LicensesService) List(project string) *LicensesListCall {
92160	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92161	c.project = project
92162	return c
92163}
92164
92165// Filter sets the optional parameter "filter": A filter expression that
92166// filters resources listed in the response. The expression must specify
92167// the field name, a comparison operator, and the value that you want to
92168// use for filtering. The value must be a string, a number, or a
92169// boolean. The comparison operator must be either `=`, `!=`, `>`, or
92170// `<`.
92171//
92172// For example, if you are filtering Compute Engine instances, you can
92173// exclude instances named `example-instance` by specifying `name !=
92174// example-instance`.
92175//
92176// You can also filter nested fields. For example, you could specify
92177// `scheduling.automaticRestart = false` to include instances only if
92178// they are not scheduled for automatic restarts. You can use filtering
92179// on nested fields to filter based on resource labels.
92180//
92181// To filter on multiple expressions, provide each separate expression
92182// within parentheses. For example: ``` (scheduling.automaticRestart =
92183// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
92184// is an `AND` expression. However, you can include `AND` and `OR`
92185// expressions explicitly. For example: ``` (cpuPlatform = "Intel
92186// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
92187// (scheduling.automaticRestart = true) ```
92188func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
92189	c.urlParams_.Set("filter", filter)
92190	return c
92191}
92192
92193// MaxResults sets the optional parameter "maxResults": The maximum
92194// number of results per page that should be returned. If the number of
92195// available results is larger than `maxResults`, Compute Engine returns
92196// a `nextPageToken` that can be used to get the next page of results in
92197// subsequent list requests. Acceptable values are `0` to `500`,
92198// inclusive. (Default: `500`)
92199func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
92200	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92201	return c
92202}
92203
92204// OrderBy sets the optional parameter "orderBy": Sorts list results by
92205// a certain order. By default, results are returned in alphanumerical
92206// order based on the resource name.
92207//
92208// You can also sort results in descending order based on the creation
92209// timestamp using `orderBy="creationTimestamp desc". This sorts
92210// results based on the `creationTimestamp` field in reverse
92211// chronological order (newest result first). Use this to sort resources
92212// like operations so that the newest operation is returned
92213// first.
92214//
92215// Currently, only sorting by `name` or `creationTimestamp desc` is
92216// supported.
92217func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
92218	c.urlParams_.Set("orderBy", orderBy)
92219	return c
92220}
92221
92222// PageToken sets the optional parameter "pageToken": Specifies a page
92223// token to use. Set `pageToken` to the `nextPageToken` returned by a
92224// previous list request to get the next page of results.
92225func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
92226	c.urlParams_.Set("pageToken", pageToken)
92227	return c
92228}
92229
92230// Fields allows partial responses to be retrieved. See
92231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92232// for more information.
92233func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
92234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92235	return c
92236}
92237
92238// IfNoneMatch sets the optional parameter which makes the operation
92239// fail if the object's ETag matches the given value. This is useful for
92240// getting updates only after the object has changed since the last
92241// request. Use googleapi.IsNotModified to check whether the response
92242// error from Do is the result of In-None-Match.
92243func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
92244	c.ifNoneMatch_ = entityTag
92245	return c
92246}
92247
92248// Context sets the context to be used in this call's Do method. Any
92249// pending HTTP request will be aborted if the provided context is
92250// canceled.
92251func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
92252	c.ctx_ = ctx
92253	return c
92254}
92255
92256// Header returns an http.Header that can be modified by the caller to
92257// add HTTP headers to the request.
92258func (c *LicensesListCall) Header() http.Header {
92259	if c.header_ == nil {
92260		c.header_ = make(http.Header)
92261	}
92262	return c.header_
92263}
92264
92265func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
92266	reqHeaders := make(http.Header)
92267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92268	for k, v := range c.header_ {
92269		reqHeaders[k] = v
92270	}
92271	reqHeaders.Set("User-Agent", c.s.userAgent())
92272	if c.ifNoneMatch_ != "" {
92273		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92274	}
92275	var body io.Reader = nil
92276	c.urlParams_.Set("alt", alt)
92277	c.urlParams_.Set("prettyPrint", "false")
92278	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
92279	urls += "?" + c.urlParams_.Encode()
92280	req, err := http.NewRequest("GET", urls, body)
92281	if err != nil {
92282		return nil, err
92283	}
92284	req.Header = reqHeaders
92285	googleapi.Expand(req.URL, map[string]string{
92286		"project": c.project,
92287	})
92288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92289}
92290
92291// Do executes the "compute.licenses.list" call.
92292// Exactly one of *LicensesListResponse or error will be non-nil. Any
92293// non-2xx status code is an error. Response headers are in either
92294// *LicensesListResponse.ServerResponse.Header or (if a response was
92295// returned at all) in error.(*googleapi.Error).Header. Use
92296// googleapi.IsNotModified to check whether the returned error was
92297// because http.StatusNotModified was returned.
92298func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
92299	gensupport.SetOptions(c.urlParams_, opts...)
92300	res, err := c.doRequest("json")
92301	if res != nil && res.StatusCode == http.StatusNotModified {
92302		if res.Body != nil {
92303			res.Body.Close()
92304		}
92305		return nil, &googleapi.Error{
92306			Code:   res.StatusCode,
92307			Header: res.Header,
92308		}
92309	}
92310	if err != nil {
92311		return nil, err
92312	}
92313	defer googleapi.CloseBody(res)
92314	if err := googleapi.CheckResponse(res); err != nil {
92315		return nil, err
92316	}
92317	ret := &LicensesListResponse{
92318		ServerResponse: googleapi.ServerResponse{
92319			Header:         res.Header,
92320			HTTPStatusCode: res.StatusCode,
92321		},
92322	}
92323	target := &ret
92324	if err := gensupport.DecodeResponse(target, res); err != nil {
92325		return nil, err
92326	}
92327	return ret, nil
92328	// {
92329	//   "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.",
92330	//   "httpMethod": "GET",
92331	//   "id": "compute.licenses.list",
92332	//   "parameterOrder": [
92333	//     "project"
92334	//   ],
92335	//   "parameters": {
92336	//     "filter": {
92337	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
92338	//       "location": "query",
92339	//       "type": "string"
92340	//     },
92341	//     "maxResults": {
92342	//       "default": "500",
92343	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
92344	//       "format": "uint32",
92345	//       "location": "query",
92346	//       "minimum": "0",
92347	//       "type": "integer"
92348	//     },
92349	//     "orderBy": {
92350	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
92351	//       "location": "query",
92352	//       "type": "string"
92353	//     },
92354	//     "pageToken": {
92355	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
92356	//       "location": "query",
92357	//       "type": "string"
92358	//     },
92359	//     "project": {
92360	//       "description": "Project ID for this request.",
92361	//       "location": "path",
92362	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92363	//       "required": true,
92364	//       "type": "string"
92365	//     }
92366	//   },
92367	//   "path": "{project}/global/licenses",
92368	//   "response": {
92369	//     "$ref": "LicensesListResponse"
92370	//   },
92371	//   "scopes": [
92372	//     "https://www.googleapis.com/auth/cloud-platform",
92373	//     "https://www.googleapis.com/auth/compute",
92374	//     "https://www.googleapis.com/auth/compute.readonly"
92375	//   ]
92376	// }
92377
92378}
92379
92380// Pages invokes f for each page of results.
92381// A non-nil error returned from f will halt the iteration.
92382// The provided context supersedes any context provided to the Context method.
92383func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
92384	c.ctx_ = ctx
92385	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92386	for {
92387		x, err := c.Do()
92388		if err != nil {
92389			return err
92390		}
92391		if err := f(x); err != nil {
92392			return err
92393		}
92394		if x.NextPageToken == "" {
92395			return nil
92396		}
92397		c.PageToken(x.NextPageToken)
92398	}
92399}
92400
92401// method id "compute.licenses.setIamPolicy":
92402
92403type LicensesSetIamPolicyCall struct {
92404	s                      *Service
92405	project                string
92406	resource               string
92407	globalsetpolicyrequest *GlobalSetPolicyRequest
92408	urlParams_             gensupport.URLParams
92409	ctx_                   context.Context
92410	header_                http.Header
92411}
92412
92413// SetIamPolicy: Sets the access control policy on the specified
92414// resource. Replaces any existing policy.  Caution This resource is
92415// intended for use only by third-party partners who are creating Cloud
92416// Marketplace images.
92417func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
92418	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92419	c.project = project
92420	c.resource = resource
92421	c.globalsetpolicyrequest = globalsetpolicyrequest
92422	return c
92423}
92424
92425// Fields allows partial responses to be retrieved. See
92426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92427// for more information.
92428func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
92429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92430	return c
92431}
92432
92433// Context sets the context to be used in this call's Do method. Any
92434// pending HTTP request will be aborted if the provided context is
92435// canceled.
92436func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
92437	c.ctx_ = ctx
92438	return c
92439}
92440
92441// Header returns an http.Header that can be modified by the caller to
92442// add HTTP headers to the request.
92443func (c *LicensesSetIamPolicyCall) Header() http.Header {
92444	if c.header_ == nil {
92445		c.header_ = make(http.Header)
92446	}
92447	return c.header_
92448}
92449
92450func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
92451	reqHeaders := make(http.Header)
92452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92453	for k, v := range c.header_ {
92454		reqHeaders[k] = v
92455	}
92456	reqHeaders.Set("User-Agent", c.s.userAgent())
92457	var body io.Reader = nil
92458	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
92459	if err != nil {
92460		return nil, err
92461	}
92462	reqHeaders.Set("Content-Type", "application/json")
92463	c.urlParams_.Set("alt", alt)
92464	c.urlParams_.Set("prettyPrint", "false")
92465	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/setIamPolicy")
92466	urls += "?" + c.urlParams_.Encode()
92467	req, err := http.NewRequest("POST", urls, body)
92468	if err != nil {
92469		return nil, err
92470	}
92471	req.Header = reqHeaders
92472	googleapi.Expand(req.URL, map[string]string{
92473		"project":  c.project,
92474		"resource": c.resource,
92475	})
92476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92477}
92478
92479// Do executes the "compute.licenses.setIamPolicy" call.
92480// Exactly one of *Policy or error will be non-nil. Any non-2xx status
92481// code is an error. Response headers are in either
92482// *Policy.ServerResponse.Header or (if a response was returned at all)
92483// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
92484// check whether the returned error was because http.StatusNotModified
92485// was returned.
92486func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
92487	gensupport.SetOptions(c.urlParams_, opts...)
92488	res, err := c.doRequest("json")
92489	if res != nil && res.StatusCode == http.StatusNotModified {
92490		if res.Body != nil {
92491			res.Body.Close()
92492		}
92493		return nil, &googleapi.Error{
92494			Code:   res.StatusCode,
92495			Header: res.Header,
92496		}
92497	}
92498	if err != nil {
92499		return nil, err
92500	}
92501	defer googleapi.CloseBody(res)
92502	if err := googleapi.CheckResponse(res); err != nil {
92503		return nil, err
92504	}
92505	ret := &Policy{
92506		ServerResponse: googleapi.ServerResponse{
92507			Header:         res.Header,
92508			HTTPStatusCode: res.StatusCode,
92509		},
92510	}
92511	target := &ret
92512	if err := gensupport.DecodeResponse(target, res); err != nil {
92513		return nil, err
92514	}
92515	return ret, nil
92516	// {
92517	//   "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.",
92518	//   "httpMethod": "POST",
92519	//   "id": "compute.licenses.setIamPolicy",
92520	//   "parameterOrder": [
92521	//     "project",
92522	//     "resource"
92523	//   ],
92524	//   "parameters": {
92525	//     "project": {
92526	//       "description": "Project ID for this request.",
92527	//       "location": "path",
92528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92529	//       "required": true,
92530	//       "type": "string"
92531	//     },
92532	//     "resource": {
92533	//       "description": "Name or id of the resource for this request.",
92534	//       "location": "path",
92535	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92536	//       "required": true,
92537	//       "type": "string"
92538	//     }
92539	//   },
92540	//   "path": "{project}/global/licenses/{resource}/setIamPolicy",
92541	//   "request": {
92542	//     "$ref": "GlobalSetPolicyRequest"
92543	//   },
92544	//   "response": {
92545	//     "$ref": "Policy"
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.machineImages.delete":
92556
92557type MachineImagesDeleteCall struct {
92558	s            *Service
92559	project      string
92560	machineImage string
92561	urlParams_   gensupport.URLParams
92562	ctx_         context.Context
92563	header_      http.Header
92564}
92565
92566// Delete: Deletes the specified machine image. Deleting a machine image
92567// is permanent and cannot be undone.
92568func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall {
92569	c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92570	c.project = project
92571	c.machineImage = machineImage
92572	return c
92573}
92574
92575// RequestId sets the optional parameter "requestId": An optional
92576// request ID to identify requests. Specify a unique request ID so that
92577// if you must retry your request, the server will know to ignore the
92578// request if it has already been completed.
92579//
92580// For example, consider a situation where you make an initial request
92581// and the request times out. If you make the request again with the
92582// same request ID, the server can check if original operation with the
92583// same request ID was received, and if so, will ignore the second
92584// request. This prevents clients from accidentally creating duplicate
92585// commitments.
92586//
92587// The request ID must be a valid UUID with the exception that zero UUID
92588// is not supported (00000000-0000-0000-0000-000000000000).
92589func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall {
92590	c.urlParams_.Set("requestId", requestId)
92591	return c
92592}
92593
92594// Fields allows partial responses to be retrieved. See
92595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92596// for more information.
92597func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall {
92598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92599	return c
92600}
92601
92602// Context sets the context to be used in this call's Do method. Any
92603// pending HTTP request will be aborted if the provided context is
92604// canceled.
92605func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall {
92606	c.ctx_ = ctx
92607	return c
92608}
92609
92610// Header returns an http.Header that can be modified by the caller to
92611// add HTTP headers to the request.
92612func (c *MachineImagesDeleteCall) Header() http.Header {
92613	if c.header_ == nil {
92614		c.header_ = make(http.Header)
92615	}
92616	return c.header_
92617}
92618
92619func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
92620	reqHeaders := make(http.Header)
92621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92622	for k, v := range c.header_ {
92623		reqHeaders[k] = v
92624	}
92625	reqHeaders.Set("User-Agent", c.s.userAgent())
92626	var body io.Reader = nil
92627	c.urlParams_.Set("alt", alt)
92628	c.urlParams_.Set("prettyPrint", "false")
92629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
92630	urls += "?" + c.urlParams_.Encode()
92631	req, err := http.NewRequest("DELETE", urls, body)
92632	if err != nil {
92633		return nil, err
92634	}
92635	req.Header = reqHeaders
92636	googleapi.Expand(req.URL, map[string]string{
92637		"project":      c.project,
92638		"machineImage": c.machineImage,
92639	})
92640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92641}
92642
92643// Do executes the "compute.machineImages.delete" call.
92644// Exactly one of *Operation or error will be non-nil. Any non-2xx
92645// status code is an error. Response headers are in either
92646// *Operation.ServerResponse.Header or (if a response was returned at
92647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92648// to check whether the returned error was because
92649// http.StatusNotModified was returned.
92650func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92651	gensupport.SetOptions(c.urlParams_, opts...)
92652	res, err := c.doRequest("json")
92653	if res != nil && res.StatusCode == http.StatusNotModified {
92654		if res.Body != nil {
92655			res.Body.Close()
92656		}
92657		return nil, &googleapi.Error{
92658			Code:   res.StatusCode,
92659			Header: res.Header,
92660		}
92661	}
92662	if err != nil {
92663		return nil, err
92664	}
92665	defer googleapi.CloseBody(res)
92666	if err := googleapi.CheckResponse(res); err != nil {
92667		return nil, err
92668	}
92669	ret := &Operation{
92670		ServerResponse: googleapi.ServerResponse{
92671			Header:         res.Header,
92672			HTTPStatusCode: res.StatusCode,
92673		},
92674	}
92675	target := &ret
92676	if err := gensupport.DecodeResponse(target, res); err != nil {
92677		return nil, err
92678	}
92679	return ret, nil
92680	// {
92681	//   "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.",
92682	//   "httpMethod": "DELETE",
92683	//   "id": "compute.machineImages.delete",
92684	//   "parameterOrder": [
92685	//     "project",
92686	//     "machineImage"
92687	//   ],
92688	//   "parameters": {
92689	//     "machineImage": {
92690	//       "description": "The name of the machine image to delete.",
92691	//       "location": "path",
92692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92693	//       "required": true,
92694	//       "type": "string"
92695	//     },
92696	//     "project": {
92697	//       "description": "Project ID for this request.",
92698	//       "location": "path",
92699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92700	//       "required": true,
92701	//       "type": "string"
92702	//     },
92703	//     "requestId": {
92704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92705	//       "location": "query",
92706	//       "type": "string"
92707	//     }
92708	//   },
92709	//   "path": "{project}/global/machineImages/{machineImage}",
92710	//   "response": {
92711	//     "$ref": "Operation"
92712	//   },
92713	//   "scopes": [
92714	//     "https://www.googleapis.com/auth/cloud-platform",
92715	//     "https://www.googleapis.com/auth/compute"
92716	//   ]
92717	// }
92718
92719}
92720
92721// method id "compute.machineImages.get":
92722
92723type MachineImagesGetCall struct {
92724	s            *Service
92725	project      string
92726	machineImage string
92727	urlParams_   gensupport.URLParams
92728	ifNoneMatch_ string
92729	ctx_         context.Context
92730	header_      http.Header
92731}
92732
92733// Get: Returns the specified machine image. Gets a list of available
92734// machine images by making a list() request.
92735func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall {
92736	c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92737	c.project = project
92738	c.machineImage = machineImage
92739	return c
92740}
92741
92742// Fields allows partial responses to be retrieved. See
92743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92744// for more information.
92745func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall {
92746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92747	return c
92748}
92749
92750// IfNoneMatch sets the optional parameter which makes the operation
92751// fail if the object's ETag matches the given value. This is useful for
92752// getting updates only after the object has changed since the last
92753// request. Use googleapi.IsNotModified to check whether the response
92754// error from Do is the result of In-None-Match.
92755func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall {
92756	c.ifNoneMatch_ = entityTag
92757	return c
92758}
92759
92760// Context sets the context to be used in this call's Do method. Any
92761// pending HTTP request will be aborted if the provided context is
92762// canceled.
92763func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall {
92764	c.ctx_ = ctx
92765	return c
92766}
92767
92768// Header returns an http.Header that can be modified by the caller to
92769// add HTTP headers to the request.
92770func (c *MachineImagesGetCall) Header() http.Header {
92771	if c.header_ == nil {
92772		c.header_ = make(http.Header)
92773	}
92774	return c.header_
92775}
92776
92777func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) {
92778	reqHeaders := make(http.Header)
92779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92780	for k, v := range c.header_ {
92781		reqHeaders[k] = v
92782	}
92783	reqHeaders.Set("User-Agent", c.s.userAgent())
92784	if c.ifNoneMatch_ != "" {
92785		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92786	}
92787	var body io.Reader = nil
92788	c.urlParams_.Set("alt", alt)
92789	c.urlParams_.Set("prettyPrint", "false")
92790	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
92791	urls += "?" + c.urlParams_.Encode()
92792	req, err := http.NewRequest("GET", urls, body)
92793	if err != nil {
92794		return nil, err
92795	}
92796	req.Header = reqHeaders
92797	googleapi.Expand(req.URL, map[string]string{
92798		"project":      c.project,
92799		"machineImage": c.machineImage,
92800	})
92801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92802}
92803
92804// Do executes the "compute.machineImages.get" call.
92805// Exactly one of *MachineImage or error will be non-nil. Any non-2xx
92806// status code is an error. Response headers are in either
92807// *MachineImage.ServerResponse.Header or (if a response was returned at
92808// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92809// to check whether the returned error was because
92810// http.StatusNotModified was returned.
92811func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) {
92812	gensupport.SetOptions(c.urlParams_, opts...)
92813	res, err := c.doRequest("json")
92814	if res != nil && res.StatusCode == http.StatusNotModified {
92815		if res.Body != nil {
92816			res.Body.Close()
92817		}
92818		return nil, &googleapi.Error{
92819			Code:   res.StatusCode,
92820			Header: res.Header,
92821		}
92822	}
92823	if err != nil {
92824		return nil, err
92825	}
92826	defer googleapi.CloseBody(res)
92827	if err := googleapi.CheckResponse(res); err != nil {
92828		return nil, err
92829	}
92830	ret := &MachineImage{
92831		ServerResponse: googleapi.ServerResponse{
92832			Header:         res.Header,
92833			HTTPStatusCode: res.StatusCode,
92834		},
92835	}
92836	target := &ret
92837	if err := gensupport.DecodeResponse(target, res); err != nil {
92838		return nil, err
92839	}
92840	return ret, nil
92841	// {
92842	//   "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.",
92843	//   "httpMethod": "GET",
92844	//   "id": "compute.machineImages.get",
92845	//   "parameterOrder": [
92846	//     "project",
92847	//     "machineImage"
92848	//   ],
92849	//   "parameters": {
92850	//     "machineImage": {
92851	//       "description": "The name of the machine image.",
92852	//       "location": "path",
92853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92854	//       "required": true,
92855	//       "type": "string"
92856	//     },
92857	//     "project": {
92858	//       "description": "Project ID for this request.",
92859	//       "location": "path",
92860	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92861	//       "required": true,
92862	//       "type": "string"
92863	//     }
92864	//   },
92865	//   "path": "{project}/global/machineImages/{machineImage}",
92866	//   "response": {
92867	//     "$ref": "MachineImage"
92868	//   },
92869	//   "scopes": [
92870	//     "https://www.googleapis.com/auth/cloud-platform",
92871	//     "https://www.googleapis.com/auth/compute",
92872	//     "https://www.googleapis.com/auth/compute.readonly"
92873	//   ]
92874	// }
92875
92876}
92877
92878// method id "compute.machineImages.getIamPolicy":
92879
92880type MachineImagesGetIamPolicyCall struct {
92881	s            *Service
92882	project      string
92883	resource     string
92884	urlParams_   gensupport.URLParams
92885	ifNoneMatch_ string
92886	ctx_         context.Context
92887	header_      http.Header
92888}
92889
92890// GetIamPolicy: Gets the access control policy for a resource. May be
92891// empty if no such policy or resource exists.
92892func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall {
92893	c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92894	c.project = project
92895	c.resource = resource
92896	return c
92897}
92898
92899// OptionsRequestedPolicyVersion sets the optional parameter
92900// "optionsRequestedPolicyVersion": Requested IAM Policy version.
92901func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall {
92902	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
92903	return c
92904}
92905
92906// Fields allows partial responses to be retrieved. See
92907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92908// for more information.
92909func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall {
92910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92911	return c
92912}
92913
92914// IfNoneMatch sets the optional parameter which makes the operation
92915// fail if the object's ETag matches the given value. This is useful for
92916// getting updates only after the object has changed since the last
92917// request. Use googleapi.IsNotModified to check whether the response
92918// error from Do is the result of In-None-Match.
92919func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall {
92920	c.ifNoneMatch_ = entityTag
92921	return c
92922}
92923
92924// Context sets the context to be used in this call's Do method. Any
92925// pending HTTP request will be aborted if the provided context is
92926// canceled.
92927func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall {
92928	c.ctx_ = ctx
92929	return c
92930}
92931
92932// Header returns an http.Header that can be modified by the caller to
92933// add HTTP headers to the request.
92934func (c *MachineImagesGetIamPolicyCall) Header() http.Header {
92935	if c.header_ == nil {
92936		c.header_ = make(http.Header)
92937	}
92938	return c.header_
92939}
92940
92941func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
92942	reqHeaders := make(http.Header)
92943	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
92944	for k, v := range c.header_ {
92945		reqHeaders[k] = v
92946	}
92947	reqHeaders.Set("User-Agent", c.s.userAgent())
92948	if c.ifNoneMatch_ != "" {
92949		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92950	}
92951	var body io.Reader = nil
92952	c.urlParams_.Set("alt", alt)
92953	c.urlParams_.Set("prettyPrint", "false")
92954	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/getIamPolicy")
92955	urls += "?" + c.urlParams_.Encode()
92956	req, err := http.NewRequest("GET", urls, body)
92957	if err != nil {
92958		return nil, err
92959	}
92960	req.Header = reqHeaders
92961	googleapi.Expand(req.URL, map[string]string{
92962		"project":  c.project,
92963		"resource": c.resource,
92964	})
92965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92966}
92967
92968// Do executes the "compute.machineImages.getIamPolicy" call.
92969// Exactly one of *Policy or error will be non-nil. Any non-2xx status
92970// code is an error. Response headers are in either
92971// *Policy.ServerResponse.Header or (if a response was returned at all)
92972// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
92973// check whether the returned error was because http.StatusNotModified
92974// was returned.
92975func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
92976	gensupport.SetOptions(c.urlParams_, opts...)
92977	res, err := c.doRequest("json")
92978	if res != nil && res.StatusCode == http.StatusNotModified {
92979		if res.Body != nil {
92980			res.Body.Close()
92981		}
92982		return nil, &googleapi.Error{
92983			Code:   res.StatusCode,
92984			Header: res.Header,
92985		}
92986	}
92987	if err != nil {
92988		return nil, err
92989	}
92990	defer googleapi.CloseBody(res)
92991	if err := googleapi.CheckResponse(res); err != nil {
92992		return nil, err
92993	}
92994	ret := &Policy{
92995		ServerResponse: googleapi.ServerResponse{
92996			Header:         res.Header,
92997			HTTPStatusCode: res.StatusCode,
92998		},
92999	}
93000	target := &ret
93001	if err := gensupport.DecodeResponse(target, res); err != nil {
93002		return nil, err
93003	}
93004	return ret, nil
93005	// {
93006	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
93007	//   "httpMethod": "GET",
93008	//   "id": "compute.machineImages.getIamPolicy",
93009	//   "parameterOrder": [
93010	//     "project",
93011	//     "resource"
93012	//   ],
93013	//   "parameters": {
93014	//     "optionsRequestedPolicyVersion": {
93015	//       "description": "Requested IAM Policy version.",
93016	//       "format": "int32",
93017	//       "location": "query",
93018	//       "type": "integer"
93019	//     },
93020	//     "project": {
93021	//       "description": "Project ID for this request.",
93022	//       "location": "path",
93023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93024	//       "required": true,
93025	//       "type": "string"
93026	//     },
93027	//     "resource": {
93028	//       "description": "Name or id of the resource for this request.",
93029	//       "location": "path",
93030	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93031	//       "required": true,
93032	//       "type": "string"
93033	//     }
93034	//   },
93035	//   "path": "{project}/global/machineImages/{resource}/getIamPolicy",
93036	//   "response": {
93037	//     "$ref": "Policy"
93038	//   },
93039	//   "scopes": [
93040	//     "https://www.googleapis.com/auth/cloud-platform",
93041	//     "https://www.googleapis.com/auth/compute",
93042	//     "https://www.googleapis.com/auth/compute.readonly"
93043	//   ]
93044	// }
93045
93046}
93047
93048// method id "compute.machineImages.insert":
93049
93050type MachineImagesInsertCall struct {
93051	s            *Service
93052	project      string
93053	machineimage *MachineImage
93054	urlParams_   gensupport.URLParams
93055	ctx_         context.Context
93056	header_      http.Header
93057}
93058
93059// Insert: Creates a machine image in the specified project using the
93060// data that is included in the request. If you are creating a new
93061// machine image to update an existing instance, your new machine image
93062// should use the same network or, if applicable, the same subnetwork as
93063// the original instance.
93064func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall {
93065	c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93066	c.project = project
93067	c.machineimage = machineimage
93068	return c
93069}
93070
93071// RequestId sets the optional parameter "requestId": An optional
93072// request ID to identify requests. Specify a unique request ID so that
93073// if you must retry your request, the server will know to ignore the
93074// request if it has already been completed.
93075//
93076// For example, consider a situation where you make an initial request
93077// and the request times out. If you make the request again with the
93078// same request ID, the server can check if original operation with the
93079// same request ID was received, and if so, will ignore the second
93080// request. This prevents clients from accidentally creating duplicate
93081// commitments.
93082//
93083// The request ID must be a valid UUID with the exception that zero UUID
93084// is not supported (00000000-0000-0000-0000-000000000000).
93085func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall {
93086	c.urlParams_.Set("requestId", requestId)
93087	return c
93088}
93089
93090// SourceInstance sets the optional parameter "sourceInstance":
93091// Required. Source instance that is used to create the machine image
93092// from.
93093func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall {
93094	c.urlParams_.Set("sourceInstance", sourceInstance)
93095	return c
93096}
93097
93098// Fields allows partial responses to be retrieved. See
93099// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93100// for more information.
93101func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall {
93102	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93103	return c
93104}
93105
93106// Context sets the context to be used in this call's Do method. Any
93107// pending HTTP request will be aborted if the provided context is
93108// canceled.
93109func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall {
93110	c.ctx_ = ctx
93111	return c
93112}
93113
93114// Header returns an http.Header that can be modified by the caller to
93115// add HTTP headers to the request.
93116func (c *MachineImagesInsertCall) Header() http.Header {
93117	if c.header_ == nil {
93118		c.header_ = make(http.Header)
93119	}
93120	return c.header_
93121}
93122
93123func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) {
93124	reqHeaders := make(http.Header)
93125	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93126	for k, v := range c.header_ {
93127		reqHeaders[k] = v
93128	}
93129	reqHeaders.Set("User-Agent", c.s.userAgent())
93130	var body io.Reader = nil
93131	body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage)
93132	if err != nil {
93133		return nil, err
93134	}
93135	reqHeaders.Set("Content-Type", "application/json")
93136	c.urlParams_.Set("alt", alt)
93137	c.urlParams_.Set("prettyPrint", "false")
93138	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
93139	urls += "?" + c.urlParams_.Encode()
93140	req, err := http.NewRequest("POST", urls, body)
93141	if err != nil {
93142		return nil, err
93143	}
93144	req.Header = reqHeaders
93145	googleapi.Expand(req.URL, map[string]string{
93146		"project": c.project,
93147	})
93148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93149}
93150
93151// Do executes the "compute.machineImages.insert" call.
93152// Exactly one of *Operation or error will be non-nil. Any non-2xx
93153// status code is an error. Response headers are in either
93154// *Operation.ServerResponse.Header or (if a response was returned at
93155// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93156// to check whether the returned error was because
93157// http.StatusNotModified was returned.
93158func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93159	gensupport.SetOptions(c.urlParams_, opts...)
93160	res, err := c.doRequest("json")
93161	if res != nil && res.StatusCode == http.StatusNotModified {
93162		if res.Body != nil {
93163			res.Body.Close()
93164		}
93165		return nil, &googleapi.Error{
93166			Code:   res.StatusCode,
93167			Header: res.Header,
93168		}
93169	}
93170	if err != nil {
93171		return nil, err
93172	}
93173	defer googleapi.CloseBody(res)
93174	if err := googleapi.CheckResponse(res); err != nil {
93175		return nil, err
93176	}
93177	ret := &Operation{
93178		ServerResponse: googleapi.ServerResponse{
93179			Header:         res.Header,
93180			HTTPStatusCode: res.StatusCode,
93181		},
93182	}
93183	target := &ret
93184	if err := gensupport.DecodeResponse(target, res); err != nil {
93185		return nil, err
93186	}
93187	return ret, nil
93188	// {
93189	//   "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.",
93190	//   "httpMethod": "POST",
93191	//   "id": "compute.machineImages.insert",
93192	//   "parameterOrder": [
93193	//     "project"
93194	//   ],
93195	//   "parameters": {
93196	//     "project": {
93197	//       "description": "Project ID for this request.",
93198	//       "location": "path",
93199	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93200	//       "required": true,
93201	//       "type": "string"
93202	//     },
93203	//     "requestId": {
93204	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93205	//       "location": "query",
93206	//       "type": "string"
93207	//     },
93208	//     "sourceInstance": {
93209	//       "description": "Required. Source instance that is used to create the machine image from.",
93210	//       "location": "query",
93211	//       "type": "string"
93212	//     }
93213	//   },
93214	//   "path": "{project}/global/machineImages",
93215	//   "request": {
93216	//     "$ref": "MachineImage"
93217	//   },
93218	//   "response": {
93219	//     "$ref": "Operation"
93220	//   },
93221	//   "scopes": [
93222	//     "https://www.googleapis.com/auth/cloud-platform",
93223	//     "https://www.googleapis.com/auth/compute"
93224	//   ]
93225	// }
93226
93227}
93228
93229// method id "compute.machineImages.list":
93230
93231type MachineImagesListCall struct {
93232	s            *Service
93233	project      string
93234	urlParams_   gensupport.URLParams
93235	ifNoneMatch_ string
93236	ctx_         context.Context
93237	header_      http.Header
93238}
93239
93240// List: Retrieves a list of machine images that are contained within
93241// the specified project.
93242func (r *MachineImagesService) List(project string) *MachineImagesListCall {
93243	c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93244	c.project = project
93245	return c
93246}
93247
93248// Filter sets the optional parameter "filter": A filter expression that
93249// filters resources listed in the response. The expression must specify
93250// the field name, a comparison operator, and the value that you want to
93251// use for filtering. The value must be a string, a number, or a
93252// boolean. The comparison operator must be either `=`, `!=`, `>`, or
93253// `<`.
93254//
93255// For example, if you are filtering Compute Engine instances, you can
93256// exclude instances named `example-instance` by specifying `name !=
93257// example-instance`.
93258//
93259// You can also filter nested fields. For example, you could specify
93260// `scheduling.automaticRestart = false` to include instances only if
93261// they are not scheduled for automatic restarts. You can use filtering
93262// on nested fields to filter based on resource labels.
93263//
93264// To filter on multiple expressions, provide each separate expression
93265// within parentheses. For example: ``` (scheduling.automaticRestart =
93266// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
93267// is an `AND` expression. However, you can include `AND` and `OR`
93268// expressions explicitly. For example: ``` (cpuPlatform = "Intel
93269// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
93270// (scheduling.automaticRestart = true) ```
93271func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall {
93272	c.urlParams_.Set("filter", filter)
93273	return c
93274}
93275
93276// MaxResults sets the optional parameter "maxResults": The maximum
93277// number of results per page that should be returned. If the number of
93278// available results is larger than `maxResults`, Compute Engine returns
93279// a `nextPageToken` that can be used to get the next page of results in
93280// subsequent list requests. Acceptable values are `0` to `500`,
93281// inclusive. (Default: `500`)
93282func (c *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall {
93283	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93284	return c
93285}
93286
93287// OrderBy sets the optional parameter "orderBy": Sorts list results by
93288// a certain order. By default, results are returned in alphanumerical
93289// order based on the resource name.
93290//
93291// You can also sort results in descending order based on the creation
93292// timestamp using `orderBy="creationTimestamp desc". This sorts
93293// results based on the `creationTimestamp` field in reverse
93294// chronological order (newest result first). Use this to sort resources
93295// like operations so that the newest operation is returned
93296// first.
93297//
93298// Currently, only sorting by `name` or `creationTimestamp desc` is
93299// supported.
93300func (c *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall {
93301	c.urlParams_.Set("orderBy", orderBy)
93302	return c
93303}
93304
93305// PageToken sets the optional parameter "pageToken": Specifies a page
93306// token to use. Set `pageToken` to the `nextPageToken` returned by a
93307// previous list request to get the next page of results.
93308func (c *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall {
93309	c.urlParams_.Set("pageToken", pageToken)
93310	return c
93311}
93312
93313// Fields allows partial responses to be retrieved. See
93314// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93315// for more information.
93316func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall {
93317	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93318	return c
93319}
93320
93321// IfNoneMatch sets the optional parameter which makes the operation
93322// fail if the object's ETag matches the given value. This is useful for
93323// getting updates only after the object has changed since the last
93324// request. Use googleapi.IsNotModified to check whether the response
93325// error from Do is the result of In-None-Match.
93326func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall {
93327	c.ifNoneMatch_ = entityTag
93328	return c
93329}
93330
93331// Context sets the context to be used in this call's Do method. Any
93332// pending HTTP request will be aborted if the provided context is
93333// canceled.
93334func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall {
93335	c.ctx_ = ctx
93336	return c
93337}
93338
93339// Header returns an http.Header that can be modified by the caller to
93340// add HTTP headers to the request.
93341func (c *MachineImagesListCall) Header() http.Header {
93342	if c.header_ == nil {
93343		c.header_ = make(http.Header)
93344	}
93345	return c.header_
93346}
93347
93348func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) {
93349	reqHeaders := make(http.Header)
93350	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93351	for k, v := range c.header_ {
93352		reqHeaders[k] = v
93353	}
93354	reqHeaders.Set("User-Agent", c.s.userAgent())
93355	if c.ifNoneMatch_ != "" {
93356		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93357	}
93358	var body io.Reader = nil
93359	c.urlParams_.Set("alt", alt)
93360	c.urlParams_.Set("prettyPrint", "false")
93361	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
93362	urls += "?" + c.urlParams_.Encode()
93363	req, err := http.NewRequest("GET", urls, body)
93364	if err != nil {
93365		return nil, err
93366	}
93367	req.Header = reqHeaders
93368	googleapi.Expand(req.URL, map[string]string{
93369		"project": c.project,
93370	})
93371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93372}
93373
93374// Do executes the "compute.machineImages.list" call.
93375// Exactly one of *MachineImageList or error will be non-nil. Any
93376// non-2xx status code is an error. Response headers are in either
93377// *MachineImageList.ServerResponse.Header or (if a response was
93378// returned at all) in error.(*googleapi.Error).Header. Use
93379// googleapi.IsNotModified to check whether the returned error was
93380// because http.StatusNotModified was returned.
93381func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) {
93382	gensupport.SetOptions(c.urlParams_, opts...)
93383	res, err := c.doRequest("json")
93384	if res != nil && res.StatusCode == http.StatusNotModified {
93385		if res.Body != nil {
93386			res.Body.Close()
93387		}
93388		return nil, &googleapi.Error{
93389			Code:   res.StatusCode,
93390			Header: res.Header,
93391		}
93392	}
93393	if err != nil {
93394		return nil, err
93395	}
93396	defer googleapi.CloseBody(res)
93397	if err := googleapi.CheckResponse(res); err != nil {
93398		return nil, err
93399	}
93400	ret := &MachineImageList{
93401		ServerResponse: googleapi.ServerResponse{
93402			Header:         res.Header,
93403			HTTPStatusCode: res.StatusCode,
93404		},
93405	}
93406	target := &ret
93407	if err := gensupport.DecodeResponse(target, res); err != nil {
93408		return nil, err
93409	}
93410	return ret, nil
93411	// {
93412	//   "description": "Retrieves a list of machine images that are contained within the specified project.",
93413	//   "httpMethod": "GET",
93414	//   "id": "compute.machineImages.list",
93415	//   "parameterOrder": [
93416	//     "project"
93417	//   ],
93418	//   "parameters": {
93419	//     "filter": {
93420	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
93421	//       "location": "query",
93422	//       "type": "string"
93423	//     },
93424	//     "maxResults": {
93425	//       "default": "500",
93426	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
93427	//       "format": "uint32",
93428	//       "location": "query",
93429	//       "minimum": "0",
93430	//       "type": "integer"
93431	//     },
93432	//     "orderBy": {
93433	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
93434	//       "location": "query",
93435	//       "type": "string"
93436	//     },
93437	//     "pageToken": {
93438	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
93439	//       "location": "query",
93440	//       "type": "string"
93441	//     },
93442	//     "project": {
93443	//       "description": "Project ID for this request.",
93444	//       "location": "path",
93445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93446	//       "required": true,
93447	//       "type": "string"
93448	//     }
93449	//   },
93450	//   "path": "{project}/global/machineImages",
93451	//   "response": {
93452	//     "$ref": "MachineImageList"
93453	//   },
93454	//   "scopes": [
93455	//     "https://www.googleapis.com/auth/cloud-platform",
93456	//     "https://www.googleapis.com/auth/compute",
93457	//     "https://www.googleapis.com/auth/compute.readonly"
93458	//   ]
93459	// }
93460
93461}
93462
93463// Pages invokes f for each page of results.
93464// A non-nil error returned from f will halt the iteration.
93465// The provided context supersedes any context provided to the Context method.
93466func (c *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error {
93467	c.ctx_ = ctx
93468	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
93469	for {
93470		x, err := c.Do()
93471		if err != nil {
93472			return err
93473		}
93474		if err := f(x); err != nil {
93475			return err
93476		}
93477		if x.NextPageToken == "" {
93478			return nil
93479		}
93480		c.PageToken(x.NextPageToken)
93481	}
93482}
93483
93484// method id "compute.machineImages.setIamPolicy":
93485
93486type MachineImagesSetIamPolicyCall struct {
93487	s                      *Service
93488	project                string
93489	resource               string
93490	globalsetpolicyrequest *GlobalSetPolicyRequest
93491	urlParams_             gensupport.URLParams
93492	ctx_                   context.Context
93493	header_                http.Header
93494}
93495
93496// SetIamPolicy: Sets the access control policy on the specified
93497// resource. Replaces any existing policy.
93498func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall {
93499	c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93500	c.project = project
93501	c.resource = resource
93502	c.globalsetpolicyrequest = globalsetpolicyrequest
93503	return c
93504}
93505
93506// Fields allows partial responses to be retrieved. See
93507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93508// for more information.
93509func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall {
93510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93511	return c
93512}
93513
93514// Context sets the context to be used in this call's Do method. Any
93515// pending HTTP request will be aborted if the provided context is
93516// canceled.
93517func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall {
93518	c.ctx_ = ctx
93519	return c
93520}
93521
93522// Header returns an http.Header that can be modified by the caller to
93523// add HTTP headers to the request.
93524func (c *MachineImagesSetIamPolicyCall) Header() http.Header {
93525	if c.header_ == nil {
93526		c.header_ = make(http.Header)
93527	}
93528	return c.header_
93529}
93530
93531func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
93532	reqHeaders := make(http.Header)
93533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93534	for k, v := range c.header_ {
93535		reqHeaders[k] = v
93536	}
93537	reqHeaders.Set("User-Agent", c.s.userAgent())
93538	var body io.Reader = nil
93539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
93540	if err != nil {
93541		return nil, err
93542	}
93543	reqHeaders.Set("Content-Type", "application/json")
93544	c.urlParams_.Set("alt", alt)
93545	c.urlParams_.Set("prettyPrint", "false")
93546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/setIamPolicy")
93547	urls += "?" + c.urlParams_.Encode()
93548	req, err := http.NewRequest("POST", urls, body)
93549	if err != nil {
93550		return nil, err
93551	}
93552	req.Header = reqHeaders
93553	googleapi.Expand(req.URL, map[string]string{
93554		"project":  c.project,
93555		"resource": c.resource,
93556	})
93557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93558}
93559
93560// Do executes the "compute.machineImages.setIamPolicy" call.
93561// Exactly one of *Policy or error will be non-nil. Any non-2xx status
93562// code is an error. Response headers are in either
93563// *Policy.ServerResponse.Header or (if a response was returned at all)
93564// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
93565// check whether the returned error was because http.StatusNotModified
93566// was returned.
93567func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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 := &Policy{
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": "Sets the access control policy on the specified resource. Replaces any existing policy.",
93599	//   "httpMethod": "POST",
93600	//   "id": "compute.machineImages.setIamPolicy",
93601	//   "parameterOrder": [
93602	//     "project",
93603	//     "resource"
93604	//   ],
93605	//   "parameters": {
93606	//     "project": {
93607	//       "description": "Project ID for this request.",
93608	//       "location": "path",
93609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93610	//       "required": true,
93611	//       "type": "string"
93612	//     },
93613	//     "resource": {
93614	//       "description": "Name or id of the resource for this request.",
93615	//       "location": "path",
93616	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93617	//       "required": true,
93618	//       "type": "string"
93619	//     }
93620	//   },
93621	//   "path": "{project}/global/machineImages/{resource}/setIamPolicy",
93622	//   "request": {
93623	//     "$ref": "GlobalSetPolicyRequest"
93624	//   },
93625	//   "response": {
93626	//     "$ref": "Policy"
93627	//   },
93628	//   "scopes": [
93629	//     "https://www.googleapis.com/auth/cloud-platform",
93630	//     "https://www.googleapis.com/auth/compute"
93631	//   ]
93632	// }
93633
93634}
93635
93636// method id "compute.machineImages.testIamPermissions":
93637
93638type MachineImagesTestIamPermissionsCall struct {
93639	s                      *Service
93640	project                string
93641	resource               string
93642	testpermissionsrequest *TestPermissionsRequest
93643	urlParams_             gensupport.URLParams
93644	ctx_                   context.Context
93645	header_                http.Header
93646}
93647
93648// TestIamPermissions: Returns permissions that a caller has on the
93649// specified resource.
93650func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall {
93651	c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93652	c.project = project
93653	c.resource = resource
93654	c.testpermissionsrequest = testpermissionsrequest
93655	return c
93656}
93657
93658// Fields allows partial responses to be retrieved. See
93659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93660// for more information.
93661func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall {
93662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93663	return c
93664}
93665
93666// Context sets the context to be used in this call's Do method. Any
93667// pending HTTP request will be aborted if the provided context is
93668// canceled.
93669func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall {
93670	c.ctx_ = ctx
93671	return c
93672}
93673
93674// Header returns an http.Header that can be modified by the caller to
93675// add HTTP headers to the request.
93676func (c *MachineImagesTestIamPermissionsCall) Header() http.Header {
93677	if c.header_ == nil {
93678		c.header_ = make(http.Header)
93679	}
93680	return c.header_
93681}
93682
93683func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
93684	reqHeaders := make(http.Header)
93685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93686	for k, v := range c.header_ {
93687		reqHeaders[k] = v
93688	}
93689	reqHeaders.Set("User-Agent", c.s.userAgent())
93690	var body io.Reader = nil
93691	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
93692	if err != nil {
93693		return nil, err
93694	}
93695	reqHeaders.Set("Content-Type", "application/json")
93696	c.urlParams_.Set("alt", alt)
93697	c.urlParams_.Set("prettyPrint", "false")
93698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/testIamPermissions")
93699	urls += "?" + c.urlParams_.Encode()
93700	req, err := http.NewRequest("POST", urls, body)
93701	if err != nil {
93702		return nil, err
93703	}
93704	req.Header = reqHeaders
93705	googleapi.Expand(req.URL, map[string]string{
93706		"project":  c.project,
93707		"resource": c.resource,
93708	})
93709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93710}
93711
93712// Do executes the "compute.machineImages.testIamPermissions" call.
93713// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
93714// non-2xx status code is an error. Response headers are in either
93715// *TestPermissionsResponse.ServerResponse.Header or (if a response was
93716// returned at all) in error.(*googleapi.Error).Header. Use
93717// googleapi.IsNotModified to check whether the returned error was
93718// because http.StatusNotModified was returned.
93719func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
93720	gensupport.SetOptions(c.urlParams_, opts...)
93721	res, err := c.doRequest("json")
93722	if res != nil && res.StatusCode == http.StatusNotModified {
93723		if res.Body != nil {
93724			res.Body.Close()
93725		}
93726		return nil, &googleapi.Error{
93727			Code:   res.StatusCode,
93728			Header: res.Header,
93729		}
93730	}
93731	if err != nil {
93732		return nil, err
93733	}
93734	defer googleapi.CloseBody(res)
93735	if err := googleapi.CheckResponse(res); err != nil {
93736		return nil, err
93737	}
93738	ret := &TestPermissionsResponse{
93739		ServerResponse: googleapi.ServerResponse{
93740			Header:         res.Header,
93741			HTTPStatusCode: res.StatusCode,
93742		},
93743	}
93744	target := &ret
93745	if err := gensupport.DecodeResponse(target, res); err != nil {
93746		return nil, err
93747	}
93748	return ret, nil
93749	// {
93750	//   "description": "Returns permissions that a caller has on the specified resource.",
93751	//   "httpMethod": "POST",
93752	//   "id": "compute.machineImages.testIamPermissions",
93753	//   "parameterOrder": [
93754	//     "project",
93755	//     "resource"
93756	//   ],
93757	//   "parameters": {
93758	//     "project": {
93759	//       "description": "Project ID for this request.",
93760	//       "location": "path",
93761	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93762	//       "required": true,
93763	//       "type": "string"
93764	//     },
93765	//     "resource": {
93766	//       "description": "Name or id of the resource for this request.",
93767	//       "location": "path",
93768	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93769	//       "required": true,
93770	//       "type": "string"
93771	//     }
93772	//   },
93773	//   "path": "{project}/global/machineImages/{resource}/testIamPermissions",
93774	//   "request": {
93775	//     "$ref": "TestPermissionsRequest"
93776	//   },
93777	//   "response": {
93778	//     "$ref": "TestPermissionsResponse"
93779	//   },
93780	//   "scopes": [
93781	//     "https://www.googleapis.com/auth/cloud-platform",
93782	//     "https://www.googleapis.com/auth/compute",
93783	//     "https://www.googleapis.com/auth/compute.readonly"
93784	//   ]
93785	// }
93786
93787}
93788
93789// method id "compute.machineTypes.aggregatedList":
93790
93791type MachineTypesAggregatedListCall struct {
93792	s            *Service
93793	project      string
93794	urlParams_   gensupport.URLParams
93795	ifNoneMatch_ string
93796	ctx_         context.Context
93797	header_      http.Header
93798}
93799
93800// AggregatedList: Retrieves an aggregated list of machine types.
93801// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
93802func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
93803	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93804	c.project = project
93805	return c
93806}
93807
93808// Filter sets the optional parameter "filter": A filter expression that
93809// filters resources listed in the response. The expression must specify
93810// the field name, a comparison operator, and the value that you want to
93811// use for filtering. The value must be a string, a number, or a
93812// boolean. The comparison operator must be either `=`, `!=`, `>`, or
93813// `<`.
93814//
93815// For example, if you are filtering Compute Engine instances, you can
93816// exclude instances named `example-instance` by specifying `name !=
93817// example-instance`.
93818//
93819// You can also filter nested fields. For example, you could specify
93820// `scheduling.automaticRestart = false` to include instances only if
93821// they are not scheduled for automatic restarts. You can use filtering
93822// on nested fields to filter based on resource labels.
93823//
93824// To filter on multiple expressions, provide each separate expression
93825// within parentheses. For example: ``` (scheduling.automaticRestart =
93826// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
93827// is an `AND` expression. However, you can include `AND` and `OR`
93828// expressions explicitly. For example: ``` (cpuPlatform = "Intel
93829// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
93830// (scheduling.automaticRestart = true) ```
93831func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
93832	c.urlParams_.Set("filter", filter)
93833	return c
93834}
93835
93836// IncludeAllScopes sets the optional parameter "includeAllScopes":
93837// Indicates whether every visible scope for each scope type (zone,
93838// region, global) should be included in the response. For new resource
93839// types added after this field, the flag has no effect as new resource
93840// types will always include every visible scope for each scope type in
93841// response. For resource types which predate this field, if this flag
93842// is omitted or false, only scopes of the scope types where the
93843// resource type is expected to be found will be included.
93844func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
93845	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
93846	return c
93847}
93848
93849// MaxResults sets the optional parameter "maxResults": The maximum
93850// number of results per page that should be returned. If the number of
93851// available results is larger than `maxResults`, Compute Engine returns
93852// a `nextPageToken` that can be used to get the next page of results in
93853// subsequent list requests. Acceptable values are `0` to `500`,
93854// inclusive. (Default: `500`)
93855func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
93856	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93857	return c
93858}
93859
93860// OrderBy sets the optional parameter "orderBy": Sorts list results by
93861// a certain order. By default, results are returned in alphanumerical
93862// order based on the resource name.
93863//
93864// You can also sort results in descending order based on the creation
93865// timestamp using `orderBy="creationTimestamp desc". This sorts
93866// results based on the `creationTimestamp` field in reverse
93867// chronological order (newest result first). Use this to sort resources
93868// like operations so that the newest operation is returned
93869// first.
93870//
93871// Currently, only sorting by `name` or `creationTimestamp desc` is
93872// supported.
93873func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
93874	c.urlParams_.Set("orderBy", orderBy)
93875	return c
93876}
93877
93878// PageToken sets the optional parameter "pageToken": Specifies a page
93879// token to use. Set `pageToken` to the `nextPageToken` returned by a
93880// previous list request to get the next page of results.
93881func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
93882	c.urlParams_.Set("pageToken", pageToken)
93883	return c
93884}
93885
93886// Fields allows partial responses to be retrieved. See
93887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93888// for more information.
93889func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
93890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93891	return c
93892}
93893
93894// IfNoneMatch sets the optional parameter which makes the operation
93895// fail if the object's ETag matches the given value. This is useful for
93896// getting updates only after the object has changed since the last
93897// request. Use googleapi.IsNotModified to check whether the response
93898// error from Do is the result of In-None-Match.
93899func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
93900	c.ifNoneMatch_ = entityTag
93901	return c
93902}
93903
93904// Context sets the context to be used in this call's Do method. Any
93905// pending HTTP request will be aborted if the provided context is
93906// canceled.
93907func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
93908	c.ctx_ = ctx
93909	return c
93910}
93911
93912// Header returns an http.Header that can be modified by the caller to
93913// add HTTP headers to the request.
93914func (c *MachineTypesAggregatedListCall) Header() http.Header {
93915	if c.header_ == nil {
93916		c.header_ = make(http.Header)
93917	}
93918	return c.header_
93919}
93920
93921func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
93922	reqHeaders := make(http.Header)
93923	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
93924	for k, v := range c.header_ {
93925		reqHeaders[k] = v
93926	}
93927	reqHeaders.Set("User-Agent", c.s.userAgent())
93928	if c.ifNoneMatch_ != "" {
93929		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93930	}
93931	var body io.Reader = nil
93932	c.urlParams_.Set("alt", alt)
93933	c.urlParams_.Set("prettyPrint", "false")
93934	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
93935	urls += "?" + c.urlParams_.Encode()
93936	req, err := http.NewRequest("GET", urls, body)
93937	if err != nil {
93938		return nil, err
93939	}
93940	req.Header = reqHeaders
93941	googleapi.Expand(req.URL, map[string]string{
93942		"project": c.project,
93943	})
93944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93945}
93946
93947// Do executes the "compute.machineTypes.aggregatedList" call.
93948// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
93949// Any non-2xx status code is an error. Response headers are in either
93950// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
93951// was returned at all) in error.(*googleapi.Error).Header. Use
93952// googleapi.IsNotModified to check whether the returned error was
93953// because http.StatusNotModified was returned.
93954func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, 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 := &MachineTypeAggregatedList{
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": "Retrieves an aggregated list of machine types.",
93986	//   "httpMethod": "GET",
93987	//   "id": "compute.machineTypes.aggregatedList",
93988	//   "parameterOrder": [
93989	//     "project"
93990	//   ],
93991	//   "parameters": {
93992	//     "filter": {
93993	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
93994	//       "location": "query",
93995	//       "type": "string"
93996	//     },
93997	//     "includeAllScopes": {
93998	//       "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.",
93999	//       "location": "query",
94000	//       "type": "boolean"
94001	//     },
94002	//     "maxResults": {
94003	//       "default": "500",
94004	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
94005	//       "format": "uint32",
94006	//       "location": "query",
94007	//       "minimum": "0",
94008	//       "type": "integer"
94009	//     },
94010	//     "orderBy": {
94011	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
94012	//       "location": "query",
94013	//       "type": "string"
94014	//     },
94015	//     "pageToken": {
94016	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
94017	//       "location": "query",
94018	//       "type": "string"
94019	//     },
94020	//     "project": {
94021	//       "description": "Project ID for this request.",
94022	//       "location": "path",
94023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94024	//       "required": true,
94025	//       "type": "string"
94026	//     }
94027	//   },
94028	//   "path": "{project}/aggregated/machineTypes",
94029	//   "response": {
94030	//     "$ref": "MachineTypeAggregatedList"
94031	//   },
94032	//   "scopes": [
94033	//     "https://www.googleapis.com/auth/cloud-platform",
94034	//     "https://www.googleapis.com/auth/compute",
94035	//     "https://www.googleapis.com/auth/compute.readonly"
94036	//   ]
94037	// }
94038
94039}
94040
94041// Pages invokes f for each page of results.
94042// A non-nil error returned from f will halt the iteration.
94043// The provided context supersedes any context provided to the Context method.
94044func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
94045	c.ctx_ = ctx
94046	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94047	for {
94048		x, err := c.Do()
94049		if err != nil {
94050			return err
94051		}
94052		if err := f(x); err != nil {
94053			return err
94054		}
94055		if x.NextPageToken == "" {
94056			return nil
94057		}
94058		c.PageToken(x.NextPageToken)
94059	}
94060}
94061
94062// method id "compute.machineTypes.get":
94063
94064type MachineTypesGetCall struct {
94065	s            *Service
94066	project      string
94067	zone         string
94068	machineType  string
94069	urlParams_   gensupport.URLParams
94070	ifNoneMatch_ string
94071	ctx_         context.Context
94072	header_      http.Header
94073}
94074
94075// Get: Returns the specified machine type. Gets a list of available
94076// machine types by making a list() request.
94077// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
94078func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
94079	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94080	c.project = project
94081	c.zone = zone
94082	c.machineType = machineType
94083	return c
94084}
94085
94086// Fields allows partial responses to be retrieved. See
94087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94088// for more information.
94089func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
94090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94091	return c
94092}
94093
94094// IfNoneMatch sets the optional parameter which makes the operation
94095// fail if the object's ETag matches the given value. This is useful for
94096// getting updates only after the object has changed since the last
94097// request. Use googleapi.IsNotModified to check whether the response
94098// error from Do is the result of In-None-Match.
94099func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
94100	c.ifNoneMatch_ = entityTag
94101	return c
94102}
94103
94104// Context sets the context to be used in this call's Do method. Any
94105// pending HTTP request will be aborted if the provided context is
94106// canceled.
94107func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
94108	c.ctx_ = ctx
94109	return c
94110}
94111
94112// Header returns an http.Header that can be modified by the caller to
94113// add HTTP headers to the request.
94114func (c *MachineTypesGetCall) Header() http.Header {
94115	if c.header_ == nil {
94116		c.header_ = make(http.Header)
94117	}
94118	return c.header_
94119}
94120
94121func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
94122	reqHeaders := make(http.Header)
94123	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94124	for k, v := range c.header_ {
94125		reqHeaders[k] = v
94126	}
94127	reqHeaders.Set("User-Agent", c.s.userAgent())
94128	if c.ifNoneMatch_ != "" {
94129		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94130	}
94131	var body io.Reader = nil
94132	c.urlParams_.Set("alt", alt)
94133	c.urlParams_.Set("prettyPrint", "false")
94134	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
94135	urls += "?" + c.urlParams_.Encode()
94136	req, err := http.NewRequest("GET", urls, body)
94137	if err != nil {
94138		return nil, err
94139	}
94140	req.Header = reqHeaders
94141	googleapi.Expand(req.URL, map[string]string{
94142		"project":     c.project,
94143		"zone":        c.zone,
94144		"machineType": c.machineType,
94145	})
94146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94147}
94148
94149// Do executes the "compute.machineTypes.get" call.
94150// Exactly one of *MachineType or error will be non-nil. Any non-2xx
94151// status code is an error. Response headers are in either
94152// *MachineType.ServerResponse.Header or (if a response was returned at
94153// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94154// to check whether the returned error was because
94155// http.StatusNotModified was returned.
94156func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
94157	gensupport.SetOptions(c.urlParams_, opts...)
94158	res, err := c.doRequest("json")
94159	if res != nil && res.StatusCode == http.StatusNotModified {
94160		if res.Body != nil {
94161			res.Body.Close()
94162		}
94163		return nil, &googleapi.Error{
94164			Code:   res.StatusCode,
94165			Header: res.Header,
94166		}
94167	}
94168	if err != nil {
94169		return nil, err
94170	}
94171	defer googleapi.CloseBody(res)
94172	if err := googleapi.CheckResponse(res); err != nil {
94173		return nil, err
94174	}
94175	ret := &MachineType{
94176		ServerResponse: googleapi.ServerResponse{
94177			Header:         res.Header,
94178			HTTPStatusCode: res.StatusCode,
94179		},
94180	}
94181	target := &ret
94182	if err := gensupport.DecodeResponse(target, res); err != nil {
94183		return nil, err
94184	}
94185	return ret, nil
94186	// {
94187	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
94188	//   "httpMethod": "GET",
94189	//   "id": "compute.machineTypes.get",
94190	//   "parameterOrder": [
94191	//     "project",
94192	//     "zone",
94193	//     "machineType"
94194	//   ],
94195	//   "parameters": {
94196	//     "machineType": {
94197	//       "description": "Name of the machine type to return.",
94198	//       "location": "path",
94199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94200	//       "required": true,
94201	//       "type": "string"
94202	//     },
94203	//     "project": {
94204	//       "description": "Project ID for this request.",
94205	//       "location": "path",
94206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94207	//       "required": true,
94208	//       "type": "string"
94209	//     },
94210	//     "zone": {
94211	//       "description": "The name of the zone for this request.",
94212	//       "location": "path",
94213	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94214	//       "required": true,
94215	//       "type": "string"
94216	//     }
94217	//   },
94218	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
94219	//   "response": {
94220	//     "$ref": "MachineType"
94221	//   },
94222	//   "scopes": [
94223	//     "https://www.googleapis.com/auth/cloud-platform",
94224	//     "https://www.googleapis.com/auth/compute",
94225	//     "https://www.googleapis.com/auth/compute.readonly"
94226	//   ]
94227	// }
94228
94229}
94230
94231// method id "compute.machineTypes.list":
94232
94233type MachineTypesListCall struct {
94234	s            *Service
94235	project      string
94236	zone         string
94237	urlParams_   gensupport.URLParams
94238	ifNoneMatch_ string
94239	ctx_         context.Context
94240	header_      http.Header
94241}
94242
94243// List: Retrieves a list of machine types available to the specified
94244// project.
94245// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
94246func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
94247	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94248	c.project = project
94249	c.zone = zone
94250	return c
94251}
94252
94253// Filter sets the optional parameter "filter": A filter expression that
94254// filters resources listed in the response. The expression must specify
94255// the field name, a comparison operator, and the value that you want to
94256// use for filtering. The value must be a string, a number, or a
94257// boolean. The comparison operator must be either `=`, `!=`, `>`, or
94258// `<`.
94259//
94260// For example, if you are filtering Compute Engine instances, you can
94261// exclude instances named `example-instance` by specifying `name !=
94262// example-instance`.
94263//
94264// You can also filter nested fields. For example, you could specify
94265// `scheduling.automaticRestart = false` to include instances only if
94266// they are not scheduled for automatic restarts. You can use filtering
94267// on nested fields to filter based on resource labels.
94268//
94269// To filter on multiple expressions, provide each separate expression
94270// within parentheses. For example: ``` (scheduling.automaticRestart =
94271// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
94272// is an `AND` expression. However, you can include `AND` and `OR`
94273// expressions explicitly. For example: ``` (cpuPlatform = "Intel
94274// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
94275// (scheduling.automaticRestart = true) ```
94276func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
94277	c.urlParams_.Set("filter", filter)
94278	return c
94279}
94280
94281// MaxResults sets the optional parameter "maxResults": The maximum
94282// number of results per page that should be returned. If the number of
94283// available results is larger than `maxResults`, Compute Engine returns
94284// a `nextPageToken` that can be used to get the next page of results in
94285// subsequent list requests. Acceptable values are `0` to `500`,
94286// inclusive. (Default: `500`)
94287func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
94288	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94289	return c
94290}
94291
94292// OrderBy sets the optional parameter "orderBy": Sorts list results by
94293// a certain order. By default, results are returned in alphanumerical
94294// order based on the resource name.
94295//
94296// You can also sort results in descending order based on the creation
94297// timestamp using `orderBy="creationTimestamp desc". This sorts
94298// results based on the `creationTimestamp` field in reverse
94299// chronological order (newest result first). Use this to sort resources
94300// like operations so that the newest operation is returned
94301// first.
94302//
94303// Currently, only sorting by `name` or `creationTimestamp desc` is
94304// supported.
94305func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
94306	c.urlParams_.Set("orderBy", orderBy)
94307	return c
94308}
94309
94310// PageToken sets the optional parameter "pageToken": Specifies a page
94311// token to use. Set `pageToken` to the `nextPageToken` returned by a
94312// previous list request to get the next page of results.
94313func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
94314	c.urlParams_.Set("pageToken", pageToken)
94315	return c
94316}
94317
94318// Fields allows partial responses to be retrieved. See
94319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94320// for more information.
94321func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
94322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94323	return c
94324}
94325
94326// IfNoneMatch sets the optional parameter which makes the operation
94327// fail if the object's ETag matches the given value. This is useful for
94328// getting updates only after the object has changed since the last
94329// request. Use googleapi.IsNotModified to check whether the response
94330// error from Do is the result of In-None-Match.
94331func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
94332	c.ifNoneMatch_ = entityTag
94333	return c
94334}
94335
94336// Context sets the context to be used in this call's Do method. Any
94337// pending HTTP request will be aborted if the provided context is
94338// canceled.
94339func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
94340	c.ctx_ = ctx
94341	return c
94342}
94343
94344// Header returns an http.Header that can be modified by the caller to
94345// add HTTP headers to the request.
94346func (c *MachineTypesListCall) Header() http.Header {
94347	if c.header_ == nil {
94348		c.header_ = make(http.Header)
94349	}
94350	return c.header_
94351}
94352
94353func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
94354	reqHeaders := make(http.Header)
94355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94356	for k, v := range c.header_ {
94357		reqHeaders[k] = v
94358	}
94359	reqHeaders.Set("User-Agent", c.s.userAgent())
94360	if c.ifNoneMatch_ != "" {
94361		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94362	}
94363	var body io.Reader = nil
94364	c.urlParams_.Set("alt", alt)
94365	c.urlParams_.Set("prettyPrint", "false")
94366	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
94367	urls += "?" + c.urlParams_.Encode()
94368	req, err := http.NewRequest("GET", urls, body)
94369	if err != nil {
94370		return nil, err
94371	}
94372	req.Header = reqHeaders
94373	googleapi.Expand(req.URL, map[string]string{
94374		"project": c.project,
94375		"zone":    c.zone,
94376	})
94377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94378}
94379
94380// Do executes the "compute.machineTypes.list" call.
94381// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
94382// status code is an error. Response headers are in either
94383// *MachineTypeList.ServerResponse.Header or (if a response was returned
94384// at all) in error.(*googleapi.Error).Header. Use
94385// googleapi.IsNotModified to check whether the returned error was
94386// because http.StatusNotModified was returned.
94387func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
94388	gensupport.SetOptions(c.urlParams_, opts...)
94389	res, err := c.doRequest("json")
94390	if res != nil && res.StatusCode == http.StatusNotModified {
94391		if res.Body != nil {
94392			res.Body.Close()
94393		}
94394		return nil, &googleapi.Error{
94395			Code:   res.StatusCode,
94396			Header: res.Header,
94397		}
94398	}
94399	if err != nil {
94400		return nil, err
94401	}
94402	defer googleapi.CloseBody(res)
94403	if err := googleapi.CheckResponse(res); err != nil {
94404		return nil, err
94405	}
94406	ret := &MachineTypeList{
94407		ServerResponse: googleapi.ServerResponse{
94408			Header:         res.Header,
94409			HTTPStatusCode: res.StatusCode,
94410		},
94411	}
94412	target := &ret
94413	if err := gensupport.DecodeResponse(target, res); err != nil {
94414		return nil, err
94415	}
94416	return ret, nil
94417	// {
94418	//   "description": "Retrieves a list of machine types available to the specified project.",
94419	//   "httpMethod": "GET",
94420	//   "id": "compute.machineTypes.list",
94421	//   "parameterOrder": [
94422	//     "project",
94423	//     "zone"
94424	//   ],
94425	//   "parameters": {
94426	//     "filter": {
94427	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
94428	//       "location": "query",
94429	//       "type": "string"
94430	//     },
94431	//     "maxResults": {
94432	//       "default": "500",
94433	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
94434	//       "format": "uint32",
94435	//       "location": "query",
94436	//       "minimum": "0",
94437	//       "type": "integer"
94438	//     },
94439	//     "orderBy": {
94440	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
94441	//       "location": "query",
94442	//       "type": "string"
94443	//     },
94444	//     "pageToken": {
94445	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
94446	//       "location": "query",
94447	//       "type": "string"
94448	//     },
94449	//     "project": {
94450	//       "description": "Project ID for this request.",
94451	//       "location": "path",
94452	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94453	//       "required": true,
94454	//       "type": "string"
94455	//     },
94456	//     "zone": {
94457	//       "description": "The name of the zone for this request.",
94458	//       "location": "path",
94459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94460	//       "required": true,
94461	//       "type": "string"
94462	//     }
94463	//   },
94464	//   "path": "{project}/zones/{zone}/machineTypes",
94465	//   "response": {
94466	//     "$ref": "MachineTypeList"
94467	//   },
94468	//   "scopes": [
94469	//     "https://www.googleapis.com/auth/cloud-platform",
94470	//     "https://www.googleapis.com/auth/compute",
94471	//     "https://www.googleapis.com/auth/compute.readonly"
94472	//   ]
94473	// }
94474
94475}
94476
94477// Pages invokes f for each page of results.
94478// A non-nil error returned from f will halt the iteration.
94479// The provided context supersedes any context provided to the Context method.
94480func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
94481	c.ctx_ = ctx
94482	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94483	for {
94484		x, err := c.Do()
94485		if err != nil {
94486			return err
94487		}
94488		if err := f(x); err != nil {
94489			return err
94490		}
94491		if x.NextPageToken == "" {
94492			return nil
94493		}
94494		c.PageToken(x.NextPageToken)
94495	}
94496}
94497
94498// method id "compute.networkEndpointGroups.aggregatedList":
94499
94500type NetworkEndpointGroupsAggregatedListCall struct {
94501	s            *Service
94502	project      string
94503	urlParams_   gensupport.URLParams
94504	ifNoneMatch_ string
94505	ctx_         context.Context
94506	header_      http.Header
94507}
94508
94509// AggregatedList: Retrieves the list of network endpoint groups and
94510// sorts them by zone.
94511func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
94512	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94513	c.project = project
94514	return c
94515}
94516
94517// Filter sets the optional parameter "filter": A filter expression that
94518// filters resources listed in the response. The expression must specify
94519// the field name, a comparison operator, and the value that you want to
94520// use for filtering. The value must be a string, a number, or a
94521// boolean. The comparison operator must be either `=`, `!=`, `>`, or
94522// `<`.
94523//
94524// For example, if you are filtering Compute Engine instances, you can
94525// exclude instances named `example-instance` by specifying `name !=
94526// example-instance`.
94527//
94528// You can also filter nested fields. For example, you could specify
94529// `scheduling.automaticRestart = false` to include instances only if
94530// they are not scheduled for automatic restarts. You can use filtering
94531// on nested fields to filter based on resource labels.
94532//
94533// To filter on multiple expressions, provide each separate expression
94534// within parentheses. For example: ``` (scheduling.automaticRestart =
94535// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
94536// is an `AND` expression. However, you can include `AND` and `OR`
94537// expressions explicitly. For example: ``` (cpuPlatform = "Intel
94538// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
94539// (scheduling.automaticRestart = true) ```
94540func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
94541	c.urlParams_.Set("filter", filter)
94542	return c
94543}
94544
94545// IncludeAllScopes sets the optional parameter "includeAllScopes":
94546// Indicates whether every visible scope for each scope type (zone,
94547// region, global) should be included in the response. For new resource
94548// types added after this field, the flag has no effect as new resource
94549// types will always include every visible scope for each scope type in
94550// response. For resource types which predate this field, if this flag
94551// is omitted or false, only scopes of the scope types where the
94552// resource type is expected to be found will be included.
94553func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
94554	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
94555	return c
94556}
94557
94558// MaxResults sets the optional parameter "maxResults": The maximum
94559// number of results per page that should be returned. If the number of
94560// available results is larger than `maxResults`, Compute Engine returns
94561// a `nextPageToken` that can be used to get the next page of results in
94562// subsequent list requests. Acceptable values are `0` to `500`,
94563// inclusive. (Default: `500`)
94564func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
94565	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94566	return c
94567}
94568
94569// OrderBy sets the optional parameter "orderBy": Sorts list results by
94570// a certain order. By default, results are returned in alphanumerical
94571// order based on the resource name.
94572//
94573// You can also sort results in descending order based on the creation
94574// timestamp using `orderBy="creationTimestamp desc". This sorts
94575// results based on the `creationTimestamp` field in reverse
94576// chronological order (newest result first). Use this to sort resources
94577// like operations so that the newest operation is returned
94578// first.
94579//
94580// Currently, only sorting by `name` or `creationTimestamp desc` is
94581// supported.
94582func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
94583	c.urlParams_.Set("orderBy", orderBy)
94584	return c
94585}
94586
94587// PageToken sets the optional parameter "pageToken": Specifies a page
94588// token to use. Set `pageToken` to the `nextPageToken` returned by a
94589// previous list request to get the next page of results.
94590func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
94591	c.urlParams_.Set("pageToken", pageToken)
94592	return c
94593}
94594
94595// Fields allows partial responses to be retrieved. See
94596// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94597// for more information.
94598func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
94599	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94600	return c
94601}
94602
94603// IfNoneMatch sets the optional parameter which makes the operation
94604// fail if the object's ETag matches the given value. This is useful for
94605// getting updates only after the object has changed since the last
94606// request. Use googleapi.IsNotModified to check whether the response
94607// error from Do is the result of In-None-Match.
94608func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
94609	c.ifNoneMatch_ = entityTag
94610	return c
94611}
94612
94613// Context sets the context to be used in this call's Do method. Any
94614// pending HTTP request will be aborted if the provided context is
94615// canceled.
94616func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
94617	c.ctx_ = ctx
94618	return c
94619}
94620
94621// Header returns an http.Header that can be modified by the caller to
94622// add HTTP headers to the request.
94623func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
94624	if c.header_ == nil {
94625		c.header_ = make(http.Header)
94626	}
94627	return c.header_
94628}
94629
94630func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
94631	reqHeaders := make(http.Header)
94632	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94633	for k, v := range c.header_ {
94634		reqHeaders[k] = v
94635	}
94636	reqHeaders.Set("User-Agent", c.s.userAgent())
94637	if c.ifNoneMatch_ != "" {
94638		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94639	}
94640	var body io.Reader = nil
94641	c.urlParams_.Set("alt", alt)
94642	c.urlParams_.Set("prettyPrint", "false")
94643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/networkEndpointGroups")
94644	urls += "?" + c.urlParams_.Encode()
94645	req, err := http.NewRequest("GET", urls, body)
94646	if err != nil {
94647		return nil, err
94648	}
94649	req.Header = reqHeaders
94650	googleapi.Expand(req.URL, map[string]string{
94651		"project": c.project,
94652	})
94653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94654}
94655
94656// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
94657// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
94658// non-nil. Any non-2xx status code is an error. Response headers are in
94659// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
94660// (if a response was returned at all) in
94661// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
94662// whether the returned error was because http.StatusNotModified was
94663// returned.
94664func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
94665	gensupport.SetOptions(c.urlParams_, opts...)
94666	res, err := c.doRequest("json")
94667	if res != nil && res.StatusCode == http.StatusNotModified {
94668		if res.Body != nil {
94669			res.Body.Close()
94670		}
94671		return nil, &googleapi.Error{
94672			Code:   res.StatusCode,
94673			Header: res.Header,
94674		}
94675	}
94676	if err != nil {
94677		return nil, err
94678	}
94679	defer googleapi.CloseBody(res)
94680	if err := googleapi.CheckResponse(res); err != nil {
94681		return nil, err
94682	}
94683	ret := &NetworkEndpointGroupAggregatedList{
94684		ServerResponse: googleapi.ServerResponse{
94685			Header:         res.Header,
94686			HTTPStatusCode: res.StatusCode,
94687		},
94688	}
94689	target := &ret
94690	if err := gensupport.DecodeResponse(target, res); err != nil {
94691		return nil, err
94692	}
94693	return ret, nil
94694	// {
94695	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
94696	//   "httpMethod": "GET",
94697	//   "id": "compute.networkEndpointGroups.aggregatedList",
94698	//   "parameterOrder": [
94699	//     "project"
94700	//   ],
94701	//   "parameters": {
94702	//     "filter": {
94703	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
94704	//       "location": "query",
94705	//       "type": "string"
94706	//     },
94707	//     "includeAllScopes": {
94708	//       "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.",
94709	//       "location": "query",
94710	//       "type": "boolean"
94711	//     },
94712	//     "maxResults": {
94713	//       "default": "500",
94714	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
94715	//       "format": "uint32",
94716	//       "location": "query",
94717	//       "minimum": "0",
94718	//       "type": "integer"
94719	//     },
94720	//     "orderBy": {
94721	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
94722	//       "location": "query",
94723	//       "type": "string"
94724	//     },
94725	//     "pageToken": {
94726	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
94727	//       "location": "query",
94728	//       "type": "string"
94729	//     },
94730	//     "project": {
94731	//       "description": "Project ID for this request.",
94732	//       "location": "path",
94733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94734	//       "required": true,
94735	//       "type": "string"
94736	//     }
94737	//   },
94738	//   "path": "{project}/aggregated/networkEndpointGroups",
94739	//   "response": {
94740	//     "$ref": "NetworkEndpointGroupAggregatedList"
94741	//   },
94742	//   "scopes": [
94743	//     "https://www.googleapis.com/auth/cloud-platform",
94744	//     "https://www.googleapis.com/auth/compute",
94745	//     "https://www.googleapis.com/auth/compute.readonly"
94746	//   ]
94747	// }
94748
94749}
94750
94751// Pages invokes f for each page of results.
94752// A non-nil error returned from f will halt the iteration.
94753// The provided context supersedes any context provided to the Context method.
94754func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
94755	c.ctx_ = ctx
94756	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94757	for {
94758		x, err := c.Do()
94759		if err != nil {
94760			return err
94761		}
94762		if err := f(x); err != nil {
94763			return err
94764		}
94765		if x.NextPageToken == "" {
94766			return nil
94767		}
94768		c.PageToken(x.NextPageToken)
94769	}
94770}
94771
94772// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
94773
94774type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
94775	s                                           *Service
94776	project                                     string
94777	zone                                        string
94778	networkEndpointGroup                        string
94779	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
94780	urlParams_                                  gensupport.URLParams
94781	ctx_                                        context.Context
94782	header_                                     http.Header
94783}
94784
94785// AttachNetworkEndpoints: Attach a list of network endpoints to the
94786// specified network endpoint group.
94787func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
94788	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94789	c.project = project
94790	c.zone = zone
94791	c.networkEndpointGroup = networkEndpointGroup
94792	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
94793	return c
94794}
94795
94796// RequestId sets the optional parameter "requestId": An optional
94797// request ID to identify requests. Specify a unique request ID so that
94798// if you must retry your request, the server will know to ignore the
94799// request if it has already been completed.
94800//
94801// For example, consider a situation where you make an initial request
94802// and the request times out. If you make the request again with the
94803// same request ID, the server can check if original operation with the
94804// same request ID was received, and if so, will ignore the second
94805// request. This prevents clients from accidentally creating duplicate
94806// commitments.
94807//
94808// The request ID must be a valid UUID with the exception that zero UUID
94809// is not supported (00000000-0000-0000-0000-000000000000).
94810func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
94811	c.urlParams_.Set("requestId", requestId)
94812	return c
94813}
94814
94815// Fields allows partial responses to be retrieved. See
94816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94817// for more information.
94818func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
94819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94820	return c
94821}
94822
94823// Context sets the context to be used in this call's Do method. Any
94824// pending HTTP request will be aborted if the provided context is
94825// canceled.
94826func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
94827	c.ctx_ = ctx
94828	return c
94829}
94830
94831// Header returns an http.Header that can be modified by the caller to
94832// add HTTP headers to the request.
94833func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
94834	if c.header_ == nil {
94835		c.header_ = make(http.Header)
94836	}
94837	return c.header_
94838}
94839
94840func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
94841	reqHeaders := make(http.Header)
94842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
94843	for k, v := range c.header_ {
94844		reqHeaders[k] = v
94845	}
94846	reqHeaders.Set("User-Agent", c.s.userAgent())
94847	var body io.Reader = nil
94848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
94849	if err != nil {
94850		return nil, err
94851	}
94852	reqHeaders.Set("Content-Type", "application/json")
94853	c.urlParams_.Set("alt", alt)
94854	c.urlParams_.Set("prettyPrint", "false")
94855	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
94856	urls += "?" + c.urlParams_.Encode()
94857	req, err := http.NewRequest("POST", urls, body)
94858	if err != nil {
94859		return nil, err
94860	}
94861	req.Header = reqHeaders
94862	googleapi.Expand(req.URL, map[string]string{
94863		"project":              c.project,
94864		"zone":                 c.zone,
94865		"networkEndpointGroup": c.networkEndpointGroup,
94866	})
94867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94868}
94869
94870// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
94871// Exactly one of *Operation or error will be non-nil. Any non-2xx
94872// status code is an error. Response headers are in either
94873// *Operation.ServerResponse.Header or (if a response was returned at
94874// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94875// to check whether the returned error was because
94876// http.StatusNotModified was returned.
94877func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94878	gensupport.SetOptions(c.urlParams_, opts...)
94879	res, err := c.doRequest("json")
94880	if res != nil && res.StatusCode == http.StatusNotModified {
94881		if res.Body != nil {
94882			res.Body.Close()
94883		}
94884		return nil, &googleapi.Error{
94885			Code:   res.StatusCode,
94886			Header: res.Header,
94887		}
94888	}
94889	if err != nil {
94890		return nil, err
94891	}
94892	defer googleapi.CloseBody(res)
94893	if err := googleapi.CheckResponse(res); err != nil {
94894		return nil, err
94895	}
94896	ret := &Operation{
94897		ServerResponse: googleapi.ServerResponse{
94898			Header:         res.Header,
94899			HTTPStatusCode: res.StatusCode,
94900		},
94901	}
94902	target := &ret
94903	if err := gensupport.DecodeResponse(target, res); err != nil {
94904		return nil, err
94905	}
94906	return ret, nil
94907	// {
94908	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
94909	//   "httpMethod": "POST",
94910	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
94911	//   "parameterOrder": [
94912	//     "project",
94913	//     "zone",
94914	//     "networkEndpointGroup"
94915	//   ],
94916	//   "parameters": {
94917	//     "networkEndpointGroup": {
94918	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
94919	//       "location": "path",
94920	//       "required": true,
94921	//       "type": "string"
94922	//     },
94923	//     "project": {
94924	//       "description": "Project ID for this request.",
94925	//       "location": "path",
94926	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94927	//       "required": true,
94928	//       "type": "string"
94929	//     },
94930	//     "requestId": {
94931	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94932	//       "location": "query",
94933	//       "type": "string"
94934	//     },
94935	//     "zone": {
94936	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
94937	//       "location": "path",
94938	//       "required": true,
94939	//       "type": "string"
94940	//     }
94941	//   },
94942	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
94943	//   "request": {
94944	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
94945	//   },
94946	//   "response": {
94947	//     "$ref": "Operation"
94948	//   },
94949	//   "scopes": [
94950	//     "https://www.googleapis.com/auth/cloud-platform",
94951	//     "https://www.googleapis.com/auth/compute"
94952	//   ]
94953	// }
94954
94955}
94956
94957// method id "compute.networkEndpointGroups.delete":
94958
94959type NetworkEndpointGroupsDeleteCall struct {
94960	s                    *Service
94961	project              string
94962	zone                 string
94963	networkEndpointGroup string
94964	urlParams_           gensupport.URLParams
94965	ctx_                 context.Context
94966	header_              http.Header
94967}
94968
94969// Delete: Deletes the specified network endpoint group. The network
94970// endpoints in the NEG and the VM instances they belong to are not
94971// terminated when the NEG is deleted. Note that the NEG cannot be
94972// deleted if there are backend services referencing it.
94973func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
94974	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94975	c.project = project
94976	c.zone = zone
94977	c.networkEndpointGroup = networkEndpointGroup
94978	return c
94979}
94980
94981// RequestId sets the optional parameter "requestId": An optional
94982// request ID to identify requests. Specify a unique request ID so that
94983// if you must retry your request, the server will know to ignore the
94984// request if it has already been completed.
94985//
94986// For example, consider a situation where you make an initial request
94987// and the request times out. If you make the request again with the
94988// same request ID, the server can check if original operation with the
94989// same request ID was received, and if so, will ignore the second
94990// request. This prevents clients from accidentally creating duplicate
94991// commitments.
94992//
94993// The request ID must be a valid UUID with the exception that zero UUID
94994// is not supported (00000000-0000-0000-0000-000000000000).
94995func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
94996	c.urlParams_.Set("requestId", requestId)
94997	return c
94998}
94999
95000// Fields allows partial responses to be retrieved. See
95001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95002// for more information.
95003func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
95004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95005	return c
95006}
95007
95008// Context sets the context to be used in this call's Do method. Any
95009// pending HTTP request will be aborted if the provided context is
95010// canceled.
95011func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
95012	c.ctx_ = ctx
95013	return c
95014}
95015
95016// Header returns an http.Header that can be modified by the caller to
95017// add HTTP headers to the request.
95018func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
95019	if c.header_ == nil {
95020		c.header_ = make(http.Header)
95021	}
95022	return c.header_
95023}
95024
95025func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
95026	reqHeaders := make(http.Header)
95027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95028	for k, v := range c.header_ {
95029		reqHeaders[k] = v
95030	}
95031	reqHeaders.Set("User-Agent", c.s.userAgent())
95032	var body io.Reader = nil
95033	c.urlParams_.Set("alt", alt)
95034	c.urlParams_.Set("prettyPrint", "false")
95035	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
95036	urls += "?" + c.urlParams_.Encode()
95037	req, err := http.NewRequest("DELETE", urls, body)
95038	if err != nil {
95039		return nil, err
95040	}
95041	req.Header = reqHeaders
95042	googleapi.Expand(req.URL, map[string]string{
95043		"project":              c.project,
95044		"zone":                 c.zone,
95045		"networkEndpointGroup": c.networkEndpointGroup,
95046	})
95047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95048}
95049
95050// Do executes the "compute.networkEndpointGroups.delete" call.
95051// Exactly one of *Operation or error will be non-nil. Any non-2xx
95052// status code is an error. Response headers are in either
95053// *Operation.ServerResponse.Header or (if a response was returned at
95054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95055// to check whether the returned error was because
95056// http.StatusNotModified was returned.
95057func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95058	gensupport.SetOptions(c.urlParams_, opts...)
95059	res, err := c.doRequest("json")
95060	if res != nil && res.StatusCode == http.StatusNotModified {
95061		if res.Body != nil {
95062			res.Body.Close()
95063		}
95064		return nil, &googleapi.Error{
95065			Code:   res.StatusCode,
95066			Header: res.Header,
95067		}
95068	}
95069	if err != nil {
95070		return nil, err
95071	}
95072	defer googleapi.CloseBody(res)
95073	if err := googleapi.CheckResponse(res); err != nil {
95074		return nil, err
95075	}
95076	ret := &Operation{
95077		ServerResponse: googleapi.ServerResponse{
95078			Header:         res.Header,
95079			HTTPStatusCode: res.StatusCode,
95080		},
95081	}
95082	target := &ret
95083	if err := gensupport.DecodeResponse(target, res); err != nil {
95084		return nil, err
95085	}
95086	return ret, nil
95087	// {
95088	//   "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.",
95089	//   "httpMethod": "DELETE",
95090	//   "id": "compute.networkEndpointGroups.delete",
95091	//   "parameterOrder": [
95092	//     "project",
95093	//     "zone",
95094	//     "networkEndpointGroup"
95095	//   ],
95096	//   "parameters": {
95097	//     "networkEndpointGroup": {
95098	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
95099	//       "location": "path",
95100	//       "required": true,
95101	//       "type": "string"
95102	//     },
95103	//     "project": {
95104	//       "description": "Project ID for this request.",
95105	//       "location": "path",
95106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95107	//       "required": true,
95108	//       "type": "string"
95109	//     },
95110	//     "requestId": {
95111	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95112	//       "location": "query",
95113	//       "type": "string"
95114	//     },
95115	//     "zone": {
95116	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
95117	//       "location": "path",
95118	//       "required": true,
95119	//       "type": "string"
95120	//     }
95121	//   },
95122	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
95123	//   "response": {
95124	//     "$ref": "Operation"
95125	//   },
95126	//   "scopes": [
95127	//     "https://www.googleapis.com/auth/cloud-platform",
95128	//     "https://www.googleapis.com/auth/compute"
95129	//   ]
95130	// }
95131
95132}
95133
95134// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
95135
95136type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
95137	s                                           *Service
95138	project                                     string
95139	zone                                        string
95140	networkEndpointGroup                        string
95141	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
95142	urlParams_                                  gensupport.URLParams
95143	ctx_                                        context.Context
95144	header_                                     http.Header
95145}
95146
95147// DetachNetworkEndpoints: Detach a list of network endpoints from the
95148// specified network endpoint group.
95149func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
95150	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95151	c.project = project
95152	c.zone = zone
95153	c.networkEndpointGroup = networkEndpointGroup
95154	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
95155	return c
95156}
95157
95158// RequestId sets the optional parameter "requestId": An optional
95159// request ID to identify requests. Specify a unique request ID so that
95160// if you must retry your request, the server will know to ignore the
95161// request if it has already been completed.
95162//
95163// For example, consider a situation where you make an initial request
95164// and the request times out. If you make the request again with the
95165// same request ID, the server can check if original operation with the
95166// same request ID was received, and if so, will ignore the second
95167// request. This prevents clients from accidentally creating duplicate
95168// commitments.
95169//
95170// The request ID must be a valid UUID with the exception that zero UUID
95171// is not supported (00000000-0000-0000-0000-000000000000).
95172func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
95173	c.urlParams_.Set("requestId", requestId)
95174	return c
95175}
95176
95177// Fields allows partial responses to be retrieved. See
95178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95179// for more information.
95180func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
95181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95182	return c
95183}
95184
95185// Context sets the context to be used in this call's Do method. Any
95186// pending HTTP request will be aborted if the provided context is
95187// canceled.
95188func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
95189	c.ctx_ = ctx
95190	return c
95191}
95192
95193// Header returns an http.Header that can be modified by the caller to
95194// add HTTP headers to the request.
95195func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
95196	if c.header_ == nil {
95197		c.header_ = make(http.Header)
95198	}
95199	return c.header_
95200}
95201
95202func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
95203	reqHeaders := make(http.Header)
95204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95205	for k, v := range c.header_ {
95206		reqHeaders[k] = v
95207	}
95208	reqHeaders.Set("User-Agent", c.s.userAgent())
95209	var body io.Reader = nil
95210	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
95211	if err != nil {
95212		return nil, err
95213	}
95214	reqHeaders.Set("Content-Type", "application/json")
95215	c.urlParams_.Set("alt", alt)
95216	c.urlParams_.Set("prettyPrint", "false")
95217	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
95218	urls += "?" + c.urlParams_.Encode()
95219	req, err := http.NewRequest("POST", urls, body)
95220	if err != nil {
95221		return nil, err
95222	}
95223	req.Header = reqHeaders
95224	googleapi.Expand(req.URL, map[string]string{
95225		"project":              c.project,
95226		"zone":                 c.zone,
95227		"networkEndpointGroup": c.networkEndpointGroup,
95228	})
95229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95230}
95231
95232// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
95233// Exactly one of *Operation or error will be non-nil. Any non-2xx
95234// status code is an error. Response headers are in either
95235// *Operation.ServerResponse.Header or (if a response was returned at
95236// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95237// to check whether the returned error was because
95238// http.StatusNotModified was returned.
95239func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95240	gensupport.SetOptions(c.urlParams_, opts...)
95241	res, err := c.doRequest("json")
95242	if res != nil && res.StatusCode == http.StatusNotModified {
95243		if res.Body != nil {
95244			res.Body.Close()
95245		}
95246		return nil, &googleapi.Error{
95247			Code:   res.StatusCode,
95248			Header: res.Header,
95249		}
95250	}
95251	if err != nil {
95252		return nil, err
95253	}
95254	defer googleapi.CloseBody(res)
95255	if err := googleapi.CheckResponse(res); err != nil {
95256		return nil, err
95257	}
95258	ret := &Operation{
95259		ServerResponse: googleapi.ServerResponse{
95260			Header:         res.Header,
95261			HTTPStatusCode: res.StatusCode,
95262		},
95263	}
95264	target := &ret
95265	if err := gensupport.DecodeResponse(target, res); err != nil {
95266		return nil, err
95267	}
95268	return ret, nil
95269	// {
95270	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
95271	//   "httpMethod": "POST",
95272	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
95273	//   "parameterOrder": [
95274	//     "project",
95275	//     "zone",
95276	//     "networkEndpointGroup"
95277	//   ],
95278	//   "parameters": {
95279	//     "networkEndpointGroup": {
95280	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
95281	//       "location": "path",
95282	//       "required": true,
95283	//       "type": "string"
95284	//     },
95285	//     "project": {
95286	//       "description": "Project ID for this request.",
95287	//       "location": "path",
95288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95289	//       "required": true,
95290	//       "type": "string"
95291	//     },
95292	//     "requestId": {
95293	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95294	//       "location": "query",
95295	//       "type": "string"
95296	//     },
95297	//     "zone": {
95298	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
95299	//       "location": "path",
95300	//       "required": true,
95301	//       "type": "string"
95302	//     }
95303	//   },
95304	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
95305	//   "request": {
95306	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
95307	//   },
95308	//   "response": {
95309	//     "$ref": "Operation"
95310	//   },
95311	//   "scopes": [
95312	//     "https://www.googleapis.com/auth/cloud-platform",
95313	//     "https://www.googleapis.com/auth/compute"
95314	//   ]
95315	// }
95316
95317}
95318
95319// method id "compute.networkEndpointGroups.get":
95320
95321type NetworkEndpointGroupsGetCall struct {
95322	s                    *Service
95323	project              string
95324	zone                 string
95325	networkEndpointGroup string
95326	urlParams_           gensupport.URLParams
95327	ifNoneMatch_         string
95328	ctx_                 context.Context
95329	header_              http.Header
95330}
95331
95332// Get: Returns the specified network endpoint group. Gets a list of
95333// available network endpoint groups by making a list() request.
95334func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
95335	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95336	c.project = project
95337	c.zone = zone
95338	c.networkEndpointGroup = networkEndpointGroup
95339	return c
95340}
95341
95342// Fields allows partial responses to be retrieved. See
95343// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95344// for more information.
95345func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
95346	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95347	return c
95348}
95349
95350// IfNoneMatch sets the optional parameter which makes the operation
95351// fail if the object's ETag matches the given value. This is useful for
95352// getting updates only after the object has changed since the last
95353// request. Use googleapi.IsNotModified to check whether the response
95354// error from Do is the result of In-None-Match.
95355func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
95356	c.ifNoneMatch_ = entityTag
95357	return c
95358}
95359
95360// Context sets the context to be used in this call's Do method. Any
95361// pending HTTP request will be aborted if the provided context is
95362// canceled.
95363func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
95364	c.ctx_ = ctx
95365	return c
95366}
95367
95368// Header returns an http.Header that can be modified by the caller to
95369// add HTTP headers to the request.
95370func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
95371	if c.header_ == nil {
95372		c.header_ = make(http.Header)
95373	}
95374	return c.header_
95375}
95376
95377func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
95378	reqHeaders := make(http.Header)
95379	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95380	for k, v := range c.header_ {
95381		reqHeaders[k] = v
95382	}
95383	reqHeaders.Set("User-Agent", c.s.userAgent())
95384	if c.ifNoneMatch_ != "" {
95385		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95386	}
95387	var body io.Reader = nil
95388	c.urlParams_.Set("alt", alt)
95389	c.urlParams_.Set("prettyPrint", "false")
95390	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
95391	urls += "?" + c.urlParams_.Encode()
95392	req, err := http.NewRequest("GET", urls, body)
95393	if err != nil {
95394		return nil, err
95395	}
95396	req.Header = reqHeaders
95397	googleapi.Expand(req.URL, map[string]string{
95398		"project":              c.project,
95399		"zone":                 c.zone,
95400		"networkEndpointGroup": c.networkEndpointGroup,
95401	})
95402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95403}
95404
95405// Do executes the "compute.networkEndpointGroups.get" call.
95406// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
95407// non-2xx status code is an error. Response headers are in either
95408// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
95409// returned at all) in error.(*googleapi.Error).Header. Use
95410// googleapi.IsNotModified to check whether the returned error was
95411// because http.StatusNotModified was returned.
95412func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
95413	gensupport.SetOptions(c.urlParams_, opts...)
95414	res, err := c.doRequest("json")
95415	if res != nil && res.StatusCode == http.StatusNotModified {
95416		if res.Body != nil {
95417			res.Body.Close()
95418		}
95419		return nil, &googleapi.Error{
95420			Code:   res.StatusCode,
95421			Header: res.Header,
95422		}
95423	}
95424	if err != nil {
95425		return nil, err
95426	}
95427	defer googleapi.CloseBody(res)
95428	if err := googleapi.CheckResponse(res); err != nil {
95429		return nil, err
95430	}
95431	ret := &NetworkEndpointGroup{
95432		ServerResponse: googleapi.ServerResponse{
95433			Header:         res.Header,
95434			HTTPStatusCode: res.StatusCode,
95435		},
95436	}
95437	target := &ret
95438	if err := gensupport.DecodeResponse(target, res); err != nil {
95439		return nil, err
95440	}
95441	return ret, nil
95442	// {
95443	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
95444	//   "httpMethod": "GET",
95445	//   "id": "compute.networkEndpointGroups.get",
95446	//   "parameterOrder": [
95447	//     "project",
95448	//     "zone",
95449	//     "networkEndpointGroup"
95450	//   ],
95451	//   "parameters": {
95452	//     "networkEndpointGroup": {
95453	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
95454	//       "location": "path",
95455	//       "required": true,
95456	//       "type": "string"
95457	//     },
95458	//     "project": {
95459	//       "description": "Project ID for this request.",
95460	//       "location": "path",
95461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95462	//       "required": true,
95463	//       "type": "string"
95464	//     },
95465	//     "zone": {
95466	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
95467	//       "location": "path",
95468	//       "required": true,
95469	//       "type": "string"
95470	//     }
95471	//   },
95472	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
95473	//   "response": {
95474	//     "$ref": "NetworkEndpointGroup"
95475	//   },
95476	//   "scopes": [
95477	//     "https://www.googleapis.com/auth/cloud-platform",
95478	//     "https://www.googleapis.com/auth/compute",
95479	//     "https://www.googleapis.com/auth/compute.readonly"
95480	//   ]
95481	// }
95482
95483}
95484
95485// method id "compute.networkEndpointGroups.insert":
95486
95487type NetworkEndpointGroupsInsertCall struct {
95488	s                    *Service
95489	project              string
95490	zone                 string
95491	networkendpointgroup *NetworkEndpointGroup
95492	urlParams_           gensupport.URLParams
95493	ctx_                 context.Context
95494	header_              http.Header
95495}
95496
95497// Insert: Creates a network endpoint group in the specified project
95498// using the parameters that are included in the request.
95499func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
95500	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95501	c.project = project
95502	c.zone = zone
95503	c.networkendpointgroup = networkendpointgroup
95504	return c
95505}
95506
95507// RequestId sets the optional parameter "requestId": An optional
95508// request ID to identify requests. Specify a unique request ID so that
95509// if you must retry your request, the server will know to ignore the
95510// request if it has already been completed.
95511//
95512// For example, consider a situation where you make an initial request
95513// and the request times out. If you make the request again with the
95514// same request ID, the server can check if original operation with the
95515// same request ID was received, and if so, will ignore the second
95516// request. This prevents clients from accidentally creating duplicate
95517// commitments.
95518//
95519// The request ID must be a valid UUID with the exception that zero UUID
95520// is not supported (00000000-0000-0000-0000-000000000000).
95521func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
95522	c.urlParams_.Set("requestId", requestId)
95523	return c
95524}
95525
95526// Fields allows partial responses to be retrieved. See
95527// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95528// for more information.
95529func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
95530	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95531	return c
95532}
95533
95534// Context sets the context to be used in this call's Do method. Any
95535// pending HTTP request will be aborted if the provided context is
95536// canceled.
95537func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
95538	c.ctx_ = ctx
95539	return c
95540}
95541
95542// Header returns an http.Header that can be modified by the caller to
95543// add HTTP headers to the request.
95544func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
95545	if c.header_ == nil {
95546		c.header_ = make(http.Header)
95547	}
95548	return c.header_
95549}
95550
95551func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
95552	reqHeaders := make(http.Header)
95553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95554	for k, v := range c.header_ {
95555		reqHeaders[k] = v
95556	}
95557	reqHeaders.Set("User-Agent", c.s.userAgent())
95558	var body io.Reader = nil
95559	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
95560	if err != nil {
95561		return nil, err
95562	}
95563	reqHeaders.Set("Content-Type", "application/json")
95564	c.urlParams_.Set("alt", alt)
95565	c.urlParams_.Set("prettyPrint", "false")
95566	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
95567	urls += "?" + c.urlParams_.Encode()
95568	req, err := http.NewRequest("POST", urls, body)
95569	if err != nil {
95570		return nil, err
95571	}
95572	req.Header = reqHeaders
95573	googleapi.Expand(req.URL, map[string]string{
95574		"project": c.project,
95575		"zone":    c.zone,
95576	})
95577	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95578}
95579
95580// Do executes the "compute.networkEndpointGroups.insert" call.
95581// Exactly one of *Operation or error will be non-nil. Any non-2xx
95582// status code is an error. Response headers are in either
95583// *Operation.ServerResponse.Header or (if a response was returned at
95584// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95585// to check whether the returned error was because
95586// http.StatusNotModified was returned.
95587func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95588	gensupport.SetOptions(c.urlParams_, opts...)
95589	res, err := c.doRequest("json")
95590	if res != nil && res.StatusCode == http.StatusNotModified {
95591		if res.Body != nil {
95592			res.Body.Close()
95593		}
95594		return nil, &googleapi.Error{
95595			Code:   res.StatusCode,
95596			Header: res.Header,
95597		}
95598	}
95599	if err != nil {
95600		return nil, err
95601	}
95602	defer googleapi.CloseBody(res)
95603	if err := googleapi.CheckResponse(res); err != nil {
95604		return nil, err
95605	}
95606	ret := &Operation{
95607		ServerResponse: googleapi.ServerResponse{
95608			Header:         res.Header,
95609			HTTPStatusCode: res.StatusCode,
95610		},
95611	}
95612	target := &ret
95613	if err := gensupport.DecodeResponse(target, res); err != nil {
95614		return nil, err
95615	}
95616	return ret, nil
95617	// {
95618	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
95619	//   "httpMethod": "POST",
95620	//   "id": "compute.networkEndpointGroups.insert",
95621	//   "parameterOrder": [
95622	//     "project",
95623	//     "zone"
95624	//   ],
95625	//   "parameters": {
95626	//     "project": {
95627	//       "description": "Project ID for this request.",
95628	//       "location": "path",
95629	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95630	//       "required": true,
95631	//       "type": "string"
95632	//     },
95633	//     "requestId": {
95634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95635	//       "location": "query",
95636	//       "type": "string"
95637	//     },
95638	//     "zone": {
95639	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
95640	//       "location": "path",
95641	//       "required": true,
95642	//       "type": "string"
95643	//     }
95644	//   },
95645	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
95646	//   "request": {
95647	//     "$ref": "NetworkEndpointGroup"
95648	//   },
95649	//   "response": {
95650	//     "$ref": "Operation"
95651	//   },
95652	//   "scopes": [
95653	//     "https://www.googleapis.com/auth/cloud-platform",
95654	//     "https://www.googleapis.com/auth/compute"
95655	//   ]
95656	// }
95657
95658}
95659
95660// method id "compute.networkEndpointGroups.list":
95661
95662type NetworkEndpointGroupsListCall struct {
95663	s            *Service
95664	project      string
95665	zone         string
95666	urlParams_   gensupport.URLParams
95667	ifNoneMatch_ string
95668	ctx_         context.Context
95669	header_      http.Header
95670}
95671
95672// List: Retrieves the list of network endpoint groups that are located
95673// in the specified project and zone.
95674func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
95675	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95676	c.project = project
95677	c.zone = zone
95678	return c
95679}
95680
95681// Filter sets the optional parameter "filter": A filter expression that
95682// filters resources listed in the response. The expression must specify
95683// the field name, a comparison operator, and the value that you want to
95684// use for filtering. The value must be a string, a number, or a
95685// boolean. The comparison operator must be either `=`, `!=`, `>`, or
95686// `<`.
95687//
95688// For example, if you are filtering Compute Engine instances, you can
95689// exclude instances named `example-instance` by specifying `name !=
95690// example-instance`.
95691//
95692// You can also filter nested fields. For example, you could specify
95693// `scheduling.automaticRestart = false` to include instances only if
95694// they are not scheduled for automatic restarts. You can use filtering
95695// on nested fields to filter based on resource labels.
95696//
95697// To filter on multiple expressions, provide each separate expression
95698// within parentheses. For example: ``` (scheduling.automaticRestart =
95699// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
95700// is an `AND` expression. However, you can include `AND` and `OR`
95701// expressions explicitly. For example: ``` (cpuPlatform = "Intel
95702// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
95703// (scheduling.automaticRestart = true) ```
95704func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
95705	c.urlParams_.Set("filter", filter)
95706	return c
95707}
95708
95709// MaxResults sets the optional parameter "maxResults": The maximum
95710// number of results per page that should be returned. If the number of
95711// available results is larger than `maxResults`, Compute Engine returns
95712// a `nextPageToken` that can be used to get the next page of results in
95713// subsequent list requests. Acceptable values are `0` to `500`,
95714// inclusive. (Default: `500`)
95715func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
95716	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95717	return c
95718}
95719
95720// OrderBy sets the optional parameter "orderBy": Sorts list results by
95721// a certain order. By default, results are returned in alphanumerical
95722// order based on the resource name.
95723//
95724// You can also sort results in descending order based on the creation
95725// timestamp using `orderBy="creationTimestamp desc". This sorts
95726// results based on the `creationTimestamp` field in reverse
95727// chronological order (newest result first). Use this to sort resources
95728// like operations so that the newest operation is returned
95729// first.
95730//
95731// Currently, only sorting by `name` or `creationTimestamp desc` is
95732// supported.
95733func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
95734	c.urlParams_.Set("orderBy", orderBy)
95735	return c
95736}
95737
95738// PageToken sets the optional parameter "pageToken": Specifies a page
95739// token to use. Set `pageToken` to the `nextPageToken` returned by a
95740// previous list request to get the next page of results.
95741func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
95742	c.urlParams_.Set("pageToken", pageToken)
95743	return c
95744}
95745
95746// Fields allows partial responses to be retrieved. See
95747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95748// for more information.
95749func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
95750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95751	return c
95752}
95753
95754// IfNoneMatch sets the optional parameter which makes the operation
95755// fail if the object's ETag matches the given value. This is useful for
95756// getting updates only after the object has changed since the last
95757// request. Use googleapi.IsNotModified to check whether the response
95758// error from Do is the result of In-None-Match.
95759func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
95760	c.ifNoneMatch_ = entityTag
95761	return c
95762}
95763
95764// Context sets the context to be used in this call's Do method. Any
95765// pending HTTP request will be aborted if the provided context is
95766// canceled.
95767func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
95768	c.ctx_ = ctx
95769	return c
95770}
95771
95772// Header returns an http.Header that can be modified by the caller to
95773// add HTTP headers to the request.
95774func (c *NetworkEndpointGroupsListCall) Header() http.Header {
95775	if c.header_ == nil {
95776		c.header_ = make(http.Header)
95777	}
95778	return c.header_
95779}
95780
95781func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
95782	reqHeaders := make(http.Header)
95783	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
95784	for k, v := range c.header_ {
95785		reqHeaders[k] = v
95786	}
95787	reqHeaders.Set("User-Agent", c.s.userAgent())
95788	if c.ifNoneMatch_ != "" {
95789		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95790	}
95791	var body io.Reader = nil
95792	c.urlParams_.Set("alt", alt)
95793	c.urlParams_.Set("prettyPrint", "false")
95794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
95795	urls += "?" + c.urlParams_.Encode()
95796	req, err := http.NewRequest("GET", urls, body)
95797	if err != nil {
95798		return nil, err
95799	}
95800	req.Header = reqHeaders
95801	googleapi.Expand(req.URL, map[string]string{
95802		"project": c.project,
95803		"zone":    c.zone,
95804	})
95805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95806}
95807
95808// Do executes the "compute.networkEndpointGroups.list" call.
95809// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
95810// Any non-2xx status code is an error. Response headers are in either
95811// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
95812// returned at all) in error.(*googleapi.Error).Header. Use
95813// googleapi.IsNotModified to check whether the returned error was
95814// because http.StatusNotModified was returned.
95815func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
95816	gensupport.SetOptions(c.urlParams_, opts...)
95817	res, err := c.doRequest("json")
95818	if res != nil && res.StatusCode == http.StatusNotModified {
95819		if res.Body != nil {
95820			res.Body.Close()
95821		}
95822		return nil, &googleapi.Error{
95823			Code:   res.StatusCode,
95824			Header: res.Header,
95825		}
95826	}
95827	if err != nil {
95828		return nil, err
95829	}
95830	defer googleapi.CloseBody(res)
95831	if err := googleapi.CheckResponse(res); err != nil {
95832		return nil, err
95833	}
95834	ret := &NetworkEndpointGroupList{
95835		ServerResponse: googleapi.ServerResponse{
95836			Header:         res.Header,
95837			HTTPStatusCode: res.StatusCode,
95838		},
95839	}
95840	target := &ret
95841	if err := gensupport.DecodeResponse(target, res); err != nil {
95842		return nil, err
95843	}
95844	return ret, nil
95845	// {
95846	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
95847	//   "httpMethod": "GET",
95848	//   "id": "compute.networkEndpointGroups.list",
95849	//   "parameterOrder": [
95850	//     "project",
95851	//     "zone"
95852	//   ],
95853	//   "parameters": {
95854	//     "filter": {
95855	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
95856	//       "location": "query",
95857	//       "type": "string"
95858	//     },
95859	//     "maxResults": {
95860	//       "default": "500",
95861	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
95862	//       "format": "uint32",
95863	//       "location": "query",
95864	//       "minimum": "0",
95865	//       "type": "integer"
95866	//     },
95867	//     "orderBy": {
95868	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
95869	//       "location": "query",
95870	//       "type": "string"
95871	//     },
95872	//     "pageToken": {
95873	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
95874	//       "location": "query",
95875	//       "type": "string"
95876	//     },
95877	//     "project": {
95878	//       "description": "Project ID for this request.",
95879	//       "location": "path",
95880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95881	//       "required": true,
95882	//       "type": "string"
95883	//     },
95884	//     "zone": {
95885	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
95886	//       "location": "path",
95887	//       "required": true,
95888	//       "type": "string"
95889	//     }
95890	//   },
95891	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
95892	//   "response": {
95893	//     "$ref": "NetworkEndpointGroupList"
95894	//   },
95895	//   "scopes": [
95896	//     "https://www.googleapis.com/auth/cloud-platform",
95897	//     "https://www.googleapis.com/auth/compute",
95898	//     "https://www.googleapis.com/auth/compute.readonly"
95899	//   ]
95900	// }
95901
95902}
95903
95904// Pages invokes f for each page of results.
95905// A non-nil error returned from f will halt the iteration.
95906// The provided context supersedes any context provided to the Context method.
95907func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
95908	c.ctx_ = ctx
95909	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
95910	for {
95911		x, err := c.Do()
95912		if err != nil {
95913			return err
95914		}
95915		if err := f(x); err != nil {
95916			return err
95917		}
95918		if x.NextPageToken == "" {
95919			return nil
95920		}
95921		c.PageToken(x.NextPageToken)
95922	}
95923}
95924
95925// method id "compute.networkEndpointGroups.listNetworkEndpoints":
95926
95927type NetworkEndpointGroupsListNetworkEndpointsCall struct {
95928	s                                         *Service
95929	project                                   string
95930	zone                                      string
95931	networkEndpointGroup                      string
95932	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
95933	urlParams_                                gensupport.URLParams
95934	ctx_                                      context.Context
95935	header_                                   http.Header
95936}
95937
95938// ListNetworkEndpoints: Lists the network endpoints in the specified
95939// network endpoint group.
95940func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
95941	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95942	c.project = project
95943	c.zone = zone
95944	c.networkEndpointGroup = networkEndpointGroup
95945	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
95946	return c
95947}
95948
95949// Filter sets the optional parameter "filter": A filter expression that
95950// filters resources listed in the response. The expression must specify
95951// the field name, a comparison operator, and the value that you want to
95952// use for filtering. The value must be a string, a number, or a
95953// boolean. The comparison operator must be either `=`, `!=`, `>`, or
95954// `<`.
95955//
95956// For example, if you are filtering Compute Engine instances, you can
95957// exclude instances named `example-instance` by specifying `name !=
95958// example-instance`.
95959//
95960// You can also filter nested fields. For example, you could specify
95961// `scheduling.automaticRestart = false` to include instances only if
95962// they are not scheduled for automatic restarts. You can use filtering
95963// on nested fields to filter based on resource labels.
95964//
95965// To filter on multiple expressions, provide each separate expression
95966// within parentheses. For example: ``` (scheduling.automaticRestart =
95967// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
95968// is an `AND` expression. However, you can include `AND` and `OR`
95969// expressions explicitly. For example: ``` (cpuPlatform = "Intel
95970// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
95971// (scheduling.automaticRestart = true) ```
95972func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
95973	c.urlParams_.Set("filter", filter)
95974	return c
95975}
95976
95977// MaxResults sets the optional parameter "maxResults": The maximum
95978// number of results per page that should be returned. If the number of
95979// available results is larger than `maxResults`, Compute Engine returns
95980// a `nextPageToken` that can be used to get the next page of results in
95981// subsequent list requests. Acceptable values are `0` to `500`,
95982// inclusive. (Default: `500`)
95983func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
95984	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95985	return c
95986}
95987
95988// OrderBy sets the optional parameter "orderBy": Sorts list results by
95989// a certain order. By default, results are returned in alphanumerical
95990// order based on the resource name.
95991//
95992// You can also sort results in descending order based on the creation
95993// timestamp using `orderBy="creationTimestamp desc". This sorts
95994// results based on the `creationTimestamp` field in reverse
95995// chronological order (newest result first). Use this to sort resources
95996// like operations so that the newest operation is returned
95997// first.
95998//
95999// Currently, only sorting by `name` or `creationTimestamp desc` is
96000// supported.
96001func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
96002	c.urlParams_.Set("orderBy", orderBy)
96003	return c
96004}
96005
96006// PageToken sets the optional parameter "pageToken": Specifies a page
96007// token to use. Set `pageToken` to the `nextPageToken` returned by a
96008// previous list request to get the next page of results.
96009func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
96010	c.urlParams_.Set("pageToken", pageToken)
96011	return c
96012}
96013
96014// Fields allows partial responses to be retrieved. See
96015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96016// for more information.
96017func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
96018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96019	return c
96020}
96021
96022// Context sets the context to be used in this call's Do method. Any
96023// pending HTTP request will be aborted if the provided context is
96024// canceled.
96025func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
96026	c.ctx_ = ctx
96027	return c
96028}
96029
96030// Header returns an http.Header that can be modified by the caller to
96031// add HTTP headers to the request.
96032func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
96033	if c.header_ == nil {
96034		c.header_ = make(http.Header)
96035	}
96036	return c.header_
96037}
96038
96039func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
96040	reqHeaders := make(http.Header)
96041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96042	for k, v := range c.header_ {
96043		reqHeaders[k] = v
96044	}
96045	reqHeaders.Set("User-Agent", c.s.userAgent())
96046	var body io.Reader = nil
96047	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
96048	if err != nil {
96049		return nil, err
96050	}
96051	reqHeaders.Set("Content-Type", "application/json")
96052	c.urlParams_.Set("alt", alt)
96053	c.urlParams_.Set("prettyPrint", "false")
96054	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
96055	urls += "?" + c.urlParams_.Encode()
96056	req, err := http.NewRequest("POST", urls, body)
96057	if err != nil {
96058		return nil, err
96059	}
96060	req.Header = reqHeaders
96061	googleapi.Expand(req.URL, map[string]string{
96062		"project":              c.project,
96063		"zone":                 c.zone,
96064		"networkEndpointGroup": c.networkEndpointGroup,
96065	})
96066	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96067}
96068
96069// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
96070// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
96071// will be non-nil. Any non-2xx status code is an error. Response
96072// headers are in either
96073// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
96074// (if a response was returned at all) in
96075// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
96076// whether the returned error was because http.StatusNotModified was
96077// returned.
96078func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
96079	gensupport.SetOptions(c.urlParams_, opts...)
96080	res, err := c.doRequest("json")
96081	if res != nil && res.StatusCode == http.StatusNotModified {
96082		if res.Body != nil {
96083			res.Body.Close()
96084		}
96085		return nil, &googleapi.Error{
96086			Code:   res.StatusCode,
96087			Header: res.Header,
96088		}
96089	}
96090	if err != nil {
96091		return nil, err
96092	}
96093	defer googleapi.CloseBody(res)
96094	if err := googleapi.CheckResponse(res); err != nil {
96095		return nil, err
96096	}
96097	ret := &NetworkEndpointGroupsListNetworkEndpoints{
96098		ServerResponse: googleapi.ServerResponse{
96099			Header:         res.Header,
96100			HTTPStatusCode: res.StatusCode,
96101		},
96102	}
96103	target := &ret
96104	if err := gensupport.DecodeResponse(target, res); err != nil {
96105		return nil, err
96106	}
96107	return ret, nil
96108	// {
96109	//   "description": "Lists the network endpoints in the specified network endpoint group.",
96110	//   "httpMethod": "POST",
96111	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
96112	//   "parameterOrder": [
96113	//     "project",
96114	//     "zone",
96115	//     "networkEndpointGroup"
96116	//   ],
96117	//   "parameters": {
96118	//     "filter": {
96119	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
96120	//       "location": "query",
96121	//       "type": "string"
96122	//     },
96123	//     "maxResults": {
96124	//       "default": "500",
96125	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96126	//       "format": "uint32",
96127	//       "location": "query",
96128	//       "minimum": "0",
96129	//       "type": "integer"
96130	//     },
96131	//     "networkEndpointGroup": {
96132	//       "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.",
96133	//       "location": "path",
96134	//       "required": true,
96135	//       "type": "string"
96136	//     },
96137	//     "orderBy": {
96138	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
96139	//       "location": "query",
96140	//       "type": "string"
96141	//     },
96142	//     "pageToken": {
96143	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96144	//       "location": "query",
96145	//       "type": "string"
96146	//     },
96147	//     "project": {
96148	//       "description": "Project ID for this request.",
96149	//       "location": "path",
96150	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96151	//       "required": true,
96152	//       "type": "string"
96153	//     },
96154	//     "zone": {
96155	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
96156	//       "location": "path",
96157	//       "required": true,
96158	//       "type": "string"
96159	//     }
96160	//   },
96161	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
96162	//   "request": {
96163	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
96164	//   },
96165	//   "response": {
96166	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
96167	//   },
96168	//   "scopes": [
96169	//     "https://www.googleapis.com/auth/cloud-platform",
96170	//     "https://www.googleapis.com/auth/compute",
96171	//     "https://www.googleapis.com/auth/compute.readonly"
96172	//   ]
96173	// }
96174
96175}
96176
96177// Pages invokes f for each page of results.
96178// A non-nil error returned from f will halt the iteration.
96179// The provided context supersedes any context provided to the Context method.
96180func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
96181	c.ctx_ = ctx
96182	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96183	for {
96184		x, err := c.Do()
96185		if err != nil {
96186			return err
96187		}
96188		if err := f(x); err != nil {
96189			return err
96190		}
96191		if x.NextPageToken == "" {
96192			return nil
96193		}
96194		c.PageToken(x.NextPageToken)
96195	}
96196}
96197
96198// method id "compute.networkEndpointGroups.testIamPermissions":
96199
96200type NetworkEndpointGroupsTestIamPermissionsCall struct {
96201	s                      *Service
96202	project                string
96203	zone                   string
96204	resource               string
96205	testpermissionsrequest *TestPermissionsRequest
96206	urlParams_             gensupport.URLParams
96207	ctx_                   context.Context
96208	header_                http.Header
96209}
96210
96211// TestIamPermissions: Returns permissions that a caller has on the
96212// specified resource.
96213func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
96214	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96215	c.project = project
96216	c.zone = zone
96217	c.resource = resource
96218	c.testpermissionsrequest = testpermissionsrequest
96219	return c
96220}
96221
96222// Fields allows partial responses to be retrieved. See
96223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96224// for more information.
96225func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
96226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96227	return c
96228}
96229
96230// Context sets the context to be used in this call's Do method. Any
96231// pending HTTP request will be aborted if the provided context is
96232// canceled.
96233func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
96234	c.ctx_ = ctx
96235	return c
96236}
96237
96238// Header returns an http.Header that can be modified by the caller to
96239// add HTTP headers to the request.
96240func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
96241	if c.header_ == nil {
96242		c.header_ = make(http.Header)
96243	}
96244	return c.header_
96245}
96246
96247func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
96248	reqHeaders := make(http.Header)
96249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96250	for k, v := range c.header_ {
96251		reqHeaders[k] = v
96252	}
96253	reqHeaders.Set("User-Agent", c.s.userAgent())
96254	var body io.Reader = nil
96255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
96256	if err != nil {
96257		return nil, err
96258	}
96259	reqHeaders.Set("Content-Type", "application/json")
96260	c.urlParams_.Set("alt", alt)
96261	c.urlParams_.Set("prettyPrint", "false")
96262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
96263	urls += "?" + c.urlParams_.Encode()
96264	req, err := http.NewRequest("POST", urls, body)
96265	if err != nil {
96266		return nil, err
96267	}
96268	req.Header = reqHeaders
96269	googleapi.Expand(req.URL, map[string]string{
96270		"project":  c.project,
96271		"zone":     c.zone,
96272		"resource": c.resource,
96273	})
96274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96275}
96276
96277// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
96278// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
96279// non-2xx status code is an error. Response headers are in either
96280// *TestPermissionsResponse.ServerResponse.Header or (if a response was
96281// returned at all) in error.(*googleapi.Error).Header. Use
96282// googleapi.IsNotModified to check whether the returned error was
96283// because http.StatusNotModified was returned.
96284func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
96285	gensupport.SetOptions(c.urlParams_, opts...)
96286	res, err := c.doRequest("json")
96287	if res != nil && res.StatusCode == http.StatusNotModified {
96288		if res.Body != nil {
96289			res.Body.Close()
96290		}
96291		return nil, &googleapi.Error{
96292			Code:   res.StatusCode,
96293			Header: res.Header,
96294		}
96295	}
96296	if err != nil {
96297		return nil, err
96298	}
96299	defer googleapi.CloseBody(res)
96300	if err := googleapi.CheckResponse(res); err != nil {
96301		return nil, err
96302	}
96303	ret := &TestPermissionsResponse{
96304		ServerResponse: googleapi.ServerResponse{
96305			Header:         res.Header,
96306			HTTPStatusCode: res.StatusCode,
96307		},
96308	}
96309	target := &ret
96310	if err := gensupport.DecodeResponse(target, res); err != nil {
96311		return nil, err
96312	}
96313	return ret, nil
96314	// {
96315	//   "description": "Returns permissions that a caller has on the specified resource.",
96316	//   "httpMethod": "POST",
96317	//   "id": "compute.networkEndpointGroups.testIamPermissions",
96318	//   "parameterOrder": [
96319	//     "project",
96320	//     "zone",
96321	//     "resource"
96322	//   ],
96323	//   "parameters": {
96324	//     "project": {
96325	//       "description": "Project ID for this request.",
96326	//       "location": "path",
96327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96328	//       "required": true,
96329	//       "type": "string"
96330	//     },
96331	//     "resource": {
96332	//       "description": "Name or id of the resource for this request.",
96333	//       "location": "path",
96334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96335	//       "required": true,
96336	//       "type": "string"
96337	//     },
96338	//     "zone": {
96339	//       "description": "The name of the zone for this request.",
96340	//       "location": "path",
96341	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96342	//       "required": true,
96343	//       "type": "string"
96344	//     }
96345	//   },
96346	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
96347	//   "request": {
96348	//     "$ref": "TestPermissionsRequest"
96349	//   },
96350	//   "response": {
96351	//     "$ref": "TestPermissionsResponse"
96352	//   },
96353	//   "scopes": [
96354	//     "https://www.googleapis.com/auth/cloud-platform",
96355	//     "https://www.googleapis.com/auth/compute",
96356	//     "https://www.googleapis.com/auth/compute.readonly"
96357	//   ]
96358	// }
96359
96360}
96361
96362// method id "compute.networks.addPeering":
96363
96364type NetworksAddPeeringCall struct {
96365	s                         *Service
96366	project                   string
96367	network                   string
96368	networksaddpeeringrequest *NetworksAddPeeringRequest
96369	urlParams_                gensupport.URLParams
96370	ctx_                      context.Context
96371	header_                   http.Header
96372}
96373
96374// AddPeering: Adds a peering to the specified network.
96375func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
96376	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96377	c.project = project
96378	c.network = network
96379	c.networksaddpeeringrequest = networksaddpeeringrequest
96380	return c
96381}
96382
96383// RequestId sets the optional parameter "requestId": An optional
96384// request ID to identify requests. Specify a unique request ID so that
96385// if you must retry your request, the server will know to ignore the
96386// request if it has already been completed.
96387//
96388// For example, consider a situation where you make an initial request
96389// and the request times out. If you make the request again with the
96390// same request ID, the server can check if original operation with the
96391// same request ID was received, and if so, will ignore the second
96392// request. This prevents clients from accidentally creating duplicate
96393// commitments.
96394//
96395// The request ID must be a valid UUID with the exception that zero UUID
96396// is not supported (00000000-0000-0000-0000-000000000000).
96397func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
96398	c.urlParams_.Set("requestId", requestId)
96399	return c
96400}
96401
96402// Fields allows partial responses to be retrieved. See
96403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96404// for more information.
96405func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
96406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96407	return c
96408}
96409
96410// Context sets the context to be used in this call's Do method. Any
96411// pending HTTP request will be aborted if the provided context is
96412// canceled.
96413func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
96414	c.ctx_ = ctx
96415	return c
96416}
96417
96418// Header returns an http.Header that can be modified by the caller to
96419// add HTTP headers to the request.
96420func (c *NetworksAddPeeringCall) Header() http.Header {
96421	if c.header_ == nil {
96422		c.header_ = make(http.Header)
96423	}
96424	return c.header_
96425}
96426
96427func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
96428	reqHeaders := make(http.Header)
96429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96430	for k, v := range c.header_ {
96431		reqHeaders[k] = v
96432	}
96433	reqHeaders.Set("User-Agent", c.s.userAgent())
96434	var body io.Reader = nil
96435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
96436	if err != nil {
96437		return nil, err
96438	}
96439	reqHeaders.Set("Content-Type", "application/json")
96440	c.urlParams_.Set("alt", alt)
96441	c.urlParams_.Set("prettyPrint", "false")
96442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
96443	urls += "?" + c.urlParams_.Encode()
96444	req, err := http.NewRequest("POST", urls, body)
96445	if err != nil {
96446		return nil, err
96447	}
96448	req.Header = reqHeaders
96449	googleapi.Expand(req.URL, map[string]string{
96450		"project": c.project,
96451		"network": c.network,
96452	})
96453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96454}
96455
96456// Do executes the "compute.networks.addPeering" call.
96457// Exactly one of *Operation or error will be non-nil. Any non-2xx
96458// status code is an error. Response headers are in either
96459// *Operation.ServerResponse.Header or (if a response was returned at
96460// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96461// to check whether the returned error was because
96462// http.StatusNotModified was returned.
96463func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96464	gensupport.SetOptions(c.urlParams_, opts...)
96465	res, err := c.doRequest("json")
96466	if res != nil && res.StatusCode == http.StatusNotModified {
96467		if res.Body != nil {
96468			res.Body.Close()
96469		}
96470		return nil, &googleapi.Error{
96471			Code:   res.StatusCode,
96472			Header: res.Header,
96473		}
96474	}
96475	if err != nil {
96476		return nil, err
96477	}
96478	defer googleapi.CloseBody(res)
96479	if err := googleapi.CheckResponse(res); err != nil {
96480		return nil, err
96481	}
96482	ret := &Operation{
96483		ServerResponse: googleapi.ServerResponse{
96484			Header:         res.Header,
96485			HTTPStatusCode: res.StatusCode,
96486		},
96487	}
96488	target := &ret
96489	if err := gensupport.DecodeResponse(target, res); err != nil {
96490		return nil, err
96491	}
96492	return ret, nil
96493	// {
96494	//   "description": "Adds a peering to the specified network.",
96495	//   "httpMethod": "POST",
96496	//   "id": "compute.networks.addPeering",
96497	//   "parameterOrder": [
96498	//     "project",
96499	//     "network"
96500	//   ],
96501	//   "parameters": {
96502	//     "network": {
96503	//       "description": "Name of the network resource to add peering to.",
96504	//       "location": "path",
96505	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96506	//       "required": true,
96507	//       "type": "string"
96508	//     },
96509	//     "project": {
96510	//       "description": "Project ID for this request.",
96511	//       "location": "path",
96512	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96513	//       "required": true,
96514	//       "type": "string"
96515	//     },
96516	//     "requestId": {
96517	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96518	//       "location": "query",
96519	//       "type": "string"
96520	//     }
96521	//   },
96522	//   "path": "{project}/global/networks/{network}/addPeering",
96523	//   "request": {
96524	//     "$ref": "NetworksAddPeeringRequest"
96525	//   },
96526	//   "response": {
96527	//     "$ref": "Operation"
96528	//   },
96529	//   "scopes": [
96530	//     "https://www.googleapis.com/auth/cloud-platform",
96531	//     "https://www.googleapis.com/auth/compute"
96532	//   ]
96533	// }
96534
96535}
96536
96537// method id "compute.networks.delete":
96538
96539type NetworksDeleteCall struct {
96540	s          *Service
96541	project    string
96542	network    string
96543	urlParams_ gensupport.URLParams
96544	ctx_       context.Context
96545	header_    http.Header
96546}
96547
96548// Delete: Deletes the specified network.
96549// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
96550func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
96551	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96552	c.project = project
96553	c.network = network
96554	return c
96555}
96556
96557// RequestId sets the optional parameter "requestId": An optional
96558// request ID to identify requests. Specify a unique request ID so that
96559// if you must retry your request, the server will know to ignore the
96560// request if it has already been completed.
96561//
96562// For example, consider a situation where you make an initial request
96563// and the request times out. If you make the request again with the
96564// same request ID, the server can check if original operation with the
96565// same request ID was received, and if so, will ignore the second
96566// request. This prevents clients from accidentally creating duplicate
96567// commitments.
96568//
96569// The request ID must be a valid UUID with the exception that zero UUID
96570// is not supported (00000000-0000-0000-0000-000000000000).
96571func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
96572	c.urlParams_.Set("requestId", requestId)
96573	return c
96574}
96575
96576// Fields allows partial responses to be retrieved. See
96577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96578// for more information.
96579func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
96580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96581	return c
96582}
96583
96584// Context sets the context to be used in this call's Do method. Any
96585// pending HTTP request will be aborted if the provided context is
96586// canceled.
96587func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
96588	c.ctx_ = ctx
96589	return c
96590}
96591
96592// Header returns an http.Header that can be modified by the caller to
96593// add HTTP headers to the request.
96594func (c *NetworksDeleteCall) Header() http.Header {
96595	if c.header_ == nil {
96596		c.header_ = make(http.Header)
96597	}
96598	return c.header_
96599}
96600
96601func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
96602	reqHeaders := make(http.Header)
96603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96604	for k, v := range c.header_ {
96605		reqHeaders[k] = v
96606	}
96607	reqHeaders.Set("User-Agent", c.s.userAgent())
96608	var body io.Reader = nil
96609	c.urlParams_.Set("alt", alt)
96610	c.urlParams_.Set("prettyPrint", "false")
96611	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
96612	urls += "?" + c.urlParams_.Encode()
96613	req, err := http.NewRequest("DELETE", urls, body)
96614	if err != nil {
96615		return nil, err
96616	}
96617	req.Header = reqHeaders
96618	googleapi.Expand(req.URL, map[string]string{
96619		"project": c.project,
96620		"network": c.network,
96621	})
96622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96623}
96624
96625// Do executes the "compute.networks.delete" call.
96626// Exactly one of *Operation or error will be non-nil. Any non-2xx
96627// status code is an error. Response headers are in either
96628// *Operation.ServerResponse.Header or (if a response was returned at
96629// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96630// to check whether the returned error was because
96631// http.StatusNotModified was returned.
96632func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96633	gensupport.SetOptions(c.urlParams_, opts...)
96634	res, err := c.doRequest("json")
96635	if res != nil && res.StatusCode == http.StatusNotModified {
96636		if res.Body != nil {
96637			res.Body.Close()
96638		}
96639		return nil, &googleapi.Error{
96640			Code:   res.StatusCode,
96641			Header: res.Header,
96642		}
96643	}
96644	if err != nil {
96645		return nil, err
96646	}
96647	defer googleapi.CloseBody(res)
96648	if err := googleapi.CheckResponse(res); err != nil {
96649		return nil, err
96650	}
96651	ret := &Operation{
96652		ServerResponse: googleapi.ServerResponse{
96653			Header:         res.Header,
96654			HTTPStatusCode: res.StatusCode,
96655		},
96656	}
96657	target := &ret
96658	if err := gensupport.DecodeResponse(target, res); err != nil {
96659		return nil, err
96660	}
96661	return ret, nil
96662	// {
96663	//   "description": "Deletes the specified network.",
96664	//   "httpMethod": "DELETE",
96665	//   "id": "compute.networks.delete",
96666	//   "parameterOrder": [
96667	//     "project",
96668	//     "network"
96669	//   ],
96670	//   "parameters": {
96671	//     "network": {
96672	//       "description": "Name of the network to delete.",
96673	//       "location": "path",
96674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96675	//       "required": true,
96676	//       "type": "string"
96677	//     },
96678	//     "project": {
96679	//       "description": "Project ID for this request.",
96680	//       "location": "path",
96681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96682	//       "required": true,
96683	//       "type": "string"
96684	//     },
96685	//     "requestId": {
96686	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96687	//       "location": "query",
96688	//       "type": "string"
96689	//     }
96690	//   },
96691	//   "path": "{project}/global/networks/{network}",
96692	//   "response": {
96693	//     "$ref": "Operation"
96694	//   },
96695	//   "scopes": [
96696	//     "https://www.googleapis.com/auth/cloud-platform",
96697	//     "https://www.googleapis.com/auth/compute"
96698	//   ]
96699	// }
96700
96701}
96702
96703// method id "compute.networks.get":
96704
96705type NetworksGetCall struct {
96706	s            *Service
96707	project      string
96708	network      string
96709	urlParams_   gensupport.URLParams
96710	ifNoneMatch_ string
96711	ctx_         context.Context
96712	header_      http.Header
96713}
96714
96715// Get: Returns the specified network. Gets a list of available networks
96716// by making a list() request.
96717// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
96718func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
96719	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96720	c.project = project
96721	c.network = network
96722	return c
96723}
96724
96725// Fields allows partial responses to be retrieved. See
96726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96727// for more information.
96728func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
96729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96730	return c
96731}
96732
96733// IfNoneMatch sets the optional parameter which makes the operation
96734// fail if the object's ETag matches the given value. This is useful for
96735// getting updates only after the object has changed since the last
96736// request. Use googleapi.IsNotModified to check whether the response
96737// error from Do is the result of In-None-Match.
96738func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
96739	c.ifNoneMatch_ = entityTag
96740	return c
96741}
96742
96743// Context sets the context to be used in this call's Do method. Any
96744// pending HTTP request will be aborted if the provided context is
96745// canceled.
96746func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
96747	c.ctx_ = ctx
96748	return c
96749}
96750
96751// Header returns an http.Header that can be modified by the caller to
96752// add HTTP headers to the request.
96753func (c *NetworksGetCall) Header() http.Header {
96754	if c.header_ == nil {
96755		c.header_ = make(http.Header)
96756	}
96757	return c.header_
96758}
96759
96760func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
96761	reqHeaders := make(http.Header)
96762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96763	for k, v := range c.header_ {
96764		reqHeaders[k] = v
96765	}
96766	reqHeaders.Set("User-Agent", c.s.userAgent())
96767	if c.ifNoneMatch_ != "" {
96768		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96769	}
96770	var body io.Reader = nil
96771	c.urlParams_.Set("alt", alt)
96772	c.urlParams_.Set("prettyPrint", "false")
96773	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
96774	urls += "?" + c.urlParams_.Encode()
96775	req, err := http.NewRequest("GET", urls, body)
96776	if err != nil {
96777		return nil, err
96778	}
96779	req.Header = reqHeaders
96780	googleapi.Expand(req.URL, map[string]string{
96781		"project": c.project,
96782		"network": c.network,
96783	})
96784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96785}
96786
96787// Do executes the "compute.networks.get" call.
96788// Exactly one of *Network or error will be non-nil. Any non-2xx status
96789// code is an error. Response headers are in either
96790// *Network.ServerResponse.Header or (if a response was returned at all)
96791// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96792// check whether the returned error was because http.StatusNotModified
96793// was returned.
96794func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
96795	gensupport.SetOptions(c.urlParams_, opts...)
96796	res, err := c.doRequest("json")
96797	if res != nil && res.StatusCode == http.StatusNotModified {
96798		if res.Body != nil {
96799			res.Body.Close()
96800		}
96801		return nil, &googleapi.Error{
96802			Code:   res.StatusCode,
96803			Header: res.Header,
96804		}
96805	}
96806	if err != nil {
96807		return nil, err
96808	}
96809	defer googleapi.CloseBody(res)
96810	if err := googleapi.CheckResponse(res); err != nil {
96811		return nil, err
96812	}
96813	ret := &Network{
96814		ServerResponse: googleapi.ServerResponse{
96815			Header:         res.Header,
96816			HTTPStatusCode: res.StatusCode,
96817		},
96818	}
96819	target := &ret
96820	if err := gensupport.DecodeResponse(target, res); err != nil {
96821		return nil, err
96822	}
96823	return ret, nil
96824	// {
96825	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
96826	//   "httpMethod": "GET",
96827	//   "id": "compute.networks.get",
96828	//   "parameterOrder": [
96829	//     "project",
96830	//     "network"
96831	//   ],
96832	//   "parameters": {
96833	//     "network": {
96834	//       "description": "Name of the network to return.",
96835	//       "location": "path",
96836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96837	//       "required": true,
96838	//       "type": "string"
96839	//     },
96840	//     "project": {
96841	//       "description": "Project ID for this request.",
96842	//       "location": "path",
96843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96844	//       "required": true,
96845	//       "type": "string"
96846	//     }
96847	//   },
96848	//   "path": "{project}/global/networks/{network}",
96849	//   "response": {
96850	//     "$ref": "Network"
96851	//   },
96852	//   "scopes": [
96853	//     "https://www.googleapis.com/auth/cloud-platform",
96854	//     "https://www.googleapis.com/auth/compute",
96855	//     "https://www.googleapis.com/auth/compute.readonly"
96856	//   ]
96857	// }
96858
96859}
96860
96861// method id "compute.networks.getEffectiveFirewalls":
96862
96863type NetworksGetEffectiveFirewallsCall struct {
96864	s            *Service
96865	project      string
96866	network      string
96867	urlParams_   gensupport.URLParams
96868	ifNoneMatch_ string
96869	ctx_         context.Context
96870	header_      http.Header
96871}
96872
96873// GetEffectiveFirewalls: Returns the effective firewalls on a given
96874// network.
96875func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
96876	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96877	c.project = project
96878	c.network = network
96879	return c
96880}
96881
96882// Fields allows partial responses to be retrieved. See
96883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96884// for more information.
96885func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
96886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96887	return c
96888}
96889
96890// IfNoneMatch sets the optional parameter which makes the operation
96891// fail if the object's ETag matches the given value. This is useful for
96892// getting updates only after the object has changed since the last
96893// request. Use googleapi.IsNotModified to check whether the response
96894// error from Do is the result of In-None-Match.
96895func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
96896	c.ifNoneMatch_ = entityTag
96897	return c
96898}
96899
96900// Context sets the context to be used in this call's Do method. Any
96901// pending HTTP request will be aborted if the provided context is
96902// canceled.
96903func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
96904	c.ctx_ = ctx
96905	return c
96906}
96907
96908// Header returns an http.Header that can be modified by the caller to
96909// add HTTP headers to the request.
96910func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
96911	if c.header_ == nil {
96912		c.header_ = make(http.Header)
96913	}
96914	return c.header_
96915}
96916
96917func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
96918	reqHeaders := make(http.Header)
96919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
96920	for k, v := range c.header_ {
96921		reqHeaders[k] = v
96922	}
96923	reqHeaders.Set("User-Agent", c.s.userAgent())
96924	if c.ifNoneMatch_ != "" {
96925		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96926	}
96927	var body io.Reader = nil
96928	c.urlParams_.Set("alt", alt)
96929	c.urlParams_.Set("prettyPrint", "false")
96930	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/getEffectiveFirewalls")
96931	urls += "?" + c.urlParams_.Encode()
96932	req, err := http.NewRequest("GET", urls, body)
96933	if err != nil {
96934		return nil, err
96935	}
96936	req.Header = reqHeaders
96937	googleapi.Expand(req.URL, map[string]string{
96938		"project": c.project,
96939		"network": c.network,
96940	})
96941	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96942}
96943
96944// Do executes the "compute.networks.getEffectiveFirewalls" call.
96945// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
96946// be non-nil. Any non-2xx status code is an error. Response headers are
96947// in either
96948// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
96949// response was returned at all) in error.(*googleapi.Error).Header. Use
96950// googleapi.IsNotModified to check whether the returned error was
96951// because http.StatusNotModified was returned.
96952func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
96953	gensupport.SetOptions(c.urlParams_, opts...)
96954	res, err := c.doRequest("json")
96955	if res != nil && res.StatusCode == http.StatusNotModified {
96956		if res.Body != nil {
96957			res.Body.Close()
96958		}
96959		return nil, &googleapi.Error{
96960			Code:   res.StatusCode,
96961			Header: res.Header,
96962		}
96963	}
96964	if err != nil {
96965		return nil, err
96966	}
96967	defer googleapi.CloseBody(res)
96968	if err := googleapi.CheckResponse(res); err != nil {
96969		return nil, err
96970	}
96971	ret := &NetworksGetEffectiveFirewallsResponse{
96972		ServerResponse: googleapi.ServerResponse{
96973			Header:         res.Header,
96974			HTTPStatusCode: res.StatusCode,
96975		},
96976	}
96977	target := &ret
96978	if err := gensupport.DecodeResponse(target, res); err != nil {
96979		return nil, err
96980	}
96981	return ret, nil
96982	// {
96983	//   "description": "Returns the effective firewalls on a given network.",
96984	//   "httpMethod": "GET",
96985	//   "id": "compute.networks.getEffectiveFirewalls",
96986	//   "parameterOrder": [
96987	//     "project",
96988	//     "network"
96989	//   ],
96990	//   "parameters": {
96991	//     "network": {
96992	//       "description": "Name of the network for this request.",
96993	//       "location": "path",
96994	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96995	//       "required": true,
96996	//       "type": "string"
96997	//     },
96998	//     "project": {
96999	//       "description": "Project ID for this request.",
97000	//       "location": "path",
97001	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97002	//       "required": true,
97003	//       "type": "string"
97004	//     }
97005	//   },
97006	//   "path": "{project}/global/networks/{network}/getEffectiveFirewalls",
97007	//   "response": {
97008	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
97009	//   },
97010	//   "scopes": [
97011	//     "https://www.googleapis.com/auth/cloud-platform",
97012	//     "https://www.googleapis.com/auth/compute",
97013	//     "https://www.googleapis.com/auth/compute.readonly"
97014	//   ]
97015	// }
97016
97017}
97018
97019// method id "compute.networks.insert":
97020
97021type NetworksInsertCall struct {
97022	s          *Service
97023	project    string
97024	network    *Network
97025	urlParams_ gensupport.URLParams
97026	ctx_       context.Context
97027	header_    http.Header
97028}
97029
97030// Insert: Creates a network in the specified project using the data
97031// included in the request.
97032// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
97033func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
97034	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97035	c.project = project
97036	c.network = network
97037	return c
97038}
97039
97040// RequestId sets the optional parameter "requestId": An optional
97041// request ID to identify requests. Specify a unique request ID so that
97042// if you must retry your request, the server will know to ignore the
97043// request if it has already been completed.
97044//
97045// For example, consider a situation where you make an initial request
97046// and the request times out. If you make the request again with the
97047// same request ID, the server can check if original operation with the
97048// same request ID was received, and if so, will ignore the second
97049// request. This prevents clients from accidentally creating duplicate
97050// commitments.
97051//
97052// The request ID must be a valid UUID with the exception that zero UUID
97053// is not supported (00000000-0000-0000-0000-000000000000).
97054func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
97055	c.urlParams_.Set("requestId", requestId)
97056	return c
97057}
97058
97059// Fields allows partial responses to be retrieved. See
97060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97061// for more information.
97062func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
97063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97064	return c
97065}
97066
97067// Context sets the context to be used in this call's Do method. Any
97068// pending HTTP request will be aborted if the provided context is
97069// canceled.
97070func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
97071	c.ctx_ = ctx
97072	return c
97073}
97074
97075// Header returns an http.Header that can be modified by the caller to
97076// add HTTP headers to the request.
97077func (c *NetworksInsertCall) Header() http.Header {
97078	if c.header_ == nil {
97079		c.header_ = make(http.Header)
97080	}
97081	return c.header_
97082}
97083
97084func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
97085	reqHeaders := make(http.Header)
97086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97087	for k, v := range c.header_ {
97088		reqHeaders[k] = v
97089	}
97090	reqHeaders.Set("User-Agent", c.s.userAgent())
97091	var body io.Reader = nil
97092	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
97093	if err != nil {
97094		return nil, err
97095	}
97096	reqHeaders.Set("Content-Type", "application/json")
97097	c.urlParams_.Set("alt", alt)
97098	c.urlParams_.Set("prettyPrint", "false")
97099	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
97100	urls += "?" + c.urlParams_.Encode()
97101	req, err := http.NewRequest("POST", urls, body)
97102	if err != nil {
97103		return nil, err
97104	}
97105	req.Header = reqHeaders
97106	googleapi.Expand(req.URL, map[string]string{
97107		"project": c.project,
97108	})
97109	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97110}
97111
97112// Do executes the "compute.networks.insert" call.
97113// Exactly one of *Operation or error will be non-nil. Any non-2xx
97114// status code is an error. Response headers are in either
97115// *Operation.ServerResponse.Header or (if a response was returned at
97116// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97117// to check whether the returned error was because
97118// http.StatusNotModified was returned.
97119func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97120	gensupport.SetOptions(c.urlParams_, opts...)
97121	res, err := c.doRequest("json")
97122	if res != nil && res.StatusCode == http.StatusNotModified {
97123		if res.Body != nil {
97124			res.Body.Close()
97125		}
97126		return nil, &googleapi.Error{
97127			Code:   res.StatusCode,
97128			Header: res.Header,
97129		}
97130	}
97131	if err != nil {
97132		return nil, err
97133	}
97134	defer googleapi.CloseBody(res)
97135	if err := googleapi.CheckResponse(res); err != nil {
97136		return nil, err
97137	}
97138	ret := &Operation{
97139		ServerResponse: googleapi.ServerResponse{
97140			Header:         res.Header,
97141			HTTPStatusCode: res.StatusCode,
97142		},
97143	}
97144	target := &ret
97145	if err := gensupport.DecodeResponse(target, res); err != nil {
97146		return nil, err
97147	}
97148	return ret, nil
97149	// {
97150	//   "description": "Creates a network in the specified project using the data included in the request.",
97151	//   "httpMethod": "POST",
97152	//   "id": "compute.networks.insert",
97153	//   "parameterOrder": [
97154	//     "project"
97155	//   ],
97156	//   "parameters": {
97157	//     "project": {
97158	//       "description": "Project ID for this request.",
97159	//       "location": "path",
97160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97161	//       "required": true,
97162	//       "type": "string"
97163	//     },
97164	//     "requestId": {
97165	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97166	//       "location": "query",
97167	//       "type": "string"
97168	//     }
97169	//   },
97170	//   "path": "{project}/global/networks",
97171	//   "request": {
97172	//     "$ref": "Network"
97173	//   },
97174	//   "response": {
97175	//     "$ref": "Operation"
97176	//   },
97177	//   "scopes": [
97178	//     "https://www.googleapis.com/auth/cloud-platform",
97179	//     "https://www.googleapis.com/auth/compute"
97180	//   ]
97181	// }
97182
97183}
97184
97185// method id "compute.networks.list":
97186
97187type NetworksListCall struct {
97188	s            *Service
97189	project      string
97190	urlParams_   gensupport.URLParams
97191	ifNoneMatch_ string
97192	ctx_         context.Context
97193	header_      http.Header
97194}
97195
97196// List: Retrieves the list of networks available to the specified
97197// project.
97198// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
97199func (r *NetworksService) List(project string) *NetworksListCall {
97200	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97201	c.project = project
97202	return c
97203}
97204
97205// Filter sets the optional parameter "filter": A filter expression that
97206// filters resources listed in the response. The expression must specify
97207// the field name, a comparison operator, and the value that you want to
97208// use for filtering. The value must be a string, a number, or a
97209// boolean. The comparison operator must be either `=`, `!=`, `>`, or
97210// `<`.
97211//
97212// For example, if you are filtering Compute Engine instances, you can
97213// exclude instances named `example-instance` by specifying `name !=
97214// example-instance`.
97215//
97216// You can also filter nested fields. For example, you could specify
97217// `scheduling.automaticRestart = false` to include instances only if
97218// they are not scheduled for automatic restarts. You can use filtering
97219// on nested fields to filter based on resource labels.
97220//
97221// To filter on multiple expressions, provide each separate expression
97222// within parentheses. For example: ``` (scheduling.automaticRestart =
97223// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
97224// is an `AND` expression. However, you can include `AND` and `OR`
97225// expressions explicitly. For example: ``` (cpuPlatform = "Intel
97226// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
97227// (scheduling.automaticRestart = true) ```
97228func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
97229	c.urlParams_.Set("filter", filter)
97230	return c
97231}
97232
97233// MaxResults sets the optional parameter "maxResults": The maximum
97234// number of results per page that should be returned. If the number of
97235// available results is larger than `maxResults`, Compute Engine returns
97236// a `nextPageToken` that can be used to get the next page of results in
97237// subsequent list requests. Acceptable values are `0` to `500`,
97238// inclusive. (Default: `500`)
97239func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
97240	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97241	return c
97242}
97243
97244// OrderBy sets the optional parameter "orderBy": Sorts list results by
97245// a certain order. By default, results are returned in alphanumerical
97246// order based on the resource name.
97247//
97248// You can also sort results in descending order based on the creation
97249// timestamp using `orderBy="creationTimestamp desc". This sorts
97250// results based on the `creationTimestamp` field in reverse
97251// chronological order (newest result first). Use this to sort resources
97252// like operations so that the newest operation is returned
97253// first.
97254//
97255// Currently, only sorting by `name` or `creationTimestamp desc` is
97256// supported.
97257func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
97258	c.urlParams_.Set("orderBy", orderBy)
97259	return c
97260}
97261
97262// PageToken sets the optional parameter "pageToken": Specifies a page
97263// token to use. Set `pageToken` to the `nextPageToken` returned by a
97264// previous list request to get the next page of results.
97265func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
97266	c.urlParams_.Set("pageToken", pageToken)
97267	return c
97268}
97269
97270// Fields allows partial responses to be retrieved. See
97271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97272// for more information.
97273func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
97274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97275	return c
97276}
97277
97278// IfNoneMatch sets the optional parameter which makes the operation
97279// fail if the object's ETag matches the given value. This is useful for
97280// getting updates only after the object has changed since the last
97281// request. Use googleapi.IsNotModified to check whether the response
97282// error from Do is the result of In-None-Match.
97283func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
97284	c.ifNoneMatch_ = entityTag
97285	return c
97286}
97287
97288// Context sets the context to be used in this call's Do method. Any
97289// pending HTTP request will be aborted if the provided context is
97290// canceled.
97291func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
97292	c.ctx_ = ctx
97293	return c
97294}
97295
97296// Header returns an http.Header that can be modified by the caller to
97297// add HTTP headers to the request.
97298func (c *NetworksListCall) Header() http.Header {
97299	if c.header_ == nil {
97300		c.header_ = make(http.Header)
97301	}
97302	return c.header_
97303}
97304
97305func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
97306	reqHeaders := make(http.Header)
97307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97308	for k, v := range c.header_ {
97309		reqHeaders[k] = v
97310	}
97311	reqHeaders.Set("User-Agent", c.s.userAgent())
97312	if c.ifNoneMatch_ != "" {
97313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97314	}
97315	var body io.Reader = nil
97316	c.urlParams_.Set("alt", alt)
97317	c.urlParams_.Set("prettyPrint", "false")
97318	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
97319	urls += "?" + c.urlParams_.Encode()
97320	req, err := http.NewRequest("GET", urls, body)
97321	if err != nil {
97322		return nil, err
97323	}
97324	req.Header = reqHeaders
97325	googleapi.Expand(req.URL, map[string]string{
97326		"project": c.project,
97327	})
97328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97329}
97330
97331// Do executes the "compute.networks.list" call.
97332// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
97333// status code is an error. Response headers are in either
97334// *NetworkList.ServerResponse.Header or (if a response was returned at
97335// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97336// to check whether the returned error was because
97337// http.StatusNotModified was returned.
97338func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
97339	gensupport.SetOptions(c.urlParams_, opts...)
97340	res, err := c.doRequest("json")
97341	if res != nil && res.StatusCode == http.StatusNotModified {
97342		if res.Body != nil {
97343			res.Body.Close()
97344		}
97345		return nil, &googleapi.Error{
97346			Code:   res.StatusCode,
97347			Header: res.Header,
97348		}
97349	}
97350	if err != nil {
97351		return nil, err
97352	}
97353	defer googleapi.CloseBody(res)
97354	if err := googleapi.CheckResponse(res); err != nil {
97355		return nil, err
97356	}
97357	ret := &NetworkList{
97358		ServerResponse: googleapi.ServerResponse{
97359			Header:         res.Header,
97360			HTTPStatusCode: res.StatusCode,
97361		},
97362	}
97363	target := &ret
97364	if err := gensupport.DecodeResponse(target, res); err != nil {
97365		return nil, err
97366	}
97367	return ret, nil
97368	// {
97369	//   "description": "Retrieves the list of networks available to the specified project.",
97370	//   "httpMethod": "GET",
97371	//   "id": "compute.networks.list",
97372	//   "parameterOrder": [
97373	//     "project"
97374	//   ],
97375	//   "parameters": {
97376	//     "filter": {
97377	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
97378	//       "location": "query",
97379	//       "type": "string"
97380	//     },
97381	//     "maxResults": {
97382	//       "default": "500",
97383	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
97384	//       "format": "uint32",
97385	//       "location": "query",
97386	//       "minimum": "0",
97387	//       "type": "integer"
97388	//     },
97389	//     "orderBy": {
97390	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
97391	//       "location": "query",
97392	//       "type": "string"
97393	//     },
97394	//     "pageToken": {
97395	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
97396	//       "location": "query",
97397	//       "type": "string"
97398	//     },
97399	//     "project": {
97400	//       "description": "Project ID for this request.",
97401	//       "location": "path",
97402	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97403	//       "required": true,
97404	//       "type": "string"
97405	//     }
97406	//   },
97407	//   "path": "{project}/global/networks",
97408	//   "response": {
97409	//     "$ref": "NetworkList"
97410	//   },
97411	//   "scopes": [
97412	//     "https://www.googleapis.com/auth/cloud-platform",
97413	//     "https://www.googleapis.com/auth/compute",
97414	//     "https://www.googleapis.com/auth/compute.readonly"
97415	//   ]
97416	// }
97417
97418}
97419
97420// Pages invokes f for each page of results.
97421// A non-nil error returned from f will halt the iteration.
97422// The provided context supersedes any context provided to the Context method.
97423func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
97424	c.ctx_ = ctx
97425	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97426	for {
97427		x, err := c.Do()
97428		if err != nil {
97429			return err
97430		}
97431		if err := f(x); err != nil {
97432			return err
97433		}
97434		if x.NextPageToken == "" {
97435			return nil
97436		}
97437		c.PageToken(x.NextPageToken)
97438	}
97439}
97440
97441// method id "compute.networks.listPeeringRoutes":
97442
97443type NetworksListPeeringRoutesCall struct {
97444	s            *Service
97445	project      string
97446	network      string
97447	urlParams_   gensupport.URLParams
97448	ifNoneMatch_ string
97449	ctx_         context.Context
97450	header_      http.Header
97451}
97452
97453// ListPeeringRoutes: Lists the peering routes exchanged over peering
97454// connection.
97455func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
97456	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97457	c.project = project
97458	c.network = network
97459	return c
97460}
97461
97462// Direction sets the optional parameter "direction": The direction of
97463// the exchanged routes.
97464//
97465// Possible values:
97466//   "INCOMING"
97467//   "OUTGOING"
97468func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
97469	c.urlParams_.Set("direction", direction)
97470	return c
97471}
97472
97473// Filter sets the optional parameter "filter": A filter expression that
97474// filters resources listed in the response. The expression must specify
97475// the field name, a comparison operator, and the value that you want to
97476// use for filtering. The value must be a string, a number, or a
97477// boolean. The comparison operator must be either `=`, `!=`, `>`, or
97478// `<`.
97479//
97480// For example, if you are filtering Compute Engine instances, you can
97481// exclude instances named `example-instance` by specifying `name !=
97482// example-instance`.
97483//
97484// You can also filter nested fields. For example, you could specify
97485// `scheduling.automaticRestart = false` to include instances only if
97486// they are not scheduled for automatic restarts. You can use filtering
97487// on nested fields to filter based on resource labels.
97488//
97489// To filter on multiple expressions, provide each separate expression
97490// within parentheses. For example: ``` (scheduling.automaticRestart =
97491// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
97492// is an `AND` expression. However, you can include `AND` and `OR`
97493// expressions explicitly. For example: ``` (cpuPlatform = "Intel
97494// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
97495// (scheduling.automaticRestart = true) ```
97496func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
97497	c.urlParams_.Set("filter", filter)
97498	return c
97499}
97500
97501// MaxResults sets the optional parameter "maxResults": The maximum
97502// number of results per page that should be returned. If the number of
97503// available results is larger than `maxResults`, Compute Engine returns
97504// a `nextPageToken` that can be used to get the next page of results in
97505// subsequent list requests. Acceptable values are `0` to `500`,
97506// inclusive. (Default: `500`)
97507func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
97508	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97509	return c
97510}
97511
97512// OrderBy sets the optional parameter "orderBy": Sorts list results by
97513// a certain order. By default, results are returned in alphanumerical
97514// order based on the resource name.
97515//
97516// You can also sort results in descending order based on the creation
97517// timestamp using `orderBy="creationTimestamp desc". This sorts
97518// results based on the `creationTimestamp` field in reverse
97519// chronological order (newest result first). Use this to sort resources
97520// like operations so that the newest operation is returned
97521// first.
97522//
97523// Currently, only sorting by `name` or `creationTimestamp desc` is
97524// supported.
97525func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
97526	c.urlParams_.Set("orderBy", orderBy)
97527	return c
97528}
97529
97530// PageToken sets the optional parameter "pageToken": Specifies a page
97531// token to use. Set `pageToken` to the `nextPageToken` returned by a
97532// previous list request to get the next page of results.
97533func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
97534	c.urlParams_.Set("pageToken", pageToken)
97535	return c
97536}
97537
97538// PeeringName sets the optional parameter "peeringName": The response
97539// will show routes exchanged over the given peering connection.
97540func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
97541	c.urlParams_.Set("peeringName", peeringName)
97542	return c
97543}
97544
97545// Region sets the optional parameter "region": The region of the
97546// request. The response will include all subnet routes, static routes
97547// and dynamic routes in the region.
97548func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
97549	c.urlParams_.Set("region", region)
97550	return c
97551}
97552
97553// Fields allows partial responses to be retrieved. See
97554// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97555// for more information.
97556func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
97557	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97558	return c
97559}
97560
97561// IfNoneMatch sets the optional parameter which makes the operation
97562// fail if the object's ETag matches the given value. This is useful for
97563// getting updates only after the object has changed since the last
97564// request. Use googleapi.IsNotModified to check whether the response
97565// error from Do is the result of In-None-Match.
97566func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
97567	c.ifNoneMatch_ = entityTag
97568	return c
97569}
97570
97571// Context sets the context to be used in this call's Do method. Any
97572// pending HTTP request will be aborted if the provided context is
97573// canceled.
97574func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
97575	c.ctx_ = ctx
97576	return c
97577}
97578
97579// Header returns an http.Header that can be modified by the caller to
97580// add HTTP headers to the request.
97581func (c *NetworksListPeeringRoutesCall) Header() http.Header {
97582	if c.header_ == nil {
97583		c.header_ = make(http.Header)
97584	}
97585	return c.header_
97586}
97587
97588func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
97589	reqHeaders := make(http.Header)
97590	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97591	for k, v := range c.header_ {
97592		reqHeaders[k] = v
97593	}
97594	reqHeaders.Set("User-Agent", c.s.userAgent())
97595	if c.ifNoneMatch_ != "" {
97596		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97597	}
97598	var body io.Reader = nil
97599	c.urlParams_.Set("alt", alt)
97600	c.urlParams_.Set("prettyPrint", "false")
97601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listPeeringRoutes")
97602	urls += "?" + c.urlParams_.Encode()
97603	req, err := http.NewRequest("GET", urls, body)
97604	if err != nil {
97605		return nil, err
97606	}
97607	req.Header = reqHeaders
97608	googleapi.Expand(req.URL, map[string]string{
97609		"project": c.project,
97610		"network": c.network,
97611	})
97612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97613}
97614
97615// Do executes the "compute.networks.listPeeringRoutes" call.
97616// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
97617// Any non-2xx status code is an error. Response headers are in either
97618// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
97619// was returned at all) in error.(*googleapi.Error).Header. Use
97620// googleapi.IsNotModified to check whether the returned error was
97621// because http.StatusNotModified was returned.
97622func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
97623	gensupport.SetOptions(c.urlParams_, opts...)
97624	res, err := c.doRequest("json")
97625	if res != nil && res.StatusCode == http.StatusNotModified {
97626		if res.Body != nil {
97627			res.Body.Close()
97628		}
97629		return nil, &googleapi.Error{
97630			Code:   res.StatusCode,
97631			Header: res.Header,
97632		}
97633	}
97634	if err != nil {
97635		return nil, err
97636	}
97637	defer googleapi.CloseBody(res)
97638	if err := googleapi.CheckResponse(res); err != nil {
97639		return nil, err
97640	}
97641	ret := &ExchangedPeeringRoutesList{
97642		ServerResponse: googleapi.ServerResponse{
97643			Header:         res.Header,
97644			HTTPStatusCode: res.StatusCode,
97645		},
97646	}
97647	target := &ret
97648	if err := gensupport.DecodeResponse(target, res); err != nil {
97649		return nil, err
97650	}
97651	return ret, nil
97652	// {
97653	//   "description": "Lists the peering routes exchanged over peering connection.",
97654	//   "httpMethod": "GET",
97655	//   "id": "compute.networks.listPeeringRoutes",
97656	//   "parameterOrder": [
97657	//     "project",
97658	//     "network"
97659	//   ],
97660	//   "parameters": {
97661	//     "direction": {
97662	//       "description": "The direction of the exchanged routes.",
97663	//       "enum": [
97664	//         "INCOMING",
97665	//         "OUTGOING"
97666	//       ],
97667	//       "enumDescriptions": [
97668	//         "",
97669	//         ""
97670	//       ],
97671	//       "location": "query",
97672	//       "type": "string"
97673	//     },
97674	//     "filter": {
97675	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
97676	//       "location": "query",
97677	//       "type": "string"
97678	//     },
97679	//     "maxResults": {
97680	//       "default": "500",
97681	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
97682	//       "format": "uint32",
97683	//       "location": "query",
97684	//       "minimum": "0",
97685	//       "type": "integer"
97686	//     },
97687	//     "network": {
97688	//       "description": "Name of the network for this request.",
97689	//       "location": "path",
97690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97691	//       "required": true,
97692	//       "type": "string"
97693	//     },
97694	//     "orderBy": {
97695	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
97696	//       "location": "query",
97697	//       "type": "string"
97698	//     },
97699	//     "pageToken": {
97700	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
97701	//       "location": "query",
97702	//       "type": "string"
97703	//     },
97704	//     "peeringName": {
97705	//       "description": "The response will show routes exchanged over the given peering connection.",
97706	//       "location": "query",
97707	//       "type": "string"
97708	//     },
97709	//     "project": {
97710	//       "description": "Project ID for this request.",
97711	//       "location": "path",
97712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97713	//       "required": true,
97714	//       "type": "string"
97715	//     },
97716	//     "region": {
97717	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
97718	//       "location": "query",
97719	//       "type": "string"
97720	//     }
97721	//   },
97722	//   "path": "{project}/global/networks/{network}/listPeeringRoutes",
97723	//   "response": {
97724	//     "$ref": "ExchangedPeeringRoutesList"
97725	//   },
97726	//   "scopes": [
97727	//     "https://www.googleapis.com/auth/cloud-platform",
97728	//     "https://www.googleapis.com/auth/compute",
97729	//     "https://www.googleapis.com/auth/compute.readonly"
97730	//   ]
97731	// }
97732
97733}
97734
97735// Pages invokes f for each page of results.
97736// A non-nil error returned from f will halt the iteration.
97737// The provided context supersedes any context provided to the Context method.
97738func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
97739	c.ctx_ = ctx
97740	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97741	for {
97742		x, err := c.Do()
97743		if err != nil {
97744			return err
97745		}
97746		if err := f(x); err != nil {
97747			return err
97748		}
97749		if x.NextPageToken == "" {
97750			return nil
97751		}
97752		c.PageToken(x.NextPageToken)
97753	}
97754}
97755
97756// method id "compute.networks.patch":
97757
97758type NetworksPatchCall struct {
97759	s          *Service
97760	project    string
97761	network    string
97762	network2   *Network
97763	urlParams_ gensupport.URLParams
97764	ctx_       context.Context
97765	header_    http.Header
97766}
97767
97768// Patch: Patches the specified network with the data included in the
97769// request. Only the following fields can be modified:
97770// routingConfig.routingMode.
97771func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
97772	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97773	c.project = project
97774	c.network = network
97775	c.network2 = network2
97776	return c
97777}
97778
97779// RequestId sets the optional parameter "requestId": An optional
97780// request ID to identify requests. Specify a unique request ID so that
97781// if you must retry your request, the server will know to ignore the
97782// request if it has already been completed.
97783//
97784// For example, consider a situation where you make an initial request
97785// and the request times out. If you make the request again with the
97786// same request ID, the server can check if original operation with the
97787// same request ID was received, and if so, will ignore the second
97788// request. This prevents clients from accidentally creating duplicate
97789// commitments.
97790//
97791// The request ID must be a valid UUID with the exception that zero UUID
97792// is not supported (00000000-0000-0000-0000-000000000000).
97793func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
97794	c.urlParams_.Set("requestId", requestId)
97795	return c
97796}
97797
97798// Fields allows partial responses to be retrieved. See
97799// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97800// for more information.
97801func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
97802	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97803	return c
97804}
97805
97806// Context sets the context to be used in this call's Do method. Any
97807// pending HTTP request will be aborted if the provided context is
97808// canceled.
97809func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
97810	c.ctx_ = ctx
97811	return c
97812}
97813
97814// Header returns an http.Header that can be modified by the caller to
97815// add HTTP headers to the request.
97816func (c *NetworksPatchCall) Header() http.Header {
97817	if c.header_ == nil {
97818		c.header_ = make(http.Header)
97819	}
97820	return c.header_
97821}
97822
97823func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
97824	reqHeaders := make(http.Header)
97825	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
97826	for k, v := range c.header_ {
97827		reqHeaders[k] = v
97828	}
97829	reqHeaders.Set("User-Agent", c.s.userAgent())
97830	var body io.Reader = nil
97831	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
97832	if err != nil {
97833		return nil, err
97834	}
97835	reqHeaders.Set("Content-Type", "application/json")
97836	c.urlParams_.Set("alt", alt)
97837	c.urlParams_.Set("prettyPrint", "false")
97838	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
97839	urls += "?" + c.urlParams_.Encode()
97840	req, err := http.NewRequest("PATCH", urls, body)
97841	if err != nil {
97842		return nil, err
97843	}
97844	req.Header = reqHeaders
97845	googleapi.Expand(req.URL, map[string]string{
97846		"project": c.project,
97847		"network": c.network,
97848	})
97849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97850}
97851
97852// Do executes the "compute.networks.patch" call.
97853// Exactly one of *Operation or error will be non-nil. Any non-2xx
97854// status code is an error. Response headers are in either
97855// *Operation.ServerResponse.Header or (if a response was returned at
97856// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97857// to check whether the returned error was because
97858// http.StatusNotModified was returned.
97859func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97860	gensupport.SetOptions(c.urlParams_, opts...)
97861	res, err := c.doRequest("json")
97862	if res != nil && res.StatusCode == http.StatusNotModified {
97863		if res.Body != nil {
97864			res.Body.Close()
97865		}
97866		return nil, &googleapi.Error{
97867			Code:   res.StatusCode,
97868			Header: res.Header,
97869		}
97870	}
97871	if err != nil {
97872		return nil, err
97873	}
97874	defer googleapi.CloseBody(res)
97875	if err := googleapi.CheckResponse(res); err != nil {
97876		return nil, err
97877	}
97878	ret := &Operation{
97879		ServerResponse: googleapi.ServerResponse{
97880			Header:         res.Header,
97881			HTTPStatusCode: res.StatusCode,
97882		},
97883	}
97884	target := &ret
97885	if err := gensupport.DecodeResponse(target, res); err != nil {
97886		return nil, err
97887	}
97888	return ret, nil
97889	// {
97890	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
97891	//   "httpMethod": "PATCH",
97892	//   "id": "compute.networks.patch",
97893	//   "parameterOrder": [
97894	//     "project",
97895	//     "network"
97896	//   ],
97897	//   "parameters": {
97898	//     "network": {
97899	//       "description": "Name of the network to update.",
97900	//       "location": "path",
97901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97902	//       "required": true,
97903	//       "type": "string"
97904	//     },
97905	//     "project": {
97906	//       "description": "Project ID for this request.",
97907	//       "location": "path",
97908	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97909	//       "required": true,
97910	//       "type": "string"
97911	//     },
97912	//     "requestId": {
97913	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97914	//       "location": "query",
97915	//       "type": "string"
97916	//     }
97917	//   },
97918	//   "path": "{project}/global/networks/{network}",
97919	//   "request": {
97920	//     "$ref": "Network"
97921	//   },
97922	//   "response": {
97923	//     "$ref": "Operation"
97924	//   },
97925	//   "scopes": [
97926	//     "https://www.googleapis.com/auth/cloud-platform",
97927	//     "https://www.googleapis.com/auth/compute"
97928	//   ]
97929	// }
97930
97931}
97932
97933// method id "compute.networks.removePeering":
97934
97935type NetworksRemovePeeringCall struct {
97936	s                            *Service
97937	project                      string
97938	network                      string
97939	networksremovepeeringrequest *NetworksRemovePeeringRequest
97940	urlParams_                   gensupport.URLParams
97941	ctx_                         context.Context
97942	header_                      http.Header
97943}
97944
97945// RemovePeering: Removes a peering from the specified network.
97946func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
97947	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97948	c.project = project
97949	c.network = network
97950	c.networksremovepeeringrequest = networksremovepeeringrequest
97951	return c
97952}
97953
97954// RequestId sets the optional parameter "requestId": An optional
97955// request ID to identify requests. Specify a unique request ID so that
97956// if you must retry your request, the server will know to ignore the
97957// request if it has already been completed.
97958//
97959// For example, consider a situation where you make an initial request
97960// and the request times out. If you make the request again with the
97961// same request ID, the server can check if original operation with the
97962// same request ID was received, and if so, will ignore the second
97963// request. This prevents clients from accidentally creating duplicate
97964// commitments.
97965//
97966// The request ID must be a valid UUID with the exception that zero UUID
97967// is not supported (00000000-0000-0000-0000-000000000000).
97968func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
97969	c.urlParams_.Set("requestId", requestId)
97970	return c
97971}
97972
97973// Fields allows partial responses to be retrieved. See
97974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97975// for more information.
97976func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
97977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97978	return c
97979}
97980
97981// Context sets the context to be used in this call's Do method. Any
97982// pending HTTP request will be aborted if the provided context is
97983// canceled.
97984func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
97985	c.ctx_ = ctx
97986	return c
97987}
97988
97989// Header returns an http.Header that can be modified by the caller to
97990// add HTTP headers to the request.
97991func (c *NetworksRemovePeeringCall) Header() http.Header {
97992	if c.header_ == nil {
97993		c.header_ = make(http.Header)
97994	}
97995	return c.header_
97996}
97997
97998func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
97999	reqHeaders := make(http.Header)
98000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98001	for k, v := range c.header_ {
98002		reqHeaders[k] = v
98003	}
98004	reqHeaders.Set("User-Agent", c.s.userAgent())
98005	var body io.Reader = nil
98006	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
98007	if err != nil {
98008		return nil, err
98009	}
98010	reqHeaders.Set("Content-Type", "application/json")
98011	c.urlParams_.Set("alt", alt)
98012	c.urlParams_.Set("prettyPrint", "false")
98013	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
98014	urls += "?" + c.urlParams_.Encode()
98015	req, err := http.NewRequest("POST", urls, body)
98016	if err != nil {
98017		return nil, err
98018	}
98019	req.Header = reqHeaders
98020	googleapi.Expand(req.URL, map[string]string{
98021		"project": c.project,
98022		"network": c.network,
98023	})
98024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98025}
98026
98027// Do executes the "compute.networks.removePeering" call.
98028// Exactly one of *Operation or error will be non-nil. Any non-2xx
98029// status code is an error. Response headers are in either
98030// *Operation.ServerResponse.Header or (if a response was returned at
98031// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98032// to check whether the returned error was because
98033// http.StatusNotModified was returned.
98034func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98035	gensupport.SetOptions(c.urlParams_, opts...)
98036	res, err := c.doRequest("json")
98037	if res != nil && res.StatusCode == http.StatusNotModified {
98038		if res.Body != nil {
98039			res.Body.Close()
98040		}
98041		return nil, &googleapi.Error{
98042			Code:   res.StatusCode,
98043			Header: res.Header,
98044		}
98045	}
98046	if err != nil {
98047		return nil, err
98048	}
98049	defer googleapi.CloseBody(res)
98050	if err := googleapi.CheckResponse(res); err != nil {
98051		return nil, err
98052	}
98053	ret := &Operation{
98054		ServerResponse: googleapi.ServerResponse{
98055			Header:         res.Header,
98056			HTTPStatusCode: res.StatusCode,
98057		},
98058	}
98059	target := &ret
98060	if err := gensupport.DecodeResponse(target, res); err != nil {
98061		return nil, err
98062	}
98063	return ret, nil
98064	// {
98065	//   "description": "Removes a peering from the specified network.",
98066	//   "httpMethod": "POST",
98067	//   "id": "compute.networks.removePeering",
98068	//   "parameterOrder": [
98069	//     "project",
98070	//     "network"
98071	//   ],
98072	//   "parameters": {
98073	//     "network": {
98074	//       "description": "Name of the network resource to remove peering from.",
98075	//       "location": "path",
98076	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98077	//       "required": true,
98078	//       "type": "string"
98079	//     },
98080	//     "project": {
98081	//       "description": "Project ID for this request.",
98082	//       "location": "path",
98083	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98084	//       "required": true,
98085	//       "type": "string"
98086	//     },
98087	//     "requestId": {
98088	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98089	//       "location": "query",
98090	//       "type": "string"
98091	//     }
98092	//   },
98093	//   "path": "{project}/global/networks/{network}/removePeering",
98094	//   "request": {
98095	//     "$ref": "NetworksRemovePeeringRequest"
98096	//   },
98097	//   "response": {
98098	//     "$ref": "Operation"
98099	//   },
98100	//   "scopes": [
98101	//     "https://www.googleapis.com/auth/cloud-platform",
98102	//     "https://www.googleapis.com/auth/compute"
98103	//   ]
98104	// }
98105
98106}
98107
98108// method id "compute.networks.switchToCustomMode":
98109
98110type NetworksSwitchToCustomModeCall struct {
98111	s          *Service
98112	project    string
98113	network    string
98114	urlParams_ gensupport.URLParams
98115	ctx_       context.Context
98116	header_    http.Header
98117}
98118
98119// SwitchToCustomMode: Switches the network mode from auto subnet mode
98120// to custom subnet mode.
98121func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
98122	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98123	c.project = project
98124	c.network = network
98125	return c
98126}
98127
98128// RequestId sets the optional parameter "requestId": An optional
98129// request ID to identify requests. Specify a unique request ID so that
98130// if you must retry your request, the server will know to ignore the
98131// request if it has already been completed.
98132//
98133// For example, consider a situation where you make an initial request
98134// and the request times out. If you make the request again with the
98135// same request ID, the server can check if original operation with the
98136// same request ID was received, and if so, will ignore the second
98137// request. This prevents clients from accidentally creating duplicate
98138// commitments.
98139//
98140// The request ID must be a valid UUID with the exception that zero UUID
98141// is not supported (00000000-0000-0000-0000-000000000000).
98142func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
98143	c.urlParams_.Set("requestId", requestId)
98144	return c
98145}
98146
98147// Fields allows partial responses to be retrieved. See
98148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98149// for more information.
98150func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
98151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98152	return c
98153}
98154
98155// Context sets the context to be used in this call's Do method. Any
98156// pending HTTP request will be aborted if the provided context is
98157// canceled.
98158func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
98159	c.ctx_ = ctx
98160	return c
98161}
98162
98163// Header returns an http.Header that can be modified by the caller to
98164// add HTTP headers to the request.
98165func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
98166	if c.header_ == nil {
98167		c.header_ = make(http.Header)
98168	}
98169	return c.header_
98170}
98171
98172func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
98173	reqHeaders := make(http.Header)
98174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98175	for k, v := range c.header_ {
98176		reqHeaders[k] = v
98177	}
98178	reqHeaders.Set("User-Agent", c.s.userAgent())
98179	var body io.Reader = nil
98180	c.urlParams_.Set("alt", alt)
98181	c.urlParams_.Set("prettyPrint", "false")
98182	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
98183	urls += "?" + c.urlParams_.Encode()
98184	req, err := http.NewRequest("POST", urls, body)
98185	if err != nil {
98186		return nil, err
98187	}
98188	req.Header = reqHeaders
98189	googleapi.Expand(req.URL, map[string]string{
98190		"project": c.project,
98191		"network": c.network,
98192	})
98193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98194}
98195
98196// Do executes the "compute.networks.switchToCustomMode" call.
98197// Exactly one of *Operation or error will be non-nil. Any non-2xx
98198// status code is an error. Response headers are in either
98199// *Operation.ServerResponse.Header or (if a response was returned at
98200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98201// to check whether the returned error was because
98202// http.StatusNotModified was returned.
98203func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98204	gensupport.SetOptions(c.urlParams_, opts...)
98205	res, err := c.doRequest("json")
98206	if res != nil && res.StatusCode == http.StatusNotModified {
98207		if res.Body != nil {
98208			res.Body.Close()
98209		}
98210		return nil, &googleapi.Error{
98211			Code:   res.StatusCode,
98212			Header: res.Header,
98213		}
98214	}
98215	if err != nil {
98216		return nil, err
98217	}
98218	defer googleapi.CloseBody(res)
98219	if err := googleapi.CheckResponse(res); err != nil {
98220		return nil, err
98221	}
98222	ret := &Operation{
98223		ServerResponse: googleapi.ServerResponse{
98224			Header:         res.Header,
98225			HTTPStatusCode: res.StatusCode,
98226		},
98227	}
98228	target := &ret
98229	if err := gensupport.DecodeResponse(target, res); err != nil {
98230		return nil, err
98231	}
98232	return ret, nil
98233	// {
98234	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
98235	//   "httpMethod": "POST",
98236	//   "id": "compute.networks.switchToCustomMode",
98237	//   "parameterOrder": [
98238	//     "project",
98239	//     "network"
98240	//   ],
98241	//   "parameters": {
98242	//     "network": {
98243	//       "description": "Name of the network to be updated.",
98244	//       "location": "path",
98245	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98246	//       "required": true,
98247	//       "type": "string"
98248	//     },
98249	//     "project": {
98250	//       "description": "Project ID for this request.",
98251	//       "location": "path",
98252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98253	//       "required": true,
98254	//       "type": "string"
98255	//     },
98256	//     "requestId": {
98257	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98258	//       "location": "query",
98259	//       "type": "string"
98260	//     }
98261	//   },
98262	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
98263	//   "response": {
98264	//     "$ref": "Operation"
98265	//   },
98266	//   "scopes": [
98267	//     "https://www.googleapis.com/auth/cloud-platform",
98268	//     "https://www.googleapis.com/auth/compute"
98269	//   ]
98270	// }
98271
98272}
98273
98274// method id "compute.networks.testIamPermissions":
98275
98276type NetworksTestIamPermissionsCall struct {
98277	s                      *Service
98278	project                string
98279	resource               string
98280	testpermissionsrequest *TestPermissionsRequest
98281	urlParams_             gensupport.URLParams
98282	ctx_                   context.Context
98283	header_                http.Header
98284}
98285
98286// TestIamPermissions: Returns permissions that a caller has on the
98287// specified resource.
98288func (r *NetworksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworksTestIamPermissionsCall {
98289	c := &NetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98290	c.project = project
98291	c.resource = resource
98292	c.testpermissionsrequest = testpermissionsrequest
98293	return c
98294}
98295
98296// Fields allows partial responses to be retrieved. See
98297// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98298// for more information.
98299func (c *NetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworksTestIamPermissionsCall {
98300	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98301	return c
98302}
98303
98304// Context sets the context to be used in this call's Do method. Any
98305// pending HTTP request will be aborted if the provided context is
98306// canceled.
98307func (c *NetworksTestIamPermissionsCall) Context(ctx context.Context) *NetworksTestIamPermissionsCall {
98308	c.ctx_ = ctx
98309	return c
98310}
98311
98312// Header returns an http.Header that can be modified by the caller to
98313// add HTTP headers to the request.
98314func (c *NetworksTestIamPermissionsCall) Header() http.Header {
98315	if c.header_ == nil {
98316		c.header_ = make(http.Header)
98317	}
98318	return c.header_
98319}
98320
98321func (c *NetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
98322	reqHeaders := make(http.Header)
98323	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98324	for k, v := range c.header_ {
98325		reqHeaders[k] = v
98326	}
98327	reqHeaders.Set("User-Agent", c.s.userAgent())
98328	var body io.Reader = nil
98329	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
98330	if err != nil {
98331		return nil, err
98332	}
98333	reqHeaders.Set("Content-Type", "application/json")
98334	c.urlParams_.Set("alt", alt)
98335	c.urlParams_.Set("prettyPrint", "false")
98336	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{resource}/testIamPermissions")
98337	urls += "?" + c.urlParams_.Encode()
98338	req, err := http.NewRequest("POST", urls, body)
98339	if err != nil {
98340		return nil, err
98341	}
98342	req.Header = reqHeaders
98343	googleapi.Expand(req.URL, map[string]string{
98344		"project":  c.project,
98345		"resource": c.resource,
98346	})
98347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98348}
98349
98350// Do executes the "compute.networks.testIamPermissions" call.
98351// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
98352// non-2xx status code is an error. Response headers are in either
98353// *TestPermissionsResponse.ServerResponse.Header or (if a response was
98354// returned at all) in error.(*googleapi.Error).Header. Use
98355// googleapi.IsNotModified to check whether the returned error was
98356// because http.StatusNotModified was returned.
98357func (c *NetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
98358	gensupport.SetOptions(c.urlParams_, opts...)
98359	res, err := c.doRequest("json")
98360	if res != nil && res.StatusCode == http.StatusNotModified {
98361		if res.Body != nil {
98362			res.Body.Close()
98363		}
98364		return nil, &googleapi.Error{
98365			Code:   res.StatusCode,
98366			Header: res.Header,
98367		}
98368	}
98369	if err != nil {
98370		return nil, err
98371	}
98372	defer googleapi.CloseBody(res)
98373	if err := googleapi.CheckResponse(res); err != nil {
98374		return nil, err
98375	}
98376	ret := &TestPermissionsResponse{
98377		ServerResponse: googleapi.ServerResponse{
98378			Header:         res.Header,
98379			HTTPStatusCode: res.StatusCode,
98380		},
98381	}
98382	target := &ret
98383	if err := gensupport.DecodeResponse(target, res); err != nil {
98384		return nil, err
98385	}
98386	return ret, nil
98387	// {
98388	//   "description": "Returns permissions that a caller has on the specified resource.",
98389	//   "httpMethod": "POST",
98390	//   "id": "compute.networks.testIamPermissions",
98391	//   "parameterOrder": [
98392	//     "project",
98393	//     "resource"
98394	//   ],
98395	//   "parameters": {
98396	//     "project": {
98397	//       "description": "Project ID for this request.",
98398	//       "location": "path",
98399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98400	//       "required": true,
98401	//       "type": "string"
98402	//     },
98403	//     "resource": {
98404	//       "description": "Name or id of the resource for this request.",
98405	//       "location": "path",
98406	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98407	//       "required": true,
98408	//       "type": "string"
98409	//     }
98410	//   },
98411	//   "path": "{project}/global/networks/{resource}/testIamPermissions",
98412	//   "request": {
98413	//     "$ref": "TestPermissionsRequest"
98414	//   },
98415	//   "response": {
98416	//     "$ref": "TestPermissionsResponse"
98417	//   },
98418	//   "scopes": [
98419	//     "https://www.googleapis.com/auth/cloud-platform",
98420	//     "https://www.googleapis.com/auth/compute",
98421	//     "https://www.googleapis.com/auth/compute.readonly"
98422	//   ]
98423	// }
98424
98425}
98426
98427// method id "compute.networks.updatePeering":
98428
98429type NetworksUpdatePeeringCall struct {
98430	s                            *Service
98431	project                      string
98432	network                      string
98433	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
98434	urlParams_                   gensupport.URLParams
98435	ctx_                         context.Context
98436	header_                      http.Header
98437}
98438
98439// UpdatePeering: Updates the specified network peering with the data
98440// included in the request Only the following fields can be modified:
98441// NetworkPeering.export_custom_routes, and
98442// NetworkPeering.import_custom_routes
98443func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
98444	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98445	c.project = project
98446	c.network = network
98447	c.networksupdatepeeringrequest = networksupdatepeeringrequest
98448	return c
98449}
98450
98451// RequestId sets the optional parameter "requestId": An optional
98452// request ID to identify requests. Specify a unique request ID so that
98453// if you must retry your request, the server will know to ignore the
98454// request if it has already been completed.
98455//
98456// For example, consider a situation where you make an initial request
98457// and the request times out. If you make the request again with the
98458// same request ID, the server can check if original operation with the
98459// same request ID was received, and if so, will ignore the second
98460// request. This prevents clients from accidentally creating duplicate
98461// commitments.
98462//
98463// The request ID must be a valid UUID with the exception that zero UUID
98464// is not supported (00000000-0000-0000-0000-000000000000).
98465func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
98466	c.urlParams_.Set("requestId", requestId)
98467	return c
98468}
98469
98470// Fields allows partial responses to be retrieved. See
98471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98472// for more information.
98473func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
98474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98475	return c
98476}
98477
98478// Context sets the context to be used in this call's Do method. Any
98479// pending HTTP request will be aborted if the provided context is
98480// canceled.
98481func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
98482	c.ctx_ = ctx
98483	return c
98484}
98485
98486// Header returns an http.Header that can be modified by the caller to
98487// add HTTP headers to the request.
98488func (c *NetworksUpdatePeeringCall) Header() http.Header {
98489	if c.header_ == nil {
98490		c.header_ = make(http.Header)
98491	}
98492	return c.header_
98493}
98494
98495func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
98496	reqHeaders := make(http.Header)
98497	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98498	for k, v := range c.header_ {
98499		reqHeaders[k] = v
98500	}
98501	reqHeaders.Set("User-Agent", c.s.userAgent())
98502	var body io.Reader = nil
98503	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
98504	if err != nil {
98505		return nil, err
98506	}
98507	reqHeaders.Set("Content-Type", "application/json")
98508	c.urlParams_.Set("alt", alt)
98509	c.urlParams_.Set("prettyPrint", "false")
98510	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/updatePeering")
98511	urls += "?" + c.urlParams_.Encode()
98512	req, err := http.NewRequest("PATCH", urls, body)
98513	if err != nil {
98514		return nil, err
98515	}
98516	req.Header = reqHeaders
98517	googleapi.Expand(req.URL, map[string]string{
98518		"project": c.project,
98519		"network": c.network,
98520	})
98521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98522}
98523
98524// Do executes the "compute.networks.updatePeering" call.
98525// Exactly one of *Operation or error will be non-nil. Any non-2xx
98526// status code is an error. Response headers are in either
98527// *Operation.ServerResponse.Header or (if a response was returned at
98528// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98529// to check whether the returned error was because
98530// http.StatusNotModified was returned.
98531func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98532	gensupport.SetOptions(c.urlParams_, opts...)
98533	res, err := c.doRequest("json")
98534	if res != nil && res.StatusCode == http.StatusNotModified {
98535		if res.Body != nil {
98536			res.Body.Close()
98537		}
98538		return nil, &googleapi.Error{
98539			Code:   res.StatusCode,
98540			Header: res.Header,
98541		}
98542	}
98543	if err != nil {
98544		return nil, err
98545	}
98546	defer googleapi.CloseBody(res)
98547	if err := googleapi.CheckResponse(res); err != nil {
98548		return nil, err
98549	}
98550	ret := &Operation{
98551		ServerResponse: googleapi.ServerResponse{
98552			Header:         res.Header,
98553			HTTPStatusCode: res.StatusCode,
98554		},
98555	}
98556	target := &ret
98557	if err := gensupport.DecodeResponse(target, res); err != nil {
98558		return nil, err
98559	}
98560	return ret, nil
98561	// {
98562	//   "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",
98563	//   "httpMethod": "PATCH",
98564	//   "id": "compute.networks.updatePeering",
98565	//   "parameterOrder": [
98566	//     "project",
98567	//     "network"
98568	//   ],
98569	//   "parameters": {
98570	//     "network": {
98571	//       "description": "Name of the network resource which the updated peering is belonging to.",
98572	//       "location": "path",
98573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98574	//       "required": true,
98575	//       "type": "string"
98576	//     },
98577	//     "project": {
98578	//       "description": "Project ID for this request.",
98579	//       "location": "path",
98580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98581	//       "required": true,
98582	//       "type": "string"
98583	//     },
98584	//     "requestId": {
98585	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98586	//       "location": "query",
98587	//       "type": "string"
98588	//     }
98589	//   },
98590	//   "path": "{project}/global/networks/{network}/updatePeering",
98591	//   "request": {
98592	//     "$ref": "NetworksUpdatePeeringRequest"
98593	//   },
98594	//   "response": {
98595	//     "$ref": "Operation"
98596	//   },
98597	//   "scopes": [
98598	//     "https://www.googleapis.com/auth/cloud-platform",
98599	//     "https://www.googleapis.com/auth/compute"
98600	//   ]
98601	// }
98602
98603}
98604
98605// method id "compute.nodeGroups.addNodes":
98606
98607type NodeGroupsAddNodesCall struct {
98608	s                         *Service
98609	project                   string
98610	zone                      string
98611	nodeGroup                 string
98612	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
98613	urlParams_                gensupport.URLParams
98614	ctx_                      context.Context
98615	header_                   http.Header
98616}
98617
98618// AddNodes: Adds specified number of nodes to the node group.
98619func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
98620	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98621	c.project = project
98622	c.zone = zone
98623	c.nodeGroup = nodeGroup
98624	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
98625	return c
98626}
98627
98628// RequestId sets the optional parameter "requestId": An optional
98629// request ID to identify requests. Specify a unique request ID so that
98630// if you must retry your request, the server will know to ignore the
98631// request if it has already been completed.
98632//
98633// For example, consider a situation where you make an initial request
98634// and the request times out. If you make the request again with the
98635// same request ID, the server can check if original operation with the
98636// same request ID was received, and if so, will ignore the second
98637// request. This prevents clients from accidentally creating duplicate
98638// commitments.
98639//
98640// The request ID must be a valid UUID with the exception that zero UUID
98641// is not supported (00000000-0000-0000-0000-000000000000).
98642func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
98643	c.urlParams_.Set("requestId", requestId)
98644	return c
98645}
98646
98647// Fields allows partial responses to be retrieved. See
98648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98649// for more information.
98650func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
98651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98652	return c
98653}
98654
98655// Context sets the context to be used in this call's Do method. Any
98656// pending HTTP request will be aborted if the provided context is
98657// canceled.
98658func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
98659	c.ctx_ = ctx
98660	return c
98661}
98662
98663// Header returns an http.Header that can be modified by the caller to
98664// add HTTP headers to the request.
98665func (c *NodeGroupsAddNodesCall) Header() http.Header {
98666	if c.header_ == nil {
98667		c.header_ = make(http.Header)
98668	}
98669	return c.header_
98670}
98671
98672func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
98673	reqHeaders := make(http.Header)
98674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98675	for k, v := range c.header_ {
98676		reqHeaders[k] = v
98677	}
98678	reqHeaders.Set("User-Agent", c.s.userAgent())
98679	var body io.Reader = nil
98680	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
98681	if err != nil {
98682		return nil, err
98683	}
98684	reqHeaders.Set("Content-Type", "application/json")
98685	c.urlParams_.Set("alt", alt)
98686	c.urlParams_.Set("prettyPrint", "false")
98687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
98688	urls += "?" + c.urlParams_.Encode()
98689	req, err := http.NewRequest("POST", urls, body)
98690	if err != nil {
98691		return nil, err
98692	}
98693	req.Header = reqHeaders
98694	googleapi.Expand(req.URL, map[string]string{
98695		"project":   c.project,
98696		"zone":      c.zone,
98697		"nodeGroup": c.nodeGroup,
98698	})
98699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98700}
98701
98702// Do executes the "compute.nodeGroups.addNodes" call.
98703// Exactly one of *Operation or error will be non-nil. Any non-2xx
98704// status code is an error. Response headers are in either
98705// *Operation.ServerResponse.Header or (if a response was returned at
98706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98707// to check whether the returned error was because
98708// http.StatusNotModified was returned.
98709func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98710	gensupport.SetOptions(c.urlParams_, opts...)
98711	res, err := c.doRequest("json")
98712	if res != nil && res.StatusCode == http.StatusNotModified {
98713		if res.Body != nil {
98714			res.Body.Close()
98715		}
98716		return nil, &googleapi.Error{
98717			Code:   res.StatusCode,
98718			Header: res.Header,
98719		}
98720	}
98721	if err != nil {
98722		return nil, err
98723	}
98724	defer googleapi.CloseBody(res)
98725	if err := googleapi.CheckResponse(res); err != nil {
98726		return nil, err
98727	}
98728	ret := &Operation{
98729		ServerResponse: googleapi.ServerResponse{
98730			Header:         res.Header,
98731			HTTPStatusCode: res.StatusCode,
98732		},
98733	}
98734	target := &ret
98735	if err := gensupport.DecodeResponse(target, res); err != nil {
98736		return nil, err
98737	}
98738	return ret, nil
98739	// {
98740	//   "description": "Adds specified number of nodes to the node group.",
98741	//   "httpMethod": "POST",
98742	//   "id": "compute.nodeGroups.addNodes",
98743	//   "parameterOrder": [
98744	//     "project",
98745	//     "zone",
98746	//     "nodeGroup"
98747	//   ],
98748	//   "parameters": {
98749	//     "nodeGroup": {
98750	//       "description": "Name of the NodeGroup resource.",
98751	//       "location": "path",
98752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98753	//       "required": true,
98754	//       "type": "string"
98755	//     },
98756	//     "project": {
98757	//       "description": "Project ID for this request.",
98758	//       "location": "path",
98759	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98760	//       "required": true,
98761	//       "type": "string"
98762	//     },
98763	//     "requestId": {
98764	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98765	//       "location": "query",
98766	//       "type": "string"
98767	//     },
98768	//     "zone": {
98769	//       "description": "The name of the zone for this request.",
98770	//       "location": "path",
98771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98772	//       "required": true,
98773	//       "type": "string"
98774	//     }
98775	//   },
98776	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
98777	//   "request": {
98778	//     "$ref": "NodeGroupsAddNodesRequest"
98779	//   },
98780	//   "response": {
98781	//     "$ref": "Operation"
98782	//   },
98783	//   "scopes": [
98784	//     "https://www.googleapis.com/auth/cloud-platform",
98785	//     "https://www.googleapis.com/auth/compute"
98786	//   ]
98787	// }
98788
98789}
98790
98791// method id "compute.nodeGroups.aggregatedList":
98792
98793type NodeGroupsAggregatedListCall struct {
98794	s            *Service
98795	project      string
98796	urlParams_   gensupport.URLParams
98797	ifNoneMatch_ string
98798	ctx_         context.Context
98799	header_      http.Header
98800}
98801
98802// AggregatedList: Retrieves an aggregated list of node groups. Note:
98803// use nodeGroups.listNodes for more details about each group.
98804func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
98805	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98806	c.project = project
98807	return c
98808}
98809
98810// Filter sets the optional parameter "filter": A filter expression that
98811// filters resources listed in the response. The expression must specify
98812// the field name, a comparison operator, and the value that you want to
98813// use for filtering. The value must be a string, a number, or a
98814// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98815// `<`.
98816//
98817// For example, if you are filtering Compute Engine instances, you can
98818// exclude instances named `example-instance` by specifying `name !=
98819// example-instance`.
98820//
98821// You can also filter nested fields. For example, you could specify
98822// `scheduling.automaticRestart = false` to include instances only if
98823// they are not scheduled for automatic restarts. You can use filtering
98824// on nested fields to filter based on resource labels.
98825//
98826// To filter on multiple expressions, provide each separate expression
98827// within parentheses. For example: ``` (scheduling.automaticRestart =
98828// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
98829// is an `AND` expression. However, you can include `AND` and `OR`
98830// expressions explicitly. For example: ``` (cpuPlatform = "Intel
98831// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
98832// (scheduling.automaticRestart = true) ```
98833func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
98834	c.urlParams_.Set("filter", filter)
98835	return c
98836}
98837
98838// IncludeAllScopes sets the optional parameter "includeAllScopes":
98839// Indicates whether every visible scope for each scope type (zone,
98840// region, global) should be included in the response. For new resource
98841// types added after this field, the flag has no effect as new resource
98842// types will always include every visible scope for each scope type in
98843// response. For resource types which predate this field, if this flag
98844// is omitted or false, only scopes of the scope types where the
98845// resource type is expected to be found will be included.
98846func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
98847	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
98848	return c
98849}
98850
98851// MaxResults sets the optional parameter "maxResults": The maximum
98852// number of results per page that should be returned. If the number of
98853// available results is larger than `maxResults`, Compute Engine returns
98854// a `nextPageToken` that can be used to get the next page of results in
98855// subsequent list requests. Acceptable values are `0` to `500`,
98856// inclusive. (Default: `500`)
98857func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
98858	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98859	return c
98860}
98861
98862// OrderBy sets the optional parameter "orderBy": Sorts list results by
98863// a certain order. By default, results are returned in alphanumerical
98864// order based on the resource name.
98865//
98866// You can also sort results in descending order based on the creation
98867// timestamp using `orderBy="creationTimestamp desc". This sorts
98868// results based on the `creationTimestamp` field in reverse
98869// chronological order (newest result first). Use this to sort resources
98870// like operations so that the newest operation is returned
98871// first.
98872//
98873// Currently, only sorting by `name` or `creationTimestamp desc` is
98874// supported.
98875func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
98876	c.urlParams_.Set("orderBy", orderBy)
98877	return c
98878}
98879
98880// PageToken sets the optional parameter "pageToken": Specifies a page
98881// token to use. Set `pageToken` to the `nextPageToken` returned by a
98882// previous list request to get the next page of results.
98883func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
98884	c.urlParams_.Set("pageToken", pageToken)
98885	return c
98886}
98887
98888// Fields allows partial responses to be retrieved. See
98889// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98890// for more information.
98891func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
98892	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98893	return c
98894}
98895
98896// IfNoneMatch sets the optional parameter which makes the operation
98897// fail if the object's ETag matches the given value. This is useful for
98898// getting updates only after the object has changed since the last
98899// request. Use googleapi.IsNotModified to check whether the response
98900// error from Do is the result of In-None-Match.
98901func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
98902	c.ifNoneMatch_ = entityTag
98903	return c
98904}
98905
98906// Context sets the context to be used in this call's Do method. Any
98907// pending HTTP request will be aborted if the provided context is
98908// canceled.
98909func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
98910	c.ctx_ = ctx
98911	return c
98912}
98913
98914// Header returns an http.Header that can be modified by the caller to
98915// add HTTP headers to the request.
98916func (c *NodeGroupsAggregatedListCall) Header() http.Header {
98917	if c.header_ == nil {
98918		c.header_ = make(http.Header)
98919	}
98920	return c.header_
98921}
98922
98923func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
98924	reqHeaders := make(http.Header)
98925	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
98926	for k, v := range c.header_ {
98927		reqHeaders[k] = v
98928	}
98929	reqHeaders.Set("User-Agent", c.s.userAgent())
98930	if c.ifNoneMatch_ != "" {
98931		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98932	}
98933	var body io.Reader = nil
98934	c.urlParams_.Set("alt", alt)
98935	c.urlParams_.Set("prettyPrint", "false")
98936	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeGroups")
98937	urls += "?" + c.urlParams_.Encode()
98938	req, err := http.NewRequest("GET", urls, body)
98939	if err != nil {
98940		return nil, err
98941	}
98942	req.Header = reqHeaders
98943	googleapi.Expand(req.URL, map[string]string{
98944		"project": c.project,
98945	})
98946	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98947}
98948
98949// Do executes the "compute.nodeGroups.aggregatedList" call.
98950// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
98951// non-2xx status code is an error. Response headers are in either
98952// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
98953// returned at all) in error.(*googleapi.Error).Header. Use
98954// googleapi.IsNotModified to check whether the returned error was
98955// because http.StatusNotModified was returned.
98956func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
98957	gensupport.SetOptions(c.urlParams_, opts...)
98958	res, err := c.doRequest("json")
98959	if res != nil && res.StatusCode == http.StatusNotModified {
98960		if res.Body != nil {
98961			res.Body.Close()
98962		}
98963		return nil, &googleapi.Error{
98964			Code:   res.StatusCode,
98965			Header: res.Header,
98966		}
98967	}
98968	if err != nil {
98969		return nil, err
98970	}
98971	defer googleapi.CloseBody(res)
98972	if err := googleapi.CheckResponse(res); err != nil {
98973		return nil, err
98974	}
98975	ret := &NodeGroupAggregatedList{
98976		ServerResponse: googleapi.ServerResponse{
98977			Header:         res.Header,
98978			HTTPStatusCode: res.StatusCode,
98979		},
98980	}
98981	target := &ret
98982	if err := gensupport.DecodeResponse(target, res); err != nil {
98983		return nil, err
98984	}
98985	return ret, nil
98986	// {
98987	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
98988	//   "httpMethod": "GET",
98989	//   "id": "compute.nodeGroups.aggregatedList",
98990	//   "parameterOrder": [
98991	//     "project"
98992	//   ],
98993	//   "parameters": {
98994	//     "filter": {
98995	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
98996	//       "location": "query",
98997	//       "type": "string"
98998	//     },
98999	//     "includeAllScopes": {
99000	//       "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.",
99001	//       "location": "query",
99002	//       "type": "boolean"
99003	//     },
99004	//     "maxResults": {
99005	//       "default": "500",
99006	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
99007	//       "format": "uint32",
99008	//       "location": "query",
99009	//       "minimum": "0",
99010	//       "type": "integer"
99011	//     },
99012	//     "orderBy": {
99013	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
99014	//       "location": "query",
99015	//       "type": "string"
99016	//     },
99017	//     "pageToken": {
99018	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
99019	//       "location": "query",
99020	//       "type": "string"
99021	//     },
99022	//     "project": {
99023	//       "description": "Project ID for this request.",
99024	//       "location": "path",
99025	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99026	//       "required": true,
99027	//       "type": "string"
99028	//     }
99029	//   },
99030	//   "path": "{project}/aggregated/nodeGroups",
99031	//   "response": {
99032	//     "$ref": "NodeGroupAggregatedList"
99033	//   },
99034	//   "scopes": [
99035	//     "https://www.googleapis.com/auth/cloud-platform",
99036	//     "https://www.googleapis.com/auth/compute",
99037	//     "https://www.googleapis.com/auth/compute.readonly"
99038	//   ]
99039	// }
99040
99041}
99042
99043// Pages invokes f for each page of results.
99044// A non-nil error returned from f will halt the iteration.
99045// The provided context supersedes any context provided to the Context method.
99046func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
99047	c.ctx_ = ctx
99048	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99049	for {
99050		x, err := c.Do()
99051		if err != nil {
99052			return err
99053		}
99054		if err := f(x); err != nil {
99055			return err
99056		}
99057		if x.NextPageToken == "" {
99058			return nil
99059		}
99060		c.PageToken(x.NextPageToken)
99061	}
99062}
99063
99064// method id "compute.nodeGroups.delete":
99065
99066type NodeGroupsDeleteCall struct {
99067	s          *Service
99068	project    string
99069	zone       string
99070	nodeGroup  string
99071	urlParams_ gensupport.URLParams
99072	ctx_       context.Context
99073	header_    http.Header
99074}
99075
99076// Delete: Deletes the specified NodeGroup resource.
99077func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
99078	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99079	c.project = project
99080	c.zone = zone
99081	c.nodeGroup = nodeGroup
99082	return c
99083}
99084
99085// RequestId sets the optional parameter "requestId": An optional
99086// request ID to identify requests. Specify a unique request ID so that
99087// if you must retry your request, the server will know to ignore the
99088// request if it has already been completed.
99089//
99090// For example, consider a situation where you make an initial request
99091// and the request times out. If you make the request again with the
99092// same request ID, the server can check if original operation with the
99093// same request ID was received, and if so, will ignore the second
99094// request. This prevents clients from accidentally creating duplicate
99095// commitments.
99096//
99097// The request ID must be a valid UUID with the exception that zero UUID
99098// is not supported (00000000-0000-0000-0000-000000000000).
99099func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
99100	c.urlParams_.Set("requestId", requestId)
99101	return c
99102}
99103
99104// Fields allows partial responses to be retrieved. See
99105// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99106// for more information.
99107func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
99108	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99109	return c
99110}
99111
99112// Context sets the context to be used in this call's Do method. Any
99113// pending HTTP request will be aborted if the provided context is
99114// canceled.
99115func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
99116	c.ctx_ = ctx
99117	return c
99118}
99119
99120// Header returns an http.Header that can be modified by the caller to
99121// add HTTP headers to the request.
99122func (c *NodeGroupsDeleteCall) Header() http.Header {
99123	if c.header_ == nil {
99124		c.header_ = make(http.Header)
99125	}
99126	return c.header_
99127}
99128
99129func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
99130	reqHeaders := make(http.Header)
99131	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99132	for k, v := range c.header_ {
99133		reqHeaders[k] = v
99134	}
99135	reqHeaders.Set("User-Agent", c.s.userAgent())
99136	var body io.Reader = nil
99137	c.urlParams_.Set("alt", alt)
99138	c.urlParams_.Set("prettyPrint", "false")
99139	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
99140	urls += "?" + c.urlParams_.Encode()
99141	req, err := http.NewRequest("DELETE", urls, body)
99142	if err != nil {
99143		return nil, err
99144	}
99145	req.Header = reqHeaders
99146	googleapi.Expand(req.URL, map[string]string{
99147		"project":   c.project,
99148		"zone":      c.zone,
99149		"nodeGroup": c.nodeGroup,
99150	})
99151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99152}
99153
99154// Do executes the "compute.nodeGroups.delete" call.
99155// Exactly one of *Operation or error will be non-nil. Any non-2xx
99156// status code is an error. Response headers are in either
99157// *Operation.ServerResponse.Header or (if a response was returned at
99158// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99159// to check whether the returned error was because
99160// http.StatusNotModified was returned.
99161func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99162	gensupport.SetOptions(c.urlParams_, opts...)
99163	res, err := c.doRequest("json")
99164	if res != nil && res.StatusCode == http.StatusNotModified {
99165		if res.Body != nil {
99166			res.Body.Close()
99167		}
99168		return nil, &googleapi.Error{
99169			Code:   res.StatusCode,
99170			Header: res.Header,
99171		}
99172	}
99173	if err != nil {
99174		return nil, err
99175	}
99176	defer googleapi.CloseBody(res)
99177	if err := googleapi.CheckResponse(res); err != nil {
99178		return nil, err
99179	}
99180	ret := &Operation{
99181		ServerResponse: googleapi.ServerResponse{
99182			Header:         res.Header,
99183			HTTPStatusCode: res.StatusCode,
99184		},
99185	}
99186	target := &ret
99187	if err := gensupport.DecodeResponse(target, res); err != nil {
99188		return nil, err
99189	}
99190	return ret, nil
99191	// {
99192	//   "description": "Deletes the specified NodeGroup resource.",
99193	//   "httpMethod": "DELETE",
99194	//   "id": "compute.nodeGroups.delete",
99195	//   "parameterOrder": [
99196	//     "project",
99197	//     "zone",
99198	//     "nodeGroup"
99199	//   ],
99200	//   "parameters": {
99201	//     "nodeGroup": {
99202	//       "description": "Name of the NodeGroup resource to delete.",
99203	//       "location": "path",
99204	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99205	//       "required": true,
99206	//       "type": "string"
99207	//     },
99208	//     "project": {
99209	//       "description": "Project ID for this request.",
99210	//       "location": "path",
99211	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99212	//       "required": true,
99213	//       "type": "string"
99214	//     },
99215	//     "requestId": {
99216	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99217	//       "location": "query",
99218	//       "type": "string"
99219	//     },
99220	//     "zone": {
99221	//       "description": "The name of the zone for this request.",
99222	//       "location": "path",
99223	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99224	//       "required": true,
99225	//       "type": "string"
99226	//     }
99227	//   },
99228	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
99229	//   "response": {
99230	//     "$ref": "Operation"
99231	//   },
99232	//   "scopes": [
99233	//     "https://www.googleapis.com/auth/cloud-platform",
99234	//     "https://www.googleapis.com/auth/compute"
99235	//   ]
99236	// }
99237
99238}
99239
99240// method id "compute.nodeGroups.deleteNodes":
99241
99242type NodeGroupsDeleteNodesCall struct {
99243	s                            *Service
99244	project                      string
99245	zone                         string
99246	nodeGroup                    string
99247	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
99248	urlParams_                   gensupport.URLParams
99249	ctx_                         context.Context
99250	header_                      http.Header
99251}
99252
99253// DeleteNodes: Deletes specified nodes from the node group.
99254func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
99255	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99256	c.project = project
99257	c.zone = zone
99258	c.nodeGroup = nodeGroup
99259	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
99260	return c
99261}
99262
99263// RequestId sets the optional parameter "requestId": An optional
99264// request ID to identify requests. Specify a unique request ID so that
99265// if you must retry your request, the server will know to ignore the
99266// request if it has already been completed.
99267//
99268// For example, consider a situation where you make an initial request
99269// and the request times out. If you make the request again with the
99270// same request ID, the server can check if original operation with the
99271// same request ID was received, and if so, will ignore the second
99272// request. This prevents clients from accidentally creating duplicate
99273// commitments.
99274//
99275// The request ID must be a valid UUID with the exception that zero UUID
99276// is not supported (00000000-0000-0000-0000-000000000000).
99277func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
99278	c.urlParams_.Set("requestId", requestId)
99279	return c
99280}
99281
99282// Fields allows partial responses to be retrieved. See
99283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99284// for more information.
99285func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
99286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99287	return c
99288}
99289
99290// Context sets the context to be used in this call's Do method. Any
99291// pending HTTP request will be aborted if the provided context is
99292// canceled.
99293func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
99294	c.ctx_ = ctx
99295	return c
99296}
99297
99298// Header returns an http.Header that can be modified by the caller to
99299// add HTTP headers to the request.
99300func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
99301	if c.header_ == nil {
99302		c.header_ = make(http.Header)
99303	}
99304	return c.header_
99305}
99306
99307func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
99308	reqHeaders := make(http.Header)
99309	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99310	for k, v := range c.header_ {
99311		reqHeaders[k] = v
99312	}
99313	reqHeaders.Set("User-Agent", c.s.userAgent())
99314	var body io.Reader = nil
99315	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
99316	if err != nil {
99317		return nil, err
99318	}
99319	reqHeaders.Set("Content-Type", "application/json")
99320	c.urlParams_.Set("alt", alt)
99321	c.urlParams_.Set("prettyPrint", "false")
99322	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
99323	urls += "?" + c.urlParams_.Encode()
99324	req, err := http.NewRequest("POST", urls, body)
99325	if err != nil {
99326		return nil, err
99327	}
99328	req.Header = reqHeaders
99329	googleapi.Expand(req.URL, map[string]string{
99330		"project":   c.project,
99331		"zone":      c.zone,
99332		"nodeGroup": c.nodeGroup,
99333	})
99334	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99335}
99336
99337// Do executes the "compute.nodeGroups.deleteNodes" call.
99338// Exactly one of *Operation or error will be non-nil. Any non-2xx
99339// status code is an error. Response headers are in either
99340// *Operation.ServerResponse.Header or (if a response was returned at
99341// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99342// to check whether the returned error was because
99343// http.StatusNotModified was returned.
99344func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99345	gensupport.SetOptions(c.urlParams_, opts...)
99346	res, err := c.doRequest("json")
99347	if res != nil && res.StatusCode == http.StatusNotModified {
99348		if res.Body != nil {
99349			res.Body.Close()
99350		}
99351		return nil, &googleapi.Error{
99352			Code:   res.StatusCode,
99353			Header: res.Header,
99354		}
99355	}
99356	if err != nil {
99357		return nil, err
99358	}
99359	defer googleapi.CloseBody(res)
99360	if err := googleapi.CheckResponse(res); err != nil {
99361		return nil, err
99362	}
99363	ret := &Operation{
99364		ServerResponse: googleapi.ServerResponse{
99365			Header:         res.Header,
99366			HTTPStatusCode: res.StatusCode,
99367		},
99368	}
99369	target := &ret
99370	if err := gensupport.DecodeResponse(target, res); err != nil {
99371		return nil, err
99372	}
99373	return ret, nil
99374	// {
99375	//   "description": "Deletes specified nodes from the node group.",
99376	//   "httpMethod": "POST",
99377	//   "id": "compute.nodeGroups.deleteNodes",
99378	//   "parameterOrder": [
99379	//     "project",
99380	//     "zone",
99381	//     "nodeGroup"
99382	//   ],
99383	//   "parameters": {
99384	//     "nodeGroup": {
99385	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
99386	//       "location": "path",
99387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99388	//       "required": true,
99389	//       "type": "string"
99390	//     },
99391	//     "project": {
99392	//       "description": "Project ID for this request.",
99393	//       "location": "path",
99394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99395	//       "required": true,
99396	//       "type": "string"
99397	//     },
99398	//     "requestId": {
99399	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99400	//       "location": "query",
99401	//       "type": "string"
99402	//     },
99403	//     "zone": {
99404	//       "description": "The name of the zone for this request.",
99405	//       "location": "path",
99406	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99407	//       "required": true,
99408	//       "type": "string"
99409	//     }
99410	//   },
99411	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
99412	//   "request": {
99413	//     "$ref": "NodeGroupsDeleteNodesRequest"
99414	//   },
99415	//   "response": {
99416	//     "$ref": "Operation"
99417	//   },
99418	//   "scopes": [
99419	//     "https://www.googleapis.com/auth/cloud-platform",
99420	//     "https://www.googleapis.com/auth/compute"
99421	//   ]
99422	// }
99423
99424}
99425
99426// method id "compute.nodeGroups.get":
99427
99428type NodeGroupsGetCall struct {
99429	s            *Service
99430	project      string
99431	zone         string
99432	nodeGroup    string
99433	urlParams_   gensupport.URLParams
99434	ifNoneMatch_ string
99435	ctx_         context.Context
99436	header_      http.Header
99437}
99438
99439// Get: Returns the specified NodeGroup. Get a list of available
99440// NodeGroups by making a list() request. Note: the "nodes" field should
99441// not be used. Use nodeGroups.listNodes instead.
99442func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
99443	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99444	c.project = project
99445	c.zone = zone
99446	c.nodeGroup = nodeGroup
99447	return c
99448}
99449
99450// Fields allows partial responses to be retrieved. See
99451// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99452// for more information.
99453func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
99454	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99455	return c
99456}
99457
99458// IfNoneMatch sets the optional parameter which makes the operation
99459// fail if the object's ETag matches the given value. This is useful for
99460// getting updates only after the object has changed since the last
99461// request. Use googleapi.IsNotModified to check whether the response
99462// error from Do is the result of In-None-Match.
99463func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
99464	c.ifNoneMatch_ = entityTag
99465	return c
99466}
99467
99468// Context sets the context to be used in this call's Do method. Any
99469// pending HTTP request will be aborted if the provided context is
99470// canceled.
99471func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
99472	c.ctx_ = ctx
99473	return c
99474}
99475
99476// Header returns an http.Header that can be modified by the caller to
99477// add HTTP headers to the request.
99478func (c *NodeGroupsGetCall) Header() http.Header {
99479	if c.header_ == nil {
99480		c.header_ = make(http.Header)
99481	}
99482	return c.header_
99483}
99484
99485func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
99486	reqHeaders := make(http.Header)
99487	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99488	for k, v := range c.header_ {
99489		reqHeaders[k] = v
99490	}
99491	reqHeaders.Set("User-Agent", c.s.userAgent())
99492	if c.ifNoneMatch_ != "" {
99493		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99494	}
99495	var body io.Reader = nil
99496	c.urlParams_.Set("alt", alt)
99497	c.urlParams_.Set("prettyPrint", "false")
99498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
99499	urls += "?" + c.urlParams_.Encode()
99500	req, err := http.NewRequest("GET", urls, body)
99501	if err != nil {
99502		return nil, err
99503	}
99504	req.Header = reqHeaders
99505	googleapi.Expand(req.URL, map[string]string{
99506		"project":   c.project,
99507		"zone":      c.zone,
99508		"nodeGroup": c.nodeGroup,
99509	})
99510	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99511}
99512
99513// Do executes the "compute.nodeGroups.get" call.
99514// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
99515// status code is an error. Response headers are in either
99516// *NodeGroup.ServerResponse.Header or (if a response was returned at
99517// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99518// to check whether the returned error was because
99519// http.StatusNotModified was returned.
99520func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
99521	gensupport.SetOptions(c.urlParams_, opts...)
99522	res, err := c.doRequest("json")
99523	if res != nil && res.StatusCode == http.StatusNotModified {
99524		if res.Body != nil {
99525			res.Body.Close()
99526		}
99527		return nil, &googleapi.Error{
99528			Code:   res.StatusCode,
99529			Header: res.Header,
99530		}
99531	}
99532	if err != nil {
99533		return nil, err
99534	}
99535	defer googleapi.CloseBody(res)
99536	if err := googleapi.CheckResponse(res); err != nil {
99537		return nil, err
99538	}
99539	ret := &NodeGroup{
99540		ServerResponse: googleapi.ServerResponse{
99541			Header:         res.Header,
99542			HTTPStatusCode: res.StatusCode,
99543		},
99544	}
99545	target := &ret
99546	if err := gensupport.DecodeResponse(target, res); err != nil {
99547		return nil, err
99548	}
99549	return ret, nil
99550	// {
99551	//   "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.",
99552	//   "httpMethod": "GET",
99553	//   "id": "compute.nodeGroups.get",
99554	//   "parameterOrder": [
99555	//     "project",
99556	//     "zone",
99557	//     "nodeGroup"
99558	//   ],
99559	//   "parameters": {
99560	//     "nodeGroup": {
99561	//       "description": "Name of the node group to return.",
99562	//       "location": "path",
99563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99564	//       "required": true,
99565	//       "type": "string"
99566	//     },
99567	//     "project": {
99568	//       "description": "Project ID for this request.",
99569	//       "location": "path",
99570	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99571	//       "required": true,
99572	//       "type": "string"
99573	//     },
99574	//     "zone": {
99575	//       "description": "The name of the zone for this request.",
99576	//       "location": "path",
99577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99578	//       "required": true,
99579	//       "type": "string"
99580	//     }
99581	//   },
99582	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
99583	//   "response": {
99584	//     "$ref": "NodeGroup"
99585	//   },
99586	//   "scopes": [
99587	//     "https://www.googleapis.com/auth/cloud-platform",
99588	//     "https://www.googleapis.com/auth/compute",
99589	//     "https://www.googleapis.com/auth/compute.readonly"
99590	//   ]
99591	// }
99592
99593}
99594
99595// method id "compute.nodeGroups.getIamPolicy":
99596
99597type NodeGroupsGetIamPolicyCall struct {
99598	s            *Service
99599	project      string
99600	zone         string
99601	resource     string
99602	urlParams_   gensupport.URLParams
99603	ifNoneMatch_ string
99604	ctx_         context.Context
99605	header_      http.Header
99606}
99607
99608// GetIamPolicy: Gets the access control policy for a resource. May be
99609// empty if no such policy or resource exists.
99610func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
99611	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99612	c.project = project
99613	c.zone = zone
99614	c.resource = resource
99615	return c
99616}
99617
99618// OptionsRequestedPolicyVersion sets the optional parameter
99619// "optionsRequestedPolicyVersion": Requested IAM Policy version.
99620func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
99621	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
99622	return c
99623}
99624
99625// Fields allows partial responses to be retrieved. See
99626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99627// for more information.
99628func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
99629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99630	return c
99631}
99632
99633// IfNoneMatch sets the optional parameter which makes the operation
99634// fail if the object's ETag matches the given value. This is useful for
99635// getting updates only after the object has changed since the last
99636// request. Use googleapi.IsNotModified to check whether the response
99637// error from Do is the result of In-None-Match.
99638func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
99639	c.ifNoneMatch_ = entityTag
99640	return c
99641}
99642
99643// Context sets the context to be used in this call's Do method. Any
99644// pending HTTP request will be aborted if the provided context is
99645// canceled.
99646func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
99647	c.ctx_ = ctx
99648	return c
99649}
99650
99651// Header returns an http.Header that can be modified by the caller to
99652// add HTTP headers to the request.
99653func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
99654	if c.header_ == nil {
99655		c.header_ = make(http.Header)
99656	}
99657	return c.header_
99658}
99659
99660func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99661	reqHeaders := make(http.Header)
99662	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99663	for k, v := range c.header_ {
99664		reqHeaders[k] = v
99665	}
99666	reqHeaders.Set("User-Agent", c.s.userAgent())
99667	if c.ifNoneMatch_ != "" {
99668		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99669	}
99670	var body io.Reader = nil
99671	c.urlParams_.Set("alt", alt)
99672	c.urlParams_.Set("prettyPrint", "false")
99673	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
99674	urls += "?" + c.urlParams_.Encode()
99675	req, err := http.NewRequest("GET", urls, body)
99676	if err != nil {
99677		return nil, err
99678	}
99679	req.Header = reqHeaders
99680	googleapi.Expand(req.URL, map[string]string{
99681		"project":  c.project,
99682		"zone":     c.zone,
99683		"resource": c.resource,
99684	})
99685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99686}
99687
99688// Do executes the "compute.nodeGroups.getIamPolicy" call.
99689// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99690// code is an error. Response headers are in either
99691// *Policy.ServerResponse.Header or (if a response was returned at all)
99692// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99693// check whether the returned error was because http.StatusNotModified
99694// was returned.
99695func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99696	gensupport.SetOptions(c.urlParams_, opts...)
99697	res, err := c.doRequest("json")
99698	if res != nil && res.StatusCode == http.StatusNotModified {
99699		if res.Body != nil {
99700			res.Body.Close()
99701		}
99702		return nil, &googleapi.Error{
99703			Code:   res.StatusCode,
99704			Header: res.Header,
99705		}
99706	}
99707	if err != nil {
99708		return nil, err
99709	}
99710	defer googleapi.CloseBody(res)
99711	if err := googleapi.CheckResponse(res); err != nil {
99712		return nil, err
99713	}
99714	ret := &Policy{
99715		ServerResponse: googleapi.ServerResponse{
99716			Header:         res.Header,
99717			HTTPStatusCode: res.StatusCode,
99718		},
99719	}
99720	target := &ret
99721	if err := gensupport.DecodeResponse(target, res); err != nil {
99722		return nil, err
99723	}
99724	return ret, nil
99725	// {
99726	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
99727	//   "httpMethod": "GET",
99728	//   "id": "compute.nodeGroups.getIamPolicy",
99729	//   "parameterOrder": [
99730	//     "project",
99731	//     "zone",
99732	//     "resource"
99733	//   ],
99734	//   "parameters": {
99735	//     "optionsRequestedPolicyVersion": {
99736	//       "description": "Requested IAM Policy version.",
99737	//       "format": "int32",
99738	//       "location": "query",
99739	//       "type": "integer"
99740	//     },
99741	//     "project": {
99742	//       "description": "Project ID for this request.",
99743	//       "location": "path",
99744	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99745	//       "required": true,
99746	//       "type": "string"
99747	//     },
99748	//     "resource": {
99749	//       "description": "Name or id of the resource for this request.",
99750	//       "location": "path",
99751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99752	//       "required": true,
99753	//       "type": "string"
99754	//     },
99755	//     "zone": {
99756	//       "description": "The name of the zone for this request.",
99757	//       "location": "path",
99758	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99759	//       "required": true,
99760	//       "type": "string"
99761	//     }
99762	//   },
99763	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
99764	//   "response": {
99765	//     "$ref": "Policy"
99766	//   },
99767	//   "scopes": [
99768	//     "https://www.googleapis.com/auth/cloud-platform",
99769	//     "https://www.googleapis.com/auth/compute",
99770	//     "https://www.googleapis.com/auth/compute.readonly"
99771	//   ]
99772	// }
99773
99774}
99775
99776// method id "compute.nodeGroups.insert":
99777
99778type NodeGroupsInsertCall struct {
99779	s          *Service
99780	project    string
99781	zone       string
99782	nodegroup  *NodeGroup
99783	urlParams_ gensupport.URLParams
99784	ctx_       context.Context
99785	header_    http.Header
99786}
99787
99788// Insert: Creates a NodeGroup resource in the specified project using
99789// the data included in the request.
99790func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
99791	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99792	c.project = project
99793	c.zone = zone
99794	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
99795	c.nodegroup = nodegroup
99796	return c
99797}
99798
99799// RequestId sets the optional parameter "requestId": An optional
99800// request ID to identify requests. Specify a unique request ID so that
99801// if you must retry your request, the server will know to ignore the
99802// request if it has already been completed.
99803//
99804// For example, consider a situation where you make an initial request
99805// and the request times out. If you make the request again with the
99806// same request ID, the server can check if original operation with the
99807// same request ID was received, and if so, will ignore the second
99808// request. This prevents clients from accidentally creating duplicate
99809// commitments.
99810//
99811// The request ID must be a valid UUID with the exception that zero UUID
99812// is not supported (00000000-0000-0000-0000-000000000000).
99813func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
99814	c.urlParams_.Set("requestId", requestId)
99815	return c
99816}
99817
99818// Fields allows partial responses to be retrieved. See
99819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99820// for more information.
99821func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
99822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99823	return c
99824}
99825
99826// Context sets the context to be used in this call's Do method. Any
99827// pending HTTP request will be aborted if the provided context is
99828// canceled.
99829func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
99830	c.ctx_ = ctx
99831	return c
99832}
99833
99834// Header returns an http.Header that can be modified by the caller to
99835// add HTTP headers to the request.
99836func (c *NodeGroupsInsertCall) Header() http.Header {
99837	if c.header_ == nil {
99838		c.header_ = make(http.Header)
99839	}
99840	return c.header_
99841}
99842
99843func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
99844	reqHeaders := make(http.Header)
99845	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
99846	for k, v := range c.header_ {
99847		reqHeaders[k] = v
99848	}
99849	reqHeaders.Set("User-Agent", c.s.userAgent())
99850	var body io.Reader = nil
99851	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
99852	if err != nil {
99853		return nil, err
99854	}
99855	reqHeaders.Set("Content-Type", "application/json")
99856	c.urlParams_.Set("alt", alt)
99857	c.urlParams_.Set("prettyPrint", "false")
99858	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
99859	urls += "?" + c.urlParams_.Encode()
99860	req, err := http.NewRequest("POST", urls, body)
99861	if err != nil {
99862		return nil, err
99863	}
99864	req.Header = reqHeaders
99865	googleapi.Expand(req.URL, map[string]string{
99866		"project": c.project,
99867		"zone":    c.zone,
99868	})
99869	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99870}
99871
99872// Do executes the "compute.nodeGroups.insert" call.
99873// Exactly one of *Operation or error will be non-nil. Any non-2xx
99874// status code is an error. Response headers are in either
99875// *Operation.ServerResponse.Header or (if a response was returned at
99876// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99877// to check whether the returned error was because
99878// http.StatusNotModified was returned.
99879func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99880	gensupport.SetOptions(c.urlParams_, opts...)
99881	res, err := c.doRequest("json")
99882	if res != nil && res.StatusCode == http.StatusNotModified {
99883		if res.Body != nil {
99884			res.Body.Close()
99885		}
99886		return nil, &googleapi.Error{
99887			Code:   res.StatusCode,
99888			Header: res.Header,
99889		}
99890	}
99891	if err != nil {
99892		return nil, err
99893	}
99894	defer googleapi.CloseBody(res)
99895	if err := googleapi.CheckResponse(res); err != nil {
99896		return nil, err
99897	}
99898	ret := &Operation{
99899		ServerResponse: googleapi.ServerResponse{
99900			Header:         res.Header,
99901			HTTPStatusCode: res.StatusCode,
99902		},
99903	}
99904	target := &ret
99905	if err := gensupport.DecodeResponse(target, res); err != nil {
99906		return nil, err
99907	}
99908	return ret, nil
99909	// {
99910	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
99911	//   "httpMethod": "POST",
99912	//   "id": "compute.nodeGroups.insert",
99913	//   "parameterOrder": [
99914	//     "project",
99915	//     "zone",
99916	//     "initialNodeCount"
99917	//   ],
99918	//   "parameters": {
99919	//     "initialNodeCount": {
99920	//       "description": "Initial count of nodes in the node group.",
99921	//       "format": "int32",
99922	//       "location": "query",
99923	//       "required": true,
99924	//       "type": "integer"
99925	//     },
99926	//     "project": {
99927	//       "description": "Project ID for this request.",
99928	//       "location": "path",
99929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99930	//       "required": true,
99931	//       "type": "string"
99932	//     },
99933	//     "requestId": {
99934	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99935	//       "location": "query",
99936	//       "type": "string"
99937	//     },
99938	//     "zone": {
99939	//       "description": "The name of the zone for this request.",
99940	//       "location": "path",
99941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99942	//       "required": true,
99943	//       "type": "string"
99944	//     }
99945	//   },
99946	//   "path": "{project}/zones/{zone}/nodeGroups",
99947	//   "request": {
99948	//     "$ref": "NodeGroup"
99949	//   },
99950	//   "response": {
99951	//     "$ref": "Operation"
99952	//   },
99953	//   "scopes": [
99954	//     "https://www.googleapis.com/auth/cloud-platform",
99955	//     "https://www.googleapis.com/auth/compute"
99956	//   ]
99957	// }
99958
99959}
99960
99961// method id "compute.nodeGroups.list":
99962
99963type NodeGroupsListCall struct {
99964	s            *Service
99965	project      string
99966	zone         string
99967	urlParams_   gensupport.URLParams
99968	ifNoneMatch_ string
99969	ctx_         context.Context
99970	header_      http.Header
99971}
99972
99973// List: Retrieves a list of node groups available to the specified
99974// project. Note: use nodeGroups.listNodes for more details about each
99975// group.
99976func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
99977	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99978	c.project = project
99979	c.zone = zone
99980	return c
99981}
99982
99983// Filter sets the optional parameter "filter": A filter expression that
99984// filters resources listed in the response. The expression must specify
99985// the field name, a comparison operator, and the value that you want to
99986// use for filtering. The value must be a string, a number, or a
99987// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99988// `<`.
99989//
99990// For example, if you are filtering Compute Engine instances, you can
99991// exclude instances named `example-instance` by specifying `name !=
99992// example-instance`.
99993//
99994// You can also filter nested fields. For example, you could specify
99995// `scheduling.automaticRestart = false` to include instances only if
99996// they are not scheduled for automatic restarts. You can use filtering
99997// on nested fields to filter based on resource labels.
99998//
99999// To filter on multiple expressions, provide each separate expression
100000// within parentheses. For example: ``` (scheduling.automaticRestart =
100001// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
100002// is an `AND` expression. However, you can include `AND` and `OR`
100003// expressions explicitly. For example: ``` (cpuPlatform = "Intel
100004// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
100005// (scheduling.automaticRestart = true) ```
100006func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
100007	c.urlParams_.Set("filter", filter)
100008	return c
100009}
100010
100011// MaxResults sets the optional parameter "maxResults": The maximum
100012// number of results per page that should be returned. If the number of
100013// available results is larger than `maxResults`, Compute Engine returns
100014// a `nextPageToken` that can be used to get the next page of results in
100015// subsequent list requests. Acceptable values are `0` to `500`,
100016// inclusive. (Default: `500`)
100017func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
100018	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100019	return c
100020}
100021
100022// OrderBy sets the optional parameter "orderBy": Sorts list results by
100023// a certain order. By default, results are returned in alphanumerical
100024// order based on the resource name.
100025//
100026// You can also sort results in descending order based on the creation
100027// timestamp using `orderBy="creationTimestamp desc". This sorts
100028// results based on the `creationTimestamp` field in reverse
100029// chronological order (newest result first). Use this to sort resources
100030// like operations so that the newest operation is returned
100031// first.
100032//
100033// Currently, only sorting by `name` or `creationTimestamp desc` is
100034// supported.
100035func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
100036	c.urlParams_.Set("orderBy", orderBy)
100037	return c
100038}
100039
100040// PageToken sets the optional parameter "pageToken": Specifies a page
100041// token to use. Set `pageToken` to the `nextPageToken` returned by a
100042// previous list request to get the next page of results.
100043func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
100044	c.urlParams_.Set("pageToken", pageToken)
100045	return c
100046}
100047
100048// Fields allows partial responses to be retrieved. See
100049// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100050// for more information.
100051func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
100052	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100053	return c
100054}
100055
100056// IfNoneMatch sets the optional parameter which makes the operation
100057// fail if the object's ETag matches the given value. This is useful for
100058// getting updates only after the object has changed since the last
100059// request. Use googleapi.IsNotModified to check whether the response
100060// error from Do is the result of In-None-Match.
100061func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
100062	c.ifNoneMatch_ = entityTag
100063	return c
100064}
100065
100066// Context sets the context to be used in this call's Do method. Any
100067// pending HTTP request will be aborted if the provided context is
100068// canceled.
100069func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
100070	c.ctx_ = ctx
100071	return c
100072}
100073
100074// Header returns an http.Header that can be modified by the caller to
100075// add HTTP headers to the request.
100076func (c *NodeGroupsListCall) Header() http.Header {
100077	if c.header_ == nil {
100078		c.header_ = make(http.Header)
100079	}
100080	return c.header_
100081}
100082
100083func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
100084	reqHeaders := make(http.Header)
100085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100086	for k, v := range c.header_ {
100087		reqHeaders[k] = v
100088	}
100089	reqHeaders.Set("User-Agent", c.s.userAgent())
100090	if c.ifNoneMatch_ != "" {
100091		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100092	}
100093	var body io.Reader = nil
100094	c.urlParams_.Set("alt", alt)
100095	c.urlParams_.Set("prettyPrint", "false")
100096	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
100097	urls += "?" + c.urlParams_.Encode()
100098	req, err := http.NewRequest("GET", urls, body)
100099	if err != nil {
100100		return nil, err
100101	}
100102	req.Header = reqHeaders
100103	googleapi.Expand(req.URL, map[string]string{
100104		"project": c.project,
100105		"zone":    c.zone,
100106	})
100107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100108}
100109
100110// Do executes the "compute.nodeGroups.list" call.
100111// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
100112// status code is an error. Response headers are in either
100113// *NodeGroupList.ServerResponse.Header or (if a response was returned
100114// at all) in error.(*googleapi.Error).Header. Use
100115// googleapi.IsNotModified to check whether the returned error was
100116// because http.StatusNotModified was returned.
100117func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
100118	gensupport.SetOptions(c.urlParams_, opts...)
100119	res, err := c.doRequest("json")
100120	if res != nil && res.StatusCode == http.StatusNotModified {
100121		if res.Body != nil {
100122			res.Body.Close()
100123		}
100124		return nil, &googleapi.Error{
100125			Code:   res.StatusCode,
100126			Header: res.Header,
100127		}
100128	}
100129	if err != nil {
100130		return nil, err
100131	}
100132	defer googleapi.CloseBody(res)
100133	if err := googleapi.CheckResponse(res); err != nil {
100134		return nil, err
100135	}
100136	ret := &NodeGroupList{
100137		ServerResponse: googleapi.ServerResponse{
100138			Header:         res.Header,
100139			HTTPStatusCode: res.StatusCode,
100140		},
100141	}
100142	target := &ret
100143	if err := gensupport.DecodeResponse(target, res); err != nil {
100144		return nil, err
100145	}
100146	return ret, nil
100147	// {
100148	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
100149	//   "httpMethod": "GET",
100150	//   "id": "compute.nodeGroups.list",
100151	//   "parameterOrder": [
100152	//     "project",
100153	//     "zone"
100154	//   ],
100155	//   "parameters": {
100156	//     "filter": {
100157	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100158	//       "location": "query",
100159	//       "type": "string"
100160	//     },
100161	//     "maxResults": {
100162	//       "default": "500",
100163	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100164	//       "format": "uint32",
100165	//       "location": "query",
100166	//       "minimum": "0",
100167	//       "type": "integer"
100168	//     },
100169	//     "orderBy": {
100170	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
100171	//       "location": "query",
100172	//       "type": "string"
100173	//     },
100174	//     "pageToken": {
100175	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100176	//       "location": "query",
100177	//       "type": "string"
100178	//     },
100179	//     "project": {
100180	//       "description": "Project ID for this request.",
100181	//       "location": "path",
100182	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100183	//       "required": true,
100184	//       "type": "string"
100185	//     },
100186	//     "zone": {
100187	//       "description": "The name of the zone for this request.",
100188	//       "location": "path",
100189	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100190	//       "required": true,
100191	//       "type": "string"
100192	//     }
100193	//   },
100194	//   "path": "{project}/zones/{zone}/nodeGroups",
100195	//   "response": {
100196	//     "$ref": "NodeGroupList"
100197	//   },
100198	//   "scopes": [
100199	//     "https://www.googleapis.com/auth/cloud-platform",
100200	//     "https://www.googleapis.com/auth/compute",
100201	//     "https://www.googleapis.com/auth/compute.readonly"
100202	//   ]
100203	// }
100204
100205}
100206
100207// Pages invokes f for each page of results.
100208// A non-nil error returned from f will halt the iteration.
100209// The provided context supersedes any context provided to the Context method.
100210func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
100211	c.ctx_ = ctx
100212	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100213	for {
100214		x, err := c.Do()
100215		if err != nil {
100216			return err
100217		}
100218		if err := f(x); err != nil {
100219			return err
100220		}
100221		if x.NextPageToken == "" {
100222			return nil
100223		}
100224		c.PageToken(x.NextPageToken)
100225	}
100226}
100227
100228// method id "compute.nodeGroups.listNodes":
100229
100230type NodeGroupsListNodesCall struct {
100231	s          *Service
100232	project    string
100233	zone       string
100234	nodeGroup  string
100235	urlParams_ gensupport.URLParams
100236	ctx_       context.Context
100237	header_    http.Header
100238}
100239
100240// ListNodes: Lists nodes in the node group.
100241func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
100242	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100243	c.project = project
100244	c.zone = zone
100245	c.nodeGroup = nodeGroup
100246	return c
100247}
100248
100249// Filter sets the optional parameter "filter": A filter expression that
100250// filters resources listed in the response. The expression must specify
100251// the field name, a comparison operator, and the value that you want to
100252// use for filtering. The value must be a string, a number, or a
100253// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100254// `<`.
100255//
100256// For example, if you are filtering Compute Engine instances, you can
100257// exclude instances named `example-instance` by specifying `name !=
100258// example-instance`.
100259//
100260// You can also filter nested fields. For example, you could specify
100261// `scheduling.automaticRestart = false` to include instances only if
100262// they are not scheduled for automatic restarts. You can use filtering
100263// on nested fields to filter based on resource labels.
100264//
100265// To filter on multiple expressions, provide each separate expression
100266// within parentheses. For example: ``` (scheduling.automaticRestart =
100267// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
100268// is an `AND` expression. However, you can include `AND` and `OR`
100269// expressions explicitly. For example: ``` (cpuPlatform = "Intel
100270// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
100271// (scheduling.automaticRestart = true) ```
100272func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
100273	c.urlParams_.Set("filter", filter)
100274	return c
100275}
100276
100277// MaxResults sets the optional parameter "maxResults": The maximum
100278// number of results per page that should be returned. If the number of
100279// available results is larger than `maxResults`, Compute Engine returns
100280// a `nextPageToken` that can be used to get the next page of results in
100281// subsequent list requests. Acceptable values are `0` to `500`,
100282// inclusive. (Default: `500`)
100283func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
100284	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100285	return c
100286}
100287
100288// OrderBy sets the optional parameter "orderBy": Sorts list results by
100289// a certain order. By default, results are returned in alphanumerical
100290// order based on the resource name.
100291//
100292// You can also sort results in descending order based on the creation
100293// timestamp using `orderBy="creationTimestamp desc". This sorts
100294// results based on the `creationTimestamp` field in reverse
100295// chronological order (newest result first). Use this to sort resources
100296// like operations so that the newest operation is returned
100297// first.
100298//
100299// Currently, only sorting by `name` or `creationTimestamp desc` is
100300// supported.
100301func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
100302	c.urlParams_.Set("orderBy", orderBy)
100303	return c
100304}
100305
100306// PageToken sets the optional parameter "pageToken": Specifies a page
100307// token to use. Set `pageToken` to the `nextPageToken` returned by a
100308// previous list request to get the next page of results.
100309func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
100310	c.urlParams_.Set("pageToken", pageToken)
100311	return c
100312}
100313
100314// Fields allows partial responses to be retrieved. See
100315// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100316// for more information.
100317func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
100318	c.urlParams_.Set("fields", googleapi.CombineFields(s))
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 *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
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 *NodeGroupsListNodesCall) Header() http.Header {
100333	if c.header_ == nil {
100334		c.header_ = make(http.Header)
100335	}
100336	return c.header_
100337}
100338
100339func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
100340	reqHeaders := make(http.Header)
100341	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100342	for k, v := range c.header_ {
100343		reqHeaders[k] = v
100344	}
100345	reqHeaders.Set("User-Agent", c.s.userAgent())
100346	var body io.Reader = nil
100347	c.urlParams_.Set("alt", alt)
100348	c.urlParams_.Set("prettyPrint", "false")
100349	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
100350	urls += "?" + c.urlParams_.Encode()
100351	req, err := http.NewRequest("POST", urls, body)
100352	if err != nil {
100353		return nil, err
100354	}
100355	req.Header = reqHeaders
100356	googleapi.Expand(req.URL, map[string]string{
100357		"project":   c.project,
100358		"zone":      c.zone,
100359		"nodeGroup": c.nodeGroup,
100360	})
100361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100362}
100363
100364// Do executes the "compute.nodeGroups.listNodes" call.
100365// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
100366// non-2xx status code is an error. Response headers are in either
100367// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
100368// returned at all) in error.(*googleapi.Error).Header. Use
100369// googleapi.IsNotModified to check whether the returned error was
100370// because http.StatusNotModified was returned.
100371func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
100372	gensupport.SetOptions(c.urlParams_, opts...)
100373	res, err := c.doRequest("json")
100374	if res != nil && res.StatusCode == http.StatusNotModified {
100375		if res.Body != nil {
100376			res.Body.Close()
100377		}
100378		return nil, &googleapi.Error{
100379			Code:   res.StatusCode,
100380			Header: res.Header,
100381		}
100382	}
100383	if err != nil {
100384		return nil, err
100385	}
100386	defer googleapi.CloseBody(res)
100387	if err := googleapi.CheckResponse(res); err != nil {
100388		return nil, err
100389	}
100390	ret := &NodeGroupsListNodes{
100391		ServerResponse: googleapi.ServerResponse{
100392			Header:         res.Header,
100393			HTTPStatusCode: res.StatusCode,
100394		},
100395	}
100396	target := &ret
100397	if err := gensupport.DecodeResponse(target, res); err != nil {
100398		return nil, err
100399	}
100400	return ret, nil
100401	// {
100402	//   "description": "Lists nodes in the node group.",
100403	//   "httpMethod": "POST",
100404	//   "id": "compute.nodeGroups.listNodes",
100405	//   "parameterOrder": [
100406	//     "project",
100407	//     "zone",
100408	//     "nodeGroup"
100409	//   ],
100410	//   "parameters": {
100411	//     "filter": {
100412	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100413	//       "location": "query",
100414	//       "type": "string"
100415	//     },
100416	//     "maxResults": {
100417	//       "default": "500",
100418	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100419	//       "format": "uint32",
100420	//       "location": "query",
100421	//       "minimum": "0",
100422	//       "type": "integer"
100423	//     },
100424	//     "nodeGroup": {
100425	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
100426	//       "location": "path",
100427	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100428	//       "required": true,
100429	//       "type": "string"
100430	//     },
100431	//     "orderBy": {
100432	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
100433	//       "location": "query",
100434	//       "type": "string"
100435	//     },
100436	//     "pageToken": {
100437	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100438	//       "location": "query",
100439	//       "type": "string"
100440	//     },
100441	//     "project": {
100442	//       "description": "Project ID for this request.",
100443	//       "location": "path",
100444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100445	//       "required": true,
100446	//       "type": "string"
100447	//     },
100448	//     "zone": {
100449	//       "description": "The name of the zone for this request.",
100450	//       "location": "path",
100451	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100452	//       "required": true,
100453	//       "type": "string"
100454	//     }
100455	//   },
100456	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
100457	//   "response": {
100458	//     "$ref": "NodeGroupsListNodes"
100459	//   },
100460	//   "scopes": [
100461	//     "https://www.googleapis.com/auth/cloud-platform",
100462	//     "https://www.googleapis.com/auth/compute",
100463	//     "https://www.googleapis.com/auth/compute.readonly"
100464	//   ]
100465	// }
100466
100467}
100468
100469// Pages invokes f for each page of results.
100470// A non-nil error returned from f will halt the iteration.
100471// The provided context supersedes any context provided to the Context method.
100472func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
100473	c.ctx_ = ctx
100474	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100475	for {
100476		x, err := c.Do()
100477		if err != nil {
100478			return err
100479		}
100480		if err := f(x); err != nil {
100481			return err
100482		}
100483		if x.NextPageToken == "" {
100484			return nil
100485		}
100486		c.PageToken(x.NextPageToken)
100487	}
100488}
100489
100490// method id "compute.nodeGroups.patch":
100491
100492type NodeGroupsPatchCall struct {
100493	s          *Service
100494	project    string
100495	zone       string
100496	nodeGroup  string
100497	nodegroup  *NodeGroup
100498	urlParams_ gensupport.URLParams
100499	ctx_       context.Context
100500	header_    http.Header
100501}
100502
100503// Patch: Updates the specified node group.
100504func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
100505	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100506	c.project = project
100507	c.zone = zone
100508	c.nodeGroup = nodeGroup
100509	c.nodegroup = nodegroup
100510	return c
100511}
100512
100513// RequestId sets the optional parameter "requestId": An optional
100514// request ID to identify requests. Specify a unique request ID so that
100515// if you must retry your request, the server will know to ignore the
100516// request if it has already been completed.
100517//
100518// For example, consider a situation where you make an initial request
100519// and the request times out. If you make the request again with the
100520// same request ID, the server can check if original operation with the
100521// same request ID was received, and if so, will ignore the second
100522// request. This prevents clients from accidentally creating duplicate
100523// commitments.
100524//
100525// The request ID must be a valid UUID with the exception that zero UUID
100526// is not supported (00000000-0000-0000-0000-000000000000).
100527func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
100528	c.urlParams_.Set("requestId", requestId)
100529	return c
100530}
100531
100532// Fields allows partial responses to be retrieved. See
100533// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100534// for more information.
100535func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
100536	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100537	return c
100538}
100539
100540// Context sets the context to be used in this call's Do method. Any
100541// pending HTTP request will be aborted if the provided context is
100542// canceled.
100543func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
100544	c.ctx_ = ctx
100545	return c
100546}
100547
100548// Header returns an http.Header that can be modified by the caller to
100549// add HTTP headers to the request.
100550func (c *NodeGroupsPatchCall) Header() http.Header {
100551	if c.header_ == nil {
100552		c.header_ = make(http.Header)
100553	}
100554	return c.header_
100555}
100556
100557func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
100558	reqHeaders := make(http.Header)
100559	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100560	for k, v := range c.header_ {
100561		reqHeaders[k] = v
100562	}
100563	reqHeaders.Set("User-Agent", c.s.userAgent())
100564	var body io.Reader = nil
100565	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
100566	if err != nil {
100567		return nil, err
100568	}
100569	reqHeaders.Set("Content-Type", "application/json")
100570	c.urlParams_.Set("alt", alt)
100571	c.urlParams_.Set("prettyPrint", "false")
100572	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
100573	urls += "?" + c.urlParams_.Encode()
100574	req, err := http.NewRequest("PATCH", urls, body)
100575	if err != nil {
100576		return nil, err
100577	}
100578	req.Header = reqHeaders
100579	googleapi.Expand(req.URL, map[string]string{
100580		"project":   c.project,
100581		"zone":      c.zone,
100582		"nodeGroup": c.nodeGroup,
100583	})
100584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100585}
100586
100587// Do executes the "compute.nodeGroups.patch" call.
100588// Exactly one of *Operation or error will be non-nil. Any non-2xx
100589// status code is an error. Response headers are in either
100590// *Operation.ServerResponse.Header or (if a response was returned at
100591// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100592// to check whether the returned error was because
100593// http.StatusNotModified was returned.
100594func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100595	gensupport.SetOptions(c.urlParams_, opts...)
100596	res, err := c.doRequest("json")
100597	if res != nil && res.StatusCode == http.StatusNotModified {
100598		if res.Body != nil {
100599			res.Body.Close()
100600		}
100601		return nil, &googleapi.Error{
100602			Code:   res.StatusCode,
100603			Header: res.Header,
100604		}
100605	}
100606	if err != nil {
100607		return nil, err
100608	}
100609	defer googleapi.CloseBody(res)
100610	if err := googleapi.CheckResponse(res); err != nil {
100611		return nil, err
100612	}
100613	ret := &Operation{
100614		ServerResponse: googleapi.ServerResponse{
100615			Header:         res.Header,
100616			HTTPStatusCode: res.StatusCode,
100617		},
100618	}
100619	target := &ret
100620	if err := gensupport.DecodeResponse(target, res); err != nil {
100621		return nil, err
100622	}
100623	return ret, nil
100624	// {
100625	//   "description": "Updates the specified node group.",
100626	//   "httpMethod": "PATCH",
100627	//   "id": "compute.nodeGroups.patch",
100628	//   "parameterOrder": [
100629	//     "project",
100630	//     "zone",
100631	//     "nodeGroup"
100632	//   ],
100633	//   "parameters": {
100634	//     "nodeGroup": {
100635	//       "description": "Name of the NodeGroup resource to update.",
100636	//       "location": "path",
100637	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100638	//       "required": true,
100639	//       "type": "string"
100640	//     },
100641	//     "project": {
100642	//       "description": "Project ID for this request.",
100643	//       "location": "path",
100644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100645	//       "required": true,
100646	//       "type": "string"
100647	//     },
100648	//     "requestId": {
100649	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100650	//       "location": "query",
100651	//       "type": "string"
100652	//     },
100653	//     "zone": {
100654	//       "description": "The name of the zone for this request.",
100655	//       "location": "path",
100656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100657	//       "required": true,
100658	//       "type": "string"
100659	//     }
100660	//   },
100661	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
100662	//   "request": {
100663	//     "$ref": "NodeGroup"
100664	//   },
100665	//   "response": {
100666	//     "$ref": "Operation"
100667	//   },
100668	//   "scopes": [
100669	//     "https://www.googleapis.com/auth/cloud-platform",
100670	//     "https://www.googleapis.com/auth/compute"
100671	//   ]
100672	// }
100673
100674}
100675
100676// method id "compute.nodeGroups.setIamPolicy":
100677
100678type NodeGroupsSetIamPolicyCall struct {
100679	s                    *Service
100680	project              string
100681	zone                 string
100682	resource             string
100683	zonesetpolicyrequest *ZoneSetPolicyRequest
100684	urlParams_           gensupport.URLParams
100685	ctx_                 context.Context
100686	header_              http.Header
100687}
100688
100689// SetIamPolicy: Sets the access control policy on the specified
100690// resource. Replaces any existing policy.
100691func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
100692	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100693	c.project = project
100694	c.zone = zone
100695	c.resource = resource
100696	c.zonesetpolicyrequest = zonesetpolicyrequest
100697	return c
100698}
100699
100700// Fields allows partial responses to be retrieved. See
100701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100702// for more information.
100703func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
100704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100705	return c
100706}
100707
100708// Context sets the context to be used in this call's Do method. Any
100709// pending HTTP request will be aborted if the provided context is
100710// canceled.
100711func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
100712	c.ctx_ = ctx
100713	return c
100714}
100715
100716// Header returns an http.Header that can be modified by the caller to
100717// add HTTP headers to the request.
100718func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
100719	if c.header_ == nil {
100720		c.header_ = make(http.Header)
100721	}
100722	return c.header_
100723}
100724
100725func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
100726	reqHeaders := make(http.Header)
100727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100728	for k, v := range c.header_ {
100729		reqHeaders[k] = v
100730	}
100731	reqHeaders.Set("User-Agent", c.s.userAgent())
100732	var body io.Reader = nil
100733	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
100734	if err != nil {
100735		return nil, err
100736	}
100737	reqHeaders.Set("Content-Type", "application/json")
100738	c.urlParams_.Set("alt", alt)
100739	c.urlParams_.Set("prettyPrint", "false")
100740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
100741	urls += "?" + c.urlParams_.Encode()
100742	req, err := http.NewRequest("POST", urls, body)
100743	if err != nil {
100744		return nil, err
100745	}
100746	req.Header = reqHeaders
100747	googleapi.Expand(req.URL, map[string]string{
100748		"project":  c.project,
100749		"zone":     c.zone,
100750		"resource": c.resource,
100751	})
100752	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100753}
100754
100755// Do executes the "compute.nodeGroups.setIamPolicy" call.
100756// Exactly one of *Policy or error will be non-nil. Any non-2xx status
100757// code is an error. Response headers are in either
100758// *Policy.ServerResponse.Header or (if a response was returned at all)
100759// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
100760// check whether the returned error was because http.StatusNotModified
100761// was returned.
100762func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
100763	gensupport.SetOptions(c.urlParams_, opts...)
100764	res, err := c.doRequest("json")
100765	if res != nil && res.StatusCode == http.StatusNotModified {
100766		if res.Body != nil {
100767			res.Body.Close()
100768		}
100769		return nil, &googleapi.Error{
100770			Code:   res.StatusCode,
100771			Header: res.Header,
100772		}
100773	}
100774	if err != nil {
100775		return nil, err
100776	}
100777	defer googleapi.CloseBody(res)
100778	if err := googleapi.CheckResponse(res); err != nil {
100779		return nil, err
100780	}
100781	ret := &Policy{
100782		ServerResponse: googleapi.ServerResponse{
100783			Header:         res.Header,
100784			HTTPStatusCode: res.StatusCode,
100785		},
100786	}
100787	target := &ret
100788	if err := gensupport.DecodeResponse(target, res); err != nil {
100789		return nil, err
100790	}
100791	return ret, nil
100792	// {
100793	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
100794	//   "httpMethod": "POST",
100795	//   "id": "compute.nodeGroups.setIamPolicy",
100796	//   "parameterOrder": [
100797	//     "project",
100798	//     "zone",
100799	//     "resource"
100800	//   ],
100801	//   "parameters": {
100802	//     "project": {
100803	//       "description": "Project ID for this request.",
100804	//       "location": "path",
100805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100806	//       "required": true,
100807	//       "type": "string"
100808	//     },
100809	//     "resource": {
100810	//       "description": "Name or id of the resource for this request.",
100811	//       "location": "path",
100812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100813	//       "required": true,
100814	//       "type": "string"
100815	//     },
100816	//     "zone": {
100817	//       "description": "The name of the zone for this request.",
100818	//       "location": "path",
100819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100820	//       "required": true,
100821	//       "type": "string"
100822	//     }
100823	//   },
100824	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
100825	//   "request": {
100826	//     "$ref": "ZoneSetPolicyRequest"
100827	//   },
100828	//   "response": {
100829	//     "$ref": "Policy"
100830	//   },
100831	//   "scopes": [
100832	//     "https://www.googleapis.com/auth/cloud-platform",
100833	//     "https://www.googleapis.com/auth/compute"
100834	//   ]
100835	// }
100836
100837}
100838
100839// method id "compute.nodeGroups.setNodeTemplate":
100840
100841type NodeGroupsSetNodeTemplateCall struct {
100842	s                                *Service
100843	project                          string
100844	zone                             string
100845	nodeGroup                        string
100846	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
100847	urlParams_                       gensupport.URLParams
100848	ctx_                             context.Context
100849	header_                          http.Header
100850}
100851
100852// SetNodeTemplate: Updates the node template of the node group.
100853func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
100854	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100855	c.project = project
100856	c.zone = zone
100857	c.nodeGroup = nodeGroup
100858	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
100859	return c
100860}
100861
100862// RequestId sets the optional parameter "requestId": An optional
100863// request ID to identify requests. Specify a unique request ID so that
100864// if you must retry your request, the server will know to ignore the
100865// request if it has already been completed.
100866//
100867// For example, consider a situation where you make an initial request
100868// and the request times out. If you make the request again with the
100869// same request ID, the server can check if original operation with the
100870// same request ID was received, and if so, will ignore the second
100871// request. This prevents clients from accidentally creating duplicate
100872// commitments.
100873//
100874// The request ID must be a valid UUID with the exception that zero UUID
100875// is not supported (00000000-0000-0000-0000-000000000000).
100876func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
100877	c.urlParams_.Set("requestId", requestId)
100878	return c
100879}
100880
100881// Fields allows partial responses to be retrieved. See
100882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100883// for more information.
100884func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
100885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100886	return c
100887}
100888
100889// Context sets the context to be used in this call's Do method. Any
100890// pending HTTP request will be aborted if the provided context is
100891// canceled.
100892func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
100893	c.ctx_ = ctx
100894	return c
100895}
100896
100897// Header returns an http.Header that can be modified by the caller to
100898// add HTTP headers to the request.
100899func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
100900	if c.header_ == nil {
100901		c.header_ = make(http.Header)
100902	}
100903	return c.header_
100904}
100905
100906func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
100907	reqHeaders := make(http.Header)
100908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
100909	for k, v := range c.header_ {
100910		reqHeaders[k] = v
100911	}
100912	reqHeaders.Set("User-Agent", c.s.userAgent())
100913	var body io.Reader = nil
100914	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
100915	if err != nil {
100916		return nil, err
100917	}
100918	reqHeaders.Set("Content-Type", "application/json")
100919	c.urlParams_.Set("alt", alt)
100920	c.urlParams_.Set("prettyPrint", "false")
100921	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
100922	urls += "?" + c.urlParams_.Encode()
100923	req, err := http.NewRequest("POST", urls, body)
100924	if err != nil {
100925		return nil, err
100926	}
100927	req.Header = reqHeaders
100928	googleapi.Expand(req.URL, map[string]string{
100929		"project":   c.project,
100930		"zone":      c.zone,
100931		"nodeGroup": c.nodeGroup,
100932	})
100933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100934}
100935
100936// Do executes the "compute.nodeGroups.setNodeTemplate" call.
100937// Exactly one of *Operation or error will be non-nil. Any non-2xx
100938// status code is an error. Response headers are in either
100939// *Operation.ServerResponse.Header or (if a response was returned at
100940// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100941// to check whether the returned error was because
100942// http.StatusNotModified was returned.
100943func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100944	gensupport.SetOptions(c.urlParams_, opts...)
100945	res, err := c.doRequest("json")
100946	if res != nil && res.StatusCode == http.StatusNotModified {
100947		if res.Body != nil {
100948			res.Body.Close()
100949		}
100950		return nil, &googleapi.Error{
100951			Code:   res.StatusCode,
100952			Header: res.Header,
100953		}
100954	}
100955	if err != nil {
100956		return nil, err
100957	}
100958	defer googleapi.CloseBody(res)
100959	if err := googleapi.CheckResponse(res); err != nil {
100960		return nil, err
100961	}
100962	ret := &Operation{
100963		ServerResponse: googleapi.ServerResponse{
100964			Header:         res.Header,
100965			HTTPStatusCode: res.StatusCode,
100966		},
100967	}
100968	target := &ret
100969	if err := gensupport.DecodeResponse(target, res); err != nil {
100970		return nil, err
100971	}
100972	return ret, nil
100973	// {
100974	//   "description": "Updates the node template of the node group.",
100975	//   "httpMethod": "POST",
100976	//   "id": "compute.nodeGroups.setNodeTemplate",
100977	//   "parameterOrder": [
100978	//     "project",
100979	//     "zone",
100980	//     "nodeGroup"
100981	//   ],
100982	//   "parameters": {
100983	//     "nodeGroup": {
100984	//       "description": "Name of the NodeGroup resource to update.",
100985	//       "location": "path",
100986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100987	//       "required": true,
100988	//       "type": "string"
100989	//     },
100990	//     "project": {
100991	//       "description": "Project ID for this request.",
100992	//       "location": "path",
100993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100994	//       "required": true,
100995	//       "type": "string"
100996	//     },
100997	//     "requestId": {
100998	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100999	//       "location": "query",
101000	//       "type": "string"
101001	//     },
101002	//     "zone": {
101003	//       "description": "The name of the zone for this request.",
101004	//       "location": "path",
101005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101006	//       "required": true,
101007	//       "type": "string"
101008	//     }
101009	//   },
101010	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
101011	//   "request": {
101012	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
101013	//   },
101014	//   "response": {
101015	//     "$ref": "Operation"
101016	//   },
101017	//   "scopes": [
101018	//     "https://www.googleapis.com/auth/cloud-platform",
101019	//     "https://www.googleapis.com/auth/compute"
101020	//   ]
101021	// }
101022
101023}
101024
101025// method id "compute.nodeGroups.testIamPermissions":
101026
101027type NodeGroupsTestIamPermissionsCall struct {
101028	s                      *Service
101029	project                string
101030	zone                   string
101031	resource               string
101032	testpermissionsrequest *TestPermissionsRequest
101033	urlParams_             gensupport.URLParams
101034	ctx_                   context.Context
101035	header_                http.Header
101036}
101037
101038// TestIamPermissions: Returns permissions that a caller has on the
101039// specified resource.
101040func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
101041	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101042	c.project = project
101043	c.zone = zone
101044	c.resource = resource
101045	c.testpermissionsrequest = testpermissionsrequest
101046	return c
101047}
101048
101049// Fields allows partial responses to be retrieved. See
101050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101051// for more information.
101052func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
101053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101054	return c
101055}
101056
101057// Context sets the context to be used in this call's Do method. Any
101058// pending HTTP request will be aborted if the provided context is
101059// canceled.
101060func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
101061	c.ctx_ = ctx
101062	return c
101063}
101064
101065// Header returns an http.Header that can be modified by the caller to
101066// add HTTP headers to the request.
101067func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
101068	if c.header_ == nil {
101069		c.header_ = make(http.Header)
101070	}
101071	return c.header_
101072}
101073
101074func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101075	reqHeaders := make(http.Header)
101076	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101077	for k, v := range c.header_ {
101078		reqHeaders[k] = v
101079	}
101080	reqHeaders.Set("User-Agent", c.s.userAgent())
101081	var body io.Reader = nil
101082	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101083	if err != nil {
101084		return nil, err
101085	}
101086	reqHeaders.Set("Content-Type", "application/json")
101087	c.urlParams_.Set("alt", alt)
101088	c.urlParams_.Set("prettyPrint", "false")
101089	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
101090	urls += "?" + c.urlParams_.Encode()
101091	req, err := http.NewRequest("POST", urls, body)
101092	if err != nil {
101093		return nil, err
101094	}
101095	req.Header = reqHeaders
101096	googleapi.Expand(req.URL, map[string]string{
101097		"project":  c.project,
101098		"zone":     c.zone,
101099		"resource": c.resource,
101100	})
101101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101102}
101103
101104// Do executes the "compute.nodeGroups.testIamPermissions" call.
101105// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101106// non-2xx status code is an error. Response headers are in either
101107// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101108// returned at all) in error.(*googleapi.Error).Header. Use
101109// googleapi.IsNotModified to check whether the returned error was
101110// because http.StatusNotModified was returned.
101111func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101112	gensupport.SetOptions(c.urlParams_, opts...)
101113	res, err := c.doRequest("json")
101114	if res != nil && res.StatusCode == http.StatusNotModified {
101115		if res.Body != nil {
101116			res.Body.Close()
101117		}
101118		return nil, &googleapi.Error{
101119			Code:   res.StatusCode,
101120			Header: res.Header,
101121		}
101122	}
101123	if err != nil {
101124		return nil, err
101125	}
101126	defer googleapi.CloseBody(res)
101127	if err := googleapi.CheckResponse(res); err != nil {
101128		return nil, err
101129	}
101130	ret := &TestPermissionsResponse{
101131		ServerResponse: googleapi.ServerResponse{
101132			Header:         res.Header,
101133			HTTPStatusCode: res.StatusCode,
101134		},
101135	}
101136	target := &ret
101137	if err := gensupport.DecodeResponse(target, res); err != nil {
101138		return nil, err
101139	}
101140	return ret, nil
101141	// {
101142	//   "description": "Returns permissions that a caller has on the specified resource.",
101143	//   "httpMethod": "POST",
101144	//   "id": "compute.nodeGroups.testIamPermissions",
101145	//   "parameterOrder": [
101146	//     "project",
101147	//     "zone",
101148	//     "resource"
101149	//   ],
101150	//   "parameters": {
101151	//     "project": {
101152	//       "description": "Project ID for this request.",
101153	//       "location": "path",
101154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101155	//       "required": true,
101156	//       "type": "string"
101157	//     },
101158	//     "resource": {
101159	//       "description": "Name or id of the resource for this request.",
101160	//       "location": "path",
101161	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101162	//       "required": true,
101163	//       "type": "string"
101164	//     },
101165	//     "zone": {
101166	//       "description": "The name of the zone for this request.",
101167	//       "location": "path",
101168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101169	//       "required": true,
101170	//       "type": "string"
101171	//     }
101172	//   },
101173	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
101174	//   "request": {
101175	//     "$ref": "TestPermissionsRequest"
101176	//   },
101177	//   "response": {
101178	//     "$ref": "TestPermissionsResponse"
101179	//   },
101180	//   "scopes": [
101181	//     "https://www.googleapis.com/auth/cloud-platform",
101182	//     "https://www.googleapis.com/auth/compute",
101183	//     "https://www.googleapis.com/auth/compute.readonly"
101184	//   ]
101185	// }
101186
101187}
101188
101189// method id "compute.nodeTemplates.aggregatedList":
101190
101191type NodeTemplatesAggregatedListCall struct {
101192	s            *Service
101193	project      string
101194	urlParams_   gensupport.URLParams
101195	ifNoneMatch_ string
101196	ctx_         context.Context
101197	header_      http.Header
101198}
101199
101200// AggregatedList: Retrieves an aggregated list of node templates.
101201func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
101202	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101203	c.project = project
101204	return c
101205}
101206
101207// Filter sets the optional parameter "filter": A filter expression that
101208// filters resources listed in the response. The expression must specify
101209// the field name, a comparison operator, and the value that you want to
101210// use for filtering. The value must be a string, a number, or a
101211// boolean. The comparison operator must be either `=`, `!=`, `>`, or
101212// `<`.
101213//
101214// For example, if you are filtering Compute Engine instances, you can
101215// exclude instances named `example-instance` by specifying `name !=
101216// example-instance`.
101217//
101218// You can also filter nested fields. For example, you could specify
101219// `scheduling.automaticRestart = false` to include instances only if
101220// they are not scheduled for automatic restarts. You can use filtering
101221// on nested fields to filter based on resource labels.
101222//
101223// To filter on multiple expressions, provide each separate expression
101224// within parentheses. For example: ``` (scheduling.automaticRestart =
101225// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
101226// is an `AND` expression. However, you can include `AND` and `OR`
101227// expressions explicitly. For example: ``` (cpuPlatform = "Intel
101228// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
101229// (scheduling.automaticRestart = true) ```
101230func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
101231	c.urlParams_.Set("filter", filter)
101232	return c
101233}
101234
101235// IncludeAllScopes sets the optional parameter "includeAllScopes":
101236// Indicates whether every visible scope for each scope type (zone,
101237// region, global) should be included in the response. For new resource
101238// types added after this field, the flag has no effect as new resource
101239// types will always include every visible scope for each scope type in
101240// response. For resource types which predate this field, if this flag
101241// is omitted or false, only scopes of the scope types where the
101242// resource type is expected to be found will be included.
101243func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
101244	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
101245	return c
101246}
101247
101248// MaxResults sets the optional parameter "maxResults": The maximum
101249// number of results per page that should be returned. If the number of
101250// available results is larger than `maxResults`, Compute Engine returns
101251// a `nextPageToken` that can be used to get the next page of results in
101252// subsequent list requests. Acceptable values are `0` to `500`,
101253// inclusive. (Default: `500`)
101254func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
101255	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101256	return c
101257}
101258
101259// OrderBy sets the optional parameter "orderBy": Sorts list results by
101260// a certain order. By default, results are returned in alphanumerical
101261// order based on the resource name.
101262//
101263// You can also sort results in descending order based on the creation
101264// timestamp using `orderBy="creationTimestamp desc". This sorts
101265// results based on the `creationTimestamp` field in reverse
101266// chronological order (newest result first). Use this to sort resources
101267// like operations so that the newest operation is returned
101268// first.
101269//
101270// Currently, only sorting by `name` or `creationTimestamp desc` is
101271// supported.
101272func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
101273	c.urlParams_.Set("orderBy", orderBy)
101274	return c
101275}
101276
101277// PageToken sets the optional parameter "pageToken": Specifies a page
101278// token to use. Set `pageToken` to the `nextPageToken` returned by a
101279// previous list request to get the next page of results.
101280func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
101281	c.urlParams_.Set("pageToken", pageToken)
101282	return c
101283}
101284
101285// Fields allows partial responses to be retrieved. See
101286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101287// for more information.
101288func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
101289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101290	return c
101291}
101292
101293// IfNoneMatch sets the optional parameter which makes the operation
101294// fail if the object's ETag matches the given value. This is useful for
101295// getting updates only after the object has changed since the last
101296// request. Use googleapi.IsNotModified to check whether the response
101297// error from Do is the result of In-None-Match.
101298func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
101299	c.ifNoneMatch_ = entityTag
101300	return c
101301}
101302
101303// Context sets the context to be used in this call's Do method. Any
101304// pending HTTP request will be aborted if the provided context is
101305// canceled.
101306func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
101307	c.ctx_ = ctx
101308	return c
101309}
101310
101311// Header returns an http.Header that can be modified by the caller to
101312// add HTTP headers to the request.
101313func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
101314	if c.header_ == nil {
101315		c.header_ = make(http.Header)
101316	}
101317	return c.header_
101318}
101319
101320func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
101321	reqHeaders := make(http.Header)
101322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101323	for k, v := range c.header_ {
101324		reqHeaders[k] = v
101325	}
101326	reqHeaders.Set("User-Agent", c.s.userAgent())
101327	if c.ifNoneMatch_ != "" {
101328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101329	}
101330	var body io.Reader = nil
101331	c.urlParams_.Set("alt", alt)
101332	c.urlParams_.Set("prettyPrint", "false")
101333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTemplates")
101334	urls += "?" + c.urlParams_.Encode()
101335	req, err := http.NewRequest("GET", urls, body)
101336	if err != nil {
101337		return nil, err
101338	}
101339	req.Header = reqHeaders
101340	googleapi.Expand(req.URL, map[string]string{
101341		"project": c.project,
101342	})
101343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101344}
101345
101346// Do executes the "compute.nodeTemplates.aggregatedList" call.
101347// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
101348// Any non-2xx status code is an error. Response headers are in either
101349// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
101350// was returned at all) in error.(*googleapi.Error).Header. Use
101351// googleapi.IsNotModified to check whether the returned error was
101352// because http.StatusNotModified was returned.
101353func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
101354	gensupport.SetOptions(c.urlParams_, opts...)
101355	res, err := c.doRequest("json")
101356	if res != nil && res.StatusCode == http.StatusNotModified {
101357		if res.Body != nil {
101358			res.Body.Close()
101359		}
101360		return nil, &googleapi.Error{
101361			Code:   res.StatusCode,
101362			Header: res.Header,
101363		}
101364	}
101365	if err != nil {
101366		return nil, err
101367	}
101368	defer googleapi.CloseBody(res)
101369	if err := googleapi.CheckResponse(res); err != nil {
101370		return nil, err
101371	}
101372	ret := &NodeTemplateAggregatedList{
101373		ServerResponse: googleapi.ServerResponse{
101374			Header:         res.Header,
101375			HTTPStatusCode: res.StatusCode,
101376		},
101377	}
101378	target := &ret
101379	if err := gensupport.DecodeResponse(target, res); err != nil {
101380		return nil, err
101381	}
101382	return ret, nil
101383	// {
101384	//   "description": "Retrieves an aggregated list of node templates.",
101385	//   "httpMethod": "GET",
101386	//   "id": "compute.nodeTemplates.aggregatedList",
101387	//   "parameterOrder": [
101388	//     "project"
101389	//   ],
101390	//   "parameters": {
101391	//     "filter": {
101392	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
101393	//       "location": "query",
101394	//       "type": "string"
101395	//     },
101396	//     "includeAllScopes": {
101397	//       "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.",
101398	//       "location": "query",
101399	//       "type": "boolean"
101400	//     },
101401	//     "maxResults": {
101402	//       "default": "500",
101403	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
101404	//       "format": "uint32",
101405	//       "location": "query",
101406	//       "minimum": "0",
101407	//       "type": "integer"
101408	//     },
101409	//     "orderBy": {
101410	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
101411	//       "location": "query",
101412	//       "type": "string"
101413	//     },
101414	//     "pageToken": {
101415	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
101416	//       "location": "query",
101417	//       "type": "string"
101418	//     },
101419	//     "project": {
101420	//       "description": "Project ID for this request.",
101421	//       "location": "path",
101422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101423	//       "required": true,
101424	//       "type": "string"
101425	//     }
101426	//   },
101427	//   "path": "{project}/aggregated/nodeTemplates",
101428	//   "response": {
101429	//     "$ref": "NodeTemplateAggregatedList"
101430	//   },
101431	//   "scopes": [
101432	//     "https://www.googleapis.com/auth/cloud-platform",
101433	//     "https://www.googleapis.com/auth/compute",
101434	//     "https://www.googleapis.com/auth/compute.readonly"
101435	//   ]
101436	// }
101437
101438}
101439
101440// Pages invokes f for each page of results.
101441// A non-nil error returned from f will halt the iteration.
101442// The provided context supersedes any context provided to the Context method.
101443func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
101444	c.ctx_ = ctx
101445	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101446	for {
101447		x, err := c.Do()
101448		if err != nil {
101449			return err
101450		}
101451		if err := f(x); err != nil {
101452			return err
101453		}
101454		if x.NextPageToken == "" {
101455			return nil
101456		}
101457		c.PageToken(x.NextPageToken)
101458	}
101459}
101460
101461// method id "compute.nodeTemplates.delete":
101462
101463type NodeTemplatesDeleteCall struct {
101464	s            *Service
101465	project      string
101466	region       string
101467	nodeTemplate string
101468	urlParams_   gensupport.URLParams
101469	ctx_         context.Context
101470	header_      http.Header
101471}
101472
101473// Delete: Deletes the specified NodeTemplate resource.
101474func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
101475	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101476	c.project = project
101477	c.region = region
101478	c.nodeTemplate = nodeTemplate
101479	return c
101480}
101481
101482// RequestId sets the optional parameter "requestId": An optional
101483// request ID to identify requests. Specify a unique request ID so that
101484// if you must retry your request, the server will know to ignore the
101485// request if it has already been completed.
101486//
101487// For example, consider a situation where you make an initial request
101488// and the request times out. If you make the request again with the
101489// same request ID, the server can check if original operation with the
101490// same request ID was received, and if so, will ignore the second
101491// request. This prevents clients from accidentally creating duplicate
101492// commitments.
101493//
101494// The request ID must be a valid UUID with the exception that zero UUID
101495// is not supported (00000000-0000-0000-0000-000000000000).
101496func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
101497	c.urlParams_.Set("requestId", requestId)
101498	return c
101499}
101500
101501// Fields allows partial responses to be retrieved. See
101502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101503// for more information.
101504func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
101505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101506	return c
101507}
101508
101509// Context sets the context to be used in this call's Do method. Any
101510// pending HTTP request will be aborted if the provided context is
101511// canceled.
101512func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
101513	c.ctx_ = ctx
101514	return c
101515}
101516
101517// Header returns an http.Header that can be modified by the caller to
101518// add HTTP headers to the request.
101519func (c *NodeTemplatesDeleteCall) Header() http.Header {
101520	if c.header_ == nil {
101521		c.header_ = make(http.Header)
101522	}
101523	return c.header_
101524}
101525
101526func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
101527	reqHeaders := make(http.Header)
101528	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101529	for k, v := range c.header_ {
101530		reqHeaders[k] = v
101531	}
101532	reqHeaders.Set("User-Agent", c.s.userAgent())
101533	var body io.Reader = nil
101534	c.urlParams_.Set("alt", alt)
101535	c.urlParams_.Set("prettyPrint", "false")
101536	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
101537	urls += "?" + c.urlParams_.Encode()
101538	req, err := http.NewRequest("DELETE", urls, body)
101539	if err != nil {
101540		return nil, err
101541	}
101542	req.Header = reqHeaders
101543	googleapi.Expand(req.URL, map[string]string{
101544		"project":      c.project,
101545		"region":       c.region,
101546		"nodeTemplate": c.nodeTemplate,
101547	})
101548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101549}
101550
101551// Do executes the "compute.nodeTemplates.delete" call.
101552// Exactly one of *Operation or error will be non-nil. Any non-2xx
101553// status code is an error. Response headers are in either
101554// *Operation.ServerResponse.Header or (if a response was returned at
101555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101556// to check whether the returned error was because
101557// http.StatusNotModified was returned.
101558func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101559	gensupport.SetOptions(c.urlParams_, opts...)
101560	res, err := c.doRequest("json")
101561	if res != nil && res.StatusCode == http.StatusNotModified {
101562		if res.Body != nil {
101563			res.Body.Close()
101564		}
101565		return nil, &googleapi.Error{
101566			Code:   res.StatusCode,
101567			Header: res.Header,
101568		}
101569	}
101570	if err != nil {
101571		return nil, err
101572	}
101573	defer googleapi.CloseBody(res)
101574	if err := googleapi.CheckResponse(res); err != nil {
101575		return nil, err
101576	}
101577	ret := &Operation{
101578		ServerResponse: googleapi.ServerResponse{
101579			Header:         res.Header,
101580			HTTPStatusCode: res.StatusCode,
101581		},
101582	}
101583	target := &ret
101584	if err := gensupport.DecodeResponse(target, res); err != nil {
101585		return nil, err
101586	}
101587	return ret, nil
101588	// {
101589	//   "description": "Deletes the specified NodeTemplate resource.",
101590	//   "httpMethod": "DELETE",
101591	//   "id": "compute.nodeTemplates.delete",
101592	//   "parameterOrder": [
101593	//     "project",
101594	//     "region",
101595	//     "nodeTemplate"
101596	//   ],
101597	//   "parameters": {
101598	//     "nodeTemplate": {
101599	//       "description": "Name of the NodeTemplate resource to delete.",
101600	//       "location": "path",
101601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101602	//       "required": true,
101603	//       "type": "string"
101604	//     },
101605	//     "project": {
101606	//       "description": "Project ID for this request.",
101607	//       "location": "path",
101608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101609	//       "required": true,
101610	//       "type": "string"
101611	//     },
101612	//     "region": {
101613	//       "description": "The name of the region for this request.",
101614	//       "location": "path",
101615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101616	//       "required": true,
101617	//       "type": "string"
101618	//     },
101619	//     "requestId": {
101620	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101621	//       "location": "query",
101622	//       "type": "string"
101623	//     }
101624	//   },
101625	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
101626	//   "response": {
101627	//     "$ref": "Operation"
101628	//   },
101629	//   "scopes": [
101630	//     "https://www.googleapis.com/auth/cloud-platform",
101631	//     "https://www.googleapis.com/auth/compute"
101632	//   ]
101633	// }
101634
101635}
101636
101637// method id "compute.nodeTemplates.get":
101638
101639type NodeTemplatesGetCall struct {
101640	s            *Service
101641	project      string
101642	region       string
101643	nodeTemplate string
101644	urlParams_   gensupport.URLParams
101645	ifNoneMatch_ string
101646	ctx_         context.Context
101647	header_      http.Header
101648}
101649
101650// Get: Returns the specified node template. Gets a list of available
101651// node templates by making a list() request.
101652func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
101653	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101654	c.project = project
101655	c.region = region
101656	c.nodeTemplate = nodeTemplate
101657	return c
101658}
101659
101660// Fields allows partial responses to be retrieved. See
101661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101662// for more information.
101663func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
101664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101665	return c
101666}
101667
101668// IfNoneMatch sets the optional parameter which makes the operation
101669// fail if the object's ETag matches the given value. This is useful for
101670// getting updates only after the object has changed since the last
101671// request. Use googleapi.IsNotModified to check whether the response
101672// error from Do is the result of In-None-Match.
101673func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
101674	c.ifNoneMatch_ = entityTag
101675	return c
101676}
101677
101678// Context sets the context to be used in this call's Do method. Any
101679// pending HTTP request will be aborted if the provided context is
101680// canceled.
101681func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
101682	c.ctx_ = ctx
101683	return c
101684}
101685
101686// Header returns an http.Header that can be modified by the caller to
101687// add HTTP headers to the request.
101688func (c *NodeTemplatesGetCall) Header() http.Header {
101689	if c.header_ == nil {
101690		c.header_ = make(http.Header)
101691	}
101692	return c.header_
101693}
101694
101695func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
101696	reqHeaders := make(http.Header)
101697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101698	for k, v := range c.header_ {
101699		reqHeaders[k] = v
101700	}
101701	reqHeaders.Set("User-Agent", c.s.userAgent())
101702	if c.ifNoneMatch_ != "" {
101703		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101704	}
101705	var body io.Reader = nil
101706	c.urlParams_.Set("alt", alt)
101707	c.urlParams_.Set("prettyPrint", "false")
101708	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
101709	urls += "?" + c.urlParams_.Encode()
101710	req, err := http.NewRequest("GET", urls, body)
101711	if err != nil {
101712		return nil, err
101713	}
101714	req.Header = reqHeaders
101715	googleapi.Expand(req.URL, map[string]string{
101716		"project":      c.project,
101717		"region":       c.region,
101718		"nodeTemplate": c.nodeTemplate,
101719	})
101720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101721}
101722
101723// Do executes the "compute.nodeTemplates.get" call.
101724// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
101725// status code is an error. Response headers are in either
101726// *NodeTemplate.ServerResponse.Header or (if a response was returned at
101727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101728// to check whether the returned error was because
101729// http.StatusNotModified was returned.
101730func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
101731	gensupport.SetOptions(c.urlParams_, opts...)
101732	res, err := c.doRequest("json")
101733	if res != nil && res.StatusCode == http.StatusNotModified {
101734		if res.Body != nil {
101735			res.Body.Close()
101736		}
101737		return nil, &googleapi.Error{
101738			Code:   res.StatusCode,
101739			Header: res.Header,
101740		}
101741	}
101742	if err != nil {
101743		return nil, err
101744	}
101745	defer googleapi.CloseBody(res)
101746	if err := googleapi.CheckResponse(res); err != nil {
101747		return nil, err
101748	}
101749	ret := &NodeTemplate{
101750		ServerResponse: googleapi.ServerResponse{
101751			Header:         res.Header,
101752			HTTPStatusCode: res.StatusCode,
101753		},
101754	}
101755	target := &ret
101756	if err := gensupport.DecodeResponse(target, res); err != nil {
101757		return nil, err
101758	}
101759	return ret, nil
101760	// {
101761	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
101762	//   "httpMethod": "GET",
101763	//   "id": "compute.nodeTemplates.get",
101764	//   "parameterOrder": [
101765	//     "project",
101766	//     "region",
101767	//     "nodeTemplate"
101768	//   ],
101769	//   "parameters": {
101770	//     "nodeTemplate": {
101771	//       "description": "Name of the node template to return.",
101772	//       "location": "path",
101773	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101774	//       "required": true,
101775	//       "type": "string"
101776	//     },
101777	//     "project": {
101778	//       "description": "Project ID for this request.",
101779	//       "location": "path",
101780	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101781	//       "required": true,
101782	//       "type": "string"
101783	//     },
101784	//     "region": {
101785	//       "description": "The name of the region for this request.",
101786	//       "location": "path",
101787	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101788	//       "required": true,
101789	//       "type": "string"
101790	//     }
101791	//   },
101792	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
101793	//   "response": {
101794	//     "$ref": "NodeTemplate"
101795	//   },
101796	//   "scopes": [
101797	//     "https://www.googleapis.com/auth/cloud-platform",
101798	//     "https://www.googleapis.com/auth/compute",
101799	//     "https://www.googleapis.com/auth/compute.readonly"
101800	//   ]
101801	// }
101802
101803}
101804
101805// method id "compute.nodeTemplates.getIamPolicy":
101806
101807type NodeTemplatesGetIamPolicyCall struct {
101808	s            *Service
101809	project      string
101810	region       string
101811	resource     string
101812	urlParams_   gensupport.URLParams
101813	ifNoneMatch_ string
101814	ctx_         context.Context
101815	header_      http.Header
101816}
101817
101818// GetIamPolicy: Gets the access control policy for a resource. May be
101819// empty if no such policy or resource exists.
101820func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
101821	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101822	c.project = project
101823	c.region = region
101824	c.resource = resource
101825	return c
101826}
101827
101828// OptionsRequestedPolicyVersion sets the optional parameter
101829// "optionsRequestedPolicyVersion": Requested IAM Policy version.
101830func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
101831	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
101832	return c
101833}
101834
101835// Fields allows partial responses to be retrieved. See
101836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101837// for more information.
101838func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
101839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101840	return c
101841}
101842
101843// IfNoneMatch sets the optional parameter which makes the operation
101844// fail if the object's ETag matches the given value. This is useful for
101845// getting updates only after the object has changed since the last
101846// request. Use googleapi.IsNotModified to check whether the response
101847// error from Do is the result of In-None-Match.
101848func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
101849	c.ifNoneMatch_ = entityTag
101850	return c
101851}
101852
101853// Context sets the context to be used in this call's Do method. Any
101854// pending HTTP request will be aborted if the provided context is
101855// canceled.
101856func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
101857	c.ctx_ = ctx
101858	return c
101859}
101860
101861// Header returns an http.Header that can be modified by the caller to
101862// add HTTP headers to the request.
101863func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
101864	if c.header_ == nil {
101865		c.header_ = make(http.Header)
101866	}
101867	return c.header_
101868}
101869
101870func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
101871	reqHeaders := make(http.Header)
101872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
101873	for k, v := range c.header_ {
101874		reqHeaders[k] = v
101875	}
101876	reqHeaders.Set("User-Agent", c.s.userAgent())
101877	if c.ifNoneMatch_ != "" {
101878		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101879	}
101880	var body io.Reader = nil
101881	c.urlParams_.Set("alt", alt)
101882	c.urlParams_.Set("prettyPrint", "false")
101883	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
101884	urls += "?" + c.urlParams_.Encode()
101885	req, err := http.NewRequest("GET", urls, body)
101886	if err != nil {
101887		return nil, err
101888	}
101889	req.Header = reqHeaders
101890	googleapi.Expand(req.URL, map[string]string{
101891		"project":  c.project,
101892		"region":   c.region,
101893		"resource": c.resource,
101894	})
101895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101896}
101897
101898// Do executes the "compute.nodeTemplates.getIamPolicy" call.
101899// Exactly one of *Policy or error will be non-nil. Any non-2xx status
101900// code is an error. Response headers are in either
101901// *Policy.ServerResponse.Header or (if a response was returned at all)
101902// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
101903// check whether the returned error was because http.StatusNotModified
101904// was returned.
101905func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
101906	gensupport.SetOptions(c.urlParams_, opts...)
101907	res, err := c.doRequest("json")
101908	if res != nil && res.StatusCode == http.StatusNotModified {
101909		if res.Body != nil {
101910			res.Body.Close()
101911		}
101912		return nil, &googleapi.Error{
101913			Code:   res.StatusCode,
101914			Header: res.Header,
101915		}
101916	}
101917	if err != nil {
101918		return nil, err
101919	}
101920	defer googleapi.CloseBody(res)
101921	if err := googleapi.CheckResponse(res); err != nil {
101922		return nil, err
101923	}
101924	ret := &Policy{
101925		ServerResponse: googleapi.ServerResponse{
101926			Header:         res.Header,
101927			HTTPStatusCode: res.StatusCode,
101928		},
101929	}
101930	target := &ret
101931	if err := gensupport.DecodeResponse(target, res); err != nil {
101932		return nil, err
101933	}
101934	return ret, nil
101935	// {
101936	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
101937	//   "httpMethod": "GET",
101938	//   "id": "compute.nodeTemplates.getIamPolicy",
101939	//   "parameterOrder": [
101940	//     "project",
101941	//     "region",
101942	//     "resource"
101943	//   ],
101944	//   "parameters": {
101945	//     "optionsRequestedPolicyVersion": {
101946	//       "description": "Requested IAM Policy version.",
101947	//       "format": "int32",
101948	//       "location": "query",
101949	//       "type": "integer"
101950	//     },
101951	//     "project": {
101952	//       "description": "Project ID for this request.",
101953	//       "location": "path",
101954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101955	//       "required": true,
101956	//       "type": "string"
101957	//     },
101958	//     "region": {
101959	//       "description": "The name of the region for this request.",
101960	//       "location": "path",
101961	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101962	//       "required": true,
101963	//       "type": "string"
101964	//     },
101965	//     "resource": {
101966	//       "description": "Name or id of the resource for this request.",
101967	//       "location": "path",
101968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101969	//       "required": true,
101970	//       "type": "string"
101971	//     }
101972	//   },
101973	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
101974	//   "response": {
101975	//     "$ref": "Policy"
101976	//   },
101977	//   "scopes": [
101978	//     "https://www.googleapis.com/auth/cloud-platform",
101979	//     "https://www.googleapis.com/auth/compute",
101980	//     "https://www.googleapis.com/auth/compute.readonly"
101981	//   ]
101982	// }
101983
101984}
101985
101986// method id "compute.nodeTemplates.insert":
101987
101988type NodeTemplatesInsertCall struct {
101989	s            *Service
101990	project      string
101991	region       string
101992	nodetemplate *NodeTemplate
101993	urlParams_   gensupport.URLParams
101994	ctx_         context.Context
101995	header_      http.Header
101996}
101997
101998// Insert: Creates a NodeTemplate resource in the specified project
101999// using the data included in the request.
102000func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
102001	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102002	c.project = project
102003	c.region = region
102004	c.nodetemplate = nodetemplate
102005	return c
102006}
102007
102008// RequestId sets the optional parameter "requestId": An optional
102009// request ID to identify requests. Specify a unique request ID so that
102010// if you must retry your request, the server will know to ignore the
102011// request if it has already been completed.
102012//
102013// For example, consider a situation where you make an initial request
102014// and the request times out. If you make the request again with the
102015// same request ID, the server can check if original operation with the
102016// same request ID was received, and if so, will ignore the second
102017// request. This prevents clients from accidentally creating duplicate
102018// commitments.
102019//
102020// The request ID must be a valid UUID with the exception that zero UUID
102021// is not supported (00000000-0000-0000-0000-000000000000).
102022func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
102023	c.urlParams_.Set("requestId", requestId)
102024	return c
102025}
102026
102027// Fields allows partial responses to be retrieved. See
102028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102029// for more information.
102030func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
102031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102032	return c
102033}
102034
102035// Context sets the context to be used in this call's Do method. Any
102036// pending HTTP request will be aborted if the provided context is
102037// canceled.
102038func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
102039	c.ctx_ = ctx
102040	return c
102041}
102042
102043// Header returns an http.Header that can be modified by the caller to
102044// add HTTP headers to the request.
102045func (c *NodeTemplatesInsertCall) Header() http.Header {
102046	if c.header_ == nil {
102047		c.header_ = make(http.Header)
102048	}
102049	return c.header_
102050}
102051
102052func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
102053	reqHeaders := make(http.Header)
102054	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102055	for k, v := range c.header_ {
102056		reqHeaders[k] = v
102057	}
102058	reqHeaders.Set("User-Agent", c.s.userAgent())
102059	var body io.Reader = nil
102060	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
102061	if err != nil {
102062		return nil, err
102063	}
102064	reqHeaders.Set("Content-Type", "application/json")
102065	c.urlParams_.Set("alt", alt)
102066	c.urlParams_.Set("prettyPrint", "false")
102067	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
102068	urls += "?" + c.urlParams_.Encode()
102069	req, err := http.NewRequest("POST", urls, body)
102070	if err != nil {
102071		return nil, err
102072	}
102073	req.Header = reqHeaders
102074	googleapi.Expand(req.URL, map[string]string{
102075		"project": c.project,
102076		"region":  c.region,
102077	})
102078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102079}
102080
102081// Do executes the "compute.nodeTemplates.insert" call.
102082// Exactly one of *Operation or error will be non-nil. Any non-2xx
102083// status code is an error. Response headers are in either
102084// *Operation.ServerResponse.Header or (if a response was returned at
102085// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102086// to check whether the returned error was because
102087// http.StatusNotModified was returned.
102088func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102089	gensupport.SetOptions(c.urlParams_, opts...)
102090	res, err := c.doRequest("json")
102091	if res != nil && res.StatusCode == http.StatusNotModified {
102092		if res.Body != nil {
102093			res.Body.Close()
102094		}
102095		return nil, &googleapi.Error{
102096			Code:   res.StatusCode,
102097			Header: res.Header,
102098		}
102099	}
102100	if err != nil {
102101		return nil, err
102102	}
102103	defer googleapi.CloseBody(res)
102104	if err := googleapi.CheckResponse(res); err != nil {
102105		return nil, err
102106	}
102107	ret := &Operation{
102108		ServerResponse: googleapi.ServerResponse{
102109			Header:         res.Header,
102110			HTTPStatusCode: res.StatusCode,
102111		},
102112	}
102113	target := &ret
102114	if err := gensupport.DecodeResponse(target, res); err != nil {
102115		return nil, err
102116	}
102117	return ret, nil
102118	// {
102119	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
102120	//   "httpMethod": "POST",
102121	//   "id": "compute.nodeTemplates.insert",
102122	//   "parameterOrder": [
102123	//     "project",
102124	//     "region"
102125	//   ],
102126	//   "parameters": {
102127	//     "project": {
102128	//       "description": "Project ID for this request.",
102129	//       "location": "path",
102130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102131	//       "required": true,
102132	//       "type": "string"
102133	//     },
102134	//     "region": {
102135	//       "description": "The name of the region for this request.",
102136	//       "location": "path",
102137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102138	//       "required": true,
102139	//       "type": "string"
102140	//     },
102141	//     "requestId": {
102142	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102143	//       "location": "query",
102144	//       "type": "string"
102145	//     }
102146	//   },
102147	//   "path": "{project}/regions/{region}/nodeTemplates",
102148	//   "request": {
102149	//     "$ref": "NodeTemplate"
102150	//   },
102151	//   "response": {
102152	//     "$ref": "Operation"
102153	//   },
102154	//   "scopes": [
102155	//     "https://www.googleapis.com/auth/cloud-platform",
102156	//     "https://www.googleapis.com/auth/compute"
102157	//   ]
102158	// }
102159
102160}
102161
102162// method id "compute.nodeTemplates.list":
102163
102164type NodeTemplatesListCall struct {
102165	s            *Service
102166	project      string
102167	region       string
102168	urlParams_   gensupport.URLParams
102169	ifNoneMatch_ string
102170	ctx_         context.Context
102171	header_      http.Header
102172}
102173
102174// List: Retrieves a list of node templates available to the specified
102175// project.
102176func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
102177	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102178	c.project = project
102179	c.region = region
102180	return c
102181}
102182
102183// Filter sets the optional parameter "filter": A filter expression that
102184// filters resources listed in the response. The expression must specify
102185// the field name, a comparison operator, and the value that you want to
102186// use for filtering. The value must be a string, a number, or a
102187// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102188// `<`.
102189//
102190// For example, if you are filtering Compute Engine instances, you can
102191// exclude instances named `example-instance` by specifying `name !=
102192// example-instance`.
102193//
102194// You can also filter nested fields. For example, you could specify
102195// `scheduling.automaticRestart = false` to include instances only if
102196// they are not scheduled for automatic restarts. You can use filtering
102197// on nested fields to filter based on resource labels.
102198//
102199// To filter on multiple expressions, provide each separate expression
102200// within parentheses. For example: ``` (scheduling.automaticRestart =
102201// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102202// is an `AND` expression. However, you can include `AND` and `OR`
102203// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102204// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102205// (scheduling.automaticRestart = true) ```
102206func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
102207	c.urlParams_.Set("filter", filter)
102208	return c
102209}
102210
102211// MaxResults sets the optional parameter "maxResults": The maximum
102212// number of results per page that should be returned. If the number of
102213// available results is larger than `maxResults`, Compute Engine returns
102214// a `nextPageToken` that can be used to get the next page of results in
102215// subsequent list requests. Acceptable values are `0` to `500`,
102216// inclusive. (Default: `500`)
102217func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
102218	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102219	return c
102220}
102221
102222// OrderBy sets the optional parameter "orderBy": Sorts list results by
102223// a certain order. By default, results are returned in alphanumerical
102224// order based on the resource name.
102225//
102226// You can also sort results in descending order based on the creation
102227// timestamp using `orderBy="creationTimestamp desc". This sorts
102228// results based on the `creationTimestamp` field in reverse
102229// chronological order (newest result first). Use this to sort resources
102230// like operations so that the newest operation is returned
102231// first.
102232//
102233// Currently, only sorting by `name` or `creationTimestamp desc` is
102234// supported.
102235func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
102236	c.urlParams_.Set("orderBy", orderBy)
102237	return c
102238}
102239
102240// PageToken sets the optional parameter "pageToken": Specifies a page
102241// token to use. Set `pageToken` to the `nextPageToken` returned by a
102242// previous list request to get the next page of results.
102243func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
102244	c.urlParams_.Set("pageToken", pageToken)
102245	return c
102246}
102247
102248// Fields allows partial responses to be retrieved. See
102249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102250// for more information.
102251func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
102252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102253	return c
102254}
102255
102256// IfNoneMatch sets the optional parameter which makes the operation
102257// fail if the object's ETag matches the given value. This is useful for
102258// getting updates only after the object has changed since the last
102259// request. Use googleapi.IsNotModified to check whether the response
102260// error from Do is the result of In-None-Match.
102261func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
102262	c.ifNoneMatch_ = entityTag
102263	return c
102264}
102265
102266// Context sets the context to be used in this call's Do method. Any
102267// pending HTTP request will be aborted if the provided context is
102268// canceled.
102269func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
102270	c.ctx_ = ctx
102271	return c
102272}
102273
102274// Header returns an http.Header that can be modified by the caller to
102275// add HTTP headers to the request.
102276func (c *NodeTemplatesListCall) Header() http.Header {
102277	if c.header_ == nil {
102278		c.header_ = make(http.Header)
102279	}
102280	return c.header_
102281}
102282
102283func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
102284	reqHeaders := make(http.Header)
102285	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102286	for k, v := range c.header_ {
102287		reqHeaders[k] = v
102288	}
102289	reqHeaders.Set("User-Agent", c.s.userAgent())
102290	if c.ifNoneMatch_ != "" {
102291		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102292	}
102293	var body io.Reader = nil
102294	c.urlParams_.Set("alt", alt)
102295	c.urlParams_.Set("prettyPrint", "false")
102296	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
102297	urls += "?" + c.urlParams_.Encode()
102298	req, err := http.NewRequest("GET", urls, body)
102299	if err != nil {
102300		return nil, err
102301	}
102302	req.Header = reqHeaders
102303	googleapi.Expand(req.URL, map[string]string{
102304		"project": c.project,
102305		"region":  c.region,
102306	})
102307	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102308}
102309
102310// Do executes the "compute.nodeTemplates.list" call.
102311// Exactly one of *NodeTemplateList or error will be non-nil. Any
102312// non-2xx status code is an error. Response headers are in either
102313// *NodeTemplateList.ServerResponse.Header or (if a response was
102314// returned at all) in error.(*googleapi.Error).Header. Use
102315// googleapi.IsNotModified to check whether the returned error was
102316// because http.StatusNotModified was returned.
102317func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
102318	gensupport.SetOptions(c.urlParams_, opts...)
102319	res, err := c.doRequest("json")
102320	if res != nil && res.StatusCode == http.StatusNotModified {
102321		if res.Body != nil {
102322			res.Body.Close()
102323		}
102324		return nil, &googleapi.Error{
102325			Code:   res.StatusCode,
102326			Header: res.Header,
102327		}
102328	}
102329	if err != nil {
102330		return nil, err
102331	}
102332	defer googleapi.CloseBody(res)
102333	if err := googleapi.CheckResponse(res); err != nil {
102334		return nil, err
102335	}
102336	ret := &NodeTemplateList{
102337		ServerResponse: googleapi.ServerResponse{
102338			Header:         res.Header,
102339			HTTPStatusCode: res.StatusCode,
102340		},
102341	}
102342	target := &ret
102343	if err := gensupport.DecodeResponse(target, res); err != nil {
102344		return nil, err
102345	}
102346	return ret, nil
102347	// {
102348	//   "description": "Retrieves a list of node templates available to the specified project.",
102349	//   "httpMethod": "GET",
102350	//   "id": "compute.nodeTemplates.list",
102351	//   "parameterOrder": [
102352	//     "project",
102353	//     "region"
102354	//   ],
102355	//   "parameters": {
102356	//     "filter": {
102357	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102358	//       "location": "query",
102359	//       "type": "string"
102360	//     },
102361	//     "maxResults": {
102362	//       "default": "500",
102363	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102364	//       "format": "uint32",
102365	//       "location": "query",
102366	//       "minimum": "0",
102367	//       "type": "integer"
102368	//     },
102369	//     "orderBy": {
102370	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102371	//       "location": "query",
102372	//       "type": "string"
102373	//     },
102374	//     "pageToken": {
102375	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102376	//       "location": "query",
102377	//       "type": "string"
102378	//     },
102379	//     "project": {
102380	//       "description": "Project ID for this request.",
102381	//       "location": "path",
102382	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102383	//       "required": true,
102384	//       "type": "string"
102385	//     },
102386	//     "region": {
102387	//       "description": "The name of the region for this request.",
102388	//       "location": "path",
102389	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102390	//       "required": true,
102391	//       "type": "string"
102392	//     }
102393	//   },
102394	//   "path": "{project}/regions/{region}/nodeTemplates",
102395	//   "response": {
102396	//     "$ref": "NodeTemplateList"
102397	//   },
102398	//   "scopes": [
102399	//     "https://www.googleapis.com/auth/cloud-platform",
102400	//     "https://www.googleapis.com/auth/compute",
102401	//     "https://www.googleapis.com/auth/compute.readonly"
102402	//   ]
102403	// }
102404
102405}
102406
102407// Pages invokes f for each page of results.
102408// A non-nil error returned from f will halt the iteration.
102409// The provided context supersedes any context provided to the Context method.
102410func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
102411	c.ctx_ = ctx
102412	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102413	for {
102414		x, err := c.Do()
102415		if err != nil {
102416			return err
102417		}
102418		if err := f(x); err != nil {
102419			return err
102420		}
102421		if x.NextPageToken == "" {
102422			return nil
102423		}
102424		c.PageToken(x.NextPageToken)
102425	}
102426}
102427
102428// method id "compute.nodeTemplates.setIamPolicy":
102429
102430type NodeTemplatesSetIamPolicyCall struct {
102431	s                      *Service
102432	project                string
102433	region                 string
102434	resource               string
102435	regionsetpolicyrequest *RegionSetPolicyRequest
102436	urlParams_             gensupport.URLParams
102437	ctx_                   context.Context
102438	header_                http.Header
102439}
102440
102441// SetIamPolicy: Sets the access control policy on the specified
102442// resource. Replaces any existing policy.
102443func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
102444	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102445	c.project = project
102446	c.region = region
102447	c.resource = resource
102448	c.regionsetpolicyrequest = regionsetpolicyrequest
102449	return c
102450}
102451
102452// Fields allows partial responses to be retrieved. See
102453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102454// for more information.
102455func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
102456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102457	return c
102458}
102459
102460// Context sets the context to be used in this call's Do method. Any
102461// pending HTTP request will be aborted if the provided context is
102462// canceled.
102463func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
102464	c.ctx_ = ctx
102465	return c
102466}
102467
102468// Header returns an http.Header that can be modified by the caller to
102469// add HTTP headers to the request.
102470func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
102471	if c.header_ == nil {
102472		c.header_ = make(http.Header)
102473	}
102474	return c.header_
102475}
102476
102477func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
102478	reqHeaders := make(http.Header)
102479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102480	for k, v := range c.header_ {
102481		reqHeaders[k] = v
102482	}
102483	reqHeaders.Set("User-Agent", c.s.userAgent())
102484	var body io.Reader = nil
102485	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
102486	if err != nil {
102487		return nil, err
102488	}
102489	reqHeaders.Set("Content-Type", "application/json")
102490	c.urlParams_.Set("alt", alt)
102491	c.urlParams_.Set("prettyPrint", "false")
102492	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
102493	urls += "?" + c.urlParams_.Encode()
102494	req, err := http.NewRequest("POST", urls, body)
102495	if err != nil {
102496		return nil, err
102497	}
102498	req.Header = reqHeaders
102499	googleapi.Expand(req.URL, map[string]string{
102500		"project":  c.project,
102501		"region":   c.region,
102502		"resource": c.resource,
102503	})
102504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102505}
102506
102507// Do executes the "compute.nodeTemplates.setIamPolicy" call.
102508// Exactly one of *Policy or error will be non-nil. Any non-2xx status
102509// code is an error. Response headers are in either
102510// *Policy.ServerResponse.Header or (if a response was returned at all)
102511// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102512// check whether the returned error was because http.StatusNotModified
102513// was returned.
102514func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
102515	gensupport.SetOptions(c.urlParams_, opts...)
102516	res, err := c.doRequest("json")
102517	if res != nil && res.StatusCode == http.StatusNotModified {
102518		if res.Body != nil {
102519			res.Body.Close()
102520		}
102521		return nil, &googleapi.Error{
102522			Code:   res.StatusCode,
102523			Header: res.Header,
102524		}
102525	}
102526	if err != nil {
102527		return nil, err
102528	}
102529	defer googleapi.CloseBody(res)
102530	if err := googleapi.CheckResponse(res); err != nil {
102531		return nil, err
102532	}
102533	ret := &Policy{
102534		ServerResponse: googleapi.ServerResponse{
102535			Header:         res.Header,
102536			HTTPStatusCode: res.StatusCode,
102537		},
102538	}
102539	target := &ret
102540	if err := gensupport.DecodeResponse(target, res); err != nil {
102541		return nil, err
102542	}
102543	return ret, nil
102544	// {
102545	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
102546	//   "httpMethod": "POST",
102547	//   "id": "compute.nodeTemplates.setIamPolicy",
102548	//   "parameterOrder": [
102549	//     "project",
102550	//     "region",
102551	//     "resource"
102552	//   ],
102553	//   "parameters": {
102554	//     "project": {
102555	//       "description": "Project ID for this request.",
102556	//       "location": "path",
102557	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102558	//       "required": true,
102559	//       "type": "string"
102560	//     },
102561	//     "region": {
102562	//       "description": "The name of the region for this request.",
102563	//       "location": "path",
102564	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102565	//       "required": true,
102566	//       "type": "string"
102567	//     },
102568	//     "resource": {
102569	//       "description": "Name or id of the resource for this request.",
102570	//       "location": "path",
102571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102572	//       "required": true,
102573	//       "type": "string"
102574	//     }
102575	//   },
102576	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
102577	//   "request": {
102578	//     "$ref": "RegionSetPolicyRequest"
102579	//   },
102580	//   "response": {
102581	//     "$ref": "Policy"
102582	//   },
102583	//   "scopes": [
102584	//     "https://www.googleapis.com/auth/cloud-platform",
102585	//     "https://www.googleapis.com/auth/compute"
102586	//   ]
102587	// }
102588
102589}
102590
102591// method id "compute.nodeTemplates.testIamPermissions":
102592
102593type NodeTemplatesTestIamPermissionsCall struct {
102594	s                      *Service
102595	project                string
102596	region                 string
102597	resource               string
102598	testpermissionsrequest *TestPermissionsRequest
102599	urlParams_             gensupport.URLParams
102600	ctx_                   context.Context
102601	header_                http.Header
102602}
102603
102604// TestIamPermissions: Returns permissions that a caller has on the
102605// specified resource.
102606func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
102607	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102608	c.project = project
102609	c.region = region
102610	c.resource = resource
102611	c.testpermissionsrequest = testpermissionsrequest
102612	return c
102613}
102614
102615// Fields allows partial responses to be retrieved. See
102616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102617// for more information.
102618func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
102619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102620	return c
102621}
102622
102623// Context sets the context to be used in this call's Do method. Any
102624// pending HTTP request will be aborted if the provided context is
102625// canceled.
102626func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
102627	c.ctx_ = ctx
102628	return c
102629}
102630
102631// Header returns an http.Header that can be modified by the caller to
102632// add HTTP headers to the request.
102633func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
102634	if c.header_ == nil {
102635		c.header_ = make(http.Header)
102636	}
102637	return c.header_
102638}
102639
102640func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
102641	reqHeaders := make(http.Header)
102642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102643	for k, v := range c.header_ {
102644		reqHeaders[k] = v
102645	}
102646	reqHeaders.Set("User-Agent", c.s.userAgent())
102647	var body io.Reader = nil
102648	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
102649	if err != nil {
102650		return nil, err
102651	}
102652	reqHeaders.Set("Content-Type", "application/json")
102653	c.urlParams_.Set("alt", alt)
102654	c.urlParams_.Set("prettyPrint", "false")
102655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
102656	urls += "?" + c.urlParams_.Encode()
102657	req, err := http.NewRequest("POST", urls, body)
102658	if err != nil {
102659		return nil, err
102660	}
102661	req.Header = reqHeaders
102662	googleapi.Expand(req.URL, map[string]string{
102663		"project":  c.project,
102664		"region":   c.region,
102665		"resource": c.resource,
102666	})
102667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102668}
102669
102670// Do executes the "compute.nodeTemplates.testIamPermissions" call.
102671// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
102672// non-2xx status code is an error. Response headers are in either
102673// *TestPermissionsResponse.ServerResponse.Header or (if a response was
102674// returned at all) in error.(*googleapi.Error).Header. Use
102675// googleapi.IsNotModified to check whether the returned error was
102676// because http.StatusNotModified was returned.
102677func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
102678	gensupport.SetOptions(c.urlParams_, opts...)
102679	res, err := c.doRequest("json")
102680	if res != nil && res.StatusCode == http.StatusNotModified {
102681		if res.Body != nil {
102682			res.Body.Close()
102683		}
102684		return nil, &googleapi.Error{
102685			Code:   res.StatusCode,
102686			Header: res.Header,
102687		}
102688	}
102689	if err != nil {
102690		return nil, err
102691	}
102692	defer googleapi.CloseBody(res)
102693	if err := googleapi.CheckResponse(res); err != nil {
102694		return nil, err
102695	}
102696	ret := &TestPermissionsResponse{
102697		ServerResponse: googleapi.ServerResponse{
102698			Header:         res.Header,
102699			HTTPStatusCode: res.StatusCode,
102700		},
102701	}
102702	target := &ret
102703	if err := gensupport.DecodeResponse(target, res); err != nil {
102704		return nil, err
102705	}
102706	return ret, nil
102707	// {
102708	//   "description": "Returns permissions that a caller has on the specified resource.",
102709	//   "httpMethod": "POST",
102710	//   "id": "compute.nodeTemplates.testIamPermissions",
102711	//   "parameterOrder": [
102712	//     "project",
102713	//     "region",
102714	//     "resource"
102715	//   ],
102716	//   "parameters": {
102717	//     "project": {
102718	//       "description": "Project ID for this request.",
102719	//       "location": "path",
102720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102721	//       "required": true,
102722	//       "type": "string"
102723	//     },
102724	//     "region": {
102725	//       "description": "The name of the region for this request.",
102726	//       "location": "path",
102727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102728	//       "required": true,
102729	//       "type": "string"
102730	//     },
102731	//     "resource": {
102732	//       "description": "Name or id of the resource for this request.",
102733	//       "location": "path",
102734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102735	//       "required": true,
102736	//       "type": "string"
102737	//     }
102738	//   },
102739	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
102740	//   "request": {
102741	//     "$ref": "TestPermissionsRequest"
102742	//   },
102743	//   "response": {
102744	//     "$ref": "TestPermissionsResponse"
102745	//   },
102746	//   "scopes": [
102747	//     "https://www.googleapis.com/auth/cloud-platform",
102748	//     "https://www.googleapis.com/auth/compute",
102749	//     "https://www.googleapis.com/auth/compute.readonly"
102750	//   ]
102751	// }
102752
102753}
102754
102755// method id "compute.nodeTypes.aggregatedList":
102756
102757type NodeTypesAggregatedListCall struct {
102758	s            *Service
102759	project      string
102760	urlParams_   gensupport.URLParams
102761	ifNoneMatch_ string
102762	ctx_         context.Context
102763	header_      http.Header
102764}
102765
102766// AggregatedList: Retrieves an aggregated list of node types.
102767func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
102768	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102769	c.project = project
102770	return c
102771}
102772
102773// Filter sets the optional parameter "filter": A filter expression that
102774// filters resources listed in the response. The expression must specify
102775// the field name, a comparison operator, and the value that you want to
102776// use for filtering. The value must be a string, a number, or a
102777// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102778// `<`.
102779//
102780// For example, if you are filtering Compute Engine instances, you can
102781// exclude instances named `example-instance` by specifying `name !=
102782// example-instance`.
102783//
102784// You can also filter nested fields. For example, you could specify
102785// `scheduling.automaticRestart = false` to include instances only if
102786// they are not scheduled for automatic restarts. You can use filtering
102787// on nested fields to filter based on resource labels.
102788//
102789// To filter on multiple expressions, provide each separate expression
102790// within parentheses. For example: ``` (scheduling.automaticRestart =
102791// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102792// is an `AND` expression. However, you can include `AND` and `OR`
102793// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102794// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102795// (scheduling.automaticRestart = true) ```
102796func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
102797	c.urlParams_.Set("filter", filter)
102798	return c
102799}
102800
102801// IncludeAllScopes sets the optional parameter "includeAllScopes":
102802// Indicates whether every visible scope for each scope type (zone,
102803// region, global) should be included in the response. For new resource
102804// types added after this field, the flag has no effect as new resource
102805// types will always include every visible scope for each scope type in
102806// response. For resource types which predate this field, if this flag
102807// is omitted or false, only scopes of the scope types where the
102808// resource type is expected to be found will be included.
102809func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
102810	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
102811	return c
102812}
102813
102814// MaxResults sets the optional parameter "maxResults": The maximum
102815// number of results per page that should be returned. If the number of
102816// available results is larger than `maxResults`, Compute Engine returns
102817// a `nextPageToken` that can be used to get the next page of results in
102818// subsequent list requests. Acceptable values are `0` to `500`,
102819// inclusive. (Default: `500`)
102820func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
102821	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102822	return c
102823}
102824
102825// OrderBy sets the optional parameter "orderBy": Sorts list results by
102826// a certain order. By default, results are returned in alphanumerical
102827// order based on the resource name.
102828//
102829// You can also sort results in descending order based on the creation
102830// timestamp using `orderBy="creationTimestamp desc". This sorts
102831// results based on the `creationTimestamp` field in reverse
102832// chronological order (newest result first). Use this to sort resources
102833// like operations so that the newest operation is returned
102834// first.
102835//
102836// Currently, only sorting by `name` or `creationTimestamp desc` is
102837// supported.
102838func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
102839	c.urlParams_.Set("orderBy", orderBy)
102840	return c
102841}
102842
102843// PageToken sets the optional parameter "pageToken": Specifies a page
102844// token to use. Set `pageToken` to the `nextPageToken` returned by a
102845// previous list request to get the next page of results.
102846func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
102847	c.urlParams_.Set("pageToken", pageToken)
102848	return c
102849}
102850
102851// Fields allows partial responses to be retrieved. See
102852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102853// for more information.
102854func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
102855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102856	return c
102857}
102858
102859// IfNoneMatch sets the optional parameter which makes the operation
102860// fail if the object's ETag matches the given value. This is useful for
102861// getting updates only after the object has changed since the last
102862// request. Use googleapi.IsNotModified to check whether the response
102863// error from Do is the result of In-None-Match.
102864func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
102865	c.ifNoneMatch_ = entityTag
102866	return c
102867}
102868
102869// Context sets the context to be used in this call's Do method. Any
102870// pending HTTP request will be aborted if the provided context is
102871// canceled.
102872func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
102873	c.ctx_ = ctx
102874	return c
102875}
102876
102877// Header returns an http.Header that can be modified by the caller to
102878// add HTTP headers to the request.
102879func (c *NodeTypesAggregatedListCall) Header() http.Header {
102880	if c.header_ == nil {
102881		c.header_ = make(http.Header)
102882	}
102883	return c.header_
102884}
102885
102886func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
102887	reqHeaders := make(http.Header)
102888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
102889	for k, v := range c.header_ {
102890		reqHeaders[k] = v
102891	}
102892	reqHeaders.Set("User-Agent", c.s.userAgent())
102893	if c.ifNoneMatch_ != "" {
102894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102895	}
102896	var body io.Reader = nil
102897	c.urlParams_.Set("alt", alt)
102898	c.urlParams_.Set("prettyPrint", "false")
102899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTypes")
102900	urls += "?" + c.urlParams_.Encode()
102901	req, err := http.NewRequest("GET", urls, body)
102902	if err != nil {
102903		return nil, err
102904	}
102905	req.Header = reqHeaders
102906	googleapi.Expand(req.URL, map[string]string{
102907		"project": c.project,
102908	})
102909	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102910}
102911
102912// Do executes the "compute.nodeTypes.aggregatedList" call.
102913// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
102914// non-2xx status code is an error. Response headers are in either
102915// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
102916// returned at all) in error.(*googleapi.Error).Header. Use
102917// googleapi.IsNotModified to check whether the returned error was
102918// because http.StatusNotModified was returned.
102919func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
102920	gensupport.SetOptions(c.urlParams_, opts...)
102921	res, err := c.doRequest("json")
102922	if res != nil && res.StatusCode == http.StatusNotModified {
102923		if res.Body != nil {
102924			res.Body.Close()
102925		}
102926		return nil, &googleapi.Error{
102927			Code:   res.StatusCode,
102928			Header: res.Header,
102929		}
102930	}
102931	if err != nil {
102932		return nil, err
102933	}
102934	defer googleapi.CloseBody(res)
102935	if err := googleapi.CheckResponse(res); err != nil {
102936		return nil, err
102937	}
102938	ret := &NodeTypeAggregatedList{
102939		ServerResponse: googleapi.ServerResponse{
102940			Header:         res.Header,
102941			HTTPStatusCode: res.StatusCode,
102942		},
102943	}
102944	target := &ret
102945	if err := gensupport.DecodeResponse(target, res); err != nil {
102946		return nil, err
102947	}
102948	return ret, nil
102949	// {
102950	//   "description": "Retrieves an aggregated list of node types.",
102951	//   "httpMethod": "GET",
102952	//   "id": "compute.nodeTypes.aggregatedList",
102953	//   "parameterOrder": [
102954	//     "project"
102955	//   ],
102956	//   "parameters": {
102957	//     "filter": {
102958	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102959	//       "location": "query",
102960	//       "type": "string"
102961	//     },
102962	//     "includeAllScopes": {
102963	//       "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.",
102964	//       "location": "query",
102965	//       "type": "boolean"
102966	//     },
102967	//     "maxResults": {
102968	//       "default": "500",
102969	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102970	//       "format": "uint32",
102971	//       "location": "query",
102972	//       "minimum": "0",
102973	//       "type": "integer"
102974	//     },
102975	//     "orderBy": {
102976	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102977	//       "location": "query",
102978	//       "type": "string"
102979	//     },
102980	//     "pageToken": {
102981	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102982	//       "location": "query",
102983	//       "type": "string"
102984	//     },
102985	//     "project": {
102986	//       "description": "Project ID for this request.",
102987	//       "location": "path",
102988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102989	//       "required": true,
102990	//       "type": "string"
102991	//     }
102992	//   },
102993	//   "path": "{project}/aggregated/nodeTypes",
102994	//   "response": {
102995	//     "$ref": "NodeTypeAggregatedList"
102996	//   },
102997	//   "scopes": [
102998	//     "https://www.googleapis.com/auth/cloud-platform",
102999	//     "https://www.googleapis.com/auth/compute",
103000	//     "https://www.googleapis.com/auth/compute.readonly"
103001	//   ]
103002	// }
103003
103004}
103005
103006// Pages invokes f for each page of results.
103007// A non-nil error returned from f will halt the iteration.
103008// The provided context supersedes any context provided to the Context method.
103009func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
103010	c.ctx_ = ctx
103011	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103012	for {
103013		x, err := c.Do()
103014		if err != nil {
103015			return err
103016		}
103017		if err := f(x); err != nil {
103018			return err
103019		}
103020		if x.NextPageToken == "" {
103021			return nil
103022		}
103023		c.PageToken(x.NextPageToken)
103024	}
103025}
103026
103027// method id "compute.nodeTypes.get":
103028
103029type NodeTypesGetCall struct {
103030	s            *Service
103031	project      string
103032	zone         string
103033	nodeType     string
103034	urlParams_   gensupport.URLParams
103035	ifNoneMatch_ string
103036	ctx_         context.Context
103037	header_      http.Header
103038}
103039
103040// Get: Returns the specified node type. Gets a list of available node
103041// types by making a list() request.
103042func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
103043	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103044	c.project = project
103045	c.zone = zone
103046	c.nodeType = nodeType
103047	return c
103048}
103049
103050// Fields allows partial responses to be retrieved. See
103051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103052// for more information.
103053func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
103054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103055	return c
103056}
103057
103058// IfNoneMatch sets the optional parameter which makes the operation
103059// fail if the object's ETag matches the given value. This is useful for
103060// getting updates only after the object has changed since the last
103061// request. Use googleapi.IsNotModified to check whether the response
103062// error from Do is the result of In-None-Match.
103063func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
103064	c.ifNoneMatch_ = entityTag
103065	return c
103066}
103067
103068// Context sets the context to be used in this call's Do method. Any
103069// pending HTTP request will be aborted if the provided context is
103070// canceled.
103071func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
103072	c.ctx_ = ctx
103073	return c
103074}
103075
103076// Header returns an http.Header that can be modified by the caller to
103077// add HTTP headers to the request.
103078func (c *NodeTypesGetCall) Header() http.Header {
103079	if c.header_ == nil {
103080		c.header_ = make(http.Header)
103081	}
103082	return c.header_
103083}
103084
103085func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
103086	reqHeaders := make(http.Header)
103087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103088	for k, v := range c.header_ {
103089		reqHeaders[k] = v
103090	}
103091	reqHeaders.Set("User-Agent", c.s.userAgent())
103092	if c.ifNoneMatch_ != "" {
103093		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103094	}
103095	var body io.Reader = nil
103096	c.urlParams_.Set("alt", alt)
103097	c.urlParams_.Set("prettyPrint", "false")
103098	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes/{nodeType}")
103099	urls += "?" + c.urlParams_.Encode()
103100	req, err := http.NewRequest("GET", urls, body)
103101	if err != nil {
103102		return nil, err
103103	}
103104	req.Header = reqHeaders
103105	googleapi.Expand(req.URL, map[string]string{
103106		"project":  c.project,
103107		"zone":     c.zone,
103108		"nodeType": c.nodeType,
103109	})
103110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103111}
103112
103113// Do executes the "compute.nodeTypes.get" call.
103114// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
103115// code is an error. Response headers are in either
103116// *NodeType.ServerResponse.Header or (if a response was returned at
103117// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103118// to check whether the returned error was because
103119// http.StatusNotModified was returned.
103120func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
103121	gensupport.SetOptions(c.urlParams_, opts...)
103122	res, err := c.doRequest("json")
103123	if res != nil && res.StatusCode == http.StatusNotModified {
103124		if res.Body != nil {
103125			res.Body.Close()
103126		}
103127		return nil, &googleapi.Error{
103128			Code:   res.StatusCode,
103129			Header: res.Header,
103130		}
103131	}
103132	if err != nil {
103133		return nil, err
103134	}
103135	defer googleapi.CloseBody(res)
103136	if err := googleapi.CheckResponse(res); err != nil {
103137		return nil, err
103138	}
103139	ret := &NodeType{
103140		ServerResponse: googleapi.ServerResponse{
103141			Header:         res.Header,
103142			HTTPStatusCode: res.StatusCode,
103143		},
103144	}
103145	target := &ret
103146	if err := gensupport.DecodeResponse(target, res); err != nil {
103147		return nil, err
103148	}
103149	return ret, nil
103150	// {
103151	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
103152	//   "httpMethod": "GET",
103153	//   "id": "compute.nodeTypes.get",
103154	//   "parameterOrder": [
103155	//     "project",
103156	//     "zone",
103157	//     "nodeType"
103158	//   ],
103159	//   "parameters": {
103160	//     "nodeType": {
103161	//       "description": "Name of the node type to return.",
103162	//       "location": "path",
103163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103164	//       "required": true,
103165	//       "type": "string"
103166	//     },
103167	//     "project": {
103168	//       "description": "Project ID for this request.",
103169	//       "location": "path",
103170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103171	//       "required": true,
103172	//       "type": "string"
103173	//     },
103174	//     "zone": {
103175	//       "description": "The name of the zone for this request.",
103176	//       "location": "path",
103177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103178	//       "required": true,
103179	//       "type": "string"
103180	//     }
103181	//   },
103182	//   "path": "{project}/zones/{zone}/nodeTypes/{nodeType}",
103183	//   "response": {
103184	//     "$ref": "NodeType"
103185	//   },
103186	//   "scopes": [
103187	//     "https://www.googleapis.com/auth/cloud-platform",
103188	//     "https://www.googleapis.com/auth/compute",
103189	//     "https://www.googleapis.com/auth/compute.readonly"
103190	//   ]
103191	// }
103192
103193}
103194
103195// method id "compute.nodeTypes.list":
103196
103197type NodeTypesListCall struct {
103198	s            *Service
103199	project      string
103200	zone         string
103201	urlParams_   gensupport.URLParams
103202	ifNoneMatch_ string
103203	ctx_         context.Context
103204	header_      http.Header
103205}
103206
103207// List: Retrieves a list of node types available to the specified
103208// project.
103209func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
103210	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103211	c.project = project
103212	c.zone = zone
103213	return c
103214}
103215
103216// Filter sets the optional parameter "filter": A filter expression that
103217// filters resources listed in the response. The expression must specify
103218// the field name, a comparison operator, and the value that you want to
103219// use for filtering. The value must be a string, a number, or a
103220// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103221// `<`.
103222//
103223// For example, if you are filtering Compute Engine instances, you can
103224// exclude instances named `example-instance` by specifying `name !=
103225// example-instance`.
103226//
103227// You can also filter nested fields. For example, you could specify
103228// `scheduling.automaticRestart = false` to include instances only if
103229// they are not scheduled for automatic restarts. You can use filtering
103230// on nested fields to filter based on resource labels.
103231//
103232// To filter on multiple expressions, provide each separate expression
103233// within parentheses. For example: ``` (scheduling.automaticRestart =
103234// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
103235// is an `AND` expression. However, you can include `AND` and `OR`
103236// expressions explicitly. For example: ``` (cpuPlatform = "Intel
103237// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
103238// (scheduling.automaticRestart = true) ```
103239func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
103240	c.urlParams_.Set("filter", filter)
103241	return c
103242}
103243
103244// MaxResults sets the optional parameter "maxResults": The maximum
103245// number of results per page that should be returned. If the number of
103246// available results is larger than `maxResults`, Compute Engine returns
103247// a `nextPageToken` that can be used to get the next page of results in
103248// subsequent list requests. Acceptable values are `0` to `500`,
103249// inclusive. (Default: `500`)
103250func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
103251	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103252	return c
103253}
103254
103255// OrderBy sets the optional parameter "orderBy": Sorts list results by
103256// a certain order. By default, results are returned in alphanumerical
103257// order based on the resource name.
103258//
103259// You can also sort results in descending order based on the creation
103260// timestamp using `orderBy="creationTimestamp desc". This sorts
103261// results based on the `creationTimestamp` field in reverse
103262// chronological order (newest result first). Use this to sort resources
103263// like operations so that the newest operation is returned
103264// first.
103265//
103266// Currently, only sorting by `name` or `creationTimestamp desc` is
103267// supported.
103268func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
103269	c.urlParams_.Set("orderBy", orderBy)
103270	return c
103271}
103272
103273// PageToken sets the optional parameter "pageToken": Specifies a page
103274// token to use. Set `pageToken` to the `nextPageToken` returned by a
103275// previous list request to get the next page of results.
103276func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
103277	c.urlParams_.Set("pageToken", pageToken)
103278	return c
103279}
103280
103281// Fields allows partial responses to be retrieved. See
103282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103283// for more information.
103284func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
103285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103286	return c
103287}
103288
103289// IfNoneMatch sets the optional parameter which makes the operation
103290// fail if the object's ETag matches the given value. This is useful for
103291// getting updates only after the object has changed since the last
103292// request. Use googleapi.IsNotModified to check whether the response
103293// error from Do is the result of In-None-Match.
103294func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
103295	c.ifNoneMatch_ = entityTag
103296	return c
103297}
103298
103299// Context sets the context to be used in this call's Do method. Any
103300// pending HTTP request will be aborted if the provided context is
103301// canceled.
103302func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
103303	c.ctx_ = ctx
103304	return c
103305}
103306
103307// Header returns an http.Header that can be modified by the caller to
103308// add HTTP headers to the request.
103309func (c *NodeTypesListCall) Header() http.Header {
103310	if c.header_ == nil {
103311		c.header_ = make(http.Header)
103312	}
103313	return c.header_
103314}
103315
103316func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
103317	reqHeaders := make(http.Header)
103318	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103319	for k, v := range c.header_ {
103320		reqHeaders[k] = v
103321	}
103322	reqHeaders.Set("User-Agent", c.s.userAgent())
103323	if c.ifNoneMatch_ != "" {
103324		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103325	}
103326	var body io.Reader = nil
103327	c.urlParams_.Set("alt", alt)
103328	c.urlParams_.Set("prettyPrint", "false")
103329	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes")
103330	urls += "?" + c.urlParams_.Encode()
103331	req, err := http.NewRequest("GET", urls, body)
103332	if err != nil {
103333		return nil, err
103334	}
103335	req.Header = reqHeaders
103336	googleapi.Expand(req.URL, map[string]string{
103337		"project": c.project,
103338		"zone":    c.zone,
103339	})
103340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103341}
103342
103343// Do executes the "compute.nodeTypes.list" call.
103344// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
103345// status code is an error. Response headers are in either
103346// *NodeTypeList.ServerResponse.Header or (if a response was returned at
103347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103348// to check whether the returned error was because
103349// http.StatusNotModified was returned.
103350func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
103351	gensupport.SetOptions(c.urlParams_, opts...)
103352	res, err := c.doRequest("json")
103353	if res != nil && res.StatusCode == http.StatusNotModified {
103354		if res.Body != nil {
103355			res.Body.Close()
103356		}
103357		return nil, &googleapi.Error{
103358			Code:   res.StatusCode,
103359			Header: res.Header,
103360		}
103361	}
103362	if err != nil {
103363		return nil, err
103364	}
103365	defer googleapi.CloseBody(res)
103366	if err := googleapi.CheckResponse(res); err != nil {
103367		return nil, err
103368	}
103369	ret := &NodeTypeList{
103370		ServerResponse: googleapi.ServerResponse{
103371			Header:         res.Header,
103372			HTTPStatusCode: res.StatusCode,
103373		},
103374	}
103375	target := &ret
103376	if err := gensupport.DecodeResponse(target, res); err != nil {
103377		return nil, err
103378	}
103379	return ret, nil
103380	// {
103381	//   "description": "Retrieves a list of node types available to the specified project.",
103382	//   "httpMethod": "GET",
103383	//   "id": "compute.nodeTypes.list",
103384	//   "parameterOrder": [
103385	//     "project",
103386	//     "zone"
103387	//   ],
103388	//   "parameters": {
103389	//     "filter": {
103390	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
103391	//       "location": "query",
103392	//       "type": "string"
103393	//     },
103394	//     "maxResults": {
103395	//       "default": "500",
103396	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
103397	//       "format": "uint32",
103398	//       "location": "query",
103399	//       "minimum": "0",
103400	//       "type": "integer"
103401	//     },
103402	//     "orderBy": {
103403	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
103404	//       "location": "query",
103405	//       "type": "string"
103406	//     },
103407	//     "pageToken": {
103408	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
103409	//       "location": "query",
103410	//       "type": "string"
103411	//     },
103412	//     "project": {
103413	//       "description": "Project ID for this request.",
103414	//       "location": "path",
103415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103416	//       "required": true,
103417	//       "type": "string"
103418	//     },
103419	//     "zone": {
103420	//       "description": "The name of the zone for this request.",
103421	//       "location": "path",
103422	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103423	//       "required": true,
103424	//       "type": "string"
103425	//     }
103426	//   },
103427	//   "path": "{project}/zones/{zone}/nodeTypes",
103428	//   "response": {
103429	//     "$ref": "NodeTypeList"
103430	//   },
103431	//   "scopes": [
103432	//     "https://www.googleapis.com/auth/cloud-platform",
103433	//     "https://www.googleapis.com/auth/compute",
103434	//     "https://www.googleapis.com/auth/compute.readonly"
103435	//   ]
103436	// }
103437
103438}
103439
103440// Pages invokes f for each page of results.
103441// A non-nil error returned from f will halt the iteration.
103442// The provided context supersedes any context provided to the Context method.
103443func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
103444	c.ctx_ = ctx
103445	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103446	for {
103447		x, err := c.Do()
103448		if err != nil {
103449			return err
103450		}
103451		if err := f(x); err != nil {
103452			return err
103453		}
103454		if x.NextPageToken == "" {
103455			return nil
103456		}
103457		c.PageToken(x.NextPageToken)
103458	}
103459}
103460
103461// method id "compute.organizationSecurityPolicies.addAssociation":
103462
103463type OrganizationSecurityPoliciesAddAssociationCall struct {
103464	s                         *Service
103465	securityPolicy            string
103466	securitypolicyassociation *SecurityPolicyAssociation
103467	urlParams_                gensupport.URLParams
103468	ctx_                      context.Context
103469	header_                   http.Header
103470}
103471
103472// AddAssociation: Inserts an association for the specified security
103473// policy.
103474func (r *OrganizationSecurityPoliciesService) AddAssociation(securityPolicy string, securitypolicyassociation *SecurityPolicyAssociation) *OrganizationSecurityPoliciesAddAssociationCall {
103475	c := &OrganizationSecurityPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103476	c.securityPolicy = securityPolicy
103477	c.securitypolicyassociation = securitypolicyassociation
103478	return c
103479}
103480
103481// ReplaceExistingAssociation sets the optional parameter
103482// "replaceExistingAssociation": Indicates whether or not to replace it
103483// if an association of the attachment already exists. This is false by
103484// default, in which case an error will be returned if an assocation
103485// already exists.
103486func (c *OrganizationSecurityPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *OrganizationSecurityPoliciesAddAssociationCall {
103487	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
103488	return c
103489}
103490
103491// RequestId sets the optional parameter "requestId": An optional
103492// request ID to identify requests. Specify a unique request ID so that
103493// if you must retry your request, the server will know to ignore the
103494// request if it has already been completed.
103495//
103496// For example, consider a situation where you make an initial request
103497// and the request times out. If you make the request again with the
103498// same request ID, the server can check if original operation with the
103499// same request ID was received, and if so, will ignore the second
103500// request. This prevents clients from accidentally creating duplicate
103501// commitments.
103502//
103503// The request ID must be a valid UUID with the exception that zero UUID
103504// is not supported (00000000-0000-0000-0000-000000000000).
103505func (c *OrganizationSecurityPoliciesAddAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddAssociationCall {
103506	c.urlParams_.Set("requestId", requestId)
103507	return c
103508}
103509
103510// Fields allows partial responses to be retrieved. See
103511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103512// for more information.
103513func (c *OrganizationSecurityPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddAssociationCall {
103514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103515	return c
103516}
103517
103518// Context sets the context to be used in this call's Do method. Any
103519// pending HTTP request will be aborted if the provided context is
103520// canceled.
103521func (c *OrganizationSecurityPoliciesAddAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddAssociationCall {
103522	c.ctx_ = ctx
103523	return c
103524}
103525
103526// Header returns an http.Header that can be modified by the caller to
103527// add HTTP headers to the request.
103528func (c *OrganizationSecurityPoliciesAddAssociationCall) Header() http.Header {
103529	if c.header_ == nil {
103530		c.header_ = make(http.Header)
103531	}
103532	return c.header_
103533}
103534
103535func (c *OrganizationSecurityPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
103536	reqHeaders := make(http.Header)
103537	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103538	for k, v := range c.header_ {
103539		reqHeaders[k] = v
103540	}
103541	reqHeaders.Set("User-Agent", c.s.userAgent())
103542	var body io.Reader = nil
103543	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyassociation)
103544	if err != nil {
103545		return nil, err
103546	}
103547	reqHeaders.Set("Content-Type", "application/json")
103548	c.urlParams_.Set("alt", alt)
103549	c.urlParams_.Set("prettyPrint", "false")
103550	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addAssociation")
103551	urls += "?" + c.urlParams_.Encode()
103552	req, err := http.NewRequest("POST", urls, body)
103553	if err != nil {
103554		return nil, err
103555	}
103556	req.Header = reqHeaders
103557	googleapi.Expand(req.URL, map[string]string{
103558		"securityPolicy": c.securityPolicy,
103559	})
103560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103561}
103562
103563// Do executes the "compute.organizationSecurityPolicies.addAssociation" call.
103564// Exactly one of *Operation or error will be non-nil. Any non-2xx
103565// status code is an error. Response headers are in either
103566// *Operation.ServerResponse.Header or (if a response was returned at
103567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103568// to check whether the returned error was because
103569// http.StatusNotModified was returned.
103570func (c *OrganizationSecurityPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103571	gensupport.SetOptions(c.urlParams_, opts...)
103572	res, err := c.doRequest("json")
103573	if res != nil && res.StatusCode == http.StatusNotModified {
103574		if res.Body != nil {
103575			res.Body.Close()
103576		}
103577		return nil, &googleapi.Error{
103578			Code:   res.StatusCode,
103579			Header: res.Header,
103580		}
103581	}
103582	if err != nil {
103583		return nil, err
103584	}
103585	defer googleapi.CloseBody(res)
103586	if err := googleapi.CheckResponse(res); err != nil {
103587		return nil, err
103588	}
103589	ret := &Operation{
103590		ServerResponse: googleapi.ServerResponse{
103591			Header:         res.Header,
103592			HTTPStatusCode: res.StatusCode,
103593		},
103594	}
103595	target := &ret
103596	if err := gensupport.DecodeResponse(target, res); err != nil {
103597		return nil, err
103598	}
103599	return ret, nil
103600	// {
103601	//   "description": "Inserts an association for the specified security policy.",
103602	//   "httpMethod": "POST",
103603	//   "id": "compute.organizationSecurityPolicies.addAssociation",
103604	//   "parameterOrder": [
103605	//     "securityPolicy"
103606	//   ],
103607	//   "parameters": {
103608	//     "replaceExistingAssociation": {
103609	//       "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.",
103610	//       "location": "query",
103611	//       "type": "boolean"
103612	//     },
103613	//     "requestId": {
103614	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103615	//       "location": "query",
103616	//       "type": "string"
103617	//     },
103618	//     "securityPolicy": {
103619	//       "description": "Name of the security policy to update.",
103620	//       "location": "path",
103621	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
103622	//       "required": true,
103623	//       "type": "string"
103624	//     }
103625	//   },
103626	//   "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
103627	//   "request": {
103628	//     "$ref": "SecurityPolicyAssociation"
103629	//   },
103630	//   "response": {
103631	//     "$ref": "Operation"
103632	//   },
103633	//   "scopes": [
103634	//     "https://www.googleapis.com/auth/cloud-platform",
103635	//     "https://www.googleapis.com/auth/compute"
103636	//   ]
103637	// }
103638
103639}
103640
103641// method id "compute.organizationSecurityPolicies.addRule":
103642
103643type OrganizationSecurityPoliciesAddRuleCall struct {
103644	s                  *Service
103645	securityPolicy     string
103646	securitypolicyrule *SecurityPolicyRule
103647	urlParams_         gensupport.URLParams
103648	ctx_               context.Context
103649	header_            http.Header
103650}
103651
103652// AddRule: Inserts a rule into a security policy.
103653func (r *OrganizationSecurityPoliciesService) AddRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesAddRuleCall {
103654	c := &OrganizationSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103655	c.securityPolicy = securityPolicy
103656	c.securitypolicyrule = securitypolicyrule
103657	return c
103658}
103659
103660// RequestId sets the optional parameter "requestId": An optional
103661// request ID to identify requests. Specify a unique request ID so that
103662// if you must retry your request, the server will know to ignore the
103663// request if it has already been completed.
103664//
103665// For example, consider a situation where you make an initial request
103666// and the request times out. If you make the request again with the
103667// same request ID, the server can check if original operation with the
103668// same request ID was received, and if so, will ignore the second
103669// request. This prevents clients from accidentally creating duplicate
103670// commitments.
103671//
103672// The request ID must be a valid UUID with the exception that zero UUID
103673// is not supported (00000000-0000-0000-0000-000000000000).
103674func (c *OrganizationSecurityPoliciesAddRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddRuleCall {
103675	c.urlParams_.Set("requestId", requestId)
103676	return c
103677}
103678
103679// Fields allows partial responses to be retrieved. See
103680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103681// for more information.
103682func (c *OrganizationSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddRuleCall {
103683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103684	return c
103685}
103686
103687// Context sets the context to be used in this call's Do method. Any
103688// pending HTTP request will be aborted if the provided context is
103689// canceled.
103690func (c *OrganizationSecurityPoliciesAddRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddRuleCall {
103691	c.ctx_ = ctx
103692	return c
103693}
103694
103695// Header returns an http.Header that can be modified by the caller to
103696// add HTTP headers to the request.
103697func (c *OrganizationSecurityPoliciesAddRuleCall) Header() http.Header {
103698	if c.header_ == nil {
103699		c.header_ = make(http.Header)
103700	}
103701	return c.header_
103702}
103703
103704func (c *OrganizationSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
103705	reqHeaders := make(http.Header)
103706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103707	for k, v := range c.header_ {
103708		reqHeaders[k] = v
103709	}
103710	reqHeaders.Set("User-Agent", c.s.userAgent())
103711	var body io.Reader = nil
103712	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
103713	if err != nil {
103714		return nil, err
103715	}
103716	reqHeaders.Set("Content-Type", "application/json")
103717	c.urlParams_.Set("alt", alt)
103718	c.urlParams_.Set("prettyPrint", "false")
103719	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addRule")
103720	urls += "?" + c.urlParams_.Encode()
103721	req, err := http.NewRequest("POST", urls, body)
103722	if err != nil {
103723		return nil, err
103724	}
103725	req.Header = reqHeaders
103726	googleapi.Expand(req.URL, map[string]string{
103727		"securityPolicy": c.securityPolicy,
103728	})
103729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103730}
103731
103732// Do executes the "compute.organizationSecurityPolicies.addRule" call.
103733// Exactly one of *Operation or error will be non-nil. Any non-2xx
103734// status code is an error. Response headers are in either
103735// *Operation.ServerResponse.Header or (if a response was returned at
103736// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103737// to check whether the returned error was because
103738// http.StatusNotModified was returned.
103739func (c *OrganizationSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103740	gensupport.SetOptions(c.urlParams_, opts...)
103741	res, err := c.doRequest("json")
103742	if res != nil && res.StatusCode == http.StatusNotModified {
103743		if res.Body != nil {
103744			res.Body.Close()
103745		}
103746		return nil, &googleapi.Error{
103747			Code:   res.StatusCode,
103748			Header: res.Header,
103749		}
103750	}
103751	if err != nil {
103752		return nil, err
103753	}
103754	defer googleapi.CloseBody(res)
103755	if err := googleapi.CheckResponse(res); err != nil {
103756		return nil, err
103757	}
103758	ret := &Operation{
103759		ServerResponse: googleapi.ServerResponse{
103760			Header:         res.Header,
103761			HTTPStatusCode: res.StatusCode,
103762		},
103763	}
103764	target := &ret
103765	if err := gensupport.DecodeResponse(target, res); err != nil {
103766		return nil, err
103767	}
103768	return ret, nil
103769	// {
103770	//   "description": "Inserts a rule into a security policy.",
103771	//   "httpMethod": "POST",
103772	//   "id": "compute.organizationSecurityPolicies.addRule",
103773	//   "parameterOrder": [
103774	//     "securityPolicy"
103775	//   ],
103776	//   "parameters": {
103777	//     "requestId": {
103778	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103779	//       "location": "query",
103780	//       "type": "string"
103781	//     },
103782	//     "securityPolicy": {
103783	//       "description": "Name of the security policy to update.",
103784	//       "location": "path",
103785	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
103786	//       "required": true,
103787	//       "type": "string"
103788	//     }
103789	//   },
103790	//   "path": "locations/global/securityPolicies/{securityPolicy}/addRule",
103791	//   "request": {
103792	//     "$ref": "SecurityPolicyRule"
103793	//   },
103794	//   "response": {
103795	//     "$ref": "Operation"
103796	//   },
103797	//   "scopes": [
103798	//     "https://www.googleapis.com/auth/cloud-platform",
103799	//     "https://www.googleapis.com/auth/compute"
103800	//   ]
103801	// }
103802
103803}
103804
103805// method id "compute.organizationSecurityPolicies.copyRules":
103806
103807type OrganizationSecurityPoliciesCopyRulesCall struct {
103808	s              *Service
103809	securityPolicy string
103810	urlParams_     gensupport.URLParams
103811	ctx_           context.Context
103812	header_        http.Header
103813}
103814
103815// CopyRules: Copies rules to the specified security policy.
103816func (r *OrganizationSecurityPoliciesService) CopyRules(securityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
103817	c := &OrganizationSecurityPoliciesCopyRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103818	c.securityPolicy = securityPolicy
103819	return c
103820}
103821
103822// RequestId sets the optional parameter "requestId": An optional
103823// request ID to identify requests. Specify a unique request ID so that
103824// if you must retry your request, the server will know to ignore the
103825// request if it has already been completed.
103826//
103827// For example, consider a situation where you make an initial request
103828// and the request times out. If you make the request again with the
103829// same request ID, the server can check if original operation with the
103830// same request ID was received, and if so, will ignore the second
103831// request. This prevents clients from accidentally creating duplicate
103832// commitments.
103833//
103834// The request ID must be a valid UUID with the exception that zero UUID
103835// is not supported (00000000-0000-0000-0000-000000000000).
103836func (c *OrganizationSecurityPoliciesCopyRulesCall) RequestId(requestId string) *OrganizationSecurityPoliciesCopyRulesCall {
103837	c.urlParams_.Set("requestId", requestId)
103838	return c
103839}
103840
103841// SourceSecurityPolicy sets the optional parameter
103842// "sourceSecurityPolicy": The security policy from which to copy rules.
103843func (c *OrganizationSecurityPoliciesCopyRulesCall) SourceSecurityPolicy(sourceSecurityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
103844	c.urlParams_.Set("sourceSecurityPolicy", sourceSecurityPolicy)
103845	return c
103846}
103847
103848// Fields allows partial responses to be retrieved. See
103849// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103850// for more information.
103851func (c *OrganizationSecurityPoliciesCopyRulesCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesCopyRulesCall {
103852	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103853	return c
103854}
103855
103856// Context sets the context to be used in this call's Do method. Any
103857// pending HTTP request will be aborted if the provided context is
103858// canceled.
103859func (c *OrganizationSecurityPoliciesCopyRulesCall) Context(ctx context.Context) *OrganizationSecurityPoliciesCopyRulesCall {
103860	c.ctx_ = ctx
103861	return c
103862}
103863
103864// Header returns an http.Header that can be modified by the caller to
103865// add HTTP headers to the request.
103866func (c *OrganizationSecurityPoliciesCopyRulesCall) Header() http.Header {
103867	if c.header_ == nil {
103868		c.header_ = make(http.Header)
103869	}
103870	return c.header_
103871}
103872
103873func (c *OrganizationSecurityPoliciesCopyRulesCall) doRequest(alt string) (*http.Response, error) {
103874	reqHeaders := make(http.Header)
103875	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
103876	for k, v := range c.header_ {
103877		reqHeaders[k] = v
103878	}
103879	reqHeaders.Set("User-Agent", c.s.userAgent())
103880	var body io.Reader = nil
103881	c.urlParams_.Set("alt", alt)
103882	c.urlParams_.Set("prettyPrint", "false")
103883	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/copyRules")
103884	urls += "?" + c.urlParams_.Encode()
103885	req, err := http.NewRequest("POST", urls, body)
103886	if err != nil {
103887		return nil, err
103888	}
103889	req.Header = reqHeaders
103890	googleapi.Expand(req.URL, map[string]string{
103891		"securityPolicy": c.securityPolicy,
103892	})
103893	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103894}
103895
103896// Do executes the "compute.organizationSecurityPolicies.copyRules" call.
103897// Exactly one of *Operation or error will be non-nil. Any non-2xx
103898// status code is an error. Response headers are in either
103899// *Operation.ServerResponse.Header or (if a response was returned at
103900// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103901// to check whether the returned error was because
103902// http.StatusNotModified was returned.
103903func (c *OrganizationSecurityPoliciesCopyRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103904	gensupport.SetOptions(c.urlParams_, opts...)
103905	res, err := c.doRequest("json")
103906	if res != nil && res.StatusCode == http.StatusNotModified {
103907		if res.Body != nil {
103908			res.Body.Close()
103909		}
103910		return nil, &googleapi.Error{
103911			Code:   res.StatusCode,
103912			Header: res.Header,
103913		}
103914	}
103915	if err != nil {
103916		return nil, err
103917	}
103918	defer googleapi.CloseBody(res)
103919	if err := googleapi.CheckResponse(res); err != nil {
103920		return nil, err
103921	}
103922	ret := &Operation{
103923		ServerResponse: googleapi.ServerResponse{
103924			Header:         res.Header,
103925			HTTPStatusCode: res.StatusCode,
103926		},
103927	}
103928	target := &ret
103929	if err := gensupport.DecodeResponse(target, res); err != nil {
103930		return nil, err
103931	}
103932	return ret, nil
103933	// {
103934	//   "description": "Copies rules to the specified security policy.",
103935	//   "httpMethod": "POST",
103936	//   "id": "compute.organizationSecurityPolicies.copyRules",
103937	//   "parameterOrder": [
103938	//     "securityPolicy"
103939	//   ],
103940	//   "parameters": {
103941	//     "requestId": {
103942	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103943	//       "location": "query",
103944	//       "type": "string"
103945	//     },
103946	//     "securityPolicy": {
103947	//       "description": "Name of the security policy to update.",
103948	//       "location": "path",
103949	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
103950	//       "required": true,
103951	//       "type": "string"
103952	//     },
103953	//     "sourceSecurityPolicy": {
103954	//       "description": "The security policy from which to copy rules.",
103955	//       "location": "query",
103956	//       "type": "string"
103957	//     }
103958	//   },
103959	//   "path": "locations/global/securityPolicies/{securityPolicy}/copyRules",
103960	//   "response": {
103961	//     "$ref": "Operation"
103962	//   },
103963	//   "scopes": [
103964	//     "https://www.googleapis.com/auth/cloud-platform",
103965	//     "https://www.googleapis.com/auth/compute"
103966	//   ]
103967	// }
103968
103969}
103970
103971// method id "compute.organizationSecurityPolicies.delete":
103972
103973type OrganizationSecurityPoliciesDeleteCall struct {
103974	s              *Service
103975	securityPolicy string
103976	urlParams_     gensupport.URLParams
103977	ctx_           context.Context
103978	header_        http.Header
103979}
103980
103981// Delete: Deletes the specified policy.
103982func (r *OrganizationSecurityPoliciesService) Delete(securityPolicy string) *OrganizationSecurityPoliciesDeleteCall {
103983	c := &OrganizationSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103984	c.securityPolicy = securityPolicy
103985	return c
103986}
103987
103988// RequestId sets the optional parameter "requestId": An optional
103989// request ID to identify requests. Specify a unique request ID so that
103990// if you must retry your request, the server will know to ignore the
103991// request if it has already been completed.
103992//
103993// For example, consider a situation where you make an initial request
103994// and the request times out. If you make the request again with the
103995// same request ID, the server can check if original operation with the
103996// same request ID was received, and if so, will ignore the second
103997// request. This prevents clients from accidentally creating duplicate
103998// commitments.
103999//
104000// The request ID must be a valid UUID with the exception that zero UUID
104001// is not supported (00000000-0000-0000-0000-000000000000).
104002func (c *OrganizationSecurityPoliciesDeleteCall) RequestId(requestId string) *OrganizationSecurityPoliciesDeleteCall {
104003	c.urlParams_.Set("requestId", requestId)
104004	return c
104005}
104006
104007// Fields allows partial responses to be retrieved. See
104008// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104009// for more information.
104010func (c *OrganizationSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesDeleteCall {
104011	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104012	return c
104013}
104014
104015// Context sets the context to be used in this call's Do method. Any
104016// pending HTTP request will be aborted if the provided context is
104017// canceled.
104018func (c *OrganizationSecurityPoliciesDeleteCall) Context(ctx context.Context) *OrganizationSecurityPoliciesDeleteCall {
104019	c.ctx_ = ctx
104020	return c
104021}
104022
104023// Header returns an http.Header that can be modified by the caller to
104024// add HTTP headers to the request.
104025func (c *OrganizationSecurityPoliciesDeleteCall) Header() http.Header {
104026	if c.header_ == nil {
104027		c.header_ = make(http.Header)
104028	}
104029	return c.header_
104030}
104031
104032func (c *OrganizationSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
104033	reqHeaders := make(http.Header)
104034	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104035	for k, v := range c.header_ {
104036		reqHeaders[k] = v
104037	}
104038	reqHeaders.Set("User-Agent", c.s.userAgent())
104039	var body io.Reader = nil
104040	c.urlParams_.Set("alt", alt)
104041	c.urlParams_.Set("prettyPrint", "false")
104042	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
104043	urls += "?" + c.urlParams_.Encode()
104044	req, err := http.NewRequest("DELETE", urls, body)
104045	if err != nil {
104046		return nil, err
104047	}
104048	req.Header = reqHeaders
104049	googleapi.Expand(req.URL, map[string]string{
104050		"securityPolicy": c.securityPolicy,
104051	})
104052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104053}
104054
104055// Do executes the "compute.organizationSecurityPolicies.delete" call.
104056// Exactly one of *Operation or error will be non-nil. Any non-2xx
104057// status code is an error. Response headers are in either
104058// *Operation.ServerResponse.Header or (if a response was returned at
104059// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104060// to check whether the returned error was because
104061// http.StatusNotModified was returned.
104062func (c *OrganizationSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104063	gensupport.SetOptions(c.urlParams_, opts...)
104064	res, err := c.doRequest("json")
104065	if res != nil && res.StatusCode == http.StatusNotModified {
104066		if res.Body != nil {
104067			res.Body.Close()
104068		}
104069		return nil, &googleapi.Error{
104070			Code:   res.StatusCode,
104071			Header: res.Header,
104072		}
104073	}
104074	if err != nil {
104075		return nil, err
104076	}
104077	defer googleapi.CloseBody(res)
104078	if err := googleapi.CheckResponse(res); err != nil {
104079		return nil, err
104080	}
104081	ret := &Operation{
104082		ServerResponse: googleapi.ServerResponse{
104083			Header:         res.Header,
104084			HTTPStatusCode: res.StatusCode,
104085		},
104086	}
104087	target := &ret
104088	if err := gensupport.DecodeResponse(target, res); err != nil {
104089		return nil, err
104090	}
104091	return ret, nil
104092	// {
104093	//   "description": "Deletes the specified policy.",
104094	//   "httpMethod": "DELETE",
104095	//   "id": "compute.organizationSecurityPolicies.delete",
104096	//   "parameterOrder": [
104097	//     "securityPolicy"
104098	//   ],
104099	//   "parameters": {
104100	//     "requestId": {
104101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104102	//       "location": "query",
104103	//       "type": "string"
104104	//     },
104105	//     "securityPolicy": {
104106	//       "description": "Name of the security policy to delete.",
104107	//       "location": "path",
104108	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
104109	//       "required": true,
104110	//       "type": "string"
104111	//     }
104112	//   },
104113	//   "path": "locations/global/securityPolicies/{securityPolicy}",
104114	//   "response": {
104115	//     "$ref": "Operation"
104116	//   },
104117	//   "scopes": [
104118	//     "https://www.googleapis.com/auth/cloud-platform",
104119	//     "https://www.googleapis.com/auth/compute"
104120	//   ]
104121	// }
104122
104123}
104124
104125// method id "compute.organizationSecurityPolicies.get":
104126
104127type OrganizationSecurityPoliciesGetCall struct {
104128	s              *Service
104129	securityPolicy string
104130	urlParams_     gensupport.URLParams
104131	ifNoneMatch_   string
104132	ctx_           context.Context
104133	header_        http.Header
104134}
104135
104136// Get: List all of the ordered rules present in a single specified
104137// policy.
104138func (r *OrganizationSecurityPoliciesService) Get(securityPolicy string) *OrganizationSecurityPoliciesGetCall {
104139	c := &OrganizationSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104140	c.securityPolicy = securityPolicy
104141	return c
104142}
104143
104144// Fields allows partial responses to be retrieved. See
104145// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104146// for more information.
104147func (c *OrganizationSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetCall {
104148	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104149	return c
104150}
104151
104152// IfNoneMatch sets the optional parameter which makes the operation
104153// fail if the object's ETag matches the given value. This is useful for
104154// getting updates only after the object has changed since the last
104155// request. Use googleapi.IsNotModified to check whether the response
104156// error from Do is the result of In-None-Match.
104157func (c *OrganizationSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetCall {
104158	c.ifNoneMatch_ = entityTag
104159	return c
104160}
104161
104162// Context sets the context to be used in this call's Do method. Any
104163// pending HTTP request will be aborted if the provided context is
104164// canceled.
104165func (c *OrganizationSecurityPoliciesGetCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetCall {
104166	c.ctx_ = ctx
104167	return c
104168}
104169
104170// Header returns an http.Header that can be modified by the caller to
104171// add HTTP headers to the request.
104172func (c *OrganizationSecurityPoliciesGetCall) Header() http.Header {
104173	if c.header_ == nil {
104174		c.header_ = make(http.Header)
104175	}
104176	return c.header_
104177}
104178
104179func (c *OrganizationSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
104180	reqHeaders := make(http.Header)
104181	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104182	for k, v := range c.header_ {
104183		reqHeaders[k] = v
104184	}
104185	reqHeaders.Set("User-Agent", c.s.userAgent())
104186	if c.ifNoneMatch_ != "" {
104187		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104188	}
104189	var body io.Reader = nil
104190	c.urlParams_.Set("alt", alt)
104191	c.urlParams_.Set("prettyPrint", "false")
104192	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
104193	urls += "?" + c.urlParams_.Encode()
104194	req, err := http.NewRequest("GET", urls, body)
104195	if err != nil {
104196		return nil, err
104197	}
104198	req.Header = reqHeaders
104199	googleapi.Expand(req.URL, map[string]string{
104200		"securityPolicy": c.securityPolicy,
104201	})
104202	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104203}
104204
104205// Do executes the "compute.organizationSecurityPolicies.get" call.
104206// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
104207// status code is an error. Response headers are in either
104208// *SecurityPolicy.ServerResponse.Header or (if a response was returned
104209// at all) in error.(*googleapi.Error).Header. Use
104210// googleapi.IsNotModified to check whether the returned error was
104211// because http.StatusNotModified was returned.
104212func (c *OrganizationSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
104213	gensupport.SetOptions(c.urlParams_, opts...)
104214	res, err := c.doRequest("json")
104215	if res != nil && res.StatusCode == http.StatusNotModified {
104216		if res.Body != nil {
104217			res.Body.Close()
104218		}
104219		return nil, &googleapi.Error{
104220			Code:   res.StatusCode,
104221			Header: res.Header,
104222		}
104223	}
104224	if err != nil {
104225		return nil, err
104226	}
104227	defer googleapi.CloseBody(res)
104228	if err := googleapi.CheckResponse(res); err != nil {
104229		return nil, err
104230	}
104231	ret := &SecurityPolicy{
104232		ServerResponse: googleapi.ServerResponse{
104233			Header:         res.Header,
104234			HTTPStatusCode: res.StatusCode,
104235		},
104236	}
104237	target := &ret
104238	if err := gensupport.DecodeResponse(target, res); err != nil {
104239		return nil, err
104240	}
104241	return ret, nil
104242	// {
104243	//   "description": "List all of the ordered rules present in a single specified policy.",
104244	//   "httpMethod": "GET",
104245	//   "id": "compute.organizationSecurityPolicies.get",
104246	//   "parameterOrder": [
104247	//     "securityPolicy"
104248	//   ],
104249	//   "parameters": {
104250	//     "securityPolicy": {
104251	//       "description": "Name of the security policy to get.",
104252	//       "location": "path",
104253	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
104254	//       "required": true,
104255	//       "type": "string"
104256	//     }
104257	//   },
104258	//   "path": "locations/global/securityPolicies/{securityPolicy}",
104259	//   "response": {
104260	//     "$ref": "SecurityPolicy"
104261	//   },
104262	//   "scopes": [
104263	//     "https://www.googleapis.com/auth/cloud-platform",
104264	//     "https://www.googleapis.com/auth/compute",
104265	//     "https://www.googleapis.com/auth/compute.readonly"
104266	//   ]
104267	// }
104268
104269}
104270
104271// method id "compute.organizationSecurityPolicies.getAssociation":
104272
104273type OrganizationSecurityPoliciesGetAssociationCall struct {
104274	s              *Service
104275	securityPolicy string
104276	urlParams_     gensupport.URLParams
104277	ifNoneMatch_   string
104278	ctx_           context.Context
104279	header_        http.Header
104280}
104281
104282// GetAssociation: Gets an association with the specified name.
104283func (r *OrganizationSecurityPoliciesService) GetAssociation(securityPolicy string) *OrganizationSecurityPoliciesGetAssociationCall {
104284	c := &OrganizationSecurityPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104285	c.securityPolicy = securityPolicy
104286	return c
104287}
104288
104289// Name sets the optional parameter "name": The name of the association
104290// to get from the security policy.
104291func (c *OrganizationSecurityPoliciesGetAssociationCall) Name(name string) *OrganizationSecurityPoliciesGetAssociationCall {
104292	c.urlParams_.Set("name", name)
104293	return c
104294}
104295
104296// Fields allows partial responses to be retrieved. See
104297// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104298// for more information.
104299func (c *OrganizationSecurityPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetAssociationCall {
104300	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104301	return c
104302}
104303
104304// IfNoneMatch sets the optional parameter which makes the operation
104305// fail if the object's ETag matches the given value. This is useful for
104306// getting updates only after the object has changed since the last
104307// request. Use googleapi.IsNotModified to check whether the response
104308// error from Do is the result of In-None-Match.
104309func (c *OrganizationSecurityPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetAssociationCall {
104310	c.ifNoneMatch_ = entityTag
104311	return c
104312}
104313
104314// Context sets the context to be used in this call's Do method. Any
104315// pending HTTP request will be aborted if the provided context is
104316// canceled.
104317func (c *OrganizationSecurityPoliciesGetAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetAssociationCall {
104318	c.ctx_ = ctx
104319	return c
104320}
104321
104322// Header returns an http.Header that can be modified by the caller to
104323// add HTTP headers to the request.
104324func (c *OrganizationSecurityPoliciesGetAssociationCall) Header() http.Header {
104325	if c.header_ == nil {
104326		c.header_ = make(http.Header)
104327	}
104328	return c.header_
104329}
104330
104331func (c *OrganizationSecurityPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
104332	reqHeaders := make(http.Header)
104333	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104334	for k, v := range c.header_ {
104335		reqHeaders[k] = v
104336	}
104337	reqHeaders.Set("User-Agent", c.s.userAgent())
104338	if c.ifNoneMatch_ != "" {
104339		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104340	}
104341	var body io.Reader = nil
104342	c.urlParams_.Set("alt", alt)
104343	c.urlParams_.Set("prettyPrint", "false")
104344	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getAssociation")
104345	urls += "?" + c.urlParams_.Encode()
104346	req, err := http.NewRequest("GET", urls, body)
104347	if err != nil {
104348		return nil, err
104349	}
104350	req.Header = reqHeaders
104351	googleapi.Expand(req.URL, map[string]string{
104352		"securityPolicy": c.securityPolicy,
104353	})
104354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104355}
104356
104357// Do executes the "compute.organizationSecurityPolicies.getAssociation" call.
104358// Exactly one of *SecurityPolicyAssociation or error will be non-nil.
104359// Any non-2xx status code is an error. Response headers are in either
104360// *SecurityPolicyAssociation.ServerResponse.Header or (if a response
104361// was returned at all) in error.(*googleapi.Error).Header. Use
104362// googleapi.IsNotModified to check whether the returned error was
104363// because http.StatusNotModified was returned.
104364func (c *OrganizationSecurityPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyAssociation, error) {
104365	gensupport.SetOptions(c.urlParams_, opts...)
104366	res, err := c.doRequest("json")
104367	if res != nil && res.StatusCode == http.StatusNotModified {
104368		if res.Body != nil {
104369			res.Body.Close()
104370		}
104371		return nil, &googleapi.Error{
104372			Code:   res.StatusCode,
104373			Header: res.Header,
104374		}
104375	}
104376	if err != nil {
104377		return nil, err
104378	}
104379	defer googleapi.CloseBody(res)
104380	if err := googleapi.CheckResponse(res); err != nil {
104381		return nil, err
104382	}
104383	ret := &SecurityPolicyAssociation{
104384		ServerResponse: googleapi.ServerResponse{
104385			Header:         res.Header,
104386			HTTPStatusCode: res.StatusCode,
104387		},
104388	}
104389	target := &ret
104390	if err := gensupport.DecodeResponse(target, res); err != nil {
104391		return nil, err
104392	}
104393	return ret, nil
104394	// {
104395	//   "description": "Gets an association with the specified name.",
104396	//   "httpMethod": "GET",
104397	//   "id": "compute.organizationSecurityPolicies.getAssociation",
104398	//   "parameterOrder": [
104399	//     "securityPolicy"
104400	//   ],
104401	//   "parameters": {
104402	//     "name": {
104403	//       "description": "The name of the association to get from the security policy.",
104404	//       "location": "query",
104405	//       "type": "string"
104406	//     },
104407	//     "securityPolicy": {
104408	//       "description": "Name of the security policy to which the queried rule belongs.",
104409	//       "location": "path",
104410	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
104411	//       "required": true,
104412	//       "type": "string"
104413	//     }
104414	//   },
104415	//   "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
104416	//   "response": {
104417	//     "$ref": "SecurityPolicyAssociation"
104418	//   },
104419	//   "scopes": [
104420	//     "https://www.googleapis.com/auth/cloud-platform",
104421	//     "https://www.googleapis.com/auth/compute",
104422	//     "https://www.googleapis.com/auth/compute.readonly"
104423	//   ]
104424	// }
104425
104426}
104427
104428// method id "compute.organizationSecurityPolicies.getRule":
104429
104430type OrganizationSecurityPoliciesGetRuleCall struct {
104431	s              *Service
104432	securityPolicy string
104433	urlParams_     gensupport.URLParams
104434	ifNoneMatch_   string
104435	ctx_           context.Context
104436	header_        http.Header
104437}
104438
104439// GetRule: Gets a rule at the specified priority.
104440func (r *OrganizationSecurityPoliciesService) GetRule(securityPolicy string) *OrganizationSecurityPoliciesGetRuleCall {
104441	c := &OrganizationSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104442	c.securityPolicy = securityPolicy
104443	return c
104444}
104445
104446// Priority sets the optional parameter "priority": The priority of the
104447// rule to get from the security policy.
104448func (c *OrganizationSecurityPoliciesGetRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesGetRuleCall {
104449	c.urlParams_.Set("priority", fmt.Sprint(priority))
104450	return c
104451}
104452
104453// Fields allows partial responses to be retrieved. See
104454// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104455// for more information.
104456func (c *OrganizationSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetRuleCall {
104457	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104458	return c
104459}
104460
104461// IfNoneMatch sets the optional parameter which makes the operation
104462// fail if the object's ETag matches the given value. This is useful for
104463// getting updates only after the object has changed since the last
104464// request. Use googleapi.IsNotModified to check whether the response
104465// error from Do is the result of In-None-Match.
104466func (c *OrganizationSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetRuleCall {
104467	c.ifNoneMatch_ = entityTag
104468	return c
104469}
104470
104471// Context sets the context to be used in this call's Do method. Any
104472// pending HTTP request will be aborted if the provided context is
104473// canceled.
104474func (c *OrganizationSecurityPoliciesGetRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetRuleCall {
104475	c.ctx_ = ctx
104476	return c
104477}
104478
104479// Header returns an http.Header that can be modified by the caller to
104480// add HTTP headers to the request.
104481func (c *OrganizationSecurityPoliciesGetRuleCall) Header() http.Header {
104482	if c.header_ == nil {
104483		c.header_ = make(http.Header)
104484	}
104485	return c.header_
104486}
104487
104488func (c *OrganizationSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
104489	reqHeaders := make(http.Header)
104490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104491	for k, v := range c.header_ {
104492		reqHeaders[k] = v
104493	}
104494	reqHeaders.Set("User-Agent", c.s.userAgent())
104495	if c.ifNoneMatch_ != "" {
104496		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104497	}
104498	var body io.Reader = nil
104499	c.urlParams_.Set("alt", alt)
104500	c.urlParams_.Set("prettyPrint", "false")
104501	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getRule")
104502	urls += "?" + c.urlParams_.Encode()
104503	req, err := http.NewRequest("GET", urls, body)
104504	if err != nil {
104505		return nil, err
104506	}
104507	req.Header = reqHeaders
104508	googleapi.Expand(req.URL, map[string]string{
104509		"securityPolicy": c.securityPolicy,
104510	})
104511	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104512}
104513
104514// Do executes the "compute.organizationSecurityPolicies.getRule" call.
104515// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
104516// non-2xx status code is an error. Response headers are in either
104517// *SecurityPolicyRule.ServerResponse.Header or (if a response was
104518// returned at all) in error.(*googleapi.Error).Header. Use
104519// googleapi.IsNotModified to check whether the returned error was
104520// because http.StatusNotModified was returned.
104521func (c *OrganizationSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
104522	gensupport.SetOptions(c.urlParams_, opts...)
104523	res, err := c.doRequest("json")
104524	if res != nil && res.StatusCode == http.StatusNotModified {
104525		if res.Body != nil {
104526			res.Body.Close()
104527		}
104528		return nil, &googleapi.Error{
104529			Code:   res.StatusCode,
104530			Header: res.Header,
104531		}
104532	}
104533	if err != nil {
104534		return nil, err
104535	}
104536	defer googleapi.CloseBody(res)
104537	if err := googleapi.CheckResponse(res); err != nil {
104538		return nil, err
104539	}
104540	ret := &SecurityPolicyRule{
104541		ServerResponse: googleapi.ServerResponse{
104542			Header:         res.Header,
104543			HTTPStatusCode: res.StatusCode,
104544		},
104545	}
104546	target := &ret
104547	if err := gensupport.DecodeResponse(target, res); err != nil {
104548		return nil, err
104549	}
104550	return ret, nil
104551	// {
104552	//   "description": "Gets a rule at the specified priority.",
104553	//   "httpMethod": "GET",
104554	//   "id": "compute.organizationSecurityPolicies.getRule",
104555	//   "parameterOrder": [
104556	//     "securityPolicy"
104557	//   ],
104558	//   "parameters": {
104559	//     "priority": {
104560	//       "description": "The priority of the rule to get from the security policy.",
104561	//       "format": "int32",
104562	//       "location": "query",
104563	//       "type": "integer"
104564	//     },
104565	//     "securityPolicy": {
104566	//       "description": "Name of the security policy to which the queried rule belongs.",
104567	//       "location": "path",
104568	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
104569	//       "required": true,
104570	//       "type": "string"
104571	//     }
104572	//   },
104573	//   "path": "locations/global/securityPolicies/{securityPolicy}/getRule",
104574	//   "response": {
104575	//     "$ref": "SecurityPolicyRule"
104576	//   },
104577	//   "scopes": [
104578	//     "https://www.googleapis.com/auth/cloud-platform",
104579	//     "https://www.googleapis.com/auth/compute",
104580	//     "https://www.googleapis.com/auth/compute.readonly"
104581	//   ]
104582	// }
104583
104584}
104585
104586// method id "compute.organizationSecurityPolicies.insert":
104587
104588type OrganizationSecurityPoliciesInsertCall struct {
104589	s              *Service
104590	securitypolicy *SecurityPolicy
104591	urlParams_     gensupport.URLParams
104592	ctx_           context.Context
104593	header_        http.Header
104594}
104595
104596// Insert: Creates a new policy in the specified project using the data
104597// included in the request.
104598func (r *OrganizationSecurityPoliciesService) Insert(securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesInsertCall {
104599	c := &OrganizationSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104600	c.securitypolicy = securitypolicy
104601	return c
104602}
104603
104604// ParentId sets the optional parameter "parentId": Parent ID for this
104605// request.
104606func (c *OrganizationSecurityPoliciesInsertCall) ParentId(parentId string) *OrganizationSecurityPoliciesInsertCall {
104607	c.urlParams_.Set("parentId", parentId)
104608	return c
104609}
104610
104611// RequestId sets the optional parameter "requestId": An optional
104612// request ID to identify requests. Specify a unique request ID so that
104613// if you must retry your request, the server will know to ignore the
104614// request if it has already been completed.
104615//
104616// For example, consider a situation where you make an initial request
104617// and the request times out. If you make the request again with the
104618// same request ID, the server can check if original operation with the
104619// same request ID was received, and if so, will ignore the second
104620// request. This prevents clients from accidentally creating duplicate
104621// commitments.
104622//
104623// The request ID must be a valid UUID with the exception that zero UUID
104624// is not supported (00000000-0000-0000-0000-000000000000).
104625func (c *OrganizationSecurityPoliciesInsertCall) RequestId(requestId string) *OrganizationSecurityPoliciesInsertCall {
104626	c.urlParams_.Set("requestId", requestId)
104627	return c
104628}
104629
104630// Fields allows partial responses to be retrieved. See
104631// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104632// for more information.
104633func (c *OrganizationSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesInsertCall {
104634	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104635	return c
104636}
104637
104638// Context sets the context to be used in this call's Do method. Any
104639// pending HTTP request will be aborted if the provided context is
104640// canceled.
104641func (c *OrganizationSecurityPoliciesInsertCall) Context(ctx context.Context) *OrganizationSecurityPoliciesInsertCall {
104642	c.ctx_ = ctx
104643	return c
104644}
104645
104646// Header returns an http.Header that can be modified by the caller to
104647// add HTTP headers to the request.
104648func (c *OrganizationSecurityPoliciesInsertCall) Header() http.Header {
104649	if c.header_ == nil {
104650		c.header_ = make(http.Header)
104651	}
104652	return c.header_
104653}
104654
104655func (c *OrganizationSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
104656	reqHeaders := make(http.Header)
104657	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104658	for k, v := range c.header_ {
104659		reqHeaders[k] = v
104660	}
104661	reqHeaders.Set("User-Agent", c.s.userAgent())
104662	var body io.Reader = nil
104663	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
104664	if err != nil {
104665		return nil, err
104666	}
104667	reqHeaders.Set("Content-Type", "application/json")
104668	c.urlParams_.Set("alt", alt)
104669	c.urlParams_.Set("prettyPrint", "false")
104670	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
104671	urls += "?" + c.urlParams_.Encode()
104672	req, err := http.NewRequest("POST", urls, body)
104673	if err != nil {
104674		return nil, err
104675	}
104676	req.Header = reqHeaders
104677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104678}
104679
104680// Do executes the "compute.organizationSecurityPolicies.insert" call.
104681// Exactly one of *Operation or error will be non-nil. Any non-2xx
104682// status code is an error. Response headers are in either
104683// *Operation.ServerResponse.Header or (if a response was returned at
104684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104685// to check whether the returned error was because
104686// http.StatusNotModified was returned.
104687func (c *OrganizationSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104688	gensupport.SetOptions(c.urlParams_, opts...)
104689	res, err := c.doRequest("json")
104690	if res != nil && res.StatusCode == http.StatusNotModified {
104691		if res.Body != nil {
104692			res.Body.Close()
104693		}
104694		return nil, &googleapi.Error{
104695			Code:   res.StatusCode,
104696			Header: res.Header,
104697		}
104698	}
104699	if err != nil {
104700		return nil, err
104701	}
104702	defer googleapi.CloseBody(res)
104703	if err := googleapi.CheckResponse(res); err != nil {
104704		return nil, err
104705	}
104706	ret := &Operation{
104707		ServerResponse: googleapi.ServerResponse{
104708			Header:         res.Header,
104709			HTTPStatusCode: res.StatusCode,
104710		},
104711	}
104712	target := &ret
104713	if err := gensupport.DecodeResponse(target, res); err != nil {
104714		return nil, err
104715	}
104716	return ret, nil
104717	// {
104718	//   "description": "Creates a new policy in the specified project using the data included in the request.",
104719	//   "httpMethod": "POST",
104720	//   "id": "compute.organizationSecurityPolicies.insert",
104721	//   "parameters": {
104722	//     "parentId": {
104723	//       "description": "Parent ID for this request.",
104724	//       "location": "query",
104725	//       "type": "string"
104726	//     },
104727	//     "requestId": {
104728	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104729	//       "location": "query",
104730	//       "type": "string"
104731	//     }
104732	//   },
104733	//   "path": "locations/global/securityPolicies",
104734	//   "request": {
104735	//     "$ref": "SecurityPolicy"
104736	//   },
104737	//   "response": {
104738	//     "$ref": "Operation"
104739	//   },
104740	//   "scopes": [
104741	//     "https://www.googleapis.com/auth/cloud-platform",
104742	//     "https://www.googleapis.com/auth/compute"
104743	//   ]
104744	// }
104745
104746}
104747
104748// method id "compute.organizationSecurityPolicies.list":
104749
104750type OrganizationSecurityPoliciesListCall struct {
104751	s            *Service
104752	urlParams_   gensupport.URLParams
104753	ifNoneMatch_ string
104754	ctx_         context.Context
104755	header_      http.Header
104756}
104757
104758// List: List all the policies that have been configured for the
104759// specified project.
104760func (r *OrganizationSecurityPoliciesService) List() *OrganizationSecurityPoliciesListCall {
104761	c := &OrganizationSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104762	return c
104763}
104764
104765// Filter sets the optional parameter "filter": A filter expression that
104766// filters resources listed in the response. The expression must specify
104767// the field name, a comparison operator, and the value that you want to
104768// use for filtering. The value must be a string, a number, or a
104769// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104770// `<`.
104771//
104772// For example, if you are filtering Compute Engine instances, you can
104773// exclude instances named `example-instance` by specifying `name !=
104774// example-instance`.
104775//
104776// You can also filter nested fields. For example, you could specify
104777// `scheduling.automaticRestart = false` to include instances only if
104778// they are not scheduled for automatic restarts. You can use filtering
104779// on nested fields to filter based on resource labels.
104780//
104781// To filter on multiple expressions, provide each separate expression
104782// within parentheses. For example: ``` (scheduling.automaticRestart =
104783// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
104784// is an `AND` expression. However, you can include `AND` and `OR`
104785// expressions explicitly. For example: ``` (cpuPlatform = "Intel
104786// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
104787// (scheduling.automaticRestart = true) ```
104788func (c *OrganizationSecurityPoliciesListCall) Filter(filter string) *OrganizationSecurityPoliciesListCall {
104789	c.urlParams_.Set("filter", filter)
104790	return c
104791}
104792
104793// MaxResults sets the optional parameter "maxResults": The maximum
104794// number of results per page that should be returned. If the number of
104795// available results is larger than `maxResults`, Compute Engine returns
104796// a `nextPageToken` that can be used to get the next page of results in
104797// subsequent list requests. Acceptable values are `0` to `500`,
104798// inclusive. (Default: `500`)
104799func (c *OrganizationSecurityPoliciesListCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListCall {
104800	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104801	return c
104802}
104803
104804// OrderBy sets the optional parameter "orderBy": Sorts list results by
104805// a certain order. By default, results are returned in alphanumerical
104806// order based on the resource name.
104807//
104808// You can also sort results in descending order based on the creation
104809// timestamp using `orderBy="creationTimestamp desc". This sorts
104810// results based on the `creationTimestamp` field in reverse
104811// chronological order (newest result first). Use this to sort resources
104812// like operations so that the newest operation is returned
104813// first.
104814//
104815// Currently, only sorting by `name` or `creationTimestamp desc` is
104816// supported.
104817func (c *OrganizationSecurityPoliciesListCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListCall {
104818	c.urlParams_.Set("orderBy", orderBy)
104819	return c
104820}
104821
104822// PageToken sets the optional parameter "pageToken": Specifies a page
104823// token to use. Set `pageToken` to the `nextPageToken` returned by a
104824// previous list request to get the next page of results.
104825func (c *OrganizationSecurityPoliciesListCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListCall {
104826	c.urlParams_.Set("pageToken", pageToken)
104827	return c
104828}
104829
104830// ParentId sets the optional parameter "parentId": Parent ID for this
104831// request.
104832func (c *OrganizationSecurityPoliciesListCall) ParentId(parentId string) *OrganizationSecurityPoliciesListCall {
104833	c.urlParams_.Set("parentId", parentId)
104834	return c
104835}
104836
104837// Fields allows partial responses to be retrieved. See
104838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104839// for more information.
104840func (c *OrganizationSecurityPoliciesListCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListCall {
104841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104842	return c
104843}
104844
104845// IfNoneMatch sets the optional parameter which makes the operation
104846// fail if the object's ETag matches the given value. This is useful for
104847// getting updates only after the object has changed since the last
104848// request. Use googleapi.IsNotModified to check whether the response
104849// error from Do is the result of In-None-Match.
104850func (c *OrganizationSecurityPoliciesListCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListCall {
104851	c.ifNoneMatch_ = entityTag
104852	return c
104853}
104854
104855// Context sets the context to be used in this call's Do method. Any
104856// pending HTTP request will be aborted if the provided context is
104857// canceled.
104858func (c *OrganizationSecurityPoliciesListCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListCall {
104859	c.ctx_ = ctx
104860	return c
104861}
104862
104863// Header returns an http.Header that can be modified by the caller to
104864// add HTTP headers to the request.
104865func (c *OrganizationSecurityPoliciesListCall) Header() http.Header {
104866	if c.header_ == nil {
104867		c.header_ = make(http.Header)
104868	}
104869	return c.header_
104870}
104871
104872func (c *OrganizationSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
104873	reqHeaders := make(http.Header)
104874	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
104875	for k, v := range c.header_ {
104876		reqHeaders[k] = v
104877	}
104878	reqHeaders.Set("User-Agent", c.s.userAgent())
104879	if c.ifNoneMatch_ != "" {
104880		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104881	}
104882	var body io.Reader = nil
104883	c.urlParams_.Set("alt", alt)
104884	c.urlParams_.Set("prettyPrint", "false")
104885	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
104886	urls += "?" + c.urlParams_.Encode()
104887	req, err := http.NewRequest("GET", urls, body)
104888	if err != nil {
104889		return nil, err
104890	}
104891	req.Header = reqHeaders
104892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104893}
104894
104895// Do executes the "compute.organizationSecurityPolicies.list" call.
104896// Exactly one of *SecurityPolicyList or error will be non-nil. Any
104897// non-2xx status code is an error. Response headers are in either
104898// *SecurityPolicyList.ServerResponse.Header or (if a response was
104899// returned at all) in error.(*googleapi.Error).Header. Use
104900// googleapi.IsNotModified to check whether the returned error was
104901// because http.StatusNotModified was returned.
104902func (c *OrganizationSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
104903	gensupport.SetOptions(c.urlParams_, opts...)
104904	res, err := c.doRequest("json")
104905	if res != nil && res.StatusCode == http.StatusNotModified {
104906		if res.Body != nil {
104907			res.Body.Close()
104908		}
104909		return nil, &googleapi.Error{
104910			Code:   res.StatusCode,
104911			Header: res.Header,
104912		}
104913	}
104914	if err != nil {
104915		return nil, err
104916	}
104917	defer googleapi.CloseBody(res)
104918	if err := googleapi.CheckResponse(res); err != nil {
104919		return nil, err
104920	}
104921	ret := &SecurityPolicyList{
104922		ServerResponse: googleapi.ServerResponse{
104923			Header:         res.Header,
104924			HTTPStatusCode: res.StatusCode,
104925		},
104926	}
104927	target := &ret
104928	if err := gensupport.DecodeResponse(target, res); err != nil {
104929		return nil, err
104930	}
104931	return ret, nil
104932	// {
104933	//   "description": "List all the policies that have been configured for the specified project.",
104934	//   "httpMethod": "GET",
104935	//   "id": "compute.organizationSecurityPolicies.list",
104936	//   "parameters": {
104937	//     "filter": {
104938	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
104939	//       "location": "query",
104940	//       "type": "string"
104941	//     },
104942	//     "maxResults": {
104943	//       "default": "500",
104944	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104945	//       "format": "uint32",
104946	//       "location": "query",
104947	//       "minimum": "0",
104948	//       "type": "integer"
104949	//     },
104950	//     "orderBy": {
104951	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
104952	//       "location": "query",
104953	//       "type": "string"
104954	//     },
104955	//     "pageToken": {
104956	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104957	//       "location": "query",
104958	//       "type": "string"
104959	//     },
104960	//     "parentId": {
104961	//       "description": "Parent ID for this request.",
104962	//       "location": "query",
104963	//       "type": "string"
104964	//     }
104965	//   },
104966	//   "path": "locations/global/securityPolicies",
104967	//   "response": {
104968	//     "$ref": "SecurityPolicyList"
104969	//   },
104970	//   "scopes": [
104971	//     "https://www.googleapis.com/auth/cloud-platform",
104972	//     "https://www.googleapis.com/auth/compute",
104973	//     "https://www.googleapis.com/auth/compute.readonly"
104974	//   ]
104975	// }
104976
104977}
104978
104979// Pages invokes f for each page of results.
104980// A non-nil error returned from f will halt the iteration.
104981// The provided context supersedes any context provided to the Context method.
104982func (c *OrganizationSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
104983	c.ctx_ = ctx
104984	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104985	for {
104986		x, err := c.Do()
104987		if err != nil {
104988			return err
104989		}
104990		if err := f(x); err != nil {
104991			return err
104992		}
104993		if x.NextPageToken == "" {
104994			return nil
104995		}
104996		c.PageToken(x.NextPageToken)
104997	}
104998}
104999
105000// method id "compute.organizationSecurityPolicies.listAssociations":
105001
105002type OrganizationSecurityPoliciesListAssociationsCall struct {
105003	s            *Service
105004	urlParams_   gensupport.URLParams
105005	ifNoneMatch_ string
105006	ctx_         context.Context
105007	header_      http.Header
105008}
105009
105010// ListAssociations: Lists associations of a specified target, i.e.,
105011// organization or folder.
105012func (r *OrganizationSecurityPoliciesService) ListAssociations() *OrganizationSecurityPoliciesListAssociationsCall {
105013	c := &OrganizationSecurityPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105014	return c
105015}
105016
105017// TargetResource sets the optional parameter "targetResource": The
105018// target resource to list associations. It is an organization, or a
105019// folder.
105020func (c *OrganizationSecurityPoliciesListAssociationsCall) TargetResource(targetResource string) *OrganizationSecurityPoliciesListAssociationsCall {
105021	c.urlParams_.Set("targetResource", targetResource)
105022	return c
105023}
105024
105025// Fields allows partial responses to be retrieved. See
105026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105027// for more information.
105028func (c *OrganizationSecurityPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListAssociationsCall {
105029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105030	return c
105031}
105032
105033// IfNoneMatch sets the optional parameter which makes the operation
105034// fail if the object's ETag matches the given value. This is useful for
105035// getting updates only after the object has changed since the last
105036// request. Use googleapi.IsNotModified to check whether the response
105037// error from Do is the result of In-None-Match.
105038func (c *OrganizationSecurityPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListAssociationsCall {
105039	c.ifNoneMatch_ = entityTag
105040	return c
105041}
105042
105043// Context sets the context to be used in this call's Do method. Any
105044// pending HTTP request will be aborted if the provided context is
105045// canceled.
105046func (c *OrganizationSecurityPoliciesListAssociationsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListAssociationsCall {
105047	c.ctx_ = ctx
105048	return c
105049}
105050
105051// Header returns an http.Header that can be modified by the caller to
105052// add HTTP headers to the request.
105053func (c *OrganizationSecurityPoliciesListAssociationsCall) Header() http.Header {
105054	if c.header_ == nil {
105055		c.header_ = make(http.Header)
105056	}
105057	return c.header_
105058}
105059
105060func (c *OrganizationSecurityPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
105061	reqHeaders := make(http.Header)
105062	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105063	for k, v := range c.header_ {
105064		reqHeaders[k] = v
105065	}
105066	reqHeaders.Set("User-Agent", c.s.userAgent())
105067	if c.ifNoneMatch_ != "" {
105068		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105069	}
105070	var body io.Reader = nil
105071	c.urlParams_.Set("alt", alt)
105072	c.urlParams_.Set("prettyPrint", "false")
105073	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listAssociations")
105074	urls += "?" + c.urlParams_.Encode()
105075	req, err := http.NewRequest("GET", urls, body)
105076	if err != nil {
105077		return nil, err
105078	}
105079	req.Header = reqHeaders
105080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105081}
105082
105083// Do executes the "compute.organizationSecurityPolicies.listAssociations" call.
105084// Exactly one of *OrganizationSecurityPoliciesListAssociationsResponse
105085// or error will be non-nil. Any non-2xx status code is an error.
105086// Response headers are in either
105087// *OrganizationSecurityPoliciesListAssociationsResponse.ServerResponse.H
105088// eader or (if a response was returned at all) in
105089// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
105090// whether the returned error was because http.StatusNotModified was
105091// returned.
105092func (c *OrganizationSecurityPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*OrganizationSecurityPoliciesListAssociationsResponse, error) {
105093	gensupport.SetOptions(c.urlParams_, opts...)
105094	res, err := c.doRequest("json")
105095	if res != nil && res.StatusCode == http.StatusNotModified {
105096		if res.Body != nil {
105097			res.Body.Close()
105098		}
105099		return nil, &googleapi.Error{
105100			Code:   res.StatusCode,
105101			Header: res.Header,
105102		}
105103	}
105104	if err != nil {
105105		return nil, err
105106	}
105107	defer googleapi.CloseBody(res)
105108	if err := googleapi.CheckResponse(res); err != nil {
105109		return nil, err
105110	}
105111	ret := &OrganizationSecurityPoliciesListAssociationsResponse{
105112		ServerResponse: googleapi.ServerResponse{
105113			Header:         res.Header,
105114			HTTPStatusCode: res.StatusCode,
105115		},
105116	}
105117	target := &ret
105118	if err := gensupport.DecodeResponse(target, res); err != nil {
105119		return nil, err
105120	}
105121	return ret, nil
105122	// {
105123	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
105124	//   "httpMethod": "GET",
105125	//   "id": "compute.organizationSecurityPolicies.listAssociations",
105126	//   "parameters": {
105127	//     "targetResource": {
105128	//       "description": "The target resource to list associations. It is an organization, or a folder.",
105129	//       "location": "query",
105130	//       "type": "string"
105131	//     }
105132	//   },
105133	//   "path": "locations/global/securityPolicies/listAssociations",
105134	//   "response": {
105135	//     "$ref": "OrganizationSecurityPoliciesListAssociationsResponse"
105136	//   },
105137	//   "scopes": [
105138	//     "https://www.googleapis.com/auth/cloud-platform",
105139	//     "https://www.googleapis.com/auth/compute"
105140	//   ]
105141	// }
105142
105143}
105144
105145// method id "compute.organizationSecurityPolicies.move":
105146
105147type OrganizationSecurityPoliciesMoveCall struct {
105148	s              *Service
105149	securityPolicy string
105150	urlParams_     gensupport.URLParams
105151	ctx_           context.Context
105152	header_        http.Header
105153}
105154
105155// Move: Moves the specified security policy.
105156func (r *OrganizationSecurityPoliciesService) Move(securityPolicy string) *OrganizationSecurityPoliciesMoveCall {
105157	c := &OrganizationSecurityPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105158	c.securityPolicy = securityPolicy
105159	return c
105160}
105161
105162// ParentId sets the optional parameter "parentId": The new parent of
105163// the security policy.
105164func (c *OrganizationSecurityPoliciesMoveCall) ParentId(parentId string) *OrganizationSecurityPoliciesMoveCall {
105165	c.urlParams_.Set("parentId", parentId)
105166	return c
105167}
105168
105169// RequestId sets the optional parameter "requestId": An optional
105170// request ID to identify requests. Specify a unique request ID so that
105171// if you must retry your request, the server will know to ignore the
105172// request if it has already been completed.
105173//
105174// For example, consider a situation where you make an initial request
105175// and the request times out. If you make the request again with the
105176// same request ID, the server can check if original operation with the
105177// same request ID was received, and if so, will ignore the second
105178// request. This prevents clients from accidentally creating duplicate
105179// commitments.
105180//
105181// The request ID must be a valid UUID with the exception that zero UUID
105182// is not supported (00000000-0000-0000-0000-000000000000).
105183func (c *OrganizationSecurityPoliciesMoveCall) RequestId(requestId string) *OrganizationSecurityPoliciesMoveCall {
105184	c.urlParams_.Set("requestId", requestId)
105185	return c
105186}
105187
105188// Fields allows partial responses to be retrieved. See
105189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105190// for more information.
105191func (c *OrganizationSecurityPoliciesMoveCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesMoveCall {
105192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105193	return c
105194}
105195
105196// Context sets the context to be used in this call's Do method. Any
105197// pending HTTP request will be aborted if the provided context is
105198// canceled.
105199func (c *OrganizationSecurityPoliciesMoveCall) Context(ctx context.Context) *OrganizationSecurityPoliciesMoveCall {
105200	c.ctx_ = ctx
105201	return c
105202}
105203
105204// Header returns an http.Header that can be modified by the caller to
105205// add HTTP headers to the request.
105206func (c *OrganizationSecurityPoliciesMoveCall) Header() http.Header {
105207	if c.header_ == nil {
105208		c.header_ = make(http.Header)
105209	}
105210	return c.header_
105211}
105212
105213func (c *OrganizationSecurityPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
105214	reqHeaders := make(http.Header)
105215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105216	for k, v := range c.header_ {
105217		reqHeaders[k] = v
105218	}
105219	reqHeaders.Set("User-Agent", c.s.userAgent())
105220	var body io.Reader = nil
105221	c.urlParams_.Set("alt", alt)
105222	c.urlParams_.Set("prettyPrint", "false")
105223	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/move")
105224	urls += "?" + c.urlParams_.Encode()
105225	req, err := http.NewRequest("POST", urls, body)
105226	if err != nil {
105227		return nil, err
105228	}
105229	req.Header = reqHeaders
105230	googleapi.Expand(req.URL, map[string]string{
105231		"securityPolicy": c.securityPolicy,
105232	})
105233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105234}
105235
105236// Do executes the "compute.organizationSecurityPolicies.move" call.
105237// Exactly one of *Operation or error will be non-nil. Any non-2xx
105238// status code is an error. Response headers are in either
105239// *Operation.ServerResponse.Header or (if a response was returned at
105240// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105241// to check whether the returned error was because
105242// http.StatusNotModified was returned.
105243func (c *OrganizationSecurityPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105244	gensupport.SetOptions(c.urlParams_, opts...)
105245	res, err := c.doRequest("json")
105246	if res != nil && res.StatusCode == http.StatusNotModified {
105247		if res.Body != nil {
105248			res.Body.Close()
105249		}
105250		return nil, &googleapi.Error{
105251			Code:   res.StatusCode,
105252			Header: res.Header,
105253		}
105254	}
105255	if err != nil {
105256		return nil, err
105257	}
105258	defer googleapi.CloseBody(res)
105259	if err := googleapi.CheckResponse(res); err != nil {
105260		return nil, err
105261	}
105262	ret := &Operation{
105263		ServerResponse: googleapi.ServerResponse{
105264			Header:         res.Header,
105265			HTTPStatusCode: res.StatusCode,
105266		},
105267	}
105268	target := &ret
105269	if err := gensupport.DecodeResponse(target, res); err != nil {
105270		return nil, err
105271	}
105272	return ret, nil
105273	// {
105274	//   "description": "Moves the specified security policy.",
105275	//   "httpMethod": "POST",
105276	//   "id": "compute.organizationSecurityPolicies.move",
105277	//   "parameterOrder": [
105278	//     "securityPolicy"
105279	//   ],
105280	//   "parameters": {
105281	//     "parentId": {
105282	//       "description": "The new parent of the security policy.",
105283	//       "location": "query",
105284	//       "type": "string"
105285	//     },
105286	//     "requestId": {
105287	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105288	//       "location": "query",
105289	//       "type": "string"
105290	//     },
105291	//     "securityPolicy": {
105292	//       "description": "Name of the security policy to update.",
105293	//       "location": "path",
105294	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
105295	//       "required": true,
105296	//       "type": "string"
105297	//     }
105298	//   },
105299	//   "path": "locations/global/securityPolicies/{securityPolicy}/move",
105300	//   "response": {
105301	//     "$ref": "Operation"
105302	//   },
105303	//   "scopes": [
105304	//     "https://www.googleapis.com/auth/cloud-platform",
105305	//     "https://www.googleapis.com/auth/compute"
105306	//   ]
105307	// }
105308
105309}
105310
105311// method id "compute.organizationSecurityPolicies.patch":
105312
105313type OrganizationSecurityPoliciesPatchCall struct {
105314	s              *Service
105315	securityPolicy string
105316	securitypolicy *SecurityPolicy
105317	urlParams_     gensupport.URLParams
105318	ctx_           context.Context
105319	header_        http.Header
105320}
105321
105322// Patch: Patches the specified policy with the data included in the
105323// request.
105324func (r *OrganizationSecurityPoliciesService) Patch(securityPolicy string, securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesPatchCall {
105325	c := &OrganizationSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105326	c.securityPolicy = securityPolicy
105327	c.securitypolicy = securitypolicy
105328	return c
105329}
105330
105331// RequestId sets the optional parameter "requestId": An optional
105332// request ID to identify requests. Specify a unique request ID so that
105333// if you must retry your request, the server will know to ignore the
105334// request if it has already been completed.
105335//
105336// For example, consider a situation where you make an initial request
105337// and the request times out. If you make the request again with the
105338// same request ID, the server can check if original operation with the
105339// same request ID was received, and if so, will ignore the second
105340// request. This prevents clients from accidentally creating duplicate
105341// commitments.
105342//
105343// The request ID must be a valid UUID with the exception that zero UUID
105344// is not supported (00000000-0000-0000-0000-000000000000).
105345func (c *OrganizationSecurityPoliciesPatchCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchCall {
105346	c.urlParams_.Set("requestId", requestId)
105347	return c
105348}
105349
105350// Fields allows partial responses to be retrieved. See
105351// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105352// for more information.
105353func (c *OrganizationSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchCall {
105354	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105355	return c
105356}
105357
105358// Context sets the context to be used in this call's Do method. Any
105359// pending HTTP request will be aborted if the provided context is
105360// canceled.
105361func (c *OrganizationSecurityPoliciesPatchCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchCall {
105362	c.ctx_ = ctx
105363	return c
105364}
105365
105366// Header returns an http.Header that can be modified by the caller to
105367// add HTTP headers to the request.
105368func (c *OrganizationSecurityPoliciesPatchCall) Header() http.Header {
105369	if c.header_ == nil {
105370		c.header_ = make(http.Header)
105371	}
105372	return c.header_
105373}
105374
105375func (c *OrganizationSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
105376	reqHeaders := make(http.Header)
105377	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105378	for k, v := range c.header_ {
105379		reqHeaders[k] = v
105380	}
105381	reqHeaders.Set("User-Agent", c.s.userAgent())
105382	var body io.Reader = nil
105383	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
105384	if err != nil {
105385		return nil, err
105386	}
105387	reqHeaders.Set("Content-Type", "application/json")
105388	c.urlParams_.Set("alt", alt)
105389	c.urlParams_.Set("prettyPrint", "false")
105390	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
105391	urls += "?" + c.urlParams_.Encode()
105392	req, err := http.NewRequest("PATCH", urls, body)
105393	if err != nil {
105394		return nil, err
105395	}
105396	req.Header = reqHeaders
105397	googleapi.Expand(req.URL, map[string]string{
105398		"securityPolicy": c.securityPolicy,
105399	})
105400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105401}
105402
105403// Do executes the "compute.organizationSecurityPolicies.patch" call.
105404// Exactly one of *Operation or error will be non-nil. Any non-2xx
105405// status code is an error. Response headers are in either
105406// *Operation.ServerResponse.Header or (if a response was returned at
105407// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105408// to check whether the returned error was because
105409// http.StatusNotModified was returned.
105410func (c *OrganizationSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105411	gensupport.SetOptions(c.urlParams_, opts...)
105412	res, err := c.doRequest("json")
105413	if res != nil && res.StatusCode == http.StatusNotModified {
105414		if res.Body != nil {
105415			res.Body.Close()
105416		}
105417		return nil, &googleapi.Error{
105418			Code:   res.StatusCode,
105419			Header: res.Header,
105420		}
105421	}
105422	if err != nil {
105423		return nil, err
105424	}
105425	defer googleapi.CloseBody(res)
105426	if err := googleapi.CheckResponse(res); err != nil {
105427		return nil, err
105428	}
105429	ret := &Operation{
105430		ServerResponse: googleapi.ServerResponse{
105431			Header:         res.Header,
105432			HTTPStatusCode: res.StatusCode,
105433		},
105434	}
105435	target := &ret
105436	if err := gensupport.DecodeResponse(target, res); err != nil {
105437		return nil, err
105438	}
105439	return ret, nil
105440	// {
105441	//   "description": "Patches the specified policy with the data included in the request.",
105442	//   "httpMethod": "PATCH",
105443	//   "id": "compute.organizationSecurityPolicies.patch",
105444	//   "parameterOrder": [
105445	//     "securityPolicy"
105446	//   ],
105447	//   "parameters": {
105448	//     "requestId": {
105449	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105450	//       "location": "query",
105451	//       "type": "string"
105452	//     },
105453	//     "securityPolicy": {
105454	//       "description": "Name of the security policy to update.",
105455	//       "location": "path",
105456	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
105457	//       "required": true,
105458	//       "type": "string"
105459	//     }
105460	//   },
105461	//   "path": "locations/global/securityPolicies/{securityPolicy}",
105462	//   "request": {
105463	//     "$ref": "SecurityPolicy"
105464	//   },
105465	//   "response": {
105466	//     "$ref": "Operation"
105467	//   },
105468	//   "scopes": [
105469	//     "https://www.googleapis.com/auth/cloud-platform",
105470	//     "https://www.googleapis.com/auth/compute"
105471	//   ]
105472	// }
105473
105474}
105475
105476// method id "compute.organizationSecurityPolicies.patchRule":
105477
105478type OrganizationSecurityPoliciesPatchRuleCall struct {
105479	s                  *Service
105480	securityPolicy     string
105481	securitypolicyrule *SecurityPolicyRule
105482	urlParams_         gensupport.URLParams
105483	ctx_               context.Context
105484	header_            http.Header
105485}
105486
105487// PatchRule: Patches a rule at the specified priority.
105488func (r *OrganizationSecurityPoliciesService) PatchRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesPatchRuleCall {
105489	c := &OrganizationSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105490	c.securityPolicy = securityPolicy
105491	c.securitypolicyrule = securitypolicyrule
105492	return c
105493}
105494
105495// Priority sets the optional parameter "priority": The priority of the
105496// rule to patch.
105497func (c *OrganizationSecurityPoliciesPatchRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesPatchRuleCall {
105498	c.urlParams_.Set("priority", fmt.Sprint(priority))
105499	return c
105500}
105501
105502// RequestId sets the optional parameter "requestId": An optional
105503// request ID to identify requests. Specify a unique request ID so that
105504// if you must retry your request, the server will know to ignore the
105505// request if it has already been completed.
105506//
105507// For example, consider a situation where you make an initial request
105508// and the request times out. If you make the request again with the
105509// same request ID, the server can check if original operation with the
105510// same request ID was received, and if so, will ignore the second
105511// request. This prevents clients from accidentally creating duplicate
105512// commitments.
105513//
105514// The request ID must be a valid UUID with the exception that zero UUID
105515// is not supported (00000000-0000-0000-0000-000000000000).
105516func (c *OrganizationSecurityPoliciesPatchRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchRuleCall {
105517	c.urlParams_.Set("requestId", requestId)
105518	return c
105519}
105520
105521// Fields allows partial responses to be retrieved. See
105522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105523// for more information.
105524func (c *OrganizationSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchRuleCall {
105525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105526	return c
105527}
105528
105529// Context sets the context to be used in this call's Do method. Any
105530// pending HTTP request will be aborted if the provided context is
105531// canceled.
105532func (c *OrganizationSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchRuleCall {
105533	c.ctx_ = ctx
105534	return c
105535}
105536
105537// Header returns an http.Header that can be modified by the caller to
105538// add HTTP headers to the request.
105539func (c *OrganizationSecurityPoliciesPatchRuleCall) Header() http.Header {
105540	if c.header_ == nil {
105541		c.header_ = make(http.Header)
105542	}
105543	return c.header_
105544}
105545
105546func (c *OrganizationSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
105547	reqHeaders := make(http.Header)
105548	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105549	for k, v := range c.header_ {
105550		reqHeaders[k] = v
105551	}
105552	reqHeaders.Set("User-Agent", c.s.userAgent())
105553	var body io.Reader = nil
105554	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
105555	if err != nil {
105556		return nil, err
105557	}
105558	reqHeaders.Set("Content-Type", "application/json")
105559	c.urlParams_.Set("alt", alt)
105560	c.urlParams_.Set("prettyPrint", "false")
105561	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/patchRule")
105562	urls += "?" + c.urlParams_.Encode()
105563	req, err := http.NewRequest("POST", urls, body)
105564	if err != nil {
105565		return nil, err
105566	}
105567	req.Header = reqHeaders
105568	googleapi.Expand(req.URL, map[string]string{
105569		"securityPolicy": c.securityPolicy,
105570	})
105571	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105572}
105573
105574// Do executes the "compute.organizationSecurityPolicies.patchRule" call.
105575// Exactly one of *Operation or error will be non-nil. Any non-2xx
105576// status code is an error. Response headers are in either
105577// *Operation.ServerResponse.Header or (if a response was returned at
105578// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105579// to check whether the returned error was because
105580// http.StatusNotModified was returned.
105581func (c *OrganizationSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105582	gensupport.SetOptions(c.urlParams_, opts...)
105583	res, err := c.doRequest("json")
105584	if res != nil && res.StatusCode == http.StatusNotModified {
105585		if res.Body != nil {
105586			res.Body.Close()
105587		}
105588		return nil, &googleapi.Error{
105589			Code:   res.StatusCode,
105590			Header: res.Header,
105591		}
105592	}
105593	if err != nil {
105594		return nil, err
105595	}
105596	defer googleapi.CloseBody(res)
105597	if err := googleapi.CheckResponse(res); err != nil {
105598		return nil, err
105599	}
105600	ret := &Operation{
105601		ServerResponse: googleapi.ServerResponse{
105602			Header:         res.Header,
105603			HTTPStatusCode: res.StatusCode,
105604		},
105605	}
105606	target := &ret
105607	if err := gensupport.DecodeResponse(target, res); err != nil {
105608		return nil, err
105609	}
105610	return ret, nil
105611	// {
105612	//   "description": "Patches a rule at the specified priority.",
105613	//   "httpMethod": "POST",
105614	//   "id": "compute.organizationSecurityPolicies.patchRule",
105615	//   "parameterOrder": [
105616	//     "securityPolicy"
105617	//   ],
105618	//   "parameters": {
105619	//     "priority": {
105620	//       "description": "The priority of the rule to patch.",
105621	//       "format": "int32",
105622	//       "location": "query",
105623	//       "type": "integer"
105624	//     },
105625	//     "requestId": {
105626	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105627	//       "location": "query",
105628	//       "type": "string"
105629	//     },
105630	//     "securityPolicy": {
105631	//       "description": "Name of the security policy to update.",
105632	//       "location": "path",
105633	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
105634	//       "required": true,
105635	//       "type": "string"
105636	//     }
105637	//   },
105638	//   "path": "locations/global/securityPolicies/{securityPolicy}/patchRule",
105639	//   "request": {
105640	//     "$ref": "SecurityPolicyRule"
105641	//   },
105642	//   "response": {
105643	//     "$ref": "Operation"
105644	//   },
105645	//   "scopes": [
105646	//     "https://www.googleapis.com/auth/cloud-platform",
105647	//     "https://www.googleapis.com/auth/compute"
105648	//   ]
105649	// }
105650
105651}
105652
105653// method id "compute.organizationSecurityPolicies.removeAssociation":
105654
105655type OrganizationSecurityPoliciesRemoveAssociationCall struct {
105656	s              *Service
105657	securityPolicy string
105658	urlParams_     gensupport.URLParams
105659	ctx_           context.Context
105660	header_        http.Header
105661}
105662
105663// RemoveAssociation: Removes an association for the specified security
105664// policy.
105665func (r *OrganizationSecurityPoliciesService) RemoveAssociation(securityPolicy string) *OrganizationSecurityPoliciesRemoveAssociationCall {
105666	c := &OrganizationSecurityPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105667	c.securityPolicy = securityPolicy
105668	return c
105669}
105670
105671// Name sets the optional parameter "name": Name for the attachment that
105672// will be removed.
105673func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Name(name string) *OrganizationSecurityPoliciesRemoveAssociationCall {
105674	c.urlParams_.Set("name", name)
105675	return c
105676}
105677
105678// RequestId sets the optional parameter "requestId": An optional
105679// request ID to identify requests. Specify a unique request ID so that
105680// if you must retry your request, the server will know to ignore the
105681// request if it has already been completed.
105682//
105683// For example, consider a situation where you make an initial request
105684// and the request times out. If you make the request again with the
105685// same request ID, the server can check if original operation with the
105686// same request ID was received, and if so, will ignore the second
105687// request. This prevents clients from accidentally creating duplicate
105688// commitments.
105689//
105690// The request ID must be a valid UUID with the exception that zero UUID
105691// is not supported (00000000-0000-0000-0000-000000000000).
105692func (c *OrganizationSecurityPoliciesRemoveAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveAssociationCall {
105693	c.urlParams_.Set("requestId", requestId)
105694	return c
105695}
105696
105697// Fields allows partial responses to be retrieved. See
105698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105699// for more information.
105700func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveAssociationCall {
105701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105702	return c
105703}
105704
105705// Context sets the context to be used in this call's Do method. Any
105706// pending HTTP request will be aborted if the provided context is
105707// canceled.
105708func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveAssociationCall {
105709	c.ctx_ = ctx
105710	return c
105711}
105712
105713// Header returns an http.Header that can be modified by the caller to
105714// add HTTP headers to the request.
105715func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Header() http.Header {
105716	if c.header_ == nil {
105717		c.header_ = make(http.Header)
105718	}
105719	return c.header_
105720}
105721
105722func (c *OrganizationSecurityPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
105723	reqHeaders := make(http.Header)
105724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105725	for k, v := range c.header_ {
105726		reqHeaders[k] = v
105727	}
105728	reqHeaders.Set("User-Agent", c.s.userAgent())
105729	var body io.Reader = nil
105730	c.urlParams_.Set("alt", alt)
105731	c.urlParams_.Set("prettyPrint", "false")
105732	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeAssociation")
105733	urls += "?" + c.urlParams_.Encode()
105734	req, err := http.NewRequest("POST", urls, body)
105735	if err != nil {
105736		return nil, err
105737	}
105738	req.Header = reqHeaders
105739	googleapi.Expand(req.URL, map[string]string{
105740		"securityPolicy": c.securityPolicy,
105741	})
105742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105743}
105744
105745// Do executes the "compute.organizationSecurityPolicies.removeAssociation" call.
105746// Exactly one of *Operation or error will be non-nil. Any non-2xx
105747// status code is an error. Response headers are in either
105748// *Operation.ServerResponse.Header or (if a response was returned at
105749// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105750// to check whether the returned error was because
105751// http.StatusNotModified was returned.
105752func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105753	gensupport.SetOptions(c.urlParams_, opts...)
105754	res, err := c.doRequest("json")
105755	if res != nil && res.StatusCode == http.StatusNotModified {
105756		if res.Body != nil {
105757			res.Body.Close()
105758		}
105759		return nil, &googleapi.Error{
105760			Code:   res.StatusCode,
105761			Header: res.Header,
105762		}
105763	}
105764	if err != nil {
105765		return nil, err
105766	}
105767	defer googleapi.CloseBody(res)
105768	if err := googleapi.CheckResponse(res); err != nil {
105769		return nil, err
105770	}
105771	ret := &Operation{
105772		ServerResponse: googleapi.ServerResponse{
105773			Header:         res.Header,
105774			HTTPStatusCode: res.StatusCode,
105775		},
105776	}
105777	target := &ret
105778	if err := gensupport.DecodeResponse(target, res); err != nil {
105779		return nil, err
105780	}
105781	return ret, nil
105782	// {
105783	//   "description": "Removes an association for the specified security policy.",
105784	//   "httpMethod": "POST",
105785	//   "id": "compute.organizationSecurityPolicies.removeAssociation",
105786	//   "parameterOrder": [
105787	//     "securityPolicy"
105788	//   ],
105789	//   "parameters": {
105790	//     "name": {
105791	//       "description": "Name for the attachment that will be removed.",
105792	//       "location": "query",
105793	//       "type": "string"
105794	//     },
105795	//     "requestId": {
105796	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105797	//       "location": "query",
105798	//       "type": "string"
105799	//     },
105800	//     "securityPolicy": {
105801	//       "description": "Name of the security policy to update.",
105802	//       "location": "path",
105803	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
105804	//       "required": true,
105805	//       "type": "string"
105806	//     }
105807	//   },
105808	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
105809	//   "response": {
105810	//     "$ref": "Operation"
105811	//   },
105812	//   "scopes": [
105813	//     "https://www.googleapis.com/auth/cloud-platform",
105814	//     "https://www.googleapis.com/auth/compute"
105815	//   ]
105816	// }
105817
105818}
105819
105820// method id "compute.organizationSecurityPolicies.removeRule":
105821
105822type OrganizationSecurityPoliciesRemoveRuleCall struct {
105823	s              *Service
105824	securityPolicy string
105825	urlParams_     gensupport.URLParams
105826	ctx_           context.Context
105827	header_        http.Header
105828}
105829
105830// RemoveRule: Deletes a rule at the specified priority.
105831func (r *OrganizationSecurityPoliciesService) RemoveRule(securityPolicy string) *OrganizationSecurityPoliciesRemoveRuleCall {
105832	c := &OrganizationSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105833	c.securityPolicy = securityPolicy
105834	return c
105835}
105836
105837// Priority sets the optional parameter "priority": The priority of the
105838// rule to remove from the security policy.
105839func (c *OrganizationSecurityPoliciesRemoveRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesRemoveRuleCall {
105840	c.urlParams_.Set("priority", fmt.Sprint(priority))
105841	return c
105842}
105843
105844// RequestId sets the optional parameter "requestId": An optional
105845// request ID to identify requests. Specify a unique request ID so that
105846// if you must retry your request, the server will know to ignore the
105847// request if it has already been completed.
105848//
105849// For example, consider a situation where you make an initial request
105850// and the request times out. If you make the request again with the
105851// same request ID, the server can check if original operation with the
105852// same request ID was received, and if so, will ignore the second
105853// request. This prevents clients from accidentally creating duplicate
105854// commitments.
105855//
105856// The request ID must be a valid UUID with the exception that zero UUID
105857// is not supported (00000000-0000-0000-0000-000000000000).
105858func (c *OrganizationSecurityPoliciesRemoveRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveRuleCall {
105859	c.urlParams_.Set("requestId", requestId)
105860	return c
105861}
105862
105863// Fields allows partial responses to be retrieved. See
105864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105865// for more information.
105866func (c *OrganizationSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveRuleCall {
105867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105868	return c
105869}
105870
105871// Context sets the context to be used in this call's Do method. Any
105872// pending HTTP request will be aborted if the provided context is
105873// canceled.
105874func (c *OrganizationSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveRuleCall {
105875	c.ctx_ = ctx
105876	return c
105877}
105878
105879// Header returns an http.Header that can be modified by the caller to
105880// add HTTP headers to the request.
105881func (c *OrganizationSecurityPoliciesRemoveRuleCall) Header() http.Header {
105882	if c.header_ == nil {
105883		c.header_ = make(http.Header)
105884	}
105885	return c.header_
105886}
105887
105888func (c *OrganizationSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
105889	reqHeaders := make(http.Header)
105890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
105891	for k, v := range c.header_ {
105892		reqHeaders[k] = v
105893	}
105894	reqHeaders.Set("User-Agent", c.s.userAgent())
105895	var body io.Reader = nil
105896	c.urlParams_.Set("alt", alt)
105897	c.urlParams_.Set("prettyPrint", "false")
105898	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeRule")
105899	urls += "?" + c.urlParams_.Encode()
105900	req, err := http.NewRequest("POST", urls, body)
105901	if err != nil {
105902		return nil, err
105903	}
105904	req.Header = reqHeaders
105905	googleapi.Expand(req.URL, map[string]string{
105906		"securityPolicy": c.securityPolicy,
105907	})
105908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105909}
105910
105911// Do executes the "compute.organizationSecurityPolicies.removeRule" call.
105912// Exactly one of *Operation or error will be non-nil. Any non-2xx
105913// status code is an error. Response headers are in either
105914// *Operation.ServerResponse.Header or (if a response was returned at
105915// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105916// to check whether the returned error was because
105917// http.StatusNotModified was returned.
105918func (c *OrganizationSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105919	gensupport.SetOptions(c.urlParams_, opts...)
105920	res, err := c.doRequest("json")
105921	if res != nil && res.StatusCode == http.StatusNotModified {
105922		if res.Body != nil {
105923			res.Body.Close()
105924		}
105925		return nil, &googleapi.Error{
105926			Code:   res.StatusCode,
105927			Header: res.Header,
105928		}
105929	}
105930	if err != nil {
105931		return nil, err
105932	}
105933	defer googleapi.CloseBody(res)
105934	if err := googleapi.CheckResponse(res); err != nil {
105935		return nil, err
105936	}
105937	ret := &Operation{
105938		ServerResponse: googleapi.ServerResponse{
105939			Header:         res.Header,
105940			HTTPStatusCode: res.StatusCode,
105941		},
105942	}
105943	target := &ret
105944	if err := gensupport.DecodeResponse(target, res); err != nil {
105945		return nil, err
105946	}
105947	return ret, nil
105948	// {
105949	//   "description": "Deletes a rule at the specified priority.",
105950	//   "httpMethod": "POST",
105951	//   "id": "compute.organizationSecurityPolicies.removeRule",
105952	//   "parameterOrder": [
105953	//     "securityPolicy"
105954	//   ],
105955	//   "parameters": {
105956	//     "priority": {
105957	//       "description": "The priority of the rule to remove from the security policy.",
105958	//       "format": "int32",
105959	//       "location": "query",
105960	//       "type": "integer"
105961	//     },
105962	//     "requestId": {
105963	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105964	//       "location": "query",
105965	//       "type": "string"
105966	//     },
105967	//     "securityPolicy": {
105968	//       "description": "Name of the security policy to update.",
105969	//       "location": "path",
105970	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
105971	//       "required": true,
105972	//       "type": "string"
105973	//     }
105974	//   },
105975	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeRule",
105976	//   "response": {
105977	//     "$ref": "Operation"
105978	//   },
105979	//   "scopes": [
105980	//     "https://www.googleapis.com/auth/cloud-platform",
105981	//     "https://www.googleapis.com/auth/compute"
105982	//   ]
105983	// }
105984
105985}
105986
105987// method id "compute.packetMirrorings.aggregatedList":
105988
105989type PacketMirroringsAggregatedListCall struct {
105990	s            *Service
105991	project      string
105992	urlParams_   gensupport.URLParams
105993	ifNoneMatch_ string
105994	ctx_         context.Context
105995	header_      http.Header
105996}
105997
105998// AggregatedList: Retrieves an aggregated list of packetMirrorings.
105999func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
106000	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106001	c.project = project
106002	return c
106003}
106004
106005// Filter sets the optional parameter "filter": A filter expression that
106006// filters resources listed in the response. The expression must specify
106007// the field name, a comparison operator, and the value that you want to
106008// use for filtering. The value must be a string, a number, or a
106009// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106010// `<`.
106011//
106012// For example, if you are filtering Compute Engine instances, you can
106013// exclude instances named `example-instance` by specifying `name !=
106014// example-instance`.
106015//
106016// You can also filter nested fields. For example, you could specify
106017// `scheduling.automaticRestart = false` to include instances only if
106018// they are not scheduled for automatic restarts. You can use filtering
106019// on nested fields to filter based on resource labels.
106020//
106021// To filter on multiple expressions, provide each separate expression
106022// within parentheses. For example: ``` (scheduling.automaticRestart =
106023// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106024// is an `AND` expression. However, you can include `AND` and `OR`
106025// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106026// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106027// (scheduling.automaticRestart = true) ```
106028func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
106029	c.urlParams_.Set("filter", filter)
106030	return c
106031}
106032
106033// IncludeAllScopes sets the optional parameter "includeAllScopes":
106034// Indicates whether every visible scope for each scope type (zone,
106035// region, global) should be included in the response. For new resource
106036// types added after this field, the flag has no effect as new resource
106037// types will always include every visible scope for each scope type in
106038// response. For resource types which predate this field, if this flag
106039// is omitted or false, only scopes of the scope types where the
106040// resource type is expected to be found will be included.
106041func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
106042	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
106043	return c
106044}
106045
106046// MaxResults sets the optional parameter "maxResults": The maximum
106047// number of results per page that should be returned. If the number of
106048// available results is larger than `maxResults`, Compute Engine returns
106049// a `nextPageToken` that can be used to get the next page of results in
106050// subsequent list requests. Acceptable values are `0` to `500`,
106051// inclusive. (Default: `500`)
106052func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
106053	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106054	return c
106055}
106056
106057// OrderBy sets the optional parameter "orderBy": Sorts list results by
106058// a certain order. By default, results are returned in alphanumerical
106059// order based on the resource name.
106060//
106061// You can also sort results in descending order based on the creation
106062// timestamp using `orderBy="creationTimestamp desc". This sorts
106063// results based on the `creationTimestamp` field in reverse
106064// chronological order (newest result first). Use this to sort resources
106065// like operations so that the newest operation is returned
106066// first.
106067//
106068// Currently, only sorting by `name` or `creationTimestamp desc` is
106069// supported.
106070func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
106071	c.urlParams_.Set("orderBy", orderBy)
106072	return c
106073}
106074
106075// PageToken sets the optional parameter "pageToken": Specifies a page
106076// token to use. Set `pageToken` to the `nextPageToken` returned by a
106077// previous list request to get the next page of results.
106078func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
106079	c.urlParams_.Set("pageToken", pageToken)
106080	return c
106081}
106082
106083// Fields allows partial responses to be retrieved. See
106084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106085// for more information.
106086func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
106087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106088	return c
106089}
106090
106091// IfNoneMatch sets the optional parameter which makes the operation
106092// fail if the object's ETag matches the given value. This is useful for
106093// getting updates only after the object has changed since the last
106094// request. Use googleapi.IsNotModified to check whether the response
106095// error from Do is the result of In-None-Match.
106096func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
106097	c.ifNoneMatch_ = entityTag
106098	return c
106099}
106100
106101// Context sets the context to be used in this call's Do method. Any
106102// pending HTTP request will be aborted if the provided context is
106103// canceled.
106104func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
106105	c.ctx_ = ctx
106106	return c
106107}
106108
106109// Header returns an http.Header that can be modified by the caller to
106110// add HTTP headers to the request.
106111func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
106112	if c.header_ == nil {
106113		c.header_ = make(http.Header)
106114	}
106115	return c.header_
106116}
106117
106118func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
106119	reqHeaders := make(http.Header)
106120	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106121	for k, v := range c.header_ {
106122		reqHeaders[k] = v
106123	}
106124	reqHeaders.Set("User-Agent", c.s.userAgent())
106125	if c.ifNoneMatch_ != "" {
106126		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106127	}
106128	var body io.Reader = nil
106129	c.urlParams_.Set("alt", alt)
106130	c.urlParams_.Set("prettyPrint", "false")
106131	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/packetMirrorings")
106132	urls += "?" + c.urlParams_.Encode()
106133	req, err := http.NewRequest("GET", urls, body)
106134	if err != nil {
106135		return nil, err
106136	}
106137	req.Header = reqHeaders
106138	googleapi.Expand(req.URL, map[string]string{
106139		"project": c.project,
106140	})
106141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106142}
106143
106144// Do executes the "compute.packetMirrorings.aggregatedList" call.
106145// Exactly one of *PacketMirroringAggregatedList or error will be
106146// non-nil. Any non-2xx status code is an error. Response headers are in
106147// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
106148// response was returned at all) in error.(*googleapi.Error).Header. Use
106149// googleapi.IsNotModified to check whether the returned error was
106150// because http.StatusNotModified was returned.
106151func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
106152	gensupport.SetOptions(c.urlParams_, opts...)
106153	res, err := c.doRequest("json")
106154	if res != nil && res.StatusCode == http.StatusNotModified {
106155		if res.Body != nil {
106156			res.Body.Close()
106157		}
106158		return nil, &googleapi.Error{
106159			Code:   res.StatusCode,
106160			Header: res.Header,
106161		}
106162	}
106163	if err != nil {
106164		return nil, err
106165	}
106166	defer googleapi.CloseBody(res)
106167	if err := googleapi.CheckResponse(res); err != nil {
106168		return nil, err
106169	}
106170	ret := &PacketMirroringAggregatedList{
106171		ServerResponse: googleapi.ServerResponse{
106172			Header:         res.Header,
106173			HTTPStatusCode: res.StatusCode,
106174		},
106175	}
106176	target := &ret
106177	if err := gensupport.DecodeResponse(target, res); err != nil {
106178		return nil, err
106179	}
106180	return ret, nil
106181	// {
106182	//   "description": "Retrieves an aggregated list of packetMirrorings.",
106183	//   "httpMethod": "GET",
106184	//   "id": "compute.packetMirrorings.aggregatedList",
106185	//   "parameterOrder": [
106186	//     "project"
106187	//   ],
106188	//   "parameters": {
106189	//     "filter": {
106190	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106191	//       "location": "query",
106192	//       "type": "string"
106193	//     },
106194	//     "includeAllScopes": {
106195	//       "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.",
106196	//       "location": "query",
106197	//       "type": "boolean"
106198	//     },
106199	//     "maxResults": {
106200	//       "default": "500",
106201	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106202	//       "format": "uint32",
106203	//       "location": "query",
106204	//       "minimum": "0",
106205	//       "type": "integer"
106206	//     },
106207	//     "orderBy": {
106208	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106209	//       "location": "query",
106210	//       "type": "string"
106211	//     },
106212	//     "pageToken": {
106213	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106214	//       "location": "query",
106215	//       "type": "string"
106216	//     },
106217	//     "project": {
106218	//       "description": "Project ID for this request.",
106219	//       "location": "path",
106220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106221	//       "required": true,
106222	//       "type": "string"
106223	//     }
106224	//   },
106225	//   "path": "{project}/aggregated/packetMirrorings",
106226	//   "response": {
106227	//     "$ref": "PacketMirroringAggregatedList"
106228	//   },
106229	//   "scopes": [
106230	//     "https://www.googleapis.com/auth/cloud-platform",
106231	//     "https://www.googleapis.com/auth/compute",
106232	//     "https://www.googleapis.com/auth/compute.readonly"
106233	//   ]
106234	// }
106235
106236}
106237
106238// Pages invokes f for each page of results.
106239// A non-nil error returned from f will halt the iteration.
106240// The provided context supersedes any context provided to the Context method.
106241func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
106242	c.ctx_ = ctx
106243	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106244	for {
106245		x, err := c.Do()
106246		if err != nil {
106247			return err
106248		}
106249		if err := f(x); err != nil {
106250			return err
106251		}
106252		if x.NextPageToken == "" {
106253			return nil
106254		}
106255		c.PageToken(x.NextPageToken)
106256	}
106257}
106258
106259// method id "compute.packetMirrorings.delete":
106260
106261type PacketMirroringsDeleteCall struct {
106262	s               *Service
106263	project         string
106264	region          string
106265	packetMirroring string
106266	urlParams_      gensupport.URLParams
106267	ctx_            context.Context
106268	header_         http.Header
106269}
106270
106271// Delete: Deletes the specified PacketMirroring resource.
106272func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
106273	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106274	c.project = project
106275	c.region = region
106276	c.packetMirroring = packetMirroring
106277	return c
106278}
106279
106280// RequestId sets the optional parameter "requestId": An optional
106281// request ID to identify requests. Specify a unique request ID so that
106282// if you must retry your request, the server will know to ignore the
106283// request if it has already been completed.
106284//
106285// For example, consider a situation where you make an initial request
106286// and the request times out. If you make the request again with the
106287// same request ID, the server can check if original operation with the
106288// same request ID was received, and if so, will ignore the second
106289// request. This prevents clients from accidentally creating duplicate
106290// commitments.
106291//
106292// The request ID must be a valid UUID with the exception that zero UUID
106293// is not supported (00000000-0000-0000-0000-000000000000).
106294func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
106295	c.urlParams_.Set("requestId", requestId)
106296	return c
106297}
106298
106299// Fields allows partial responses to be retrieved. See
106300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106301// for more information.
106302func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
106303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106304	return c
106305}
106306
106307// Context sets the context to be used in this call's Do method. Any
106308// pending HTTP request will be aborted if the provided context is
106309// canceled.
106310func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
106311	c.ctx_ = ctx
106312	return c
106313}
106314
106315// Header returns an http.Header that can be modified by the caller to
106316// add HTTP headers to the request.
106317func (c *PacketMirroringsDeleteCall) Header() http.Header {
106318	if c.header_ == nil {
106319		c.header_ = make(http.Header)
106320	}
106321	return c.header_
106322}
106323
106324func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
106325	reqHeaders := make(http.Header)
106326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106327	for k, v := range c.header_ {
106328		reqHeaders[k] = v
106329	}
106330	reqHeaders.Set("User-Agent", c.s.userAgent())
106331	var body io.Reader = nil
106332	c.urlParams_.Set("alt", alt)
106333	c.urlParams_.Set("prettyPrint", "false")
106334	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
106335	urls += "?" + c.urlParams_.Encode()
106336	req, err := http.NewRequest("DELETE", urls, body)
106337	if err != nil {
106338		return nil, err
106339	}
106340	req.Header = reqHeaders
106341	googleapi.Expand(req.URL, map[string]string{
106342		"project":         c.project,
106343		"region":          c.region,
106344		"packetMirroring": c.packetMirroring,
106345	})
106346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106347}
106348
106349// Do executes the "compute.packetMirrorings.delete" call.
106350// Exactly one of *Operation or error will be non-nil. Any non-2xx
106351// status code is an error. Response headers are in either
106352// *Operation.ServerResponse.Header or (if a response was returned at
106353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106354// to check whether the returned error was because
106355// http.StatusNotModified was returned.
106356func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106357	gensupport.SetOptions(c.urlParams_, opts...)
106358	res, err := c.doRequest("json")
106359	if res != nil && res.StatusCode == http.StatusNotModified {
106360		if res.Body != nil {
106361			res.Body.Close()
106362		}
106363		return nil, &googleapi.Error{
106364			Code:   res.StatusCode,
106365			Header: res.Header,
106366		}
106367	}
106368	if err != nil {
106369		return nil, err
106370	}
106371	defer googleapi.CloseBody(res)
106372	if err := googleapi.CheckResponse(res); err != nil {
106373		return nil, err
106374	}
106375	ret := &Operation{
106376		ServerResponse: googleapi.ServerResponse{
106377			Header:         res.Header,
106378			HTTPStatusCode: res.StatusCode,
106379		},
106380	}
106381	target := &ret
106382	if err := gensupport.DecodeResponse(target, res); err != nil {
106383		return nil, err
106384	}
106385	return ret, nil
106386	// {
106387	//   "description": "Deletes the specified PacketMirroring resource.",
106388	//   "httpMethod": "DELETE",
106389	//   "id": "compute.packetMirrorings.delete",
106390	//   "parameterOrder": [
106391	//     "project",
106392	//     "region",
106393	//     "packetMirroring"
106394	//   ],
106395	//   "parameters": {
106396	//     "packetMirroring": {
106397	//       "description": "Name of the PacketMirroring resource to delete.",
106398	//       "location": "path",
106399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106400	//       "required": true,
106401	//       "type": "string"
106402	//     },
106403	//     "project": {
106404	//       "description": "Project ID for this request.",
106405	//       "location": "path",
106406	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106407	//       "required": true,
106408	//       "type": "string"
106409	//     },
106410	//     "region": {
106411	//       "description": "Name of the region for this request.",
106412	//       "location": "path",
106413	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106414	//       "required": true,
106415	//       "type": "string"
106416	//     },
106417	//     "requestId": {
106418	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106419	//       "location": "query",
106420	//       "type": "string"
106421	//     }
106422	//   },
106423	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
106424	//   "response": {
106425	//     "$ref": "Operation"
106426	//   },
106427	//   "scopes": [
106428	//     "https://www.googleapis.com/auth/cloud-platform",
106429	//     "https://www.googleapis.com/auth/compute"
106430	//   ]
106431	// }
106432
106433}
106434
106435// method id "compute.packetMirrorings.get":
106436
106437type PacketMirroringsGetCall struct {
106438	s               *Service
106439	project         string
106440	region          string
106441	packetMirroring string
106442	urlParams_      gensupport.URLParams
106443	ifNoneMatch_    string
106444	ctx_            context.Context
106445	header_         http.Header
106446}
106447
106448// Get: Returns the specified PacketMirroring resource.
106449func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
106450	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106451	c.project = project
106452	c.region = region
106453	c.packetMirroring = packetMirroring
106454	return c
106455}
106456
106457// Fields allows partial responses to be retrieved. See
106458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106459// for more information.
106460func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
106461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106462	return c
106463}
106464
106465// IfNoneMatch sets the optional parameter which makes the operation
106466// fail if the object's ETag matches the given value. This is useful for
106467// getting updates only after the object has changed since the last
106468// request. Use googleapi.IsNotModified to check whether the response
106469// error from Do is the result of In-None-Match.
106470func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
106471	c.ifNoneMatch_ = entityTag
106472	return c
106473}
106474
106475// Context sets the context to be used in this call's Do method. Any
106476// pending HTTP request will be aborted if the provided context is
106477// canceled.
106478func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
106479	c.ctx_ = ctx
106480	return c
106481}
106482
106483// Header returns an http.Header that can be modified by the caller to
106484// add HTTP headers to the request.
106485func (c *PacketMirroringsGetCall) Header() http.Header {
106486	if c.header_ == nil {
106487		c.header_ = make(http.Header)
106488	}
106489	return c.header_
106490}
106491
106492func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
106493	reqHeaders := make(http.Header)
106494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106495	for k, v := range c.header_ {
106496		reqHeaders[k] = v
106497	}
106498	reqHeaders.Set("User-Agent", c.s.userAgent())
106499	if c.ifNoneMatch_ != "" {
106500		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106501	}
106502	var body io.Reader = nil
106503	c.urlParams_.Set("alt", alt)
106504	c.urlParams_.Set("prettyPrint", "false")
106505	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
106506	urls += "?" + c.urlParams_.Encode()
106507	req, err := http.NewRequest("GET", urls, body)
106508	if err != nil {
106509		return nil, err
106510	}
106511	req.Header = reqHeaders
106512	googleapi.Expand(req.URL, map[string]string{
106513		"project":         c.project,
106514		"region":          c.region,
106515		"packetMirroring": c.packetMirroring,
106516	})
106517	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106518}
106519
106520// Do executes the "compute.packetMirrorings.get" call.
106521// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
106522// status code is an error. Response headers are in either
106523// *PacketMirroring.ServerResponse.Header or (if a response was returned
106524// at all) in error.(*googleapi.Error).Header. Use
106525// googleapi.IsNotModified to check whether the returned error was
106526// because http.StatusNotModified was returned.
106527func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
106528	gensupport.SetOptions(c.urlParams_, opts...)
106529	res, err := c.doRequest("json")
106530	if res != nil && res.StatusCode == http.StatusNotModified {
106531		if res.Body != nil {
106532			res.Body.Close()
106533		}
106534		return nil, &googleapi.Error{
106535			Code:   res.StatusCode,
106536			Header: res.Header,
106537		}
106538	}
106539	if err != nil {
106540		return nil, err
106541	}
106542	defer googleapi.CloseBody(res)
106543	if err := googleapi.CheckResponse(res); err != nil {
106544		return nil, err
106545	}
106546	ret := &PacketMirroring{
106547		ServerResponse: googleapi.ServerResponse{
106548			Header:         res.Header,
106549			HTTPStatusCode: res.StatusCode,
106550		},
106551	}
106552	target := &ret
106553	if err := gensupport.DecodeResponse(target, res); err != nil {
106554		return nil, err
106555	}
106556	return ret, nil
106557	// {
106558	//   "description": "Returns the specified PacketMirroring resource.",
106559	//   "httpMethod": "GET",
106560	//   "id": "compute.packetMirrorings.get",
106561	//   "parameterOrder": [
106562	//     "project",
106563	//     "region",
106564	//     "packetMirroring"
106565	//   ],
106566	//   "parameters": {
106567	//     "packetMirroring": {
106568	//       "description": "Name of the PacketMirroring resource to return.",
106569	//       "location": "path",
106570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106571	//       "required": true,
106572	//       "type": "string"
106573	//     },
106574	//     "project": {
106575	//       "description": "Project ID for this request.",
106576	//       "location": "path",
106577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106578	//       "required": true,
106579	//       "type": "string"
106580	//     },
106581	//     "region": {
106582	//       "description": "Name of the region for this request.",
106583	//       "location": "path",
106584	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106585	//       "required": true,
106586	//       "type": "string"
106587	//     }
106588	//   },
106589	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
106590	//   "response": {
106591	//     "$ref": "PacketMirroring"
106592	//   },
106593	//   "scopes": [
106594	//     "https://www.googleapis.com/auth/cloud-platform",
106595	//     "https://www.googleapis.com/auth/compute",
106596	//     "https://www.googleapis.com/auth/compute.readonly"
106597	//   ]
106598	// }
106599
106600}
106601
106602// method id "compute.packetMirrorings.insert":
106603
106604type PacketMirroringsInsertCall struct {
106605	s               *Service
106606	project         string
106607	region          string
106608	packetmirroring *PacketMirroring
106609	urlParams_      gensupport.URLParams
106610	ctx_            context.Context
106611	header_         http.Header
106612}
106613
106614// Insert: Creates a PacketMirroring resource in the specified project
106615// and region using the data included in the request.
106616func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
106617	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106618	c.project = project
106619	c.region = region
106620	c.packetmirroring = packetmirroring
106621	return c
106622}
106623
106624// RequestId sets the optional parameter "requestId": An optional
106625// request ID to identify requests. Specify a unique request ID so that
106626// if you must retry your request, the server will know to ignore the
106627// request if it has already been completed.
106628//
106629// For example, consider a situation where you make an initial request
106630// and the request times out. If you make the request again with the
106631// same request ID, the server can check if original operation with the
106632// same request ID was received, and if so, will ignore the second
106633// request. This prevents clients from accidentally creating duplicate
106634// commitments.
106635//
106636// The request ID must be a valid UUID with the exception that zero UUID
106637// is not supported (00000000-0000-0000-0000-000000000000).
106638func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
106639	c.urlParams_.Set("requestId", requestId)
106640	return c
106641}
106642
106643// Fields allows partial responses to be retrieved. See
106644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106645// for more information.
106646func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
106647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106648	return c
106649}
106650
106651// Context sets the context to be used in this call's Do method. Any
106652// pending HTTP request will be aborted if the provided context is
106653// canceled.
106654func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
106655	c.ctx_ = ctx
106656	return c
106657}
106658
106659// Header returns an http.Header that can be modified by the caller to
106660// add HTTP headers to the request.
106661func (c *PacketMirroringsInsertCall) Header() http.Header {
106662	if c.header_ == nil {
106663		c.header_ = make(http.Header)
106664	}
106665	return c.header_
106666}
106667
106668func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
106669	reqHeaders := make(http.Header)
106670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106671	for k, v := range c.header_ {
106672		reqHeaders[k] = v
106673	}
106674	reqHeaders.Set("User-Agent", c.s.userAgent())
106675	var body io.Reader = nil
106676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
106677	if err != nil {
106678		return nil, err
106679	}
106680	reqHeaders.Set("Content-Type", "application/json")
106681	c.urlParams_.Set("alt", alt)
106682	c.urlParams_.Set("prettyPrint", "false")
106683	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
106684	urls += "?" + c.urlParams_.Encode()
106685	req, err := http.NewRequest("POST", urls, body)
106686	if err != nil {
106687		return nil, err
106688	}
106689	req.Header = reqHeaders
106690	googleapi.Expand(req.URL, map[string]string{
106691		"project": c.project,
106692		"region":  c.region,
106693	})
106694	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106695}
106696
106697// Do executes the "compute.packetMirrorings.insert" call.
106698// Exactly one of *Operation or error will be non-nil. Any non-2xx
106699// status code is an error. Response headers are in either
106700// *Operation.ServerResponse.Header or (if a response was returned at
106701// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106702// to check whether the returned error was because
106703// http.StatusNotModified was returned.
106704func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106705	gensupport.SetOptions(c.urlParams_, opts...)
106706	res, err := c.doRequest("json")
106707	if res != nil && res.StatusCode == http.StatusNotModified {
106708		if res.Body != nil {
106709			res.Body.Close()
106710		}
106711		return nil, &googleapi.Error{
106712			Code:   res.StatusCode,
106713			Header: res.Header,
106714		}
106715	}
106716	if err != nil {
106717		return nil, err
106718	}
106719	defer googleapi.CloseBody(res)
106720	if err := googleapi.CheckResponse(res); err != nil {
106721		return nil, err
106722	}
106723	ret := &Operation{
106724		ServerResponse: googleapi.ServerResponse{
106725			Header:         res.Header,
106726			HTTPStatusCode: res.StatusCode,
106727		},
106728	}
106729	target := &ret
106730	if err := gensupport.DecodeResponse(target, res); err != nil {
106731		return nil, err
106732	}
106733	return ret, nil
106734	// {
106735	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
106736	//   "httpMethod": "POST",
106737	//   "id": "compute.packetMirrorings.insert",
106738	//   "parameterOrder": [
106739	//     "project",
106740	//     "region"
106741	//   ],
106742	//   "parameters": {
106743	//     "project": {
106744	//       "description": "Project ID for this request.",
106745	//       "location": "path",
106746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106747	//       "required": true,
106748	//       "type": "string"
106749	//     },
106750	//     "region": {
106751	//       "description": "Name of the region for this request.",
106752	//       "location": "path",
106753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106754	//       "required": true,
106755	//       "type": "string"
106756	//     },
106757	//     "requestId": {
106758	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106759	//       "location": "query",
106760	//       "type": "string"
106761	//     }
106762	//   },
106763	//   "path": "{project}/regions/{region}/packetMirrorings",
106764	//   "request": {
106765	//     "$ref": "PacketMirroring"
106766	//   },
106767	//   "response": {
106768	//     "$ref": "Operation"
106769	//   },
106770	//   "scopes": [
106771	//     "https://www.googleapis.com/auth/cloud-platform",
106772	//     "https://www.googleapis.com/auth/compute"
106773	//   ]
106774	// }
106775
106776}
106777
106778// method id "compute.packetMirrorings.list":
106779
106780type PacketMirroringsListCall struct {
106781	s            *Service
106782	project      string
106783	region       string
106784	urlParams_   gensupport.URLParams
106785	ifNoneMatch_ string
106786	ctx_         context.Context
106787	header_      http.Header
106788}
106789
106790// List: Retrieves a list of PacketMirroring resources available to the
106791// specified project and region.
106792func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
106793	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106794	c.project = project
106795	c.region = region
106796	return c
106797}
106798
106799// Filter sets the optional parameter "filter": A filter expression that
106800// filters resources listed in the response. The expression must specify
106801// the field name, a comparison operator, and the value that you want to
106802// use for filtering. The value must be a string, a number, or a
106803// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106804// `<`.
106805//
106806// For example, if you are filtering Compute Engine instances, you can
106807// exclude instances named `example-instance` by specifying `name !=
106808// example-instance`.
106809//
106810// You can also filter nested fields. For example, you could specify
106811// `scheduling.automaticRestart = false` to include instances only if
106812// they are not scheduled for automatic restarts. You can use filtering
106813// on nested fields to filter based on resource labels.
106814//
106815// To filter on multiple expressions, provide each separate expression
106816// within parentheses. For example: ``` (scheduling.automaticRestart =
106817// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106818// is an `AND` expression. However, you can include `AND` and `OR`
106819// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106820// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106821// (scheduling.automaticRestart = true) ```
106822func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
106823	c.urlParams_.Set("filter", filter)
106824	return c
106825}
106826
106827// MaxResults sets the optional parameter "maxResults": The maximum
106828// number of results per page that should be returned. If the number of
106829// available results is larger than `maxResults`, Compute Engine returns
106830// a `nextPageToken` that can be used to get the next page of results in
106831// subsequent list requests. Acceptable values are `0` to `500`,
106832// inclusive. (Default: `500`)
106833func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
106834	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106835	return c
106836}
106837
106838// OrderBy sets the optional parameter "orderBy": Sorts list results by
106839// a certain order. By default, results are returned in alphanumerical
106840// order based on the resource name.
106841//
106842// You can also sort results in descending order based on the creation
106843// timestamp using `orderBy="creationTimestamp desc". This sorts
106844// results based on the `creationTimestamp` field in reverse
106845// chronological order (newest result first). Use this to sort resources
106846// like operations so that the newest operation is returned
106847// first.
106848//
106849// Currently, only sorting by `name` or `creationTimestamp desc` is
106850// supported.
106851func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
106852	c.urlParams_.Set("orderBy", orderBy)
106853	return c
106854}
106855
106856// PageToken sets the optional parameter "pageToken": Specifies a page
106857// token to use. Set `pageToken` to the `nextPageToken` returned by a
106858// previous list request to get the next page of results.
106859func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
106860	c.urlParams_.Set("pageToken", pageToken)
106861	return c
106862}
106863
106864// Fields allows partial responses to be retrieved. See
106865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106866// for more information.
106867func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
106868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106869	return c
106870}
106871
106872// IfNoneMatch sets the optional parameter which makes the operation
106873// fail if the object's ETag matches the given value. This is useful for
106874// getting updates only after the object has changed since the last
106875// request. Use googleapi.IsNotModified to check whether the response
106876// error from Do is the result of In-None-Match.
106877func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
106878	c.ifNoneMatch_ = entityTag
106879	return c
106880}
106881
106882// Context sets the context to be used in this call's Do method. Any
106883// pending HTTP request will be aborted if the provided context is
106884// canceled.
106885func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
106886	c.ctx_ = ctx
106887	return c
106888}
106889
106890// Header returns an http.Header that can be modified by the caller to
106891// add HTTP headers to the request.
106892func (c *PacketMirroringsListCall) Header() http.Header {
106893	if c.header_ == nil {
106894		c.header_ = make(http.Header)
106895	}
106896	return c.header_
106897}
106898
106899func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
106900	reqHeaders := make(http.Header)
106901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
106902	for k, v := range c.header_ {
106903		reqHeaders[k] = v
106904	}
106905	reqHeaders.Set("User-Agent", c.s.userAgent())
106906	if c.ifNoneMatch_ != "" {
106907		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106908	}
106909	var body io.Reader = nil
106910	c.urlParams_.Set("alt", alt)
106911	c.urlParams_.Set("prettyPrint", "false")
106912	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
106913	urls += "?" + c.urlParams_.Encode()
106914	req, err := http.NewRequest("GET", urls, body)
106915	if err != nil {
106916		return nil, err
106917	}
106918	req.Header = reqHeaders
106919	googleapi.Expand(req.URL, map[string]string{
106920		"project": c.project,
106921		"region":  c.region,
106922	})
106923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106924}
106925
106926// Do executes the "compute.packetMirrorings.list" call.
106927// Exactly one of *PacketMirroringList or error will be non-nil. Any
106928// non-2xx status code is an error. Response headers are in either
106929// *PacketMirroringList.ServerResponse.Header or (if a response was
106930// returned at all) in error.(*googleapi.Error).Header. Use
106931// googleapi.IsNotModified to check whether the returned error was
106932// because http.StatusNotModified was returned.
106933func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
106934	gensupport.SetOptions(c.urlParams_, opts...)
106935	res, err := c.doRequest("json")
106936	if res != nil && res.StatusCode == http.StatusNotModified {
106937		if res.Body != nil {
106938			res.Body.Close()
106939		}
106940		return nil, &googleapi.Error{
106941			Code:   res.StatusCode,
106942			Header: res.Header,
106943		}
106944	}
106945	if err != nil {
106946		return nil, err
106947	}
106948	defer googleapi.CloseBody(res)
106949	if err := googleapi.CheckResponse(res); err != nil {
106950		return nil, err
106951	}
106952	ret := &PacketMirroringList{
106953		ServerResponse: googleapi.ServerResponse{
106954			Header:         res.Header,
106955			HTTPStatusCode: res.StatusCode,
106956		},
106957	}
106958	target := &ret
106959	if err := gensupport.DecodeResponse(target, res); err != nil {
106960		return nil, err
106961	}
106962	return ret, nil
106963	// {
106964	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
106965	//   "httpMethod": "GET",
106966	//   "id": "compute.packetMirrorings.list",
106967	//   "parameterOrder": [
106968	//     "project",
106969	//     "region"
106970	//   ],
106971	//   "parameters": {
106972	//     "filter": {
106973	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106974	//       "location": "query",
106975	//       "type": "string"
106976	//     },
106977	//     "maxResults": {
106978	//       "default": "500",
106979	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106980	//       "format": "uint32",
106981	//       "location": "query",
106982	//       "minimum": "0",
106983	//       "type": "integer"
106984	//     },
106985	//     "orderBy": {
106986	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106987	//       "location": "query",
106988	//       "type": "string"
106989	//     },
106990	//     "pageToken": {
106991	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106992	//       "location": "query",
106993	//       "type": "string"
106994	//     },
106995	//     "project": {
106996	//       "description": "Project ID for this request.",
106997	//       "location": "path",
106998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106999	//       "required": true,
107000	//       "type": "string"
107001	//     },
107002	//     "region": {
107003	//       "description": "Name of the region for this request.",
107004	//       "location": "path",
107005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107006	//       "required": true,
107007	//       "type": "string"
107008	//     }
107009	//   },
107010	//   "path": "{project}/regions/{region}/packetMirrorings",
107011	//   "response": {
107012	//     "$ref": "PacketMirroringList"
107013	//   },
107014	//   "scopes": [
107015	//     "https://www.googleapis.com/auth/cloud-platform",
107016	//     "https://www.googleapis.com/auth/compute",
107017	//     "https://www.googleapis.com/auth/compute.readonly"
107018	//   ]
107019	// }
107020
107021}
107022
107023// Pages invokes f for each page of results.
107024// A non-nil error returned from f will halt the iteration.
107025// The provided context supersedes any context provided to the Context method.
107026func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
107027	c.ctx_ = ctx
107028	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107029	for {
107030		x, err := c.Do()
107031		if err != nil {
107032			return err
107033		}
107034		if err := f(x); err != nil {
107035			return err
107036		}
107037		if x.NextPageToken == "" {
107038			return nil
107039		}
107040		c.PageToken(x.NextPageToken)
107041	}
107042}
107043
107044// method id "compute.packetMirrorings.patch":
107045
107046type PacketMirroringsPatchCall struct {
107047	s               *Service
107048	project         string
107049	region          string
107050	packetMirroring string
107051	packetmirroring *PacketMirroring
107052	urlParams_      gensupport.URLParams
107053	ctx_            context.Context
107054	header_         http.Header
107055}
107056
107057// Patch: Patches the specified PacketMirroring resource with the data
107058// included in the request. This method supports PATCH semantics and
107059// uses JSON merge patch format and processing rules.
107060func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
107061	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107062	c.project = project
107063	c.region = region
107064	c.packetMirroring = packetMirroring
107065	c.packetmirroring = packetmirroring
107066	return c
107067}
107068
107069// RequestId sets the optional parameter "requestId": An optional
107070// request ID to identify requests. Specify a unique request ID so that
107071// if you must retry your request, the server will know to ignore the
107072// request if it has already been completed.
107073//
107074// For example, consider a situation where you make an initial request
107075// and the request times out. If you make the request again with the
107076// same request ID, the server can check if original operation with the
107077// same request ID was received, and if so, will ignore the second
107078// request. This prevents clients from accidentally creating duplicate
107079// commitments.
107080//
107081// The request ID must be a valid UUID with the exception that zero UUID
107082// is not supported (00000000-0000-0000-0000-000000000000).
107083func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
107084	c.urlParams_.Set("requestId", requestId)
107085	return c
107086}
107087
107088// Fields allows partial responses to be retrieved. See
107089// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107090// for more information.
107091func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
107092	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107093	return c
107094}
107095
107096// Context sets the context to be used in this call's Do method. Any
107097// pending HTTP request will be aborted if the provided context is
107098// canceled.
107099func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
107100	c.ctx_ = ctx
107101	return c
107102}
107103
107104// Header returns an http.Header that can be modified by the caller to
107105// add HTTP headers to the request.
107106func (c *PacketMirroringsPatchCall) Header() http.Header {
107107	if c.header_ == nil {
107108		c.header_ = make(http.Header)
107109	}
107110	return c.header_
107111}
107112
107113func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
107114	reqHeaders := make(http.Header)
107115	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107116	for k, v := range c.header_ {
107117		reqHeaders[k] = v
107118	}
107119	reqHeaders.Set("User-Agent", c.s.userAgent())
107120	var body io.Reader = nil
107121	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
107122	if err != nil {
107123		return nil, err
107124	}
107125	reqHeaders.Set("Content-Type", "application/json")
107126	c.urlParams_.Set("alt", alt)
107127	c.urlParams_.Set("prettyPrint", "false")
107128	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
107129	urls += "?" + c.urlParams_.Encode()
107130	req, err := http.NewRequest("PATCH", urls, body)
107131	if err != nil {
107132		return nil, err
107133	}
107134	req.Header = reqHeaders
107135	googleapi.Expand(req.URL, map[string]string{
107136		"project":         c.project,
107137		"region":          c.region,
107138		"packetMirroring": c.packetMirroring,
107139	})
107140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107141}
107142
107143// Do executes the "compute.packetMirrorings.patch" call.
107144// Exactly one of *Operation or error will be non-nil. Any non-2xx
107145// status code is an error. Response headers are in either
107146// *Operation.ServerResponse.Header or (if a response was returned at
107147// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107148// to check whether the returned error was because
107149// http.StatusNotModified was returned.
107150func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107151	gensupport.SetOptions(c.urlParams_, opts...)
107152	res, err := c.doRequest("json")
107153	if res != nil && res.StatusCode == http.StatusNotModified {
107154		if res.Body != nil {
107155			res.Body.Close()
107156		}
107157		return nil, &googleapi.Error{
107158			Code:   res.StatusCode,
107159			Header: res.Header,
107160		}
107161	}
107162	if err != nil {
107163		return nil, err
107164	}
107165	defer googleapi.CloseBody(res)
107166	if err := googleapi.CheckResponse(res); err != nil {
107167		return nil, err
107168	}
107169	ret := &Operation{
107170		ServerResponse: googleapi.ServerResponse{
107171			Header:         res.Header,
107172			HTTPStatusCode: res.StatusCode,
107173		},
107174	}
107175	target := &ret
107176	if err := gensupport.DecodeResponse(target, res); err != nil {
107177		return nil, err
107178	}
107179	return ret, nil
107180	// {
107181	//   "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.",
107182	//   "httpMethod": "PATCH",
107183	//   "id": "compute.packetMirrorings.patch",
107184	//   "parameterOrder": [
107185	//     "project",
107186	//     "region",
107187	//     "packetMirroring"
107188	//   ],
107189	//   "parameters": {
107190	//     "packetMirroring": {
107191	//       "description": "Name of the PacketMirroring resource to patch.",
107192	//       "location": "path",
107193	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107194	//       "required": true,
107195	//       "type": "string"
107196	//     },
107197	//     "project": {
107198	//       "description": "Project ID for this request.",
107199	//       "location": "path",
107200	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107201	//       "required": true,
107202	//       "type": "string"
107203	//     },
107204	//     "region": {
107205	//       "description": "Name of the region for this request.",
107206	//       "location": "path",
107207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107208	//       "required": true,
107209	//       "type": "string"
107210	//     },
107211	//     "requestId": {
107212	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107213	//       "location": "query",
107214	//       "type": "string"
107215	//     }
107216	//   },
107217	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
107218	//   "request": {
107219	//     "$ref": "PacketMirroring"
107220	//   },
107221	//   "response": {
107222	//     "$ref": "Operation"
107223	//   },
107224	//   "scopes": [
107225	//     "https://www.googleapis.com/auth/cloud-platform",
107226	//     "https://www.googleapis.com/auth/compute"
107227	//   ]
107228	// }
107229
107230}
107231
107232// method id "compute.packetMirrorings.testIamPermissions":
107233
107234type PacketMirroringsTestIamPermissionsCall struct {
107235	s                      *Service
107236	project                string
107237	region                 string
107238	resource               string
107239	testpermissionsrequest *TestPermissionsRequest
107240	urlParams_             gensupport.URLParams
107241	ctx_                   context.Context
107242	header_                http.Header
107243}
107244
107245// TestIamPermissions: Returns permissions that a caller has on the
107246// specified resource.
107247func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
107248	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107249	c.project = project
107250	c.region = region
107251	c.resource = resource
107252	c.testpermissionsrequest = testpermissionsrequest
107253	return c
107254}
107255
107256// Fields allows partial responses to be retrieved. See
107257// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107258// for more information.
107259func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
107260	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107261	return c
107262}
107263
107264// Context sets the context to be used in this call's Do method. Any
107265// pending HTTP request will be aborted if the provided context is
107266// canceled.
107267func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
107268	c.ctx_ = ctx
107269	return c
107270}
107271
107272// Header returns an http.Header that can be modified by the caller to
107273// add HTTP headers to the request.
107274func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
107275	if c.header_ == nil {
107276		c.header_ = make(http.Header)
107277	}
107278	return c.header_
107279}
107280
107281func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
107282	reqHeaders := make(http.Header)
107283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107284	for k, v := range c.header_ {
107285		reqHeaders[k] = v
107286	}
107287	reqHeaders.Set("User-Agent", c.s.userAgent())
107288	var body io.Reader = nil
107289	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
107290	if err != nil {
107291		return nil, err
107292	}
107293	reqHeaders.Set("Content-Type", "application/json")
107294	c.urlParams_.Set("alt", alt)
107295	c.urlParams_.Set("prettyPrint", "false")
107296	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
107297	urls += "?" + c.urlParams_.Encode()
107298	req, err := http.NewRequest("POST", urls, body)
107299	if err != nil {
107300		return nil, err
107301	}
107302	req.Header = reqHeaders
107303	googleapi.Expand(req.URL, map[string]string{
107304		"project":  c.project,
107305		"region":   c.region,
107306		"resource": c.resource,
107307	})
107308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107309}
107310
107311// Do executes the "compute.packetMirrorings.testIamPermissions" call.
107312// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
107313// non-2xx status code is an error. Response headers are in either
107314// *TestPermissionsResponse.ServerResponse.Header or (if a response was
107315// returned at all) in error.(*googleapi.Error).Header. Use
107316// googleapi.IsNotModified to check whether the returned error was
107317// because http.StatusNotModified was returned.
107318func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
107319	gensupport.SetOptions(c.urlParams_, opts...)
107320	res, err := c.doRequest("json")
107321	if res != nil && res.StatusCode == http.StatusNotModified {
107322		if res.Body != nil {
107323			res.Body.Close()
107324		}
107325		return nil, &googleapi.Error{
107326			Code:   res.StatusCode,
107327			Header: res.Header,
107328		}
107329	}
107330	if err != nil {
107331		return nil, err
107332	}
107333	defer googleapi.CloseBody(res)
107334	if err := googleapi.CheckResponse(res); err != nil {
107335		return nil, err
107336	}
107337	ret := &TestPermissionsResponse{
107338		ServerResponse: googleapi.ServerResponse{
107339			Header:         res.Header,
107340			HTTPStatusCode: res.StatusCode,
107341		},
107342	}
107343	target := &ret
107344	if err := gensupport.DecodeResponse(target, res); err != nil {
107345		return nil, err
107346	}
107347	return ret, nil
107348	// {
107349	//   "description": "Returns permissions that a caller has on the specified resource.",
107350	//   "httpMethod": "POST",
107351	//   "id": "compute.packetMirrorings.testIamPermissions",
107352	//   "parameterOrder": [
107353	//     "project",
107354	//     "region",
107355	//     "resource"
107356	//   ],
107357	//   "parameters": {
107358	//     "project": {
107359	//       "description": "Project ID for this request.",
107360	//       "location": "path",
107361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107362	//       "required": true,
107363	//       "type": "string"
107364	//     },
107365	//     "region": {
107366	//       "description": "The name of the region for this request.",
107367	//       "location": "path",
107368	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107369	//       "required": true,
107370	//       "type": "string"
107371	//     },
107372	//     "resource": {
107373	//       "description": "Name or id of the resource for this request.",
107374	//       "location": "path",
107375	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107376	//       "required": true,
107377	//       "type": "string"
107378	//     }
107379	//   },
107380	//   "path": "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
107381	//   "request": {
107382	//     "$ref": "TestPermissionsRequest"
107383	//   },
107384	//   "response": {
107385	//     "$ref": "TestPermissionsResponse"
107386	//   },
107387	//   "scopes": [
107388	//     "https://www.googleapis.com/auth/cloud-platform",
107389	//     "https://www.googleapis.com/auth/compute",
107390	//     "https://www.googleapis.com/auth/compute.readonly"
107391	//   ]
107392	// }
107393
107394}
107395
107396// method id "compute.projects.disableXpnHost":
107397
107398type ProjectsDisableXpnHostCall struct {
107399	s          *Service
107400	project    string
107401	urlParams_ gensupport.URLParams
107402	ctx_       context.Context
107403	header_    http.Header
107404}
107405
107406// DisableXpnHost: Disable this project as a shared VPC host project.
107407func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
107408	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107409	c.project = project
107410	return c
107411}
107412
107413// RequestId sets the optional parameter "requestId": An optional
107414// request ID to identify requests. Specify a unique request ID so that
107415// if you must retry your request, the server will know to ignore the
107416// request if it has already been completed.
107417//
107418// For example, consider a situation where you make an initial request
107419// and the request times out. If you make the request again with the
107420// same request ID, the server can check if original operation with the
107421// same request ID was received, and if so, will ignore the second
107422// request. This prevents clients from accidentally creating duplicate
107423// commitments.
107424//
107425// The request ID must be a valid UUID with the exception that zero UUID
107426// is not supported (00000000-0000-0000-0000-000000000000).
107427func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
107428	c.urlParams_.Set("requestId", requestId)
107429	return c
107430}
107431
107432// Fields allows partial responses to be retrieved. See
107433// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107434// for more information.
107435func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
107436	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107437	return c
107438}
107439
107440// Context sets the context to be used in this call's Do method. Any
107441// pending HTTP request will be aborted if the provided context is
107442// canceled.
107443func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
107444	c.ctx_ = ctx
107445	return c
107446}
107447
107448// Header returns an http.Header that can be modified by the caller to
107449// add HTTP headers to the request.
107450func (c *ProjectsDisableXpnHostCall) Header() http.Header {
107451	if c.header_ == nil {
107452		c.header_ = make(http.Header)
107453	}
107454	return c.header_
107455}
107456
107457func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
107458	reqHeaders := make(http.Header)
107459	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107460	for k, v := range c.header_ {
107461		reqHeaders[k] = v
107462	}
107463	reqHeaders.Set("User-Agent", c.s.userAgent())
107464	var body io.Reader = nil
107465	c.urlParams_.Set("alt", alt)
107466	c.urlParams_.Set("prettyPrint", "false")
107467	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
107468	urls += "?" + c.urlParams_.Encode()
107469	req, err := http.NewRequest("POST", urls, body)
107470	if err != nil {
107471		return nil, err
107472	}
107473	req.Header = reqHeaders
107474	googleapi.Expand(req.URL, map[string]string{
107475		"project": c.project,
107476	})
107477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107478}
107479
107480// Do executes the "compute.projects.disableXpnHost" call.
107481// Exactly one of *Operation or error will be non-nil. Any non-2xx
107482// status code is an error. Response headers are in either
107483// *Operation.ServerResponse.Header or (if a response was returned at
107484// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107485// to check whether the returned error was because
107486// http.StatusNotModified was returned.
107487func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107488	gensupport.SetOptions(c.urlParams_, opts...)
107489	res, err := c.doRequest("json")
107490	if res != nil && res.StatusCode == http.StatusNotModified {
107491		if res.Body != nil {
107492			res.Body.Close()
107493		}
107494		return nil, &googleapi.Error{
107495			Code:   res.StatusCode,
107496			Header: res.Header,
107497		}
107498	}
107499	if err != nil {
107500		return nil, err
107501	}
107502	defer googleapi.CloseBody(res)
107503	if err := googleapi.CheckResponse(res); err != nil {
107504		return nil, err
107505	}
107506	ret := &Operation{
107507		ServerResponse: googleapi.ServerResponse{
107508			Header:         res.Header,
107509			HTTPStatusCode: res.StatusCode,
107510		},
107511	}
107512	target := &ret
107513	if err := gensupport.DecodeResponse(target, res); err != nil {
107514		return nil, err
107515	}
107516	return ret, nil
107517	// {
107518	//   "description": "Disable this project as a shared VPC host project.",
107519	//   "httpMethod": "POST",
107520	//   "id": "compute.projects.disableXpnHost",
107521	//   "parameterOrder": [
107522	//     "project"
107523	//   ],
107524	//   "parameters": {
107525	//     "project": {
107526	//       "description": "Project ID for this request.",
107527	//       "location": "path",
107528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107529	//       "required": true,
107530	//       "type": "string"
107531	//     },
107532	//     "requestId": {
107533	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107534	//       "location": "query",
107535	//       "type": "string"
107536	//     }
107537	//   },
107538	//   "path": "{project}/disableXpnHost",
107539	//   "response": {
107540	//     "$ref": "Operation"
107541	//   },
107542	//   "scopes": [
107543	//     "https://www.googleapis.com/auth/cloud-platform",
107544	//     "https://www.googleapis.com/auth/compute"
107545	//   ]
107546	// }
107547
107548}
107549
107550// method id "compute.projects.disableXpnResource":
107551
107552type ProjectsDisableXpnResourceCall struct {
107553	s                                 *Service
107554	project                           string
107555	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
107556	urlParams_                        gensupport.URLParams
107557	ctx_                              context.Context
107558	header_                           http.Header
107559}
107560
107561// DisableXpnResource: Disable a service resource (also known as service
107562// project) associated with this host project.
107563func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
107564	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107565	c.project = project
107566	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
107567	return c
107568}
107569
107570// RequestId sets the optional parameter "requestId": An optional
107571// request ID to identify requests. Specify a unique request ID so that
107572// if you must retry your request, the server will know to ignore the
107573// request if it has already been completed.
107574//
107575// For example, consider a situation where you make an initial request
107576// and the request times out. If you make the request again with the
107577// same request ID, the server can check if original operation with the
107578// same request ID was received, and if so, will ignore the second
107579// request. This prevents clients from accidentally creating duplicate
107580// commitments.
107581//
107582// The request ID must be a valid UUID with the exception that zero UUID
107583// is not supported (00000000-0000-0000-0000-000000000000).
107584func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
107585	c.urlParams_.Set("requestId", requestId)
107586	return c
107587}
107588
107589// Fields allows partial responses to be retrieved. See
107590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107591// for more information.
107592func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
107593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107594	return c
107595}
107596
107597// Context sets the context to be used in this call's Do method. Any
107598// pending HTTP request will be aborted if the provided context is
107599// canceled.
107600func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
107601	c.ctx_ = ctx
107602	return c
107603}
107604
107605// Header returns an http.Header that can be modified by the caller to
107606// add HTTP headers to the request.
107607func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
107608	if c.header_ == nil {
107609		c.header_ = make(http.Header)
107610	}
107611	return c.header_
107612}
107613
107614func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
107615	reqHeaders := make(http.Header)
107616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107617	for k, v := range c.header_ {
107618		reqHeaders[k] = v
107619	}
107620	reqHeaders.Set("User-Agent", c.s.userAgent())
107621	var body io.Reader = nil
107622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
107623	if err != nil {
107624		return nil, err
107625	}
107626	reqHeaders.Set("Content-Type", "application/json")
107627	c.urlParams_.Set("alt", alt)
107628	c.urlParams_.Set("prettyPrint", "false")
107629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
107630	urls += "?" + c.urlParams_.Encode()
107631	req, err := http.NewRequest("POST", urls, body)
107632	if err != nil {
107633		return nil, err
107634	}
107635	req.Header = reqHeaders
107636	googleapi.Expand(req.URL, map[string]string{
107637		"project": c.project,
107638	})
107639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107640}
107641
107642// Do executes the "compute.projects.disableXpnResource" call.
107643// Exactly one of *Operation or error will be non-nil. Any non-2xx
107644// status code is an error. Response headers are in either
107645// *Operation.ServerResponse.Header or (if a response was returned at
107646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107647// to check whether the returned error was because
107648// http.StatusNotModified was returned.
107649func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107650	gensupport.SetOptions(c.urlParams_, opts...)
107651	res, err := c.doRequest("json")
107652	if res != nil && res.StatusCode == http.StatusNotModified {
107653		if res.Body != nil {
107654			res.Body.Close()
107655		}
107656		return nil, &googleapi.Error{
107657			Code:   res.StatusCode,
107658			Header: res.Header,
107659		}
107660	}
107661	if err != nil {
107662		return nil, err
107663	}
107664	defer googleapi.CloseBody(res)
107665	if err := googleapi.CheckResponse(res); err != nil {
107666		return nil, err
107667	}
107668	ret := &Operation{
107669		ServerResponse: googleapi.ServerResponse{
107670			Header:         res.Header,
107671			HTTPStatusCode: res.StatusCode,
107672		},
107673	}
107674	target := &ret
107675	if err := gensupport.DecodeResponse(target, res); err != nil {
107676		return nil, err
107677	}
107678	return ret, nil
107679	// {
107680	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
107681	//   "httpMethod": "POST",
107682	//   "id": "compute.projects.disableXpnResource",
107683	//   "parameterOrder": [
107684	//     "project"
107685	//   ],
107686	//   "parameters": {
107687	//     "project": {
107688	//       "description": "Project ID for this request.",
107689	//       "location": "path",
107690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107691	//       "required": true,
107692	//       "type": "string"
107693	//     },
107694	//     "requestId": {
107695	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107696	//       "location": "query",
107697	//       "type": "string"
107698	//     }
107699	//   },
107700	//   "path": "{project}/disableXpnResource",
107701	//   "request": {
107702	//     "$ref": "ProjectsDisableXpnResourceRequest"
107703	//   },
107704	//   "response": {
107705	//     "$ref": "Operation"
107706	//   },
107707	//   "scopes": [
107708	//     "https://www.googleapis.com/auth/cloud-platform",
107709	//     "https://www.googleapis.com/auth/compute"
107710	//   ]
107711	// }
107712
107713}
107714
107715// method id "compute.projects.enableXpnHost":
107716
107717type ProjectsEnableXpnHostCall struct {
107718	s          *Service
107719	project    string
107720	urlParams_ gensupport.URLParams
107721	ctx_       context.Context
107722	header_    http.Header
107723}
107724
107725// EnableXpnHost: Enable this project as a shared VPC host project.
107726func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
107727	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107728	c.project = project
107729	return c
107730}
107731
107732// RequestId sets the optional parameter "requestId": An optional
107733// request ID to identify requests. Specify a unique request ID so that
107734// if you must retry your request, the server will know to ignore the
107735// request if it has already been completed.
107736//
107737// For example, consider a situation where you make an initial request
107738// and the request times out. If you make the request again with the
107739// same request ID, the server can check if original operation with the
107740// same request ID was received, and if so, will ignore the second
107741// request. This prevents clients from accidentally creating duplicate
107742// commitments.
107743//
107744// The request ID must be a valid UUID with the exception that zero UUID
107745// is not supported (00000000-0000-0000-0000-000000000000).
107746func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
107747	c.urlParams_.Set("requestId", requestId)
107748	return c
107749}
107750
107751// Fields allows partial responses to be retrieved. See
107752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107753// for more information.
107754func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
107755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107756	return c
107757}
107758
107759// Context sets the context to be used in this call's Do method. Any
107760// pending HTTP request will be aborted if the provided context is
107761// canceled.
107762func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
107763	c.ctx_ = ctx
107764	return c
107765}
107766
107767// Header returns an http.Header that can be modified by the caller to
107768// add HTTP headers to the request.
107769func (c *ProjectsEnableXpnHostCall) Header() http.Header {
107770	if c.header_ == nil {
107771		c.header_ = make(http.Header)
107772	}
107773	return c.header_
107774}
107775
107776func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
107777	reqHeaders := make(http.Header)
107778	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107779	for k, v := range c.header_ {
107780		reqHeaders[k] = v
107781	}
107782	reqHeaders.Set("User-Agent", c.s.userAgent())
107783	var body io.Reader = nil
107784	c.urlParams_.Set("alt", alt)
107785	c.urlParams_.Set("prettyPrint", "false")
107786	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
107787	urls += "?" + c.urlParams_.Encode()
107788	req, err := http.NewRequest("POST", urls, body)
107789	if err != nil {
107790		return nil, err
107791	}
107792	req.Header = reqHeaders
107793	googleapi.Expand(req.URL, map[string]string{
107794		"project": c.project,
107795	})
107796	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107797}
107798
107799// Do executes the "compute.projects.enableXpnHost" call.
107800// Exactly one of *Operation or error will be non-nil. Any non-2xx
107801// status code is an error. Response headers are in either
107802// *Operation.ServerResponse.Header or (if a response was returned at
107803// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107804// to check whether the returned error was because
107805// http.StatusNotModified was returned.
107806func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107807	gensupport.SetOptions(c.urlParams_, opts...)
107808	res, err := c.doRequest("json")
107809	if res != nil && res.StatusCode == http.StatusNotModified {
107810		if res.Body != nil {
107811			res.Body.Close()
107812		}
107813		return nil, &googleapi.Error{
107814			Code:   res.StatusCode,
107815			Header: res.Header,
107816		}
107817	}
107818	if err != nil {
107819		return nil, err
107820	}
107821	defer googleapi.CloseBody(res)
107822	if err := googleapi.CheckResponse(res); err != nil {
107823		return nil, err
107824	}
107825	ret := &Operation{
107826		ServerResponse: googleapi.ServerResponse{
107827			Header:         res.Header,
107828			HTTPStatusCode: res.StatusCode,
107829		},
107830	}
107831	target := &ret
107832	if err := gensupport.DecodeResponse(target, res); err != nil {
107833		return nil, err
107834	}
107835	return ret, nil
107836	// {
107837	//   "description": "Enable this project as a shared VPC host project.",
107838	//   "httpMethod": "POST",
107839	//   "id": "compute.projects.enableXpnHost",
107840	//   "parameterOrder": [
107841	//     "project"
107842	//   ],
107843	//   "parameters": {
107844	//     "project": {
107845	//       "description": "Project ID for this request.",
107846	//       "location": "path",
107847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107848	//       "required": true,
107849	//       "type": "string"
107850	//     },
107851	//     "requestId": {
107852	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107853	//       "location": "query",
107854	//       "type": "string"
107855	//     }
107856	//   },
107857	//   "path": "{project}/enableXpnHost",
107858	//   "response": {
107859	//     "$ref": "Operation"
107860	//   },
107861	//   "scopes": [
107862	//     "https://www.googleapis.com/auth/cloud-platform",
107863	//     "https://www.googleapis.com/auth/compute"
107864	//   ]
107865	// }
107866
107867}
107868
107869// method id "compute.projects.enableXpnResource":
107870
107871type ProjectsEnableXpnResourceCall struct {
107872	s                                *Service
107873	project                          string
107874	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
107875	urlParams_                       gensupport.URLParams
107876	ctx_                             context.Context
107877	header_                          http.Header
107878}
107879
107880// EnableXpnResource: Enable service resource (a.k.a service project)
107881// for a host project, so that subnets in the host project can be used
107882// by instances in the service project.
107883func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
107884	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107885	c.project = project
107886	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
107887	return c
107888}
107889
107890// RequestId sets the optional parameter "requestId": An optional
107891// request ID to identify requests. Specify a unique request ID so that
107892// if you must retry your request, the server will know to ignore the
107893// request if it has already been completed.
107894//
107895// For example, consider a situation where you make an initial request
107896// and the request times out. If you make the request again with the
107897// same request ID, the server can check if original operation with the
107898// same request ID was received, and if so, will ignore the second
107899// request. This prevents clients from accidentally creating duplicate
107900// commitments.
107901//
107902// The request ID must be a valid UUID with the exception that zero UUID
107903// is not supported (00000000-0000-0000-0000-000000000000).
107904func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
107905	c.urlParams_.Set("requestId", requestId)
107906	return c
107907}
107908
107909// Fields allows partial responses to be retrieved. See
107910// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107911// for more information.
107912func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
107913	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107914	return c
107915}
107916
107917// Context sets the context to be used in this call's Do method. Any
107918// pending HTTP request will be aborted if the provided context is
107919// canceled.
107920func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
107921	c.ctx_ = ctx
107922	return c
107923}
107924
107925// Header returns an http.Header that can be modified by the caller to
107926// add HTTP headers to the request.
107927func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
107928	if c.header_ == nil {
107929		c.header_ = make(http.Header)
107930	}
107931	return c.header_
107932}
107933
107934func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
107935	reqHeaders := make(http.Header)
107936	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
107937	for k, v := range c.header_ {
107938		reqHeaders[k] = v
107939	}
107940	reqHeaders.Set("User-Agent", c.s.userAgent())
107941	var body io.Reader = nil
107942	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
107943	if err != nil {
107944		return nil, err
107945	}
107946	reqHeaders.Set("Content-Type", "application/json")
107947	c.urlParams_.Set("alt", alt)
107948	c.urlParams_.Set("prettyPrint", "false")
107949	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
107950	urls += "?" + c.urlParams_.Encode()
107951	req, err := http.NewRequest("POST", urls, body)
107952	if err != nil {
107953		return nil, err
107954	}
107955	req.Header = reqHeaders
107956	googleapi.Expand(req.URL, map[string]string{
107957		"project": c.project,
107958	})
107959	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107960}
107961
107962// Do executes the "compute.projects.enableXpnResource" call.
107963// Exactly one of *Operation or error will be non-nil. Any non-2xx
107964// status code is an error. Response headers are in either
107965// *Operation.ServerResponse.Header or (if a response was returned at
107966// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107967// to check whether the returned error was because
107968// http.StatusNotModified was returned.
107969func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107970	gensupport.SetOptions(c.urlParams_, opts...)
107971	res, err := c.doRequest("json")
107972	if res != nil && res.StatusCode == http.StatusNotModified {
107973		if res.Body != nil {
107974			res.Body.Close()
107975		}
107976		return nil, &googleapi.Error{
107977			Code:   res.StatusCode,
107978			Header: res.Header,
107979		}
107980	}
107981	if err != nil {
107982		return nil, err
107983	}
107984	defer googleapi.CloseBody(res)
107985	if err := googleapi.CheckResponse(res); err != nil {
107986		return nil, err
107987	}
107988	ret := &Operation{
107989		ServerResponse: googleapi.ServerResponse{
107990			Header:         res.Header,
107991			HTTPStatusCode: res.StatusCode,
107992		},
107993	}
107994	target := &ret
107995	if err := gensupport.DecodeResponse(target, res); err != nil {
107996		return nil, err
107997	}
107998	return ret, nil
107999	// {
108000	//   "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.",
108001	//   "httpMethod": "POST",
108002	//   "id": "compute.projects.enableXpnResource",
108003	//   "parameterOrder": [
108004	//     "project"
108005	//   ],
108006	//   "parameters": {
108007	//     "project": {
108008	//       "description": "Project ID for this request.",
108009	//       "location": "path",
108010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108011	//       "required": true,
108012	//       "type": "string"
108013	//     },
108014	//     "requestId": {
108015	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108016	//       "location": "query",
108017	//       "type": "string"
108018	//     }
108019	//   },
108020	//   "path": "{project}/enableXpnResource",
108021	//   "request": {
108022	//     "$ref": "ProjectsEnableXpnResourceRequest"
108023	//   },
108024	//   "response": {
108025	//     "$ref": "Operation"
108026	//   },
108027	//   "scopes": [
108028	//     "https://www.googleapis.com/auth/cloud-platform",
108029	//     "https://www.googleapis.com/auth/compute"
108030	//   ]
108031	// }
108032
108033}
108034
108035// method id "compute.projects.get":
108036
108037type ProjectsGetCall struct {
108038	s            *Service
108039	project      string
108040	urlParams_   gensupport.URLParams
108041	ifNoneMatch_ string
108042	ctx_         context.Context
108043	header_      http.Header
108044}
108045
108046// Get: Returns the specified Project resource.
108047// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
108048func (r *ProjectsService) Get(project string) *ProjectsGetCall {
108049	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108050	c.project = project
108051	return c
108052}
108053
108054// Fields allows partial responses to be retrieved. See
108055// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108056// for more information.
108057func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
108058	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108059	return c
108060}
108061
108062// IfNoneMatch sets the optional parameter which makes the operation
108063// fail if the object's ETag matches the given value. This is useful for
108064// getting updates only after the object has changed since the last
108065// request. Use googleapi.IsNotModified to check whether the response
108066// error from Do is the result of In-None-Match.
108067func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
108068	c.ifNoneMatch_ = entityTag
108069	return c
108070}
108071
108072// Context sets the context to be used in this call's Do method. Any
108073// pending HTTP request will be aborted if the provided context is
108074// canceled.
108075func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
108076	c.ctx_ = ctx
108077	return c
108078}
108079
108080// Header returns an http.Header that can be modified by the caller to
108081// add HTTP headers to the request.
108082func (c *ProjectsGetCall) Header() http.Header {
108083	if c.header_ == nil {
108084		c.header_ = make(http.Header)
108085	}
108086	return c.header_
108087}
108088
108089func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
108090	reqHeaders := make(http.Header)
108091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108092	for k, v := range c.header_ {
108093		reqHeaders[k] = v
108094	}
108095	reqHeaders.Set("User-Agent", c.s.userAgent())
108096	if c.ifNoneMatch_ != "" {
108097		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108098	}
108099	var body io.Reader = nil
108100	c.urlParams_.Set("alt", alt)
108101	c.urlParams_.Set("prettyPrint", "false")
108102	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
108103	urls += "?" + c.urlParams_.Encode()
108104	req, err := http.NewRequest("GET", urls, body)
108105	if err != nil {
108106		return nil, err
108107	}
108108	req.Header = reqHeaders
108109	googleapi.Expand(req.URL, map[string]string{
108110		"project": c.project,
108111	})
108112	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108113}
108114
108115// Do executes the "compute.projects.get" call.
108116// Exactly one of *Project or error will be non-nil. Any non-2xx status
108117// code is an error. Response headers are in either
108118// *Project.ServerResponse.Header or (if a response was returned at all)
108119// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108120// check whether the returned error was because http.StatusNotModified
108121// was returned.
108122func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
108123	gensupport.SetOptions(c.urlParams_, opts...)
108124	res, err := c.doRequest("json")
108125	if res != nil && res.StatusCode == http.StatusNotModified {
108126		if res.Body != nil {
108127			res.Body.Close()
108128		}
108129		return nil, &googleapi.Error{
108130			Code:   res.StatusCode,
108131			Header: res.Header,
108132		}
108133	}
108134	if err != nil {
108135		return nil, err
108136	}
108137	defer googleapi.CloseBody(res)
108138	if err := googleapi.CheckResponse(res); err != nil {
108139		return nil, err
108140	}
108141	ret := &Project{
108142		ServerResponse: googleapi.ServerResponse{
108143			Header:         res.Header,
108144			HTTPStatusCode: res.StatusCode,
108145		},
108146	}
108147	target := &ret
108148	if err := gensupport.DecodeResponse(target, res); err != nil {
108149		return nil, err
108150	}
108151	return ret, nil
108152	// {
108153	//   "description": "Returns the specified Project resource.",
108154	//   "httpMethod": "GET",
108155	//   "id": "compute.projects.get",
108156	//   "parameterOrder": [
108157	//     "project"
108158	//   ],
108159	//   "parameters": {
108160	//     "project": {
108161	//       "description": "Project ID for this request.",
108162	//       "location": "path",
108163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108164	//       "required": true,
108165	//       "type": "string"
108166	//     }
108167	//   },
108168	//   "path": "{project}",
108169	//   "response": {
108170	//     "$ref": "Project"
108171	//   },
108172	//   "scopes": [
108173	//     "https://www.googleapis.com/auth/cloud-platform",
108174	//     "https://www.googleapis.com/auth/compute",
108175	//     "https://www.googleapis.com/auth/compute.readonly"
108176	//   ]
108177	// }
108178
108179}
108180
108181// method id "compute.projects.getXpnHost":
108182
108183type ProjectsGetXpnHostCall struct {
108184	s            *Service
108185	project      string
108186	urlParams_   gensupport.URLParams
108187	ifNoneMatch_ string
108188	ctx_         context.Context
108189	header_      http.Header
108190}
108191
108192// GetXpnHost: Gets the shared VPC host project that this project links
108193// to. May be empty if no link exists.
108194func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
108195	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108196	c.project = project
108197	return c
108198}
108199
108200// Fields allows partial responses to be retrieved. See
108201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108202// for more information.
108203func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
108204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108205	return c
108206}
108207
108208// IfNoneMatch sets the optional parameter which makes the operation
108209// fail if the object's ETag matches the given value. This is useful for
108210// getting updates only after the object has changed since the last
108211// request. Use googleapi.IsNotModified to check whether the response
108212// error from Do is the result of In-None-Match.
108213func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
108214	c.ifNoneMatch_ = entityTag
108215	return c
108216}
108217
108218// Context sets the context to be used in this call's Do method. Any
108219// pending HTTP request will be aborted if the provided context is
108220// canceled.
108221func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
108222	c.ctx_ = ctx
108223	return c
108224}
108225
108226// Header returns an http.Header that can be modified by the caller to
108227// add HTTP headers to the request.
108228func (c *ProjectsGetXpnHostCall) Header() http.Header {
108229	if c.header_ == nil {
108230		c.header_ = make(http.Header)
108231	}
108232	return c.header_
108233}
108234
108235func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
108236	reqHeaders := make(http.Header)
108237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108238	for k, v := range c.header_ {
108239		reqHeaders[k] = v
108240	}
108241	reqHeaders.Set("User-Agent", c.s.userAgent())
108242	if c.ifNoneMatch_ != "" {
108243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108244	}
108245	var body io.Reader = nil
108246	c.urlParams_.Set("alt", alt)
108247	c.urlParams_.Set("prettyPrint", "false")
108248	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
108249	urls += "?" + c.urlParams_.Encode()
108250	req, err := http.NewRequest("GET", urls, body)
108251	if err != nil {
108252		return nil, err
108253	}
108254	req.Header = reqHeaders
108255	googleapi.Expand(req.URL, map[string]string{
108256		"project": c.project,
108257	})
108258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108259}
108260
108261// Do executes the "compute.projects.getXpnHost" call.
108262// Exactly one of *Project or error will be non-nil. Any non-2xx status
108263// code is an error. Response headers are in either
108264// *Project.ServerResponse.Header or (if a response was returned at all)
108265// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108266// check whether the returned error was because http.StatusNotModified
108267// was returned.
108268func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
108269	gensupport.SetOptions(c.urlParams_, opts...)
108270	res, err := c.doRequest("json")
108271	if res != nil && res.StatusCode == http.StatusNotModified {
108272		if res.Body != nil {
108273			res.Body.Close()
108274		}
108275		return nil, &googleapi.Error{
108276			Code:   res.StatusCode,
108277			Header: res.Header,
108278		}
108279	}
108280	if err != nil {
108281		return nil, err
108282	}
108283	defer googleapi.CloseBody(res)
108284	if err := googleapi.CheckResponse(res); err != nil {
108285		return nil, err
108286	}
108287	ret := &Project{
108288		ServerResponse: googleapi.ServerResponse{
108289			Header:         res.Header,
108290			HTTPStatusCode: res.StatusCode,
108291		},
108292	}
108293	target := &ret
108294	if err := gensupport.DecodeResponse(target, res); err != nil {
108295		return nil, err
108296	}
108297	return ret, nil
108298	// {
108299	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
108300	//   "httpMethod": "GET",
108301	//   "id": "compute.projects.getXpnHost",
108302	//   "parameterOrder": [
108303	//     "project"
108304	//   ],
108305	//   "parameters": {
108306	//     "project": {
108307	//       "description": "Project ID for this request.",
108308	//       "location": "path",
108309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108310	//       "required": true,
108311	//       "type": "string"
108312	//     }
108313	//   },
108314	//   "path": "{project}/getXpnHost",
108315	//   "response": {
108316	//     "$ref": "Project"
108317	//   },
108318	//   "scopes": [
108319	//     "https://www.googleapis.com/auth/cloud-platform",
108320	//     "https://www.googleapis.com/auth/compute"
108321	//   ]
108322	// }
108323
108324}
108325
108326// method id "compute.projects.getXpnResources":
108327
108328type ProjectsGetXpnResourcesCall struct {
108329	s            *Service
108330	project      string
108331	urlParams_   gensupport.URLParams
108332	ifNoneMatch_ string
108333	ctx_         context.Context
108334	header_      http.Header
108335}
108336
108337// GetXpnResources: Gets service resources (a.k.a service project)
108338// associated with this host project.
108339func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
108340	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108341	c.project = project
108342	return c
108343}
108344
108345// Filter sets the optional parameter "filter": A filter expression that
108346// filters resources listed in the response. The expression must specify
108347// the field name, a comparison operator, and the value that you want to
108348// use for filtering. The value must be a string, a number, or a
108349// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108350// `<`.
108351//
108352// For example, if you are filtering Compute Engine instances, you can
108353// exclude instances named `example-instance` by specifying `name !=
108354// example-instance`.
108355//
108356// You can also filter nested fields. For example, you could specify
108357// `scheduling.automaticRestart = false` to include instances only if
108358// they are not scheduled for automatic restarts. You can use filtering
108359// on nested fields to filter based on resource labels.
108360//
108361// To filter on multiple expressions, provide each separate expression
108362// within parentheses. For example: ``` (scheduling.automaticRestart =
108363// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108364// is an `AND` expression. However, you can include `AND` and `OR`
108365// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108366// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108367// (scheduling.automaticRestart = true) ```
108368func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
108369	c.urlParams_.Set("filter", filter)
108370	return c
108371}
108372
108373// MaxResults sets the optional parameter "maxResults": The maximum
108374// number of results per page that should be returned. If the number of
108375// available results is larger than `maxResults`, Compute Engine returns
108376// a `nextPageToken` that can be used to get the next page of results in
108377// subsequent list requests. Acceptable values are `0` to `500`,
108378// inclusive. (Default: `500`)
108379func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
108380	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108381	return c
108382}
108383
108384// OrderBy sets the optional parameter "orderBy": Sorts list results by
108385// a certain order. By default, results are returned in alphanumerical
108386// order based on the resource name.
108387//
108388// You can also sort results in descending order based on the creation
108389// timestamp using `orderBy="creationTimestamp desc". This sorts
108390// results based on the `creationTimestamp` field in reverse
108391// chronological order (newest result first). Use this to sort resources
108392// like operations so that the newest operation is returned
108393// first.
108394//
108395// Currently, only sorting by `name` or `creationTimestamp desc` is
108396// supported.
108397func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
108398	c.urlParams_.Set("orderBy", orderBy)
108399	return c
108400}
108401
108402// PageToken sets the optional parameter "pageToken": Specifies a page
108403// token to use. Set `pageToken` to the `nextPageToken` returned by a
108404// previous list request to get the next page of results.
108405func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
108406	c.urlParams_.Set("pageToken", pageToken)
108407	return c
108408}
108409
108410// Fields allows partial responses to be retrieved. See
108411// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108412// for more information.
108413func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
108414	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108415	return c
108416}
108417
108418// IfNoneMatch sets the optional parameter which makes the operation
108419// fail if the object's ETag matches the given value. This is useful for
108420// getting updates only after the object has changed since the last
108421// request. Use googleapi.IsNotModified to check whether the response
108422// error from Do is the result of In-None-Match.
108423func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
108424	c.ifNoneMatch_ = entityTag
108425	return c
108426}
108427
108428// Context sets the context to be used in this call's Do method. Any
108429// pending HTTP request will be aborted if the provided context is
108430// canceled.
108431func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
108432	c.ctx_ = ctx
108433	return c
108434}
108435
108436// Header returns an http.Header that can be modified by the caller to
108437// add HTTP headers to the request.
108438func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
108439	if c.header_ == nil {
108440		c.header_ = make(http.Header)
108441	}
108442	return c.header_
108443}
108444
108445func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
108446	reqHeaders := make(http.Header)
108447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108448	for k, v := range c.header_ {
108449		reqHeaders[k] = v
108450	}
108451	reqHeaders.Set("User-Agent", c.s.userAgent())
108452	if c.ifNoneMatch_ != "" {
108453		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108454	}
108455	var body io.Reader = nil
108456	c.urlParams_.Set("alt", alt)
108457	c.urlParams_.Set("prettyPrint", "false")
108458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
108459	urls += "?" + c.urlParams_.Encode()
108460	req, err := http.NewRequest("GET", urls, body)
108461	if err != nil {
108462		return nil, err
108463	}
108464	req.Header = reqHeaders
108465	googleapi.Expand(req.URL, map[string]string{
108466		"project": c.project,
108467	})
108468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108469}
108470
108471// Do executes the "compute.projects.getXpnResources" call.
108472// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
108473// non-2xx status code is an error. Response headers are in either
108474// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
108475// returned at all) in error.(*googleapi.Error).Header. Use
108476// googleapi.IsNotModified to check whether the returned error was
108477// because http.StatusNotModified was returned.
108478func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
108479	gensupport.SetOptions(c.urlParams_, opts...)
108480	res, err := c.doRequest("json")
108481	if res != nil && res.StatusCode == http.StatusNotModified {
108482		if res.Body != nil {
108483			res.Body.Close()
108484		}
108485		return nil, &googleapi.Error{
108486			Code:   res.StatusCode,
108487			Header: res.Header,
108488		}
108489	}
108490	if err != nil {
108491		return nil, err
108492	}
108493	defer googleapi.CloseBody(res)
108494	if err := googleapi.CheckResponse(res); err != nil {
108495		return nil, err
108496	}
108497	ret := &ProjectsGetXpnResources{
108498		ServerResponse: googleapi.ServerResponse{
108499			Header:         res.Header,
108500			HTTPStatusCode: res.StatusCode,
108501		},
108502	}
108503	target := &ret
108504	if err := gensupport.DecodeResponse(target, res); err != nil {
108505		return nil, err
108506	}
108507	return ret, nil
108508	// {
108509	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
108510	//   "httpMethod": "GET",
108511	//   "id": "compute.projects.getXpnResources",
108512	//   "parameterOrder": [
108513	//     "project"
108514	//   ],
108515	//   "parameters": {
108516	//     "filter": {
108517	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108518	//       "location": "query",
108519	//       "type": "string"
108520	//     },
108521	//     "maxResults": {
108522	//       "default": "500",
108523	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108524	//       "format": "uint32",
108525	//       "location": "query",
108526	//       "minimum": "0",
108527	//       "type": "integer"
108528	//     },
108529	//     "orderBy": {
108530	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108531	//       "location": "query",
108532	//       "type": "string"
108533	//     },
108534	//     "pageToken": {
108535	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108536	//       "location": "query",
108537	//       "type": "string"
108538	//     },
108539	//     "project": {
108540	//       "description": "Project ID for this request.",
108541	//       "location": "path",
108542	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108543	//       "required": true,
108544	//       "type": "string"
108545	//     }
108546	//   },
108547	//   "path": "{project}/getXpnResources",
108548	//   "response": {
108549	//     "$ref": "ProjectsGetXpnResources"
108550	//   },
108551	//   "scopes": [
108552	//     "https://www.googleapis.com/auth/cloud-platform",
108553	//     "https://www.googleapis.com/auth/compute"
108554	//   ]
108555	// }
108556
108557}
108558
108559// Pages invokes f for each page of results.
108560// A non-nil error returned from f will halt the iteration.
108561// The provided context supersedes any context provided to the Context method.
108562func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
108563	c.ctx_ = ctx
108564	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108565	for {
108566		x, err := c.Do()
108567		if err != nil {
108568			return err
108569		}
108570		if err := f(x); err != nil {
108571			return err
108572		}
108573		if x.NextPageToken == "" {
108574			return nil
108575		}
108576		c.PageToken(x.NextPageToken)
108577	}
108578}
108579
108580// method id "compute.projects.listXpnHosts":
108581
108582type ProjectsListXpnHostsCall struct {
108583	s                           *Service
108584	project                     string
108585	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
108586	urlParams_                  gensupport.URLParams
108587	ctx_                        context.Context
108588	header_                     http.Header
108589}
108590
108591// ListXpnHosts: Lists all shared VPC host projects visible to the user
108592// in an organization.
108593func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
108594	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108595	c.project = project
108596	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
108597	return c
108598}
108599
108600// Filter sets the optional parameter "filter": A filter expression that
108601// filters resources listed in the response. The expression must specify
108602// the field name, a comparison operator, and the value that you want to
108603// use for filtering. The value must be a string, a number, or a
108604// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108605// `<`.
108606//
108607// For example, if you are filtering Compute Engine instances, you can
108608// exclude instances named `example-instance` by specifying `name !=
108609// example-instance`.
108610//
108611// You can also filter nested fields. For example, you could specify
108612// `scheduling.automaticRestart = false` to include instances only if
108613// they are not scheduled for automatic restarts. You can use filtering
108614// on nested fields to filter based on resource labels.
108615//
108616// To filter on multiple expressions, provide each separate expression
108617// within parentheses. For example: ``` (scheduling.automaticRestart =
108618// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108619// is an `AND` expression. However, you can include `AND` and `OR`
108620// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108621// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108622// (scheduling.automaticRestart = true) ```
108623func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
108624	c.urlParams_.Set("filter", filter)
108625	return c
108626}
108627
108628// MaxResults sets the optional parameter "maxResults": The maximum
108629// number of results per page that should be returned. If the number of
108630// available results is larger than `maxResults`, Compute Engine returns
108631// a `nextPageToken` that can be used to get the next page of results in
108632// subsequent list requests. Acceptable values are `0` to `500`,
108633// inclusive. (Default: `500`)
108634func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
108635	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108636	return c
108637}
108638
108639// OrderBy sets the optional parameter "orderBy": Sorts list results by
108640// a certain order. By default, results are returned in alphanumerical
108641// order based on the resource name.
108642//
108643// You can also sort results in descending order based on the creation
108644// timestamp using `orderBy="creationTimestamp desc". This sorts
108645// results based on the `creationTimestamp` field in reverse
108646// chronological order (newest result first). Use this to sort resources
108647// like operations so that the newest operation is returned
108648// first.
108649//
108650// Currently, only sorting by `name` or `creationTimestamp desc` is
108651// supported.
108652func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
108653	c.urlParams_.Set("orderBy", orderBy)
108654	return c
108655}
108656
108657// PageToken sets the optional parameter "pageToken": Specifies a page
108658// token to use. Set `pageToken` to the `nextPageToken` returned by a
108659// previous list request to get the next page of results.
108660func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
108661	c.urlParams_.Set("pageToken", pageToken)
108662	return c
108663}
108664
108665// Fields allows partial responses to be retrieved. See
108666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108667// for more information.
108668func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
108669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108670	return c
108671}
108672
108673// Context sets the context to be used in this call's Do method. Any
108674// pending HTTP request will be aborted if the provided context is
108675// canceled.
108676func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
108677	c.ctx_ = ctx
108678	return c
108679}
108680
108681// Header returns an http.Header that can be modified by the caller to
108682// add HTTP headers to the request.
108683func (c *ProjectsListXpnHostsCall) Header() http.Header {
108684	if c.header_ == nil {
108685		c.header_ = make(http.Header)
108686	}
108687	return c.header_
108688}
108689
108690func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
108691	reqHeaders := make(http.Header)
108692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108693	for k, v := range c.header_ {
108694		reqHeaders[k] = v
108695	}
108696	reqHeaders.Set("User-Agent", c.s.userAgent())
108697	var body io.Reader = nil
108698	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
108699	if err != nil {
108700		return nil, err
108701	}
108702	reqHeaders.Set("Content-Type", "application/json")
108703	c.urlParams_.Set("alt", alt)
108704	c.urlParams_.Set("prettyPrint", "false")
108705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
108706	urls += "?" + c.urlParams_.Encode()
108707	req, err := http.NewRequest("POST", urls, body)
108708	if err != nil {
108709		return nil, err
108710	}
108711	req.Header = reqHeaders
108712	googleapi.Expand(req.URL, map[string]string{
108713		"project": c.project,
108714	})
108715	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108716}
108717
108718// Do executes the "compute.projects.listXpnHosts" call.
108719// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
108720// status code is an error. Response headers are in either
108721// *XpnHostList.ServerResponse.Header or (if a response was returned at
108722// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108723// to check whether the returned error was because
108724// http.StatusNotModified was returned.
108725func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
108726	gensupport.SetOptions(c.urlParams_, opts...)
108727	res, err := c.doRequest("json")
108728	if res != nil && res.StatusCode == http.StatusNotModified {
108729		if res.Body != nil {
108730			res.Body.Close()
108731		}
108732		return nil, &googleapi.Error{
108733			Code:   res.StatusCode,
108734			Header: res.Header,
108735		}
108736	}
108737	if err != nil {
108738		return nil, err
108739	}
108740	defer googleapi.CloseBody(res)
108741	if err := googleapi.CheckResponse(res); err != nil {
108742		return nil, err
108743	}
108744	ret := &XpnHostList{
108745		ServerResponse: googleapi.ServerResponse{
108746			Header:         res.Header,
108747			HTTPStatusCode: res.StatusCode,
108748		},
108749	}
108750	target := &ret
108751	if err := gensupport.DecodeResponse(target, res); err != nil {
108752		return nil, err
108753	}
108754	return ret, nil
108755	// {
108756	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
108757	//   "httpMethod": "POST",
108758	//   "id": "compute.projects.listXpnHosts",
108759	//   "parameterOrder": [
108760	//     "project"
108761	//   ],
108762	//   "parameters": {
108763	//     "filter": {
108764	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108765	//       "location": "query",
108766	//       "type": "string"
108767	//     },
108768	//     "maxResults": {
108769	//       "default": "500",
108770	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108771	//       "format": "uint32",
108772	//       "location": "query",
108773	//       "minimum": "0",
108774	//       "type": "integer"
108775	//     },
108776	//     "orderBy": {
108777	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108778	//       "location": "query",
108779	//       "type": "string"
108780	//     },
108781	//     "pageToken": {
108782	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108783	//       "location": "query",
108784	//       "type": "string"
108785	//     },
108786	//     "project": {
108787	//       "description": "Project ID for this request.",
108788	//       "location": "path",
108789	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108790	//       "required": true,
108791	//       "type": "string"
108792	//     }
108793	//   },
108794	//   "path": "{project}/listXpnHosts",
108795	//   "request": {
108796	//     "$ref": "ProjectsListXpnHostsRequest"
108797	//   },
108798	//   "response": {
108799	//     "$ref": "XpnHostList"
108800	//   },
108801	//   "scopes": [
108802	//     "https://www.googleapis.com/auth/cloud-platform",
108803	//     "https://www.googleapis.com/auth/compute"
108804	//   ]
108805	// }
108806
108807}
108808
108809// Pages invokes f for each page of results.
108810// A non-nil error returned from f will halt the iteration.
108811// The provided context supersedes any context provided to the Context method.
108812func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
108813	c.ctx_ = ctx
108814	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108815	for {
108816		x, err := c.Do()
108817		if err != nil {
108818			return err
108819		}
108820		if err := f(x); err != nil {
108821			return err
108822		}
108823		if x.NextPageToken == "" {
108824			return nil
108825		}
108826		c.PageToken(x.NextPageToken)
108827	}
108828}
108829
108830// method id "compute.projects.moveDisk":
108831
108832type ProjectsMoveDiskCall struct {
108833	s               *Service
108834	project         string
108835	diskmoverequest *DiskMoveRequest
108836	urlParams_      gensupport.URLParams
108837	ctx_            context.Context
108838	header_         http.Header
108839}
108840
108841// MoveDisk: Moves a persistent disk from one zone to another.
108842func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
108843	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108844	c.project = project
108845	c.diskmoverequest = diskmoverequest
108846	return c
108847}
108848
108849// RequestId sets the optional parameter "requestId": An optional
108850// request ID to identify requests. Specify a unique request ID so that
108851// if you must retry your request, the server will know to ignore the
108852// request if it has already been completed.
108853//
108854// For example, consider a situation where you make an initial request
108855// and the request times out. If you make the request again with the
108856// same request ID, the server can check if original operation with the
108857// same request ID was received, and if so, will ignore the second
108858// request. This prevents clients from accidentally creating duplicate
108859// commitments.
108860//
108861// The request ID must be a valid UUID with the exception that zero UUID
108862// is not supported (00000000-0000-0000-0000-000000000000).
108863func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
108864	c.urlParams_.Set("requestId", requestId)
108865	return c
108866}
108867
108868// Fields allows partial responses to be retrieved. See
108869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108870// for more information.
108871func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
108872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108873	return c
108874}
108875
108876// Context sets the context to be used in this call's Do method. Any
108877// pending HTTP request will be aborted if the provided context is
108878// canceled.
108879func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
108880	c.ctx_ = ctx
108881	return c
108882}
108883
108884// Header returns an http.Header that can be modified by the caller to
108885// add HTTP headers to the request.
108886func (c *ProjectsMoveDiskCall) Header() http.Header {
108887	if c.header_ == nil {
108888		c.header_ = make(http.Header)
108889	}
108890	return c.header_
108891}
108892
108893func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
108894	reqHeaders := make(http.Header)
108895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
108896	for k, v := range c.header_ {
108897		reqHeaders[k] = v
108898	}
108899	reqHeaders.Set("User-Agent", c.s.userAgent())
108900	var body io.Reader = nil
108901	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
108902	if err != nil {
108903		return nil, err
108904	}
108905	reqHeaders.Set("Content-Type", "application/json")
108906	c.urlParams_.Set("alt", alt)
108907	c.urlParams_.Set("prettyPrint", "false")
108908	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
108909	urls += "?" + c.urlParams_.Encode()
108910	req, err := http.NewRequest("POST", urls, body)
108911	if err != nil {
108912		return nil, err
108913	}
108914	req.Header = reqHeaders
108915	googleapi.Expand(req.URL, map[string]string{
108916		"project": c.project,
108917	})
108918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108919}
108920
108921// Do executes the "compute.projects.moveDisk" call.
108922// Exactly one of *Operation or error will be non-nil. Any non-2xx
108923// status code is an error. Response headers are in either
108924// *Operation.ServerResponse.Header or (if a response was returned at
108925// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108926// to check whether the returned error was because
108927// http.StatusNotModified was returned.
108928func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108929	gensupport.SetOptions(c.urlParams_, opts...)
108930	res, err := c.doRequest("json")
108931	if res != nil && res.StatusCode == http.StatusNotModified {
108932		if res.Body != nil {
108933			res.Body.Close()
108934		}
108935		return nil, &googleapi.Error{
108936			Code:   res.StatusCode,
108937			Header: res.Header,
108938		}
108939	}
108940	if err != nil {
108941		return nil, err
108942	}
108943	defer googleapi.CloseBody(res)
108944	if err := googleapi.CheckResponse(res); err != nil {
108945		return nil, err
108946	}
108947	ret := &Operation{
108948		ServerResponse: googleapi.ServerResponse{
108949			Header:         res.Header,
108950			HTTPStatusCode: res.StatusCode,
108951		},
108952	}
108953	target := &ret
108954	if err := gensupport.DecodeResponse(target, res); err != nil {
108955		return nil, err
108956	}
108957	return ret, nil
108958	// {
108959	//   "description": "Moves a persistent disk from one zone to another.",
108960	//   "httpMethod": "POST",
108961	//   "id": "compute.projects.moveDisk",
108962	//   "parameterOrder": [
108963	//     "project"
108964	//   ],
108965	//   "parameters": {
108966	//     "project": {
108967	//       "description": "Project ID for this request.",
108968	//       "location": "path",
108969	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108970	//       "required": true,
108971	//       "type": "string"
108972	//     },
108973	//     "requestId": {
108974	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108975	//       "location": "query",
108976	//       "type": "string"
108977	//     }
108978	//   },
108979	//   "path": "{project}/moveDisk",
108980	//   "request": {
108981	//     "$ref": "DiskMoveRequest"
108982	//   },
108983	//   "response": {
108984	//     "$ref": "Operation"
108985	//   },
108986	//   "scopes": [
108987	//     "https://www.googleapis.com/auth/cloud-platform",
108988	//     "https://www.googleapis.com/auth/compute"
108989	//   ]
108990	// }
108991
108992}
108993
108994// method id "compute.projects.moveInstance":
108995
108996type ProjectsMoveInstanceCall struct {
108997	s                   *Service
108998	project             string
108999	instancemoverequest *InstanceMoveRequest
109000	urlParams_          gensupport.URLParams
109001	ctx_                context.Context
109002	header_             http.Header
109003}
109004
109005// MoveInstance: Moves an instance and its attached persistent disks
109006// from one zone to another.
109007func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
109008	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109009	c.project = project
109010	c.instancemoverequest = instancemoverequest
109011	return c
109012}
109013
109014// RequestId sets the optional parameter "requestId": An optional
109015// request ID to identify requests. Specify a unique request ID so that
109016// if you must retry your request, the server will know to ignore the
109017// request if it has already been completed.
109018//
109019// For example, consider a situation where you make an initial request
109020// and the request times out. If you make the request again with the
109021// same request ID, the server can check if original operation with the
109022// same request ID was received, and if so, will ignore the second
109023// request. This prevents clients from accidentally creating duplicate
109024// commitments.
109025//
109026// The request ID must be a valid UUID with the exception that zero UUID
109027// is not supported (00000000-0000-0000-0000-000000000000).
109028func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
109029	c.urlParams_.Set("requestId", requestId)
109030	return c
109031}
109032
109033// Fields allows partial responses to be retrieved. See
109034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109035// for more information.
109036func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
109037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109038	return c
109039}
109040
109041// Context sets the context to be used in this call's Do method. Any
109042// pending HTTP request will be aborted if the provided context is
109043// canceled.
109044func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
109045	c.ctx_ = ctx
109046	return c
109047}
109048
109049// Header returns an http.Header that can be modified by the caller to
109050// add HTTP headers to the request.
109051func (c *ProjectsMoveInstanceCall) Header() http.Header {
109052	if c.header_ == nil {
109053		c.header_ = make(http.Header)
109054	}
109055	return c.header_
109056}
109057
109058func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
109059	reqHeaders := make(http.Header)
109060	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109061	for k, v := range c.header_ {
109062		reqHeaders[k] = v
109063	}
109064	reqHeaders.Set("User-Agent", c.s.userAgent())
109065	var body io.Reader = nil
109066	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
109067	if err != nil {
109068		return nil, err
109069	}
109070	reqHeaders.Set("Content-Type", "application/json")
109071	c.urlParams_.Set("alt", alt)
109072	c.urlParams_.Set("prettyPrint", "false")
109073	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
109074	urls += "?" + c.urlParams_.Encode()
109075	req, err := http.NewRequest("POST", urls, body)
109076	if err != nil {
109077		return nil, err
109078	}
109079	req.Header = reqHeaders
109080	googleapi.Expand(req.URL, map[string]string{
109081		"project": c.project,
109082	})
109083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109084}
109085
109086// Do executes the "compute.projects.moveInstance" call.
109087// Exactly one of *Operation or error will be non-nil. Any non-2xx
109088// status code is an error. Response headers are in either
109089// *Operation.ServerResponse.Header or (if a response was returned at
109090// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109091// to check whether the returned error was because
109092// http.StatusNotModified was returned.
109093func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109094	gensupport.SetOptions(c.urlParams_, opts...)
109095	res, err := c.doRequest("json")
109096	if res != nil && res.StatusCode == http.StatusNotModified {
109097		if res.Body != nil {
109098			res.Body.Close()
109099		}
109100		return nil, &googleapi.Error{
109101			Code:   res.StatusCode,
109102			Header: res.Header,
109103		}
109104	}
109105	if err != nil {
109106		return nil, err
109107	}
109108	defer googleapi.CloseBody(res)
109109	if err := googleapi.CheckResponse(res); err != nil {
109110		return nil, err
109111	}
109112	ret := &Operation{
109113		ServerResponse: googleapi.ServerResponse{
109114			Header:         res.Header,
109115			HTTPStatusCode: res.StatusCode,
109116		},
109117	}
109118	target := &ret
109119	if err := gensupport.DecodeResponse(target, res); err != nil {
109120		return nil, err
109121	}
109122	return ret, nil
109123	// {
109124	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
109125	//   "httpMethod": "POST",
109126	//   "id": "compute.projects.moveInstance",
109127	//   "parameterOrder": [
109128	//     "project"
109129	//   ],
109130	//   "parameters": {
109131	//     "project": {
109132	//       "description": "Project ID for this request.",
109133	//       "location": "path",
109134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109135	//       "required": true,
109136	//       "type": "string"
109137	//     },
109138	//     "requestId": {
109139	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109140	//       "location": "query",
109141	//       "type": "string"
109142	//     }
109143	//   },
109144	//   "path": "{project}/moveInstance",
109145	//   "request": {
109146	//     "$ref": "InstanceMoveRequest"
109147	//   },
109148	//   "response": {
109149	//     "$ref": "Operation"
109150	//   },
109151	//   "scopes": [
109152	//     "https://www.googleapis.com/auth/cloud-platform",
109153	//     "https://www.googleapis.com/auth/compute"
109154	//   ]
109155	// }
109156
109157}
109158
109159// method id "compute.projects.setCommonInstanceMetadata":
109160
109161type ProjectsSetCommonInstanceMetadataCall struct {
109162	s          *Service
109163	project    string
109164	metadata   *Metadata
109165	urlParams_ gensupport.URLParams
109166	ctx_       context.Context
109167	header_    http.Header
109168}
109169
109170// SetCommonInstanceMetadata: Sets metadata common to all instances
109171// within the specified project using the data included in the request.
109172// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
109173func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
109174	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109175	c.project = project
109176	c.metadata = metadata
109177	return c
109178}
109179
109180// RequestId sets the optional parameter "requestId": An optional
109181// request ID to identify requests. Specify a unique request ID so that
109182// if you must retry your request, the server will know to ignore the
109183// request if it has already been completed.
109184//
109185// For example, consider a situation where you make an initial request
109186// and the request times out. If you make the request again with the
109187// same request ID, the server can check if original operation with the
109188// same request ID was received, and if so, will ignore the second
109189// request. This prevents clients from accidentally creating duplicate
109190// commitments.
109191//
109192// The request ID must be a valid UUID with the exception that zero UUID
109193// is not supported (00000000-0000-0000-0000-000000000000).
109194func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
109195	c.urlParams_.Set("requestId", requestId)
109196	return c
109197}
109198
109199// Fields allows partial responses to be retrieved. See
109200// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109201// for more information.
109202func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
109203	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109204	return c
109205}
109206
109207// Context sets the context to be used in this call's Do method. Any
109208// pending HTTP request will be aborted if the provided context is
109209// canceled.
109210func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
109211	c.ctx_ = ctx
109212	return c
109213}
109214
109215// Header returns an http.Header that can be modified by the caller to
109216// add HTTP headers to the request.
109217func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
109218	if c.header_ == nil {
109219		c.header_ = make(http.Header)
109220	}
109221	return c.header_
109222}
109223
109224func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
109225	reqHeaders := make(http.Header)
109226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109227	for k, v := range c.header_ {
109228		reqHeaders[k] = v
109229	}
109230	reqHeaders.Set("User-Agent", c.s.userAgent())
109231	var body io.Reader = nil
109232	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
109233	if err != nil {
109234		return nil, err
109235	}
109236	reqHeaders.Set("Content-Type", "application/json")
109237	c.urlParams_.Set("alt", alt)
109238	c.urlParams_.Set("prettyPrint", "false")
109239	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
109240	urls += "?" + c.urlParams_.Encode()
109241	req, err := http.NewRequest("POST", urls, body)
109242	if err != nil {
109243		return nil, err
109244	}
109245	req.Header = reqHeaders
109246	googleapi.Expand(req.URL, map[string]string{
109247		"project": c.project,
109248	})
109249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109250}
109251
109252// Do executes the "compute.projects.setCommonInstanceMetadata" call.
109253// Exactly one of *Operation or error will be non-nil. Any non-2xx
109254// status code is an error. Response headers are in either
109255// *Operation.ServerResponse.Header or (if a response was returned at
109256// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109257// to check whether the returned error was because
109258// http.StatusNotModified was returned.
109259func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109260	gensupport.SetOptions(c.urlParams_, opts...)
109261	res, err := c.doRequest("json")
109262	if res != nil && res.StatusCode == http.StatusNotModified {
109263		if res.Body != nil {
109264			res.Body.Close()
109265		}
109266		return nil, &googleapi.Error{
109267			Code:   res.StatusCode,
109268			Header: res.Header,
109269		}
109270	}
109271	if err != nil {
109272		return nil, err
109273	}
109274	defer googleapi.CloseBody(res)
109275	if err := googleapi.CheckResponse(res); err != nil {
109276		return nil, err
109277	}
109278	ret := &Operation{
109279		ServerResponse: googleapi.ServerResponse{
109280			Header:         res.Header,
109281			HTTPStatusCode: res.StatusCode,
109282		},
109283	}
109284	target := &ret
109285	if err := gensupport.DecodeResponse(target, res); err != nil {
109286		return nil, err
109287	}
109288	return ret, nil
109289	// {
109290	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
109291	//   "httpMethod": "POST",
109292	//   "id": "compute.projects.setCommonInstanceMetadata",
109293	//   "parameterOrder": [
109294	//     "project"
109295	//   ],
109296	//   "parameters": {
109297	//     "project": {
109298	//       "description": "Project ID for this request.",
109299	//       "location": "path",
109300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109301	//       "required": true,
109302	//       "type": "string"
109303	//     },
109304	//     "requestId": {
109305	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109306	//       "location": "query",
109307	//       "type": "string"
109308	//     }
109309	//   },
109310	//   "path": "{project}/setCommonInstanceMetadata",
109311	//   "request": {
109312	//     "$ref": "Metadata"
109313	//   },
109314	//   "response": {
109315	//     "$ref": "Operation"
109316	//   },
109317	//   "scopes": [
109318	//     "https://www.googleapis.com/auth/cloud-platform",
109319	//     "https://www.googleapis.com/auth/compute"
109320	//   ]
109321	// }
109322
109323}
109324
109325// method id "compute.projects.setDefaultNetworkTier":
109326
109327type ProjectsSetDefaultNetworkTierCall struct {
109328	s                                    *Service
109329	project                              string
109330	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
109331	urlParams_                           gensupport.URLParams
109332	ctx_                                 context.Context
109333	header_                              http.Header
109334}
109335
109336// SetDefaultNetworkTier: Sets the default network tier of the project.
109337// The default network tier is used when an
109338// address/forwardingRule/instance is created without specifying the
109339// network tier field.
109340func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
109341	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109342	c.project = project
109343	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
109344	return c
109345}
109346
109347// RequestId sets the optional parameter "requestId": An optional
109348// request ID to identify requests. Specify a unique request ID so that
109349// if you must retry your request, the server will know to ignore the
109350// request if it has already been completed.
109351//
109352// For example, consider a situation where you make an initial request
109353// and the request times out. If you make the request again with the
109354// same request ID, the server can check if original operation with the
109355// same request ID was received, and if so, will ignore the second
109356// request. This prevents clients from accidentally creating duplicate
109357// commitments.
109358//
109359// The request ID must be a valid UUID with the exception that zero UUID
109360// is not supported (00000000-0000-0000-0000-000000000000).
109361func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
109362	c.urlParams_.Set("requestId", requestId)
109363	return c
109364}
109365
109366// Fields allows partial responses to be retrieved. See
109367// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109368// for more information.
109369func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
109370	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109371	return c
109372}
109373
109374// Context sets the context to be used in this call's Do method. Any
109375// pending HTTP request will be aborted if the provided context is
109376// canceled.
109377func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
109378	c.ctx_ = ctx
109379	return c
109380}
109381
109382// Header returns an http.Header that can be modified by the caller to
109383// add HTTP headers to the request.
109384func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
109385	if c.header_ == nil {
109386		c.header_ = make(http.Header)
109387	}
109388	return c.header_
109389}
109390
109391func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
109392	reqHeaders := make(http.Header)
109393	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109394	for k, v := range c.header_ {
109395		reqHeaders[k] = v
109396	}
109397	reqHeaders.Set("User-Agent", c.s.userAgent())
109398	var body io.Reader = nil
109399	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
109400	if err != nil {
109401		return nil, err
109402	}
109403	reqHeaders.Set("Content-Type", "application/json")
109404	c.urlParams_.Set("alt", alt)
109405	c.urlParams_.Set("prettyPrint", "false")
109406	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultNetworkTier")
109407	urls += "?" + c.urlParams_.Encode()
109408	req, err := http.NewRequest("POST", urls, body)
109409	if err != nil {
109410		return nil, err
109411	}
109412	req.Header = reqHeaders
109413	googleapi.Expand(req.URL, map[string]string{
109414		"project": c.project,
109415	})
109416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109417}
109418
109419// Do executes the "compute.projects.setDefaultNetworkTier" call.
109420// Exactly one of *Operation or error will be non-nil. Any non-2xx
109421// status code is an error. Response headers are in either
109422// *Operation.ServerResponse.Header or (if a response was returned at
109423// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109424// to check whether the returned error was because
109425// http.StatusNotModified was returned.
109426func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109427	gensupport.SetOptions(c.urlParams_, opts...)
109428	res, err := c.doRequest("json")
109429	if res != nil && res.StatusCode == http.StatusNotModified {
109430		if res.Body != nil {
109431			res.Body.Close()
109432		}
109433		return nil, &googleapi.Error{
109434			Code:   res.StatusCode,
109435			Header: res.Header,
109436		}
109437	}
109438	if err != nil {
109439		return nil, err
109440	}
109441	defer googleapi.CloseBody(res)
109442	if err := googleapi.CheckResponse(res); err != nil {
109443		return nil, err
109444	}
109445	ret := &Operation{
109446		ServerResponse: googleapi.ServerResponse{
109447			Header:         res.Header,
109448			HTTPStatusCode: res.StatusCode,
109449		},
109450	}
109451	target := &ret
109452	if err := gensupport.DecodeResponse(target, res); err != nil {
109453		return nil, err
109454	}
109455	return ret, nil
109456	// {
109457	//   "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.",
109458	//   "httpMethod": "POST",
109459	//   "id": "compute.projects.setDefaultNetworkTier",
109460	//   "parameterOrder": [
109461	//     "project"
109462	//   ],
109463	//   "parameters": {
109464	//     "project": {
109465	//       "description": "Project ID for this request.",
109466	//       "location": "path",
109467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109468	//       "required": true,
109469	//       "type": "string"
109470	//     },
109471	//     "requestId": {
109472	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109473	//       "location": "query",
109474	//       "type": "string"
109475	//     }
109476	//   },
109477	//   "path": "{project}/setDefaultNetworkTier",
109478	//   "request": {
109479	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
109480	//   },
109481	//   "response": {
109482	//     "$ref": "Operation"
109483	//   },
109484	//   "scopes": [
109485	//     "https://www.googleapis.com/auth/cloud-platform",
109486	//     "https://www.googleapis.com/auth/compute"
109487	//   ]
109488	// }
109489
109490}
109491
109492// method id "compute.projects.setUsageExportBucket":
109493
109494type ProjectsSetUsageExportBucketCall struct {
109495	s                   *Service
109496	project             string
109497	usageexportlocation *UsageExportLocation
109498	urlParams_          gensupport.URLParams
109499	ctx_                context.Context
109500	header_             http.Header
109501}
109502
109503// SetUsageExportBucket: Enables the usage export feature and sets the
109504// usage export bucket where reports are stored. If you provide an empty
109505// request body using this method, the usage export feature will be
109506// disabled.
109507// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
109508func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
109509	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109510	c.project = project
109511	c.usageexportlocation = usageexportlocation
109512	return c
109513}
109514
109515// RequestId sets the optional parameter "requestId": An optional
109516// request ID to identify requests. Specify a unique request ID so that
109517// if you must retry your request, the server will know to ignore the
109518// request if it has already been completed.
109519//
109520// For example, consider a situation where you make an initial request
109521// and the request times out. If you make the request again with the
109522// same request ID, the server can check if original operation with the
109523// same request ID was received, and if so, will ignore the second
109524// request. This prevents clients from accidentally creating duplicate
109525// commitments.
109526//
109527// The request ID must be a valid UUID with the exception that zero UUID
109528// is not supported (00000000-0000-0000-0000-000000000000).
109529func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
109530	c.urlParams_.Set("requestId", requestId)
109531	return c
109532}
109533
109534// Fields allows partial responses to be retrieved. See
109535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109536// for more information.
109537func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
109538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109539	return c
109540}
109541
109542// Context sets the context to be used in this call's Do method. Any
109543// pending HTTP request will be aborted if the provided context is
109544// canceled.
109545func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
109546	c.ctx_ = ctx
109547	return c
109548}
109549
109550// Header returns an http.Header that can be modified by the caller to
109551// add HTTP headers to the request.
109552func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
109553	if c.header_ == nil {
109554		c.header_ = make(http.Header)
109555	}
109556	return c.header_
109557}
109558
109559func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
109560	reqHeaders := make(http.Header)
109561	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109562	for k, v := range c.header_ {
109563		reqHeaders[k] = v
109564	}
109565	reqHeaders.Set("User-Agent", c.s.userAgent())
109566	var body io.Reader = nil
109567	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
109568	if err != nil {
109569		return nil, err
109570	}
109571	reqHeaders.Set("Content-Type", "application/json")
109572	c.urlParams_.Set("alt", alt)
109573	c.urlParams_.Set("prettyPrint", "false")
109574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
109575	urls += "?" + c.urlParams_.Encode()
109576	req, err := http.NewRequest("POST", urls, body)
109577	if err != nil {
109578		return nil, err
109579	}
109580	req.Header = reqHeaders
109581	googleapi.Expand(req.URL, map[string]string{
109582		"project": c.project,
109583	})
109584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109585}
109586
109587// Do executes the "compute.projects.setUsageExportBucket" call.
109588// Exactly one of *Operation or error will be non-nil. Any non-2xx
109589// status code is an error. Response headers are in either
109590// *Operation.ServerResponse.Header or (if a response was returned at
109591// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109592// to check whether the returned error was because
109593// http.StatusNotModified was returned.
109594func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109595	gensupport.SetOptions(c.urlParams_, opts...)
109596	res, err := c.doRequest("json")
109597	if res != nil && res.StatusCode == http.StatusNotModified {
109598		if res.Body != nil {
109599			res.Body.Close()
109600		}
109601		return nil, &googleapi.Error{
109602			Code:   res.StatusCode,
109603			Header: res.Header,
109604		}
109605	}
109606	if err != nil {
109607		return nil, err
109608	}
109609	defer googleapi.CloseBody(res)
109610	if err := googleapi.CheckResponse(res); err != nil {
109611		return nil, err
109612	}
109613	ret := &Operation{
109614		ServerResponse: googleapi.ServerResponse{
109615			Header:         res.Header,
109616			HTTPStatusCode: res.StatusCode,
109617		},
109618	}
109619	target := &ret
109620	if err := gensupport.DecodeResponse(target, res); err != nil {
109621		return nil, err
109622	}
109623	return ret, nil
109624	// {
109625	//   "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.",
109626	//   "httpMethod": "POST",
109627	//   "id": "compute.projects.setUsageExportBucket",
109628	//   "parameterOrder": [
109629	//     "project"
109630	//   ],
109631	//   "parameters": {
109632	//     "project": {
109633	//       "description": "Project ID for this request.",
109634	//       "location": "path",
109635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109636	//       "required": true,
109637	//       "type": "string"
109638	//     },
109639	//     "requestId": {
109640	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109641	//       "location": "query",
109642	//       "type": "string"
109643	//     }
109644	//   },
109645	//   "path": "{project}/setUsageExportBucket",
109646	//   "request": {
109647	//     "$ref": "UsageExportLocation"
109648	//   },
109649	//   "response": {
109650	//     "$ref": "Operation"
109651	//   },
109652	//   "scopes": [
109653	//     "https://www.googleapis.com/auth/cloud-platform",
109654	//     "https://www.googleapis.com/auth/compute",
109655	//     "https://www.googleapis.com/auth/devstorage.full_control",
109656	//     "https://www.googleapis.com/auth/devstorage.read_only",
109657	//     "https://www.googleapis.com/auth/devstorage.read_write"
109658	//   ]
109659	// }
109660
109661}
109662
109663// method id "compute.regionAutoscalers.delete":
109664
109665type RegionAutoscalersDeleteCall struct {
109666	s          *Service
109667	project    string
109668	region     string
109669	autoscaler string
109670	urlParams_ gensupport.URLParams
109671	ctx_       context.Context
109672	header_    http.Header
109673}
109674
109675// Delete: Deletes the specified autoscaler.
109676func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
109677	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109678	c.project = project
109679	c.region = region
109680	c.autoscaler = autoscaler
109681	return c
109682}
109683
109684// RequestId sets the optional parameter "requestId": An optional
109685// request ID to identify requests. Specify a unique request ID so that
109686// if you must retry your request, the server will know to ignore the
109687// request if it has already been completed.
109688//
109689// For example, consider a situation where you make an initial request
109690// and the request times out. If you make the request again with the
109691// same request ID, the server can check if original operation with the
109692// same request ID was received, and if so, will ignore the second
109693// request. This prevents clients from accidentally creating duplicate
109694// commitments.
109695//
109696// The request ID must be a valid UUID with the exception that zero UUID
109697// is not supported (00000000-0000-0000-0000-000000000000).
109698func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
109699	c.urlParams_.Set("requestId", requestId)
109700	return c
109701}
109702
109703// Fields allows partial responses to be retrieved. See
109704// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109705// for more information.
109706func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
109707	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109708	return c
109709}
109710
109711// Context sets the context to be used in this call's Do method. Any
109712// pending HTTP request will be aborted if the provided context is
109713// canceled.
109714func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
109715	c.ctx_ = ctx
109716	return c
109717}
109718
109719// Header returns an http.Header that can be modified by the caller to
109720// add HTTP headers to the request.
109721func (c *RegionAutoscalersDeleteCall) Header() http.Header {
109722	if c.header_ == nil {
109723		c.header_ = make(http.Header)
109724	}
109725	return c.header_
109726}
109727
109728func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
109729	reqHeaders := make(http.Header)
109730	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109731	for k, v := range c.header_ {
109732		reqHeaders[k] = v
109733	}
109734	reqHeaders.Set("User-Agent", c.s.userAgent())
109735	var body io.Reader = nil
109736	c.urlParams_.Set("alt", alt)
109737	c.urlParams_.Set("prettyPrint", "false")
109738	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
109739	urls += "?" + c.urlParams_.Encode()
109740	req, err := http.NewRequest("DELETE", urls, body)
109741	if err != nil {
109742		return nil, err
109743	}
109744	req.Header = reqHeaders
109745	googleapi.Expand(req.URL, map[string]string{
109746		"project":    c.project,
109747		"region":     c.region,
109748		"autoscaler": c.autoscaler,
109749	})
109750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109751}
109752
109753// Do executes the "compute.regionAutoscalers.delete" call.
109754// Exactly one of *Operation or error will be non-nil. Any non-2xx
109755// status code is an error. Response headers are in either
109756// *Operation.ServerResponse.Header or (if a response was returned at
109757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109758// to check whether the returned error was because
109759// http.StatusNotModified was returned.
109760func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109761	gensupport.SetOptions(c.urlParams_, opts...)
109762	res, err := c.doRequest("json")
109763	if res != nil && res.StatusCode == http.StatusNotModified {
109764		if res.Body != nil {
109765			res.Body.Close()
109766		}
109767		return nil, &googleapi.Error{
109768			Code:   res.StatusCode,
109769			Header: res.Header,
109770		}
109771	}
109772	if err != nil {
109773		return nil, err
109774	}
109775	defer googleapi.CloseBody(res)
109776	if err := googleapi.CheckResponse(res); err != nil {
109777		return nil, err
109778	}
109779	ret := &Operation{
109780		ServerResponse: googleapi.ServerResponse{
109781			Header:         res.Header,
109782			HTTPStatusCode: res.StatusCode,
109783		},
109784	}
109785	target := &ret
109786	if err := gensupport.DecodeResponse(target, res); err != nil {
109787		return nil, err
109788	}
109789	return ret, nil
109790	// {
109791	//   "description": "Deletes the specified autoscaler.",
109792	//   "httpMethod": "DELETE",
109793	//   "id": "compute.regionAutoscalers.delete",
109794	//   "parameterOrder": [
109795	//     "project",
109796	//     "region",
109797	//     "autoscaler"
109798	//   ],
109799	//   "parameters": {
109800	//     "autoscaler": {
109801	//       "description": "Name of the autoscaler to delete.",
109802	//       "location": "path",
109803	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109804	//       "required": true,
109805	//       "type": "string"
109806	//     },
109807	//     "project": {
109808	//       "description": "Project ID for this request.",
109809	//       "location": "path",
109810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109811	//       "required": true,
109812	//       "type": "string"
109813	//     },
109814	//     "region": {
109815	//       "description": "Name of the region scoping this request.",
109816	//       "location": "path",
109817	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109818	//       "required": true,
109819	//       "type": "string"
109820	//     },
109821	//     "requestId": {
109822	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109823	//       "location": "query",
109824	//       "type": "string"
109825	//     }
109826	//   },
109827	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
109828	//   "response": {
109829	//     "$ref": "Operation"
109830	//   },
109831	//   "scopes": [
109832	//     "https://www.googleapis.com/auth/cloud-platform",
109833	//     "https://www.googleapis.com/auth/compute"
109834	//   ]
109835	// }
109836
109837}
109838
109839// method id "compute.regionAutoscalers.get":
109840
109841type RegionAutoscalersGetCall struct {
109842	s            *Service
109843	project      string
109844	region       string
109845	autoscaler   string
109846	urlParams_   gensupport.URLParams
109847	ifNoneMatch_ string
109848	ctx_         context.Context
109849	header_      http.Header
109850}
109851
109852// Get: Returns the specified autoscaler.
109853func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
109854	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109855	c.project = project
109856	c.region = region
109857	c.autoscaler = autoscaler
109858	return c
109859}
109860
109861// Fields allows partial responses to be retrieved. See
109862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109863// for more information.
109864func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
109865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109866	return c
109867}
109868
109869// IfNoneMatch sets the optional parameter which makes the operation
109870// fail if the object's ETag matches the given value. This is useful for
109871// getting updates only after the object has changed since the last
109872// request. Use googleapi.IsNotModified to check whether the response
109873// error from Do is the result of In-None-Match.
109874func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
109875	c.ifNoneMatch_ = entityTag
109876	return c
109877}
109878
109879// Context sets the context to be used in this call's Do method. Any
109880// pending HTTP request will be aborted if the provided context is
109881// canceled.
109882func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
109883	c.ctx_ = ctx
109884	return c
109885}
109886
109887// Header returns an http.Header that can be modified by the caller to
109888// add HTTP headers to the request.
109889func (c *RegionAutoscalersGetCall) Header() http.Header {
109890	if c.header_ == nil {
109891		c.header_ = make(http.Header)
109892	}
109893	return c.header_
109894}
109895
109896func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
109897	reqHeaders := make(http.Header)
109898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
109899	for k, v := range c.header_ {
109900		reqHeaders[k] = v
109901	}
109902	reqHeaders.Set("User-Agent", c.s.userAgent())
109903	if c.ifNoneMatch_ != "" {
109904		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109905	}
109906	var body io.Reader = nil
109907	c.urlParams_.Set("alt", alt)
109908	c.urlParams_.Set("prettyPrint", "false")
109909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
109910	urls += "?" + c.urlParams_.Encode()
109911	req, err := http.NewRequest("GET", urls, body)
109912	if err != nil {
109913		return nil, err
109914	}
109915	req.Header = reqHeaders
109916	googleapi.Expand(req.URL, map[string]string{
109917		"project":    c.project,
109918		"region":     c.region,
109919		"autoscaler": c.autoscaler,
109920	})
109921	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109922}
109923
109924// Do executes the "compute.regionAutoscalers.get" call.
109925// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
109926// status code is an error. Response headers are in either
109927// *Autoscaler.ServerResponse.Header or (if a response was returned at
109928// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109929// to check whether the returned error was because
109930// http.StatusNotModified was returned.
109931func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
109932	gensupport.SetOptions(c.urlParams_, opts...)
109933	res, err := c.doRequest("json")
109934	if res != nil && res.StatusCode == http.StatusNotModified {
109935		if res.Body != nil {
109936			res.Body.Close()
109937		}
109938		return nil, &googleapi.Error{
109939			Code:   res.StatusCode,
109940			Header: res.Header,
109941		}
109942	}
109943	if err != nil {
109944		return nil, err
109945	}
109946	defer googleapi.CloseBody(res)
109947	if err := googleapi.CheckResponse(res); err != nil {
109948		return nil, err
109949	}
109950	ret := &Autoscaler{
109951		ServerResponse: googleapi.ServerResponse{
109952			Header:         res.Header,
109953			HTTPStatusCode: res.StatusCode,
109954		},
109955	}
109956	target := &ret
109957	if err := gensupport.DecodeResponse(target, res); err != nil {
109958		return nil, err
109959	}
109960	return ret, nil
109961	// {
109962	//   "description": "Returns the specified autoscaler.",
109963	//   "httpMethod": "GET",
109964	//   "id": "compute.regionAutoscalers.get",
109965	//   "parameterOrder": [
109966	//     "project",
109967	//     "region",
109968	//     "autoscaler"
109969	//   ],
109970	//   "parameters": {
109971	//     "autoscaler": {
109972	//       "description": "Name of the autoscaler to return.",
109973	//       "location": "path",
109974	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109975	//       "required": true,
109976	//       "type": "string"
109977	//     },
109978	//     "project": {
109979	//       "description": "Project ID for this request.",
109980	//       "location": "path",
109981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109982	//       "required": true,
109983	//       "type": "string"
109984	//     },
109985	//     "region": {
109986	//       "description": "Name of the region scoping this request.",
109987	//       "location": "path",
109988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109989	//       "required": true,
109990	//       "type": "string"
109991	//     }
109992	//   },
109993	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
109994	//   "response": {
109995	//     "$ref": "Autoscaler"
109996	//   },
109997	//   "scopes": [
109998	//     "https://www.googleapis.com/auth/cloud-platform",
109999	//     "https://www.googleapis.com/auth/compute",
110000	//     "https://www.googleapis.com/auth/compute.readonly"
110001	//   ]
110002	// }
110003
110004}
110005
110006// method id "compute.regionAutoscalers.insert":
110007
110008type RegionAutoscalersInsertCall struct {
110009	s          *Service
110010	project    string
110011	region     string
110012	autoscaler *Autoscaler
110013	urlParams_ gensupport.URLParams
110014	ctx_       context.Context
110015	header_    http.Header
110016}
110017
110018// Insert: Creates an autoscaler in the specified project using the data
110019// included in the request.
110020func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
110021	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110022	c.project = project
110023	c.region = region
110024	c.autoscaler = autoscaler
110025	return c
110026}
110027
110028// RequestId sets the optional parameter "requestId": An optional
110029// request ID to identify requests. Specify a unique request ID so that
110030// if you must retry your request, the server will know to ignore the
110031// request if it has already been completed.
110032//
110033// For example, consider a situation where you make an initial request
110034// and the request times out. If you make the request again with the
110035// same request ID, the server can check if original operation with the
110036// same request ID was received, and if so, will ignore the second
110037// request. This prevents clients from accidentally creating duplicate
110038// commitments.
110039//
110040// The request ID must be a valid UUID with the exception that zero UUID
110041// is not supported (00000000-0000-0000-0000-000000000000).
110042func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
110043	c.urlParams_.Set("requestId", requestId)
110044	return c
110045}
110046
110047// Fields allows partial responses to be retrieved. See
110048// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110049// for more information.
110050func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
110051	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110052	return c
110053}
110054
110055// Context sets the context to be used in this call's Do method. Any
110056// pending HTTP request will be aborted if the provided context is
110057// canceled.
110058func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
110059	c.ctx_ = ctx
110060	return c
110061}
110062
110063// Header returns an http.Header that can be modified by the caller to
110064// add HTTP headers to the request.
110065func (c *RegionAutoscalersInsertCall) Header() http.Header {
110066	if c.header_ == nil {
110067		c.header_ = make(http.Header)
110068	}
110069	return c.header_
110070}
110071
110072func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
110073	reqHeaders := make(http.Header)
110074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110075	for k, v := range c.header_ {
110076		reqHeaders[k] = v
110077	}
110078	reqHeaders.Set("User-Agent", c.s.userAgent())
110079	var body io.Reader = nil
110080	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
110081	if err != nil {
110082		return nil, err
110083	}
110084	reqHeaders.Set("Content-Type", "application/json")
110085	c.urlParams_.Set("alt", alt)
110086	c.urlParams_.Set("prettyPrint", "false")
110087	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
110088	urls += "?" + c.urlParams_.Encode()
110089	req, err := http.NewRequest("POST", urls, body)
110090	if err != nil {
110091		return nil, err
110092	}
110093	req.Header = reqHeaders
110094	googleapi.Expand(req.URL, map[string]string{
110095		"project": c.project,
110096		"region":  c.region,
110097	})
110098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110099}
110100
110101// Do executes the "compute.regionAutoscalers.insert" call.
110102// Exactly one of *Operation or error will be non-nil. Any non-2xx
110103// status code is an error. Response headers are in either
110104// *Operation.ServerResponse.Header or (if a response was returned at
110105// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110106// to check whether the returned error was because
110107// http.StatusNotModified was returned.
110108func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110109	gensupport.SetOptions(c.urlParams_, opts...)
110110	res, err := c.doRequest("json")
110111	if res != nil && res.StatusCode == http.StatusNotModified {
110112		if res.Body != nil {
110113			res.Body.Close()
110114		}
110115		return nil, &googleapi.Error{
110116			Code:   res.StatusCode,
110117			Header: res.Header,
110118		}
110119	}
110120	if err != nil {
110121		return nil, err
110122	}
110123	defer googleapi.CloseBody(res)
110124	if err := googleapi.CheckResponse(res); err != nil {
110125		return nil, err
110126	}
110127	ret := &Operation{
110128		ServerResponse: googleapi.ServerResponse{
110129			Header:         res.Header,
110130			HTTPStatusCode: res.StatusCode,
110131		},
110132	}
110133	target := &ret
110134	if err := gensupport.DecodeResponse(target, res); err != nil {
110135		return nil, err
110136	}
110137	return ret, nil
110138	// {
110139	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
110140	//   "httpMethod": "POST",
110141	//   "id": "compute.regionAutoscalers.insert",
110142	//   "parameterOrder": [
110143	//     "project",
110144	//     "region"
110145	//   ],
110146	//   "parameters": {
110147	//     "project": {
110148	//       "description": "Project ID for this request.",
110149	//       "location": "path",
110150	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110151	//       "required": true,
110152	//       "type": "string"
110153	//     },
110154	//     "region": {
110155	//       "description": "Name of the region scoping this request.",
110156	//       "location": "path",
110157	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110158	//       "required": true,
110159	//       "type": "string"
110160	//     },
110161	//     "requestId": {
110162	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110163	//       "location": "query",
110164	//       "type": "string"
110165	//     }
110166	//   },
110167	//   "path": "{project}/regions/{region}/autoscalers",
110168	//   "request": {
110169	//     "$ref": "Autoscaler"
110170	//   },
110171	//   "response": {
110172	//     "$ref": "Operation"
110173	//   },
110174	//   "scopes": [
110175	//     "https://www.googleapis.com/auth/cloud-platform",
110176	//     "https://www.googleapis.com/auth/compute"
110177	//   ]
110178	// }
110179
110180}
110181
110182// method id "compute.regionAutoscalers.list":
110183
110184type RegionAutoscalersListCall struct {
110185	s            *Service
110186	project      string
110187	region       string
110188	urlParams_   gensupport.URLParams
110189	ifNoneMatch_ string
110190	ctx_         context.Context
110191	header_      http.Header
110192}
110193
110194// List: Retrieves a list of autoscalers contained within the specified
110195// region.
110196func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
110197	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110198	c.project = project
110199	c.region = region
110200	return c
110201}
110202
110203// Filter sets the optional parameter "filter": A filter expression that
110204// filters resources listed in the response. The expression must specify
110205// the field name, a comparison operator, and the value that you want to
110206// use for filtering. The value must be a string, a number, or a
110207// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110208// `<`.
110209//
110210// For example, if you are filtering Compute Engine instances, you can
110211// exclude instances named `example-instance` by specifying `name !=
110212// example-instance`.
110213//
110214// You can also filter nested fields. For example, you could specify
110215// `scheduling.automaticRestart = false` to include instances only if
110216// they are not scheduled for automatic restarts. You can use filtering
110217// on nested fields to filter based on resource labels.
110218//
110219// To filter on multiple expressions, provide each separate expression
110220// within parentheses. For example: ``` (scheduling.automaticRestart =
110221// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110222// is an `AND` expression. However, you can include `AND` and `OR`
110223// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110224// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110225// (scheduling.automaticRestart = true) ```
110226func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
110227	c.urlParams_.Set("filter", filter)
110228	return c
110229}
110230
110231// MaxResults sets the optional parameter "maxResults": The maximum
110232// number of results per page that should be returned. If the number of
110233// available results is larger than `maxResults`, Compute Engine returns
110234// a `nextPageToken` that can be used to get the next page of results in
110235// subsequent list requests. Acceptable values are `0` to `500`,
110236// inclusive. (Default: `500`)
110237func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
110238	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110239	return c
110240}
110241
110242// OrderBy sets the optional parameter "orderBy": Sorts list results by
110243// a certain order. By default, results are returned in alphanumerical
110244// order based on the resource name.
110245//
110246// You can also sort results in descending order based on the creation
110247// timestamp using `orderBy="creationTimestamp desc". This sorts
110248// results based on the `creationTimestamp` field in reverse
110249// chronological order (newest result first). Use this to sort resources
110250// like operations so that the newest operation is returned
110251// first.
110252//
110253// Currently, only sorting by `name` or `creationTimestamp desc` is
110254// supported.
110255func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
110256	c.urlParams_.Set("orderBy", orderBy)
110257	return c
110258}
110259
110260// PageToken sets the optional parameter "pageToken": Specifies a page
110261// token to use. Set `pageToken` to the `nextPageToken` returned by a
110262// previous list request to get the next page of results.
110263func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
110264	c.urlParams_.Set("pageToken", pageToken)
110265	return c
110266}
110267
110268// Fields allows partial responses to be retrieved. See
110269// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110270// for more information.
110271func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
110272	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110273	return c
110274}
110275
110276// IfNoneMatch sets the optional parameter which makes the operation
110277// fail if the object's ETag matches the given value. This is useful for
110278// getting updates only after the object has changed since the last
110279// request. Use googleapi.IsNotModified to check whether the response
110280// error from Do is the result of In-None-Match.
110281func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
110282	c.ifNoneMatch_ = entityTag
110283	return c
110284}
110285
110286// Context sets the context to be used in this call's Do method. Any
110287// pending HTTP request will be aborted if the provided context is
110288// canceled.
110289func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
110290	c.ctx_ = ctx
110291	return c
110292}
110293
110294// Header returns an http.Header that can be modified by the caller to
110295// add HTTP headers to the request.
110296func (c *RegionAutoscalersListCall) Header() http.Header {
110297	if c.header_ == nil {
110298		c.header_ = make(http.Header)
110299	}
110300	return c.header_
110301}
110302
110303func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
110304	reqHeaders := make(http.Header)
110305	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110306	for k, v := range c.header_ {
110307		reqHeaders[k] = v
110308	}
110309	reqHeaders.Set("User-Agent", c.s.userAgent())
110310	if c.ifNoneMatch_ != "" {
110311		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110312	}
110313	var body io.Reader = nil
110314	c.urlParams_.Set("alt", alt)
110315	c.urlParams_.Set("prettyPrint", "false")
110316	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
110317	urls += "?" + c.urlParams_.Encode()
110318	req, err := http.NewRequest("GET", urls, body)
110319	if err != nil {
110320		return nil, err
110321	}
110322	req.Header = reqHeaders
110323	googleapi.Expand(req.URL, map[string]string{
110324		"project": c.project,
110325		"region":  c.region,
110326	})
110327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110328}
110329
110330// Do executes the "compute.regionAutoscalers.list" call.
110331// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
110332// non-2xx status code is an error. Response headers are in either
110333// *RegionAutoscalerList.ServerResponse.Header or (if a response was
110334// returned at all) in error.(*googleapi.Error).Header. Use
110335// googleapi.IsNotModified to check whether the returned error was
110336// because http.StatusNotModified was returned.
110337func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
110338	gensupport.SetOptions(c.urlParams_, opts...)
110339	res, err := c.doRequest("json")
110340	if res != nil && res.StatusCode == http.StatusNotModified {
110341		if res.Body != nil {
110342			res.Body.Close()
110343		}
110344		return nil, &googleapi.Error{
110345			Code:   res.StatusCode,
110346			Header: res.Header,
110347		}
110348	}
110349	if err != nil {
110350		return nil, err
110351	}
110352	defer googleapi.CloseBody(res)
110353	if err := googleapi.CheckResponse(res); err != nil {
110354		return nil, err
110355	}
110356	ret := &RegionAutoscalerList{
110357		ServerResponse: googleapi.ServerResponse{
110358			Header:         res.Header,
110359			HTTPStatusCode: res.StatusCode,
110360		},
110361	}
110362	target := &ret
110363	if err := gensupport.DecodeResponse(target, res); err != nil {
110364		return nil, err
110365	}
110366	return ret, nil
110367	// {
110368	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
110369	//   "httpMethod": "GET",
110370	//   "id": "compute.regionAutoscalers.list",
110371	//   "parameterOrder": [
110372	//     "project",
110373	//     "region"
110374	//   ],
110375	//   "parameters": {
110376	//     "filter": {
110377	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110378	//       "location": "query",
110379	//       "type": "string"
110380	//     },
110381	//     "maxResults": {
110382	//       "default": "500",
110383	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110384	//       "format": "uint32",
110385	//       "location": "query",
110386	//       "minimum": "0",
110387	//       "type": "integer"
110388	//     },
110389	//     "orderBy": {
110390	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
110391	//       "location": "query",
110392	//       "type": "string"
110393	//     },
110394	//     "pageToken": {
110395	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110396	//       "location": "query",
110397	//       "type": "string"
110398	//     },
110399	//     "project": {
110400	//       "description": "Project ID for this request.",
110401	//       "location": "path",
110402	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110403	//       "required": true,
110404	//       "type": "string"
110405	//     },
110406	//     "region": {
110407	//       "description": "Name of the region scoping this request.",
110408	//       "location": "path",
110409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110410	//       "required": true,
110411	//       "type": "string"
110412	//     }
110413	//   },
110414	//   "path": "{project}/regions/{region}/autoscalers",
110415	//   "response": {
110416	//     "$ref": "RegionAutoscalerList"
110417	//   },
110418	//   "scopes": [
110419	//     "https://www.googleapis.com/auth/cloud-platform",
110420	//     "https://www.googleapis.com/auth/compute",
110421	//     "https://www.googleapis.com/auth/compute.readonly"
110422	//   ]
110423	// }
110424
110425}
110426
110427// Pages invokes f for each page of results.
110428// A non-nil error returned from f will halt the iteration.
110429// The provided context supersedes any context provided to the Context method.
110430func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
110431	c.ctx_ = ctx
110432	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110433	for {
110434		x, err := c.Do()
110435		if err != nil {
110436			return err
110437		}
110438		if err := f(x); err != nil {
110439			return err
110440		}
110441		if x.NextPageToken == "" {
110442			return nil
110443		}
110444		c.PageToken(x.NextPageToken)
110445	}
110446}
110447
110448// method id "compute.regionAutoscalers.patch":
110449
110450type RegionAutoscalersPatchCall struct {
110451	s          *Service
110452	project    string
110453	region     string
110454	autoscaler *Autoscaler
110455	urlParams_ gensupport.URLParams
110456	ctx_       context.Context
110457	header_    http.Header
110458}
110459
110460// Patch: Updates an autoscaler in the specified project using the data
110461// included in the request. This method supports PATCH semantics and
110462// uses the JSON merge patch format and processing rules.
110463func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
110464	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110465	c.project = project
110466	c.region = region
110467	c.autoscaler = autoscaler
110468	return c
110469}
110470
110471// Autoscaler sets the optional parameter "autoscaler": Name of the
110472// autoscaler to patch.
110473func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
110474	c.urlParams_.Set("autoscaler", autoscaler)
110475	return c
110476}
110477
110478// RequestId sets the optional parameter "requestId": An optional
110479// request ID to identify requests. Specify a unique request ID so that
110480// if you must retry your request, the server will know to ignore the
110481// request if it has already been completed.
110482//
110483// For example, consider a situation where you make an initial request
110484// and the request times out. If you make the request again with the
110485// same request ID, the server can check if original operation with the
110486// same request ID was received, and if so, will ignore the second
110487// request. This prevents clients from accidentally creating duplicate
110488// commitments.
110489//
110490// The request ID must be a valid UUID with the exception that zero UUID
110491// is not supported (00000000-0000-0000-0000-000000000000).
110492func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
110493	c.urlParams_.Set("requestId", requestId)
110494	return c
110495}
110496
110497// Fields allows partial responses to be retrieved. See
110498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110499// for more information.
110500func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
110501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110502	return c
110503}
110504
110505// Context sets the context to be used in this call's Do method. Any
110506// pending HTTP request will be aborted if the provided context is
110507// canceled.
110508func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
110509	c.ctx_ = ctx
110510	return c
110511}
110512
110513// Header returns an http.Header that can be modified by the caller to
110514// add HTTP headers to the request.
110515func (c *RegionAutoscalersPatchCall) Header() http.Header {
110516	if c.header_ == nil {
110517		c.header_ = make(http.Header)
110518	}
110519	return c.header_
110520}
110521
110522func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
110523	reqHeaders := make(http.Header)
110524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110525	for k, v := range c.header_ {
110526		reqHeaders[k] = v
110527	}
110528	reqHeaders.Set("User-Agent", c.s.userAgent())
110529	var body io.Reader = nil
110530	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
110531	if err != nil {
110532		return nil, err
110533	}
110534	reqHeaders.Set("Content-Type", "application/json")
110535	c.urlParams_.Set("alt", alt)
110536	c.urlParams_.Set("prettyPrint", "false")
110537	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
110538	urls += "?" + c.urlParams_.Encode()
110539	req, err := http.NewRequest("PATCH", urls, body)
110540	if err != nil {
110541		return nil, err
110542	}
110543	req.Header = reqHeaders
110544	googleapi.Expand(req.URL, map[string]string{
110545		"project": c.project,
110546		"region":  c.region,
110547	})
110548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110549}
110550
110551// Do executes the "compute.regionAutoscalers.patch" call.
110552// Exactly one of *Operation or error will be non-nil. Any non-2xx
110553// status code is an error. Response headers are in either
110554// *Operation.ServerResponse.Header or (if a response was returned at
110555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110556// to check whether the returned error was because
110557// http.StatusNotModified was returned.
110558func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110559	gensupport.SetOptions(c.urlParams_, opts...)
110560	res, err := c.doRequest("json")
110561	if res != nil && res.StatusCode == http.StatusNotModified {
110562		if res.Body != nil {
110563			res.Body.Close()
110564		}
110565		return nil, &googleapi.Error{
110566			Code:   res.StatusCode,
110567			Header: res.Header,
110568		}
110569	}
110570	if err != nil {
110571		return nil, err
110572	}
110573	defer googleapi.CloseBody(res)
110574	if err := googleapi.CheckResponse(res); err != nil {
110575		return nil, err
110576	}
110577	ret := &Operation{
110578		ServerResponse: googleapi.ServerResponse{
110579			Header:         res.Header,
110580			HTTPStatusCode: res.StatusCode,
110581		},
110582	}
110583	target := &ret
110584	if err := gensupport.DecodeResponse(target, res); err != nil {
110585		return nil, err
110586	}
110587	return ret, nil
110588	// {
110589	//   "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.",
110590	//   "httpMethod": "PATCH",
110591	//   "id": "compute.regionAutoscalers.patch",
110592	//   "parameterOrder": [
110593	//     "project",
110594	//     "region"
110595	//   ],
110596	//   "parameters": {
110597	//     "autoscaler": {
110598	//       "description": "Name of the autoscaler to patch.",
110599	//       "location": "query",
110600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110601	//       "type": "string"
110602	//     },
110603	//     "project": {
110604	//       "description": "Project ID for this request.",
110605	//       "location": "path",
110606	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110607	//       "required": true,
110608	//       "type": "string"
110609	//     },
110610	//     "region": {
110611	//       "description": "Name of the region scoping this request.",
110612	//       "location": "path",
110613	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110614	//       "required": true,
110615	//       "type": "string"
110616	//     },
110617	//     "requestId": {
110618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110619	//       "location": "query",
110620	//       "type": "string"
110621	//     }
110622	//   },
110623	//   "path": "{project}/regions/{region}/autoscalers",
110624	//   "request": {
110625	//     "$ref": "Autoscaler"
110626	//   },
110627	//   "response": {
110628	//     "$ref": "Operation"
110629	//   },
110630	//   "scopes": [
110631	//     "https://www.googleapis.com/auth/cloud-platform",
110632	//     "https://www.googleapis.com/auth/compute"
110633	//   ]
110634	// }
110635
110636}
110637
110638// method id "compute.regionAutoscalers.testIamPermissions":
110639
110640type RegionAutoscalersTestIamPermissionsCall struct {
110641	s                      *Service
110642	project                string
110643	region                 string
110644	resource               string
110645	testpermissionsrequest *TestPermissionsRequest
110646	urlParams_             gensupport.URLParams
110647	ctx_                   context.Context
110648	header_                http.Header
110649}
110650
110651// TestIamPermissions: Returns permissions that a caller has on the
110652// specified resource.
110653func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall {
110654	c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110655	c.project = project
110656	c.region = region
110657	c.resource = resource
110658	c.testpermissionsrequest = testpermissionsrequest
110659	return c
110660}
110661
110662// Fields allows partial responses to be retrieved. See
110663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110664// for more information.
110665func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall {
110666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110667	return c
110668}
110669
110670// Context sets the context to be used in this call's Do method. Any
110671// pending HTTP request will be aborted if the provided context is
110672// canceled.
110673func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall {
110674	c.ctx_ = ctx
110675	return c
110676}
110677
110678// Header returns an http.Header that can be modified by the caller to
110679// add HTTP headers to the request.
110680func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header {
110681	if c.header_ == nil {
110682		c.header_ = make(http.Header)
110683	}
110684	return c.header_
110685}
110686
110687func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
110688	reqHeaders := make(http.Header)
110689	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110690	for k, v := range c.header_ {
110691		reqHeaders[k] = v
110692	}
110693	reqHeaders.Set("User-Agent", c.s.userAgent())
110694	var body io.Reader = nil
110695	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
110696	if err != nil {
110697		return nil, err
110698	}
110699	reqHeaders.Set("Content-Type", "application/json")
110700	c.urlParams_.Set("alt", alt)
110701	c.urlParams_.Set("prettyPrint", "false")
110702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions")
110703	urls += "?" + c.urlParams_.Encode()
110704	req, err := http.NewRequest("POST", urls, body)
110705	if err != nil {
110706		return nil, err
110707	}
110708	req.Header = reqHeaders
110709	googleapi.Expand(req.URL, map[string]string{
110710		"project":  c.project,
110711		"region":   c.region,
110712		"resource": c.resource,
110713	})
110714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110715}
110716
110717// Do executes the "compute.regionAutoscalers.testIamPermissions" call.
110718// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
110719// non-2xx status code is an error. Response headers are in either
110720// *TestPermissionsResponse.ServerResponse.Header or (if a response was
110721// returned at all) in error.(*googleapi.Error).Header. Use
110722// googleapi.IsNotModified to check whether the returned error was
110723// because http.StatusNotModified was returned.
110724func (c *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
110725	gensupport.SetOptions(c.urlParams_, opts...)
110726	res, err := c.doRequest("json")
110727	if res != nil && res.StatusCode == http.StatusNotModified {
110728		if res.Body != nil {
110729			res.Body.Close()
110730		}
110731		return nil, &googleapi.Error{
110732			Code:   res.StatusCode,
110733			Header: res.Header,
110734		}
110735	}
110736	if err != nil {
110737		return nil, err
110738	}
110739	defer googleapi.CloseBody(res)
110740	if err := googleapi.CheckResponse(res); err != nil {
110741		return nil, err
110742	}
110743	ret := &TestPermissionsResponse{
110744		ServerResponse: googleapi.ServerResponse{
110745			Header:         res.Header,
110746			HTTPStatusCode: res.StatusCode,
110747		},
110748	}
110749	target := &ret
110750	if err := gensupport.DecodeResponse(target, res); err != nil {
110751		return nil, err
110752	}
110753	return ret, nil
110754	// {
110755	//   "description": "Returns permissions that a caller has on the specified resource.",
110756	//   "httpMethod": "POST",
110757	//   "id": "compute.regionAutoscalers.testIamPermissions",
110758	//   "parameterOrder": [
110759	//     "project",
110760	//     "region",
110761	//     "resource"
110762	//   ],
110763	//   "parameters": {
110764	//     "project": {
110765	//       "description": "Project ID for this request.",
110766	//       "location": "path",
110767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110768	//       "required": true,
110769	//       "type": "string"
110770	//     },
110771	//     "region": {
110772	//       "description": "The name of the region for this request.",
110773	//       "location": "path",
110774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110775	//       "required": true,
110776	//       "type": "string"
110777	//     },
110778	//     "resource": {
110779	//       "description": "Name or id of the resource for this request.",
110780	//       "location": "path",
110781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110782	//       "required": true,
110783	//       "type": "string"
110784	//     }
110785	//   },
110786	//   "path": "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
110787	//   "request": {
110788	//     "$ref": "TestPermissionsRequest"
110789	//   },
110790	//   "response": {
110791	//     "$ref": "TestPermissionsResponse"
110792	//   },
110793	//   "scopes": [
110794	//     "https://www.googleapis.com/auth/cloud-platform",
110795	//     "https://www.googleapis.com/auth/compute",
110796	//     "https://www.googleapis.com/auth/compute.readonly"
110797	//   ]
110798	// }
110799
110800}
110801
110802// method id "compute.regionAutoscalers.update":
110803
110804type RegionAutoscalersUpdateCall struct {
110805	s          *Service
110806	project    string
110807	region     string
110808	autoscaler *Autoscaler
110809	urlParams_ gensupport.URLParams
110810	ctx_       context.Context
110811	header_    http.Header
110812}
110813
110814// Update: Updates an autoscaler in the specified project using the data
110815// included in the request.
110816func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
110817	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110818	c.project = project
110819	c.region = region
110820	c.autoscaler = autoscaler
110821	return c
110822}
110823
110824// Autoscaler sets the optional parameter "autoscaler": Name of the
110825// autoscaler to update.
110826func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
110827	c.urlParams_.Set("autoscaler", autoscaler)
110828	return c
110829}
110830
110831// RequestId sets the optional parameter "requestId": An optional
110832// request ID to identify requests. Specify a unique request ID so that
110833// if you must retry your request, the server will know to ignore the
110834// request if it has already been completed.
110835//
110836// For example, consider a situation where you make an initial request
110837// and the request times out. If you make the request again with the
110838// same request ID, the server can check if original operation with the
110839// same request ID was received, and if so, will ignore the second
110840// request. This prevents clients from accidentally creating duplicate
110841// commitments.
110842//
110843// The request ID must be a valid UUID with the exception that zero UUID
110844// is not supported (00000000-0000-0000-0000-000000000000).
110845func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
110846	c.urlParams_.Set("requestId", requestId)
110847	return c
110848}
110849
110850// Fields allows partial responses to be retrieved. See
110851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110852// for more information.
110853func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
110854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110855	return c
110856}
110857
110858// Context sets the context to be used in this call's Do method. Any
110859// pending HTTP request will be aborted if the provided context is
110860// canceled.
110861func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
110862	c.ctx_ = ctx
110863	return c
110864}
110865
110866// Header returns an http.Header that can be modified by the caller to
110867// add HTTP headers to the request.
110868func (c *RegionAutoscalersUpdateCall) Header() http.Header {
110869	if c.header_ == nil {
110870		c.header_ = make(http.Header)
110871	}
110872	return c.header_
110873}
110874
110875func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
110876	reqHeaders := make(http.Header)
110877	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
110878	for k, v := range c.header_ {
110879		reqHeaders[k] = v
110880	}
110881	reqHeaders.Set("User-Agent", c.s.userAgent())
110882	var body io.Reader = nil
110883	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
110884	if err != nil {
110885		return nil, err
110886	}
110887	reqHeaders.Set("Content-Type", "application/json")
110888	c.urlParams_.Set("alt", alt)
110889	c.urlParams_.Set("prettyPrint", "false")
110890	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
110891	urls += "?" + c.urlParams_.Encode()
110892	req, err := http.NewRequest("PUT", urls, body)
110893	if err != nil {
110894		return nil, err
110895	}
110896	req.Header = reqHeaders
110897	googleapi.Expand(req.URL, map[string]string{
110898		"project": c.project,
110899		"region":  c.region,
110900	})
110901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110902}
110903
110904// Do executes the "compute.regionAutoscalers.update" call.
110905// Exactly one of *Operation or error will be non-nil. Any non-2xx
110906// status code is an error. Response headers are in either
110907// *Operation.ServerResponse.Header or (if a response was returned at
110908// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110909// to check whether the returned error was because
110910// http.StatusNotModified was returned.
110911func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110912	gensupport.SetOptions(c.urlParams_, opts...)
110913	res, err := c.doRequest("json")
110914	if res != nil && res.StatusCode == http.StatusNotModified {
110915		if res.Body != nil {
110916			res.Body.Close()
110917		}
110918		return nil, &googleapi.Error{
110919			Code:   res.StatusCode,
110920			Header: res.Header,
110921		}
110922	}
110923	if err != nil {
110924		return nil, err
110925	}
110926	defer googleapi.CloseBody(res)
110927	if err := googleapi.CheckResponse(res); err != nil {
110928		return nil, err
110929	}
110930	ret := &Operation{
110931		ServerResponse: googleapi.ServerResponse{
110932			Header:         res.Header,
110933			HTTPStatusCode: res.StatusCode,
110934		},
110935	}
110936	target := &ret
110937	if err := gensupport.DecodeResponse(target, res); err != nil {
110938		return nil, err
110939	}
110940	return ret, nil
110941	// {
110942	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
110943	//   "httpMethod": "PUT",
110944	//   "id": "compute.regionAutoscalers.update",
110945	//   "parameterOrder": [
110946	//     "project",
110947	//     "region"
110948	//   ],
110949	//   "parameters": {
110950	//     "autoscaler": {
110951	//       "description": "Name of the autoscaler to update.",
110952	//       "location": "query",
110953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110954	//       "type": "string"
110955	//     },
110956	//     "project": {
110957	//       "description": "Project ID for this request.",
110958	//       "location": "path",
110959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110960	//       "required": true,
110961	//       "type": "string"
110962	//     },
110963	//     "region": {
110964	//       "description": "Name of the region scoping this request.",
110965	//       "location": "path",
110966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110967	//       "required": true,
110968	//       "type": "string"
110969	//     },
110970	//     "requestId": {
110971	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110972	//       "location": "query",
110973	//       "type": "string"
110974	//     }
110975	//   },
110976	//   "path": "{project}/regions/{region}/autoscalers",
110977	//   "request": {
110978	//     "$ref": "Autoscaler"
110979	//   },
110980	//   "response": {
110981	//     "$ref": "Operation"
110982	//   },
110983	//   "scopes": [
110984	//     "https://www.googleapis.com/auth/cloud-platform",
110985	//     "https://www.googleapis.com/auth/compute"
110986	//   ]
110987	// }
110988
110989}
110990
110991// method id "compute.regionBackendServices.delete":
110992
110993type RegionBackendServicesDeleteCall struct {
110994	s              *Service
110995	project        string
110996	region         string
110997	backendService string
110998	urlParams_     gensupport.URLParams
110999	ctx_           context.Context
111000	header_        http.Header
111001}
111002
111003// Delete: Deletes the specified regional BackendService resource.
111004func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
111005	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111006	c.project = project
111007	c.region = region
111008	c.backendService = backendService
111009	return c
111010}
111011
111012// RequestId sets the optional parameter "requestId": An optional
111013// request ID to identify requests. Specify a unique request ID so that
111014// if you must retry your request, the server will know to ignore the
111015// request if it has already been completed.
111016//
111017// For example, consider a situation where you make an initial request
111018// and the request times out. If you make the request again with the
111019// same request ID, the server can check if original operation with the
111020// same request ID was received, and if so, will ignore the second
111021// request. This prevents clients from accidentally creating duplicate
111022// commitments.
111023//
111024// The request ID must be a valid UUID with the exception that zero UUID
111025// is not supported (00000000-0000-0000-0000-000000000000).
111026func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
111027	c.urlParams_.Set("requestId", requestId)
111028	return c
111029}
111030
111031// Fields allows partial responses to be retrieved. See
111032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111033// for more information.
111034func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
111035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111036	return c
111037}
111038
111039// Context sets the context to be used in this call's Do method. Any
111040// pending HTTP request will be aborted if the provided context is
111041// canceled.
111042func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
111043	c.ctx_ = ctx
111044	return c
111045}
111046
111047// Header returns an http.Header that can be modified by the caller to
111048// add HTTP headers to the request.
111049func (c *RegionBackendServicesDeleteCall) Header() http.Header {
111050	if c.header_ == nil {
111051		c.header_ = make(http.Header)
111052	}
111053	return c.header_
111054}
111055
111056func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
111057	reqHeaders := make(http.Header)
111058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111059	for k, v := range c.header_ {
111060		reqHeaders[k] = v
111061	}
111062	reqHeaders.Set("User-Agent", c.s.userAgent())
111063	var body io.Reader = nil
111064	c.urlParams_.Set("alt", alt)
111065	c.urlParams_.Set("prettyPrint", "false")
111066	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
111067	urls += "?" + c.urlParams_.Encode()
111068	req, err := http.NewRequest("DELETE", urls, body)
111069	if err != nil {
111070		return nil, err
111071	}
111072	req.Header = reqHeaders
111073	googleapi.Expand(req.URL, map[string]string{
111074		"project":        c.project,
111075		"region":         c.region,
111076		"backendService": c.backendService,
111077	})
111078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111079}
111080
111081// Do executes the "compute.regionBackendServices.delete" call.
111082// Exactly one of *Operation or error will be non-nil. Any non-2xx
111083// status code is an error. Response headers are in either
111084// *Operation.ServerResponse.Header or (if a response was returned at
111085// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111086// to check whether the returned error was because
111087// http.StatusNotModified was returned.
111088func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111089	gensupport.SetOptions(c.urlParams_, opts...)
111090	res, err := c.doRequest("json")
111091	if res != nil && res.StatusCode == http.StatusNotModified {
111092		if res.Body != nil {
111093			res.Body.Close()
111094		}
111095		return nil, &googleapi.Error{
111096			Code:   res.StatusCode,
111097			Header: res.Header,
111098		}
111099	}
111100	if err != nil {
111101		return nil, err
111102	}
111103	defer googleapi.CloseBody(res)
111104	if err := googleapi.CheckResponse(res); err != nil {
111105		return nil, err
111106	}
111107	ret := &Operation{
111108		ServerResponse: googleapi.ServerResponse{
111109			Header:         res.Header,
111110			HTTPStatusCode: res.StatusCode,
111111		},
111112	}
111113	target := &ret
111114	if err := gensupport.DecodeResponse(target, res); err != nil {
111115		return nil, err
111116	}
111117	return ret, nil
111118	// {
111119	//   "description": "Deletes the specified regional BackendService resource.",
111120	//   "httpMethod": "DELETE",
111121	//   "id": "compute.regionBackendServices.delete",
111122	//   "parameterOrder": [
111123	//     "project",
111124	//     "region",
111125	//     "backendService"
111126	//   ],
111127	//   "parameters": {
111128	//     "backendService": {
111129	//       "description": "Name of the BackendService resource to delete.",
111130	//       "location": "path",
111131	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111132	//       "required": true,
111133	//       "type": "string"
111134	//     },
111135	//     "project": {
111136	//       "description": "Project ID for this request.",
111137	//       "location": "path",
111138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111139	//       "required": true,
111140	//       "type": "string"
111141	//     },
111142	//     "region": {
111143	//       "description": "Name of the region scoping this request.",
111144	//       "location": "path",
111145	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111146	//       "required": true,
111147	//       "type": "string"
111148	//     },
111149	//     "requestId": {
111150	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111151	//       "location": "query",
111152	//       "type": "string"
111153	//     }
111154	//   },
111155	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
111156	//   "response": {
111157	//     "$ref": "Operation"
111158	//   },
111159	//   "scopes": [
111160	//     "https://www.googleapis.com/auth/cloud-platform",
111161	//     "https://www.googleapis.com/auth/compute"
111162	//   ]
111163	// }
111164
111165}
111166
111167// method id "compute.regionBackendServices.get":
111168
111169type RegionBackendServicesGetCall struct {
111170	s              *Service
111171	project        string
111172	region         string
111173	backendService string
111174	urlParams_     gensupport.URLParams
111175	ifNoneMatch_   string
111176	ctx_           context.Context
111177	header_        http.Header
111178}
111179
111180// Get: Returns the specified regional BackendService resource.
111181func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
111182	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111183	c.project = project
111184	c.region = region
111185	c.backendService = backendService
111186	return c
111187}
111188
111189// Fields allows partial responses to be retrieved. See
111190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111191// for more information.
111192func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
111193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111194	return c
111195}
111196
111197// IfNoneMatch sets the optional parameter which makes the operation
111198// fail if the object's ETag matches the given value. This is useful for
111199// getting updates only after the object has changed since the last
111200// request. Use googleapi.IsNotModified to check whether the response
111201// error from Do is the result of In-None-Match.
111202func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
111203	c.ifNoneMatch_ = entityTag
111204	return c
111205}
111206
111207// Context sets the context to be used in this call's Do method. Any
111208// pending HTTP request will be aborted if the provided context is
111209// canceled.
111210func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
111211	c.ctx_ = ctx
111212	return c
111213}
111214
111215// Header returns an http.Header that can be modified by the caller to
111216// add HTTP headers to the request.
111217func (c *RegionBackendServicesGetCall) Header() http.Header {
111218	if c.header_ == nil {
111219		c.header_ = make(http.Header)
111220	}
111221	return c.header_
111222}
111223
111224func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
111225	reqHeaders := make(http.Header)
111226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111227	for k, v := range c.header_ {
111228		reqHeaders[k] = v
111229	}
111230	reqHeaders.Set("User-Agent", c.s.userAgent())
111231	if c.ifNoneMatch_ != "" {
111232		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111233	}
111234	var body io.Reader = nil
111235	c.urlParams_.Set("alt", alt)
111236	c.urlParams_.Set("prettyPrint", "false")
111237	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
111238	urls += "?" + c.urlParams_.Encode()
111239	req, err := http.NewRequest("GET", urls, body)
111240	if err != nil {
111241		return nil, err
111242	}
111243	req.Header = reqHeaders
111244	googleapi.Expand(req.URL, map[string]string{
111245		"project":        c.project,
111246		"region":         c.region,
111247		"backendService": c.backendService,
111248	})
111249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111250}
111251
111252// Do executes the "compute.regionBackendServices.get" call.
111253// Exactly one of *BackendService or error will be non-nil. Any non-2xx
111254// status code is an error. Response headers are in either
111255// *BackendService.ServerResponse.Header or (if a response was returned
111256// at all) in error.(*googleapi.Error).Header. Use
111257// googleapi.IsNotModified to check whether the returned error was
111258// because http.StatusNotModified was returned.
111259func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
111260	gensupport.SetOptions(c.urlParams_, opts...)
111261	res, err := c.doRequest("json")
111262	if res != nil && res.StatusCode == http.StatusNotModified {
111263		if res.Body != nil {
111264			res.Body.Close()
111265		}
111266		return nil, &googleapi.Error{
111267			Code:   res.StatusCode,
111268			Header: res.Header,
111269		}
111270	}
111271	if err != nil {
111272		return nil, err
111273	}
111274	defer googleapi.CloseBody(res)
111275	if err := googleapi.CheckResponse(res); err != nil {
111276		return nil, err
111277	}
111278	ret := &BackendService{
111279		ServerResponse: googleapi.ServerResponse{
111280			Header:         res.Header,
111281			HTTPStatusCode: res.StatusCode,
111282		},
111283	}
111284	target := &ret
111285	if err := gensupport.DecodeResponse(target, res); err != nil {
111286		return nil, err
111287	}
111288	return ret, nil
111289	// {
111290	//   "description": "Returns the specified regional BackendService resource.",
111291	//   "httpMethod": "GET",
111292	//   "id": "compute.regionBackendServices.get",
111293	//   "parameterOrder": [
111294	//     "project",
111295	//     "region",
111296	//     "backendService"
111297	//   ],
111298	//   "parameters": {
111299	//     "backendService": {
111300	//       "description": "Name of the BackendService resource to return.",
111301	//       "location": "path",
111302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111303	//       "required": true,
111304	//       "type": "string"
111305	//     },
111306	//     "project": {
111307	//       "description": "Project ID for this request.",
111308	//       "location": "path",
111309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111310	//       "required": true,
111311	//       "type": "string"
111312	//     },
111313	//     "region": {
111314	//       "description": "Name of the region scoping this request.",
111315	//       "location": "path",
111316	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111317	//       "required": true,
111318	//       "type": "string"
111319	//     }
111320	//   },
111321	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
111322	//   "response": {
111323	//     "$ref": "BackendService"
111324	//   },
111325	//   "scopes": [
111326	//     "https://www.googleapis.com/auth/cloud-platform",
111327	//     "https://www.googleapis.com/auth/compute",
111328	//     "https://www.googleapis.com/auth/compute.readonly"
111329	//   ]
111330	// }
111331
111332}
111333
111334// method id "compute.regionBackendServices.getHealth":
111335
111336type RegionBackendServicesGetHealthCall struct {
111337	s                      *Service
111338	project                string
111339	region                 string
111340	backendService         string
111341	resourcegroupreference *ResourceGroupReference
111342	urlParams_             gensupport.URLParams
111343	ctx_                   context.Context
111344	header_                http.Header
111345}
111346
111347// GetHealth: Gets the most recent health check results for this
111348// regional BackendService.
111349func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
111350	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111351	c.project = project
111352	c.region = region
111353	c.backendService = backendService
111354	c.resourcegroupreference = resourcegroupreference
111355	return c
111356}
111357
111358// Fields allows partial responses to be retrieved. See
111359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111360// for more information.
111361func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
111362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111363	return c
111364}
111365
111366// Context sets the context to be used in this call's Do method. Any
111367// pending HTTP request will be aborted if the provided context is
111368// canceled.
111369func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
111370	c.ctx_ = ctx
111371	return c
111372}
111373
111374// Header returns an http.Header that can be modified by the caller to
111375// add HTTP headers to the request.
111376func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
111377	if c.header_ == nil {
111378		c.header_ = make(http.Header)
111379	}
111380	return c.header_
111381}
111382
111383func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
111384	reqHeaders := make(http.Header)
111385	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111386	for k, v := range c.header_ {
111387		reqHeaders[k] = v
111388	}
111389	reqHeaders.Set("User-Agent", c.s.userAgent())
111390	var body io.Reader = nil
111391	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
111392	if err != nil {
111393		return nil, err
111394	}
111395	reqHeaders.Set("Content-Type", "application/json")
111396	c.urlParams_.Set("alt", alt)
111397	c.urlParams_.Set("prettyPrint", "false")
111398	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
111399	urls += "?" + c.urlParams_.Encode()
111400	req, err := http.NewRequest("POST", urls, body)
111401	if err != nil {
111402		return nil, err
111403	}
111404	req.Header = reqHeaders
111405	googleapi.Expand(req.URL, map[string]string{
111406		"project":        c.project,
111407		"region":         c.region,
111408		"backendService": c.backendService,
111409	})
111410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111411}
111412
111413// Do executes the "compute.regionBackendServices.getHealth" call.
111414// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
111415// Any non-2xx status code is an error. Response headers are in either
111416// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
111417// was returned at all) in error.(*googleapi.Error).Header. Use
111418// googleapi.IsNotModified to check whether the returned error was
111419// because http.StatusNotModified was returned.
111420func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
111421	gensupport.SetOptions(c.urlParams_, opts...)
111422	res, err := c.doRequest("json")
111423	if res != nil && res.StatusCode == http.StatusNotModified {
111424		if res.Body != nil {
111425			res.Body.Close()
111426		}
111427		return nil, &googleapi.Error{
111428			Code:   res.StatusCode,
111429			Header: res.Header,
111430		}
111431	}
111432	if err != nil {
111433		return nil, err
111434	}
111435	defer googleapi.CloseBody(res)
111436	if err := googleapi.CheckResponse(res); err != nil {
111437		return nil, err
111438	}
111439	ret := &BackendServiceGroupHealth{
111440		ServerResponse: googleapi.ServerResponse{
111441			Header:         res.Header,
111442			HTTPStatusCode: res.StatusCode,
111443		},
111444	}
111445	target := &ret
111446	if err := gensupport.DecodeResponse(target, res); err != nil {
111447		return nil, err
111448	}
111449	return ret, nil
111450	// {
111451	//   "description": "Gets the most recent health check results for this regional BackendService.",
111452	//   "httpMethod": "POST",
111453	//   "id": "compute.regionBackendServices.getHealth",
111454	//   "parameterOrder": [
111455	//     "project",
111456	//     "region",
111457	//     "backendService"
111458	//   ],
111459	//   "parameters": {
111460	//     "backendService": {
111461	//       "description": "Name of the BackendService resource for which to get health.",
111462	//       "location": "path",
111463	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111464	//       "required": true,
111465	//       "type": "string"
111466	//     },
111467	//     "project": {
111468	//       "location": "path",
111469	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111470	//       "required": true,
111471	//       "type": "string"
111472	//     },
111473	//     "region": {
111474	//       "description": "Name of the region scoping this request.",
111475	//       "location": "path",
111476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111477	//       "required": true,
111478	//       "type": "string"
111479	//     }
111480	//   },
111481	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
111482	//   "request": {
111483	//     "$ref": "ResourceGroupReference"
111484	//   },
111485	//   "response": {
111486	//     "$ref": "BackendServiceGroupHealth"
111487	//   },
111488	//   "scopes": [
111489	//     "https://www.googleapis.com/auth/cloud-platform",
111490	//     "https://www.googleapis.com/auth/compute",
111491	//     "https://www.googleapis.com/auth/compute.readonly"
111492	//   ]
111493	// }
111494
111495}
111496
111497// method id "compute.regionBackendServices.insert":
111498
111499type RegionBackendServicesInsertCall struct {
111500	s              *Service
111501	project        string
111502	region         string
111503	backendservice *BackendService
111504	urlParams_     gensupport.URLParams
111505	ctx_           context.Context
111506	header_        http.Header
111507}
111508
111509// Insert: Creates a regional BackendService resource in the specified
111510// project using the data included in the request. For more information,
111511// see  Backend services overview.
111512func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
111513	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111514	c.project = project
111515	c.region = region
111516	c.backendservice = backendservice
111517	return c
111518}
111519
111520// RequestId sets the optional parameter "requestId": An optional
111521// request ID to identify requests. Specify a unique request ID so that
111522// if you must retry your request, the server will know to ignore the
111523// request if it has already been completed.
111524//
111525// For example, consider a situation where you make an initial request
111526// and the request times out. If you make the request again with the
111527// same request ID, the server can check if original operation with the
111528// same request ID was received, and if so, will ignore the second
111529// request. This prevents clients from accidentally creating duplicate
111530// commitments.
111531//
111532// The request ID must be a valid UUID with the exception that zero UUID
111533// is not supported (00000000-0000-0000-0000-000000000000).
111534func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
111535	c.urlParams_.Set("requestId", requestId)
111536	return c
111537}
111538
111539// Fields allows partial responses to be retrieved. See
111540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111541// for more information.
111542func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
111543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111544	return c
111545}
111546
111547// Context sets the context to be used in this call's Do method. Any
111548// pending HTTP request will be aborted if the provided context is
111549// canceled.
111550func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
111551	c.ctx_ = ctx
111552	return c
111553}
111554
111555// Header returns an http.Header that can be modified by the caller to
111556// add HTTP headers to the request.
111557func (c *RegionBackendServicesInsertCall) Header() http.Header {
111558	if c.header_ == nil {
111559		c.header_ = make(http.Header)
111560	}
111561	return c.header_
111562}
111563
111564func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
111565	reqHeaders := make(http.Header)
111566	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111567	for k, v := range c.header_ {
111568		reqHeaders[k] = v
111569	}
111570	reqHeaders.Set("User-Agent", c.s.userAgent())
111571	var body io.Reader = nil
111572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
111573	if err != nil {
111574		return nil, err
111575	}
111576	reqHeaders.Set("Content-Type", "application/json")
111577	c.urlParams_.Set("alt", alt)
111578	c.urlParams_.Set("prettyPrint", "false")
111579	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
111580	urls += "?" + c.urlParams_.Encode()
111581	req, err := http.NewRequest("POST", urls, body)
111582	if err != nil {
111583		return nil, err
111584	}
111585	req.Header = reqHeaders
111586	googleapi.Expand(req.URL, map[string]string{
111587		"project": c.project,
111588		"region":  c.region,
111589	})
111590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111591}
111592
111593// Do executes the "compute.regionBackendServices.insert" call.
111594// Exactly one of *Operation or error will be non-nil. Any non-2xx
111595// status code is an error. Response headers are in either
111596// *Operation.ServerResponse.Header or (if a response was returned at
111597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111598// to check whether the returned error was because
111599// http.StatusNotModified was returned.
111600func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111601	gensupport.SetOptions(c.urlParams_, opts...)
111602	res, err := c.doRequest("json")
111603	if res != nil && res.StatusCode == http.StatusNotModified {
111604		if res.Body != nil {
111605			res.Body.Close()
111606		}
111607		return nil, &googleapi.Error{
111608			Code:   res.StatusCode,
111609			Header: res.Header,
111610		}
111611	}
111612	if err != nil {
111613		return nil, err
111614	}
111615	defer googleapi.CloseBody(res)
111616	if err := googleapi.CheckResponse(res); err != nil {
111617		return nil, err
111618	}
111619	ret := &Operation{
111620		ServerResponse: googleapi.ServerResponse{
111621			Header:         res.Header,
111622			HTTPStatusCode: res.StatusCode,
111623		},
111624	}
111625	target := &ret
111626	if err := gensupport.DecodeResponse(target, res); err != nil {
111627		return nil, err
111628	}
111629	return ret, nil
111630	// {
111631	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
111632	//   "httpMethod": "POST",
111633	//   "id": "compute.regionBackendServices.insert",
111634	//   "parameterOrder": [
111635	//     "project",
111636	//     "region"
111637	//   ],
111638	//   "parameters": {
111639	//     "project": {
111640	//       "description": "Project ID for this request.",
111641	//       "location": "path",
111642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111643	//       "required": true,
111644	//       "type": "string"
111645	//     },
111646	//     "region": {
111647	//       "description": "Name of the region scoping this request.",
111648	//       "location": "path",
111649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111650	//       "required": true,
111651	//       "type": "string"
111652	//     },
111653	//     "requestId": {
111654	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111655	//       "location": "query",
111656	//       "type": "string"
111657	//     }
111658	//   },
111659	//   "path": "{project}/regions/{region}/backendServices",
111660	//   "request": {
111661	//     "$ref": "BackendService"
111662	//   },
111663	//   "response": {
111664	//     "$ref": "Operation"
111665	//   },
111666	//   "scopes": [
111667	//     "https://www.googleapis.com/auth/cloud-platform",
111668	//     "https://www.googleapis.com/auth/compute"
111669	//   ]
111670	// }
111671
111672}
111673
111674// method id "compute.regionBackendServices.list":
111675
111676type RegionBackendServicesListCall struct {
111677	s            *Service
111678	project      string
111679	region       string
111680	urlParams_   gensupport.URLParams
111681	ifNoneMatch_ string
111682	ctx_         context.Context
111683	header_      http.Header
111684}
111685
111686// List: Retrieves the list of regional BackendService resources
111687// available to the specified project in the given region.
111688func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
111689	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111690	c.project = project
111691	c.region = region
111692	return c
111693}
111694
111695// Filter sets the optional parameter "filter": A filter expression that
111696// filters resources listed in the response. The expression must specify
111697// the field name, a comparison operator, and the value that you want to
111698// use for filtering. The value must be a string, a number, or a
111699// boolean. The comparison operator must be either `=`, `!=`, `>`, or
111700// `<`.
111701//
111702// For example, if you are filtering Compute Engine instances, you can
111703// exclude instances named `example-instance` by specifying `name !=
111704// example-instance`.
111705//
111706// You can also filter nested fields. For example, you could specify
111707// `scheduling.automaticRestart = false` to include instances only if
111708// they are not scheduled for automatic restarts. You can use filtering
111709// on nested fields to filter based on resource labels.
111710//
111711// To filter on multiple expressions, provide each separate expression
111712// within parentheses. For example: ``` (scheduling.automaticRestart =
111713// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
111714// is an `AND` expression. However, you can include `AND` and `OR`
111715// expressions explicitly. For example: ``` (cpuPlatform = "Intel
111716// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
111717// (scheduling.automaticRestart = true) ```
111718func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
111719	c.urlParams_.Set("filter", filter)
111720	return c
111721}
111722
111723// MaxResults sets the optional parameter "maxResults": The maximum
111724// number of results per page that should be returned. If the number of
111725// available results is larger than `maxResults`, Compute Engine returns
111726// a `nextPageToken` that can be used to get the next page of results in
111727// subsequent list requests. Acceptable values are `0` to `500`,
111728// inclusive. (Default: `500`)
111729func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
111730	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111731	return c
111732}
111733
111734// OrderBy sets the optional parameter "orderBy": Sorts list results by
111735// a certain order. By default, results are returned in alphanumerical
111736// order based on the resource name.
111737//
111738// You can also sort results in descending order based on the creation
111739// timestamp using `orderBy="creationTimestamp desc". This sorts
111740// results based on the `creationTimestamp` field in reverse
111741// chronological order (newest result first). Use this to sort resources
111742// like operations so that the newest operation is returned
111743// first.
111744//
111745// Currently, only sorting by `name` or `creationTimestamp desc` is
111746// supported.
111747func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
111748	c.urlParams_.Set("orderBy", orderBy)
111749	return c
111750}
111751
111752// PageToken sets the optional parameter "pageToken": Specifies a page
111753// token to use. Set `pageToken` to the `nextPageToken` returned by a
111754// previous list request to get the next page of results.
111755func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
111756	c.urlParams_.Set("pageToken", pageToken)
111757	return c
111758}
111759
111760// Fields allows partial responses to be retrieved. See
111761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111762// for more information.
111763func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
111764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111765	return c
111766}
111767
111768// IfNoneMatch sets the optional parameter which makes the operation
111769// fail if the object's ETag matches the given value. This is useful for
111770// getting updates only after the object has changed since the last
111771// request. Use googleapi.IsNotModified to check whether the response
111772// error from Do is the result of In-None-Match.
111773func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
111774	c.ifNoneMatch_ = entityTag
111775	return c
111776}
111777
111778// Context sets the context to be used in this call's Do method. Any
111779// pending HTTP request will be aborted if the provided context is
111780// canceled.
111781func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
111782	c.ctx_ = ctx
111783	return c
111784}
111785
111786// Header returns an http.Header that can be modified by the caller to
111787// add HTTP headers to the request.
111788func (c *RegionBackendServicesListCall) Header() http.Header {
111789	if c.header_ == nil {
111790		c.header_ = make(http.Header)
111791	}
111792	return c.header_
111793}
111794
111795func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
111796	reqHeaders := make(http.Header)
111797	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
111798	for k, v := range c.header_ {
111799		reqHeaders[k] = v
111800	}
111801	reqHeaders.Set("User-Agent", c.s.userAgent())
111802	if c.ifNoneMatch_ != "" {
111803		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111804	}
111805	var body io.Reader = nil
111806	c.urlParams_.Set("alt", alt)
111807	c.urlParams_.Set("prettyPrint", "false")
111808	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
111809	urls += "?" + c.urlParams_.Encode()
111810	req, err := http.NewRequest("GET", urls, body)
111811	if err != nil {
111812		return nil, err
111813	}
111814	req.Header = reqHeaders
111815	googleapi.Expand(req.URL, map[string]string{
111816		"project": c.project,
111817		"region":  c.region,
111818	})
111819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111820}
111821
111822// Do executes the "compute.regionBackendServices.list" call.
111823// Exactly one of *BackendServiceList or error will be non-nil. Any
111824// non-2xx status code is an error. Response headers are in either
111825// *BackendServiceList.ServerResponse.Header or (if a response was
111826// returned at all) in error.(*googleapi.Error).Header. Use
111827// googleapi.IsNotModified to check whether the returned error was
111828// because http.StatusNotModified was returned.
111829func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
111830	gensupport.SetOptions(c.urlParams_, opts...)
111831	res, err := c.doRequest("json")
111832	if res != nil && res.StatusCode == http.StatusNotModified {
111833		if res.Body != nil {
111834			res.Body.Close()
111835		}
111836		return nil, &googleapi.Error{
111837			Code:   res.StatusCode,
111838			Header: res.Header,
111839		}
111840	}
111841	if err != nil {
111842		return nil, err
111843	}
111844	defer googleapi.CloseBody(res)
111845	if err := googleapi.CheckResponse(res); err != nil {
111846		return nil, err
111847	}
111848	ret := &BackendServiceList{
111849		ServerResponse: googleapi.ServerResponse{
111850			Header:         res.Header,
111851			HTTPStatusCode: res.StatusCode,
111852		},
111853	}
111854	target := &ret
111855	if err := gensupport.DecodeResponse(target, res); err != nil {
111856		return nil, err
111857	}
111858	return ret, nil
111859	// {
111860	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
111861	//   "httpMethod": "GET",
111862	//   "id": "compute.regionBackendServices.list",
111863	//   "parameterOrder": [
111864	//     "project",
111865	//     "region"
111866	//   ],
111867	//   "parameters": {
111868	//     "filter": {
111869	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
111870	//       "location": "query",
111871	//       "type": "string"
111872	//     },
111873	//     "maxResults": {
111874	//       "default": "500",
111875	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
111876	//       "format": "uint32",
111877	//       "location": "query",
111878	//       "minimum": "0",
111879	//       "type": "integer"
111880	//     },
111881	//     "orderBy": {
111882	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
111883	//       "location": "query",
111884	//       "type": "string"
111885	//     },
111886	//     "pageToken": {
111887	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
111888	//       "location": "query",
111889	//       "type": "string"
111890	//     },
111891	//     "project": {
111892	//       "description": "Project ID for this request.",
111893	//       "location": "path",
111894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111895	//       "required": true,
111896	//       "type": "string"
111897	//     },
111898	//     "region": {
111899	//       "description": "Name of the region scoping this request.",
111900	//       "location": "path",
111901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111902	//       "required": true,
111903	//       "type": "string"
111904	//     }
111905	//   },
111906	//   "path": "{project}/regions/{region}/backendServices",
111907	//   "response": {
111908	//     "$ref": "BackendServiceList"
111909	//   },
111910	//   "scopes": [
111911	//     "https://www.googleapis.com/auth/cloud-platform",
111912	//     "https://www.googleapis.com/auth/compute",
111913	//     "https://www.googleapis.com/auth/compute.readonly"
111914	//   ]
111915	// }
111916
111917}
111918
111919// Pages invokes f for each page of results.
111920// A non-nil error returned from f will halt the iteration.
111921// The provided context supersedes any context provided to the Context method.
111922func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
111923	c.ctx_ = ctx
111924	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111925	for {
111926		x, err := c.Do()
111927		if err != nil {
111928			return err
111929		}
111930		if err := f(x); err != nil {
111931			return err
111932		}
111933		if x.NextPageToken == "" {
111934			return nil
111935		}
111936		c.PageToken(x.NextPageToken)
111937	}
111938}
111939
111940// method id "compute.regionBackendServices.patch":
111941
111942type RegionBackendServicesPatchCall struct {
111943	s              *Service
111944	project        string
111945	region         string
111946	backendService string
111947	backendservice *BackendService
111948	urlParams_     gensupport.URLParams
111949	ctx_           context.Context
111950	header_        http.Header
111951}
111952
111953// Patch: Updates the specified regional BackendService resource with
111954// the data included in the request. For more information, see
111955// Understanding backend services This method supports PATCH semantics
111956// and uses the JSON merge patch format and processing rules.
111957func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
111958	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111959	c.project = project
111960	c.region = region
111961	c.backendService = backendService
111962	c.backendservice = backendservice
111963	return c
111964}
111965
111966// RequestId sets the optional parameter "requestId": An optional
111967// request ID to identify requests. Specify a unique request ID so that
111968// if you must retry your request, the server will know to ignore the
111969// request if it has already been completed.
111970//
111971// For example, consider a situation where you make an initial request
111972// and the request times out. If you make the request again with the
111973// same request ID, the server can check if original operation with the
111974// same request ID was received, and if so, will ignore the second
111975// request. This prevents clients from accidentally creating duplicate
111976// commitments.
111977//
111978// The request ID must be a valid UUID with the exception that zero UUID
111979// is not supported (00000000-0000-0000-0000-000000000000).
111980func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
111981	c.urlParams_.Set("requestId", requestId)
111982	return c
111983}
111984
111985// Fields allows partial responses to be retrieved. See
111986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111987// for more information.
111988func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
111989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111990	return c
111991}
111992
111993// Context sets the context to be used in this call's Do method. Any
111994// pending HTTP request will be aborted if the provided context is
111995// canceled.
111996func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
111997	c.ctx_ = ctx
111998	return c
111999}
112000
112001// Header returns an http.Header that can be modified by the caller to
112002// add HTTP headers to the request.
112003func (c *RegionBackendServicesPatchCall) Header() http.Header {
112004	if c.header_ == nil {
112005		c.header_ = make(http.Header)
112006	}
112007	return c.header_
112008}
112009
112010func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
112011	reqHeaders := make(http.Header)
112012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112013	for k, v := range c.header_ {
112014		reqHeaders[k] = v
112015	}
112016	reqHeaders.Set("User-Agent", c.s.userAgent())
112017	var body io.Reader = nil
112018	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
112019	if err != nil {
112020		return nil, err
112021	}
112022	reqHeaders.Set("Content-Type", "application/json")
112023	c.urlParams_.Set("alt", alt)
112024	c.urlParams_.Set("prettyPrint", "false")
112025	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
112026	urls += "?" + c.urlParams_.Encode()
112027	req, err := http.NewRequest("PATCH", urls, body)
112028	if err != nil {
112029		return nil, err
112030	}
112031	req.Header = reqHeaders
112032	googleapi.Expand(req.URL, map[string]string{
112033		"project":        c.project,
112034		"region":         c.region,
112035		"backendService": c.backendService,
112036	})
112037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112038}
112039
112040// Do executes the "compute.regionBackendServices.patch" call.
112041// Exactly one of *Operation or error will be non-nil. Any non-2xx
112042// status code is an error. Response headers are in either
112043// *Operation.ServerResponse.Header or (if a response was returned at
112044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112045// to check whether the returned error was because
112046// http.StatusNotModified was returned.
112047func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112048	gensupport.SetOptions(c.urlParams_, opts...)
112049	res, err := c.doRequest("json")
112050	if res != nil && res.StatusCode == http.StatusNotModified {
112051		if res.Body != nil {
112052			res.Body.Close()
112053		}
112054		return nil, &googleapi.Error{
112055			Code:   res.StatusCode,
112056			Header: res.Header,
112057		}
112058	}
112059	if err != nil {
112060		return nil, err
112061	}
112062	defer googleapi.CloseBody(res)
112063	if err := googleapi.CheckResponse(res); err != nil {
112064		return nil, err
112065	}
112066	ret := &Operation{
112067		ServerResponse: googleapi.ServerResponse{
112068			Header:         res.Header,
112069			HTTPStatusCode: res.StatusCode,
112070		},
112071	}
112072	target := &ret
112073	if err := gensupport.DecodeResponse(target, res); err != nil {
112074		return nil, err
112075	}
112076	return ret, nil
112077	// {
112078	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see  Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
112079	//   "httpMethod": "PATCH",
112080	//   "id": "compute.regionBackendServices.patch",
112081	//   "parameterOrder": [
112082	//     "project",
112083	//     "region",
112084	//     "backendService"
112085	//   ],
112086	//   "parameters": {
112087	//     "backendService": {
112088	//       "description": "Name of the BackendService resource to patch.",
112089	//       "location": "path",
112090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112091	//       "required": true,
112092	//       "type": "string"
112093	//     },
112094	//     "project": {
112095	//       "description": "Project ID for this request.",
112096	//       "location": "path",
112097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112098	//       "required": true,
112099	//       "type": "string"
112100	//     },
112101	//     "region": {
112102	//       "description": "Name of the region scoping this request.",
112103	//       "location": "path",
112104	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112105	//       "required": true,
112106	//       "type": "string"
112107	//     },
112108	//     "requestId": {
112109	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112110	//       "location": "query",
112111	//       "type": "string"
112112	//     }
112113	//   },
112114	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
112115	//   "request": {
112116	//     "$ref": "BackendService"
112117	//   },
112118	//   "response": {
112119	//     "$ref": "Operation"
112120	//   },
112121	//   "scopes": [
112122	//     "https://www.googleapis.com/auth/cloud-platform",
112123	//     "https://www.googleapis.com/auth/compute"
112124	//   ]
112125	// }
112126
112127}
112128
112129// method id "compute.regionBackendServices.testIamPermissions":
112130
112131type RegionBackendServicesTestIamPermissionsCall struct {
112132	s                      *Service
112133	project                string
112134	region                 string
112135	resource               string
112136	testpermissionsrequest *TestPermissionsRequest
112137	urlParams_             gensupport.URLParams
112138	ctx_                   context.Context
112139	header_                http.Header
112140}
112141
112142// TestIamPermissions: Returns permissions that a caller has on the
112143// specified resource.
112144func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall {
112145	c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112146	c.project = project
112147	c.region = region
112148	c.resource = resource
112149	c.testpermissionsrequest = testpermissionsrequest
112150	return c
112151}
112152
112153// Fields allows partial responses to be retrieved. See
112154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112155// for more information.
112156func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall {
112157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112158	return c
112159}
112160
112161// Context sets the context to be used in this call's Do method. Any
112162// pending HTTP request will be aborted if the provided context is
112163// canceled.
112164func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall {
112165	c.ctx_ = ctx
112166	return c
112167}
112168
112169// Header returns an http.Header that can be modified by the caller to
112170// add HTTP headers to the request.
112171func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header {
112172	if c.header_ == nil {
112173		c.header_ = make(http.Header)
112174	}
112175	return c.header_
112176}
112177
112178func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
112179	reqHeaders := make(http.Header)
112180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112181	for k, v := range c.header_ {
112182		reqHeaders[k] = v
112183	}
112184	reqHeaders.Set("User-Agent", c.s.userAgent())
112185	var body io.Reader = nil
112186	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
112187	if err != nil {
112188		return nil, err
112189	}
112190	reqHeaders.Set("Content-Type", "application/json")
112191	c.urlParams_.Set("alt", alt)
112192	c.urlParams_.Set("prettyPrint", "false")
112193	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{resource}/testIamPermissions")
112194	urls += "?" + c.urlParams_.Encode()
112195	req, err := http.NewRequest("POST", urls, body)
112196	if err != nil {
112197		return nil, err
112198	}
112199	req.Header = reqHeaders
112200	googleapi.Expand(req.URL, map[string]string{
112201		"project":  c.project,
112202		"region":   c.region,
112203		"resource": c.resource,
112204	})
112205	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112206}
112207
112208// Do executes the "compute.regionBackendServices.testIamPermissions" call.
112209// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
112210// non-2xx status code is an error. Response headers are in either
112211// *TestPermissionsResponse.ServerResponse.Header or (if a response was
112212// returned at all) in error.(*googleapi.Error).Header. Use
112213// googleapi.IsNotModified to check whether the returned error was
112214// because http.StatusNotModified was returned.
112215func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
112216	gensupport.SetOptions(c.urlParams_, opts...)
112217	res, err := c.doRequest("json")
112218	if res != nil && res.StatusCode == http.StatusNotModified {
112219		if res.Body != nil {
112220			res.Body.Close()
112221		}
112222		return nil, &googleapi.Error{
112223			Code:   res.StatusCode,
112224			Header: res.Header,
112225		}
112226	}
112227	if err != nil {
112228		return nil, err
112229	}
112230	defer googleapi.CloseBody(res)
112231	if err := googleapi.CheckResponse(res); err != nil {
112232		return nil, err
112233	}
112234	ret := &TestPermissionsResponse{
112235		ServerResponse: googleapi.ServerResponse{
112236			Header:         res.Header,
112237			HTTPStatusCode: res.StatusCode,
112238		},
112239	}
112240	target := &ret
112241	if err := gensupport.DecodeResponse(target, res); err != nil {
112242		return nil, err
112243	}
112244	return ret, nil
112245	// {
112246	//   "description": "Returns permissions that a caller has on the specified resource.",
112247	//   "httpMethod": "POST",
112248	//   "id": "compute.regionBackendServices.testIamPermissions",
112249	//   "parameterOrder": [
112250	//     "project",
112251	//     "region",
112252	//     "resource"
112253	//   ],
112254	//   "parameters": {
112255	//     "project": {
112256	//       "description": "Project ID for this request.",
112257	//       "location": "path",
112258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112259	//       "required": true,
112260	//       "type": "string"
112261	//     },
112262	//     "region": {
112263	//       "description": "The name of the region for this request.",
112264	//       "location": "path",
112265	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112266	//       "required": true,
112267	//       "type": "string"
112268	//     },
112269	//     "resource": {
112270	//       "description": "Name or id of the resource for this request.",
112271	//       "location": "path",
112272	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112273	//       "required": true,
112274	//       "type": "string"
112275	//     }
112276	//   },
112277	//   "path": "{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
112278	//   "request": {
112279	//     "$ref": "TestPermissionsRequest"
112280	//   },
112281	//   "response": {
112282	//     "$ref": "TestPermissionsResponse"
112283	//   },
112284	//   "scopes": [
112285	//     "https://www.googleapis.com/auth/cloud-platform",
112286	//     "https://www.googleapis.com/auth/compute",
112287	//     "https://www.googleapis.com/auth/compute.readonly"
112288	//   ]
112289	// }
112290
112291}
112292
112293// method id "compute.regionBackendServices.update":
112294
112295type RegionBackendServicesUpdateCall struct {
112296	s              *Service
112297	project        string
112298	region         string
112299	backendService string
112300	backendservice *BackendService
112301	urlParams_     gensupport.URLParams
112302	ctx_           context.Context
112303	header_        http.Header
112304}
112305
112306// Update: Updates the specified regional BackendService resource with
112307// the data included in the request. For more information, see  Backend
112308// services overview.
112309func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
112310	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112311	c.project = project
112312	c.region = region
112313	c.backendService = backendService
112314	c.backendservice = backendservice
112315	return c
112316}
112317
112318// RequestId sets the optional parameter "requestId": An optional
112319// request ID to identify requests. Specify a unique request ID so that
112320// if you must retry your request, the server will know to ignore the
112321// request if it has already been completed.
112322//
112323// For example, consider a situation where you make an initial request
112324// and the request times out. If you make the request again with the
112325// same request ID, the server can check if original operation with the
112326// same request ID was received, and if so, will ignore the second
112327// request. This prevents clients from accidentally creating duplicate
112328// commitments.
112329//
112330// The request ID must be a valid UUID with the exception that zero UUID
112331// is not supported (00000000-0000-0000-0000-000000000000).
112332func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
112333	c.urlParams_.Set("requestId", requestId)
112334	return c
112335}
112336
112337// Fields allows partial responses to be retrieved. See
112338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112339// for more information.
112340func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
112341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112342	return c
112343}
112344
112345// Context sets the context to be used in this call's Do method. Any
112346// pending HTTP request will be aborted if the provided context is
112347// canceled.
112348func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
112349	c.ctx_ = ctx
112350	return c
112351}
112352
112353// Header returns an http.Header that can be modified by the caller to
112354// add HTTP headers to the request.
112355func (c *RegionBackendServicesUpdateCall) Header() http.Header {
112356	if c.header_ == nil {
112357		c.header_ = make(http.Header)
112358	}
112359	return c.header_
112360}
112361
112362func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
112363	reqHeaders := make(http.Header)
112364	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112365	for k, v := range c.header_ {
112366		reqHeaders[k] = v
112367	}
112368	reqHeaders.Set("User-Agent", c.s.userAgent())
112369	var body io.Reader = nil
112370	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
112371	if err != nil {
112372		return nil, err
112373	}
112374	reqHeaders.Set("Content-Type", "application/json")
112375	c.urlParams_.Set("alt", alt)
112376	c.urlParams_.Set("prettyPrint", "false")
112377	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
112378	urls += "?" + c.urlParams_.Encode()
112379	req, err := http.NewRequest("PUT", urls, body)
112380	if err != nil {
112381		return nil, err
112382	}
112383	req.Header = reqHeaders
112384	googleapi.Expand(req.URL, map[string]string{
112385		"project":        c.project,
112386		"region":         c.region,
112387		"backendService": c.backendService,
112388	})
112389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112390}
112391
112392// Do executes the "compute.regionBackendServices.update" call.
112393// Exactly one of *Operation or error will be non-nil. Any non-2xx
112394// status code is an error. Response headers are in either
112395// *Operation.ServerResponse.Header or (if a response was returned at
112396// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112397// to check whether the returned error was because
112398// http.StatusNotModified was returned.
112399func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112400	gensupport.SetOptions(c.urlParams_, opts...)
112401	res, err := c.doRequest("json")
112402	if res != nil && res.StatusCode == http.StatusNotModified {
112403		if res.Body != nil {
112404			res.Body.Close()
112405		}
112406		return nil, &googleapi.Error{
112407			Code:   res.StatusCode,
112408			Header: res.Header,
112409		}
112410	}
112411	if err != nil {
112412		return nil, err
112413	}
112414	defer googleapi.CloseBody(res)
112415	if err := googleapi.CheckResponse(res); err != nil {
112416		return nil, err
112417	}
112418	ret := &Operation{
112419		ServerResponse: googleapi.ServerResponse{
112420			Header:         res.Header,
112421			HTTPStatusCode: res.StatusCode,
112422		},
112423	}
112424	target := &ret
112425	if err := gensupport.DecodeResponse(target, res); err != nil {
112426		return nil, err
112427	}
112428	return ret, nil
112429	// {
112430	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see  Backend services overview.",
112431	//   "httpMethod": "PUT",
112432	//   "id": "compute.regionBackendServices.update",
112433	//   "parameterOrder": [
112434	//     "project",
112435	//     "region",
112436	//     "backendService"
112437	//   ],
112438	//   "parameters": {
112439	//     "backendService": {
112440	//       "description": "Name of the BackendService resource to update.",
112441	//       "location": "path",
112442	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112443	//       "required": true,
112444	//       "type": "string"
112445	//     },
112446	//     "project": {
112447	//       "description": "Project ID for this request.",
112448	//       "location": "path",
112449	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112450	//       "required": true,
112451	//       "type": "string"
112452	//     },
112453	//     "region": {
112454	//       "description": "Name of the region scoping this request.",
112455	//       "location": "path",
112456	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112457	//       "required": true,
112458	//       "type": "string"
112459	//     },
112460	//     "requestId": {
112461	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112462	//       "location": "query",
112463	//       "type": "string"
112464	//     }
112465	//   },
112466	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
112467	//   "request": {
112468	//     "$ref": "BackendService"
112469	//   },
112470	//   "response": {
112471	//     "$ref": "Operation"
112472	//   },
112473	//   "scopes": [
112474	//     "https://www.googleapis.com/auth/cloud-platform",
112475	//     "https://www.googleapis.com/auth/compute"
112476	//   ]
112477	// }
112478
112479}
112480
112481// method id "compute.regionCommitments.aggregatedList":
112482
112483type RegionCommitmentsAggregatedListCall struct {
112484	s            *Service
112485	project      string
112486	urlParams_   gensupport.URLParams
112487	ifNoneMatch_ string
112488	ctx_         context.Context
112489	header_      http.Header
112490}
112491
112492// AggregatedList: Retrieves an aggregated list of commitments.
112493func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
112494	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112495	c.project = project
112496	return c
112497}
112498
112499// Filter sets the optional parameter "filter": A filter expression that
112500// filters resources listed in the response. The expression must specify
112501// the field name, a comparison operator, and the value that you want to
112502// use for filtering. The value must be a string, a number, or a
112503// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112504// `<`.
112505//
112506// For example, if you are filtering Compute Engine instances, you can
112507// exclude instances named `example-instance` by specifying `name !=
112508// example-instance`.
112509//
112510// You can also filter nested fields. For example, you could specify
112511// `scheduling.automaticRestart = false` to include instances only if
112512// they are not scheduled for automatic restarts. You can use filtering
112513// on nested fields to filter based on resource labels.
112514//
112515// To filter on multiple expressions, provide each separate expression
112516// within parentheses. For example: ``` (scheduling.automaticRestart =
112517// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
112518// is an `AND` expression. However, you can include `AND` and `OR`
112519// expressions explicitly. For example: ``` (cpuPlatform = "Intel
112520// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
112521// (scheduling.automaticRestart = true) ```
112522func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
112523	c.urlParams_.Set("filter", filter)
112524	return c
112525}
112526
112527// IncludeAllScopes sets the optional parameter "includeAllScopes":
112528// Indicates whether every visible scope for each scope type (zone,
112529// region, global) should be included in the response. For new resource
112530// types added after this field, the flag has no effect as new resource
112531// types will always include every visible scope for each scope type in
112532// response. For resource types which predate this field, if this flag
112533// is omitted or false, only scopes of the scope types where the
112534// resource type is expected to be found will be included.
112535func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
112536	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
112537	return c
112538}
112539
112540// MaxResults sets the optional parameter "maxResults": The maximum
112541// number of results per page that should be returned. If the number of
112542// available results is larger than `maxResults`, Compute Engine returns
112543// a `nextPageToken` that can be used to get the next page of results in
112544// subsequent list requests. Acceptable values are `0` to `500`,
112545// inclusive. (Default: `500`)
112546func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
112547	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112548	return c
112549}
112550
112551// OrderBy sets the optional parameter "orderBy": Sorts list results by
112552// a certain order. By default, results are returned in alphanumerical
112553// order based on the resource name.
112554//
112555// You can also sort results in descending order based on the creation
112556// timestamp using `orderBy="creationTimestamp desc". This sorts
112557// results based on the `creationTimestamp` field in reverse
112558// chronological order (newest result first). Use this to sort resources
112559// like operations so that the newest operation is returned
112560// first.
112561//
112562// Currently, only sorting by `name` or `creationTimestamp desc` is
112563// supported.
112564func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
112565	c.urlParams_.Set("orderBy", orderBy)
112566	return c
112567}
112568
112569// PageToken sets the optional parameter "pageToken": Specifies a page
112570// token to use. Set `pageToken` to the `nextPageToken` returned by a
112571// previous list request to get the next page of results.
112572func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
112573	c.urlParams_.Set("pageToken", pageToken)
112574	return c
112575}
112576
112577// Fields allows partial responses to be retrieved. See
112578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112579// for more information.
112580func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
112581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112582	return c
112583}
112584
112585// IfNoneMatch sets the optional parameter which makes the operation
112586// fail if the object's ETag matches the given value. This is useful for
112587// getting updates only after the object has changed since the last
112588// request. Use googleapi.IsNotModified to check whether the response
112589// error from Do is the result of In-None-Match.
112590func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
112591	c.ifNoneMatch_ = entityTag
112592	return c
112593}
112594
112595// Context sets the context to be used in this call's Do method. Any
112596// pending HTTP request will be aborted if the provided context is
112597// canceled.
112598func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
112599	c.ctx_ = ctx
112600	return c
112601}
112602
112603// Header returns an http.Header that can be modified by the caller to
112604// add HTTP headers to the request.
112605func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
112606	if c.header_ == nil {
112607		c.header_ = make(http.Header)
112608	}
112609	return c.header_
112610}
112611
112612func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
112613	reqHeaders := make(http.Header)
112614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112615	for k, v := range c.header_ {
112616		reqHeaders[k] = v
112617	}
112618	reqHeaders.Set("User-Agent", c.s.userAgent())
112619	if c.ifNoneMatch_ != "" {
112620		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112621	}
112622	var body io.Reader = nil
112623	c.urlParams_.Set("alt", alt)
112624	c.urlParams_.Set("prettyPrint", "false")
112625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
112626	urls += "?" + c.urlParams_.Encode()
112627	req, err := http.NewRequest("GET", urls, body)
112628	if err != nil {
112629		return nil, err
112630	}
112631	req.Header = reqHeaders
112632	googleapi.Expand(req.URL, map[string]string{
112633		"project": c.project,
112634	})
112635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112636}
112637
112638// Do executes the "compute.regionCommitments.aggregatedList" call.
112639// Exactly one of *CommitmentAggregatedList or error will be non-nil.
112640// Any non-2xx status code is an error. Response headers are in either
112641// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
112642// returned at all) in error.(*googleapi.Error).Header. Use
112643// googleapi.IsNotModified to check whether the returned error was
112644// because http.StatusNotModified was returned.
112645func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
112646	gensupport.SetOptions(c.urlParams_, opts...)
112647	res, err := c.doRequest("json")
112648	if res != nil && res.StatusCode == http.StatusNotModified {
112649		if res.Body != nil {
112650			res.Body.Close()
112651		}
112652		return nil, &googleapi.Error{
112653			Code:   res.StatusCode,
112654			Header: res.Header,
112655		}
112656	}
112657	if err != nil {
112658		return nil, err
112659	}
112660	defer googleapi.CloseBody(res)
112661	if err := googleapi.CheckResponse(res); err != nil {
112662		return nil, err
112663	}
112664	ret := &CommitmentAggregatedList{
112665		ServerResponse: googleapi.ServerResponse{
112666			Header:         res.Header,
112667			HTTPStatusCode: res.StatusCode,
112668		},
112669	}
112670	target := &ret
112671	if err := gensupport.DecodeResponse(target, res); err != nil {
112672		return nil, err
112673	}
112674	return ret, nil
112675	// {
112676	//   "description": "Retrieves an aggregated list of commitments.",
112677	//   "httpMethod": "GET",
112678	//   "id": "compute.regionCommitments.aggregatedList",
112679	//   "parameterOrder": [
112680	//     "project"
112681	//   ],
112682	//   "parameters": {
112683	//     "filter": {
112684	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
112685	//       "location": "query",
112686	//       "type": "string"
112687	//     },
112688	//     "includeAllScopes": {
112689	//       "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.",
112690	//       "location": "query",
112691	//       "type": "boolean"
112692	//     },
112693	//     "maxResults": {
112694	//       "default": "500",
112695	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112696	//       "format": "uint32",
112697	//       "location": "query",
112698	//       "minimum": "0",
112699	//       "type": "integer"
112700	//     },
112701	//     "orderBy": {
112702	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
112703	//       "location": "query",
112704	//       "type": "string"
112705	//     },
112706	//     "pageToken": {
112707	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112708	//       "location": "query",
112709	//       "type": "string"
112710	//     },
112711	//     "project": {
112712	//       "description": "Project ID for this request.",
112713	//       "location": "path",
112714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112715	//       "required": true,
112716	//       "type": "string"
112717	//     }
112718	//   },
112719	//   "path": "{project}/aggregated/commitments",
112720	//   "response": {
112721	//     "$ref": "CommitmentAggregatedList"
112722	//   },
112723	//   "scopes": [
112724	//     "https://www.googleapis.com/auth/cloud-platform",
112725	//     "https://www.googleapis.com/auth/compute",
112726	//     "https://www.googleapis.com/auth/compute.readonly"
112727	//   ]
112728	// }
112729
112730}
112731
112732// Pages invokes f for each page of results.
112733// A non-nil error returned from f will halt the iteration.
112734// The provided context supersedes any context provided to the Context method.
112735func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
112736	c.ctx_ = ctx
112737	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112738	for {
112739		x, err := c.Do()
112740		if err != nil {
112741			return err
112742		}
112743		if err := f(x); err != nil {
112744			return err
112745		}
112746		if x.NextPageToken == "" {
112747			return nil
112748		}
112749		c.PageToken(x.NextPageToken)
112750	}
112751}
112752
112753// method id "compute.regionCommitments.get":
112754
112755type RegionCommitmentsGetCall struct {
112756	s            *Service
112757	project      string
112758	region       string
112759	commitment   string
112760	urlParams_   gensupport.URLParams
112761	ifNoneMatch_ string
112762	ctx_         context.Context
112763	header_      http.Header
112764}
112765
112766// Get: Returns the specified commitment resource. Gets a list of
112767// available commitments by making a list() request.
112768func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
112769	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112770	c.project = project
112771	c.region = region
112772	c.commitment = commitment
112773	return c
112774}
112775
112776// Fields allows partial responses to be retrieved. See
112777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112778// for more information.
112779func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
112780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112781	return c
112782}
112783
112784// IfNoneMatch sets the optional parameter which makes the operation
112785// fail if the object's ETag matches the given value. This is useful for
112786// getting updates only after the object has changed since the last
112787// request. Use googleapi.IsNotModified to check whether the response
112788// error from Do is the result of In-None-Match.
112789func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
112790	c.ifNoneMatch_ = entityTag
112791	return c
112792}
112793
112794// Context sets the context to be used in this call's Do method. Any
112795// pending HTTP request will be aborted if the provided context is
112796// canceled.
112797func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
112798	c.ctx_ = ctx
112799	return c
112800}
112801
112802// Header returns an http.Header that can be modified by the caller to
112803// add HTTP headers to the request.
112804func (c *RegionCommitmentsGetCall) Header() http.Header {
112805	if c.header_ == nil {
112806		c.header_ = make(http.Header)
112807	}
112808	return c.header_
112809}
112810
112811func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
112812	reqHeaders := make(http.Header)
112813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112814	for k, v := range c.header_ {
112815		reqHeaders[k] = v
112816	}
112817	reqHeaders.Set("User-Agent", c.s.userAgent())
112818	if c.ifNoneMatch_ != "" {
112819		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112820	}
112821	var body io.Reader = nil
112822	c.urlParams_.Set("alt", alt)
112823	c.urlParams_.Set("prettyPrint", "false")
112824	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
112825	urls += "?" + c.urlParams_.Encode()
112826	req, err := http.NewRequest("GET", urls, body)
112827	if err != nil {
112828		return nil, err
112829	}
112830	req.Header = reqHeaders
112831	googleapi.Expand(req.URL, map[string]string{
112832		"project":    c.project,
112833		"region":     c.region,
112834		"commitment": c.commitment,
112835	})
112836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112837}
112838
112839// Do executes the "compute.regionCommitments.get" call.
112840// Exactly one of *Commitment or error will be non-nil. Any non-2xx
112841// status code is an error. Response headers are in either
112842// *Commitment.ServerResponse.Header or (if a response was returned at
112843// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112844// to check whether the returned error was because
112845// http.StatusNotModified was returned.
112846func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
112847	gensupport.SetOptions(c.urlParams_, opts...)
112848	res, err := c.doRequest("json")
112849	if res != nil && res.StatusCode == http.StatusNotModified {
112850		if res.Body != nil {
112851			res.Body.Close()
112852		}
112853		return nil, &googleapi.Error{
112854			Code:   res.StatusCode,
112855			Header: res.Header,
112856		}
112857	}
112858	if err != nil {
112859		return nil, err
112860	}
112861	defer googleapi.CloseBody(res)
112862	if err := googleapi.CheckResponse(res); err != nil {
112863		return nil, err
112864	}
112865	ret := &Commitment{
112866		ServerResponse: googleapi.ServerResponse{
112867			Header:         res.Header,
112868			HTTPStatusCode: res.StatusCode,
112869		},
112870	}
112871	target := &ret
112872	if err := gensupport.DecodeResponse(target, res); err != nil {
112873		return nil, err
112874	}
112875	return ret, nil
112876	// {
112877	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
112878	//   "httpMethod": "GET",
112879	//   "id": "compute.regionCommitments.get",
112880	//   "parameterOrder": [
112881	//     "project",
112882	//     "region",
112883	//     "commitment"
112884	//   ],
112885	//   "parameters": {
112886	//     "commitment": {
112887	//       "description": "Name of the commitment to return.",
112888	//       "location": "path",
112889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112890	//       "required": true,
112891	//       "type": "string"
112892	//     },
112893	//     "project": {
112894	//       "description": "Project ID for this request.",
112895	//       "location": "path",
112896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112897	//       "required": true,
112898	//       "type": "string"
112899	//     },
112900	//     "region": {
112901	//       "description": "Name of the region for this request.",
112902	//       "location": "path",
112903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112904	//       "required": true,
112905	//       "type": "string"
112906	//     }
112907	//   },
112908	//   "path": "{project}/regions/{region}/commitments/{commitment}",
112909	//   "response": {
112910	//     "$ref": "Commitment"
112911	//   },
112912	//   "scopes": [
112913	//     "https://www.googleapis.com/auth/cloud-platform",
112914	//     "https://www.googleapis.com/auth/compute",
112915	//     "https://www.googleapis.com/auth/compute.readonly"
112916	//   ]
112917	// }
112918
112919}
112920
112921// method id "compute.regionCommitments.insert":
112922
112923type RegionCommitmentsInsertCall struct {
112924	s          *Service
112925	project    string
112926	region     string
112927	commitment *Commitment
112928	urlParams_ gensupport.URLParams
112929	ctx_       context.Context
112930	header_    http.Header
112931}
112932
112933// Insert: Creates a commitment in the specified project using the data
112934// included in the request.
112935func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
112936	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112937	c.project = project
112938	c.region = region
112939	c.commitment = commitment
112940	return c
112941}
112942
112943// RequestId sets the optional parameter "requestId": An optional
112944// request ID to identify requests. Specify a unique request ID so that
112945// if you must retry your request, the server will know to ignore the
112946// request if it has already been completed.
112947//
112948// For example, consider a situation where you make an initial request
112949// and the request times out. If you make the request again with the
112950// same request ID, the server can check if original operation with the
112951// same request ID was received, and if so, will ignore the second
112952// request. This prevents clients from accidentally creating duplicate
112953// commitments.
112954//
112955// The request ID must be a valid UUID with the exception that zero UUID
112956// is not supported (00000000-0000-0000-0000-000000000000).
112957func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
112958	c.urlParams_.Set("requestId", requestId)
112959	return c
112960}
112961
112962// Fields allows partial responses to be retrieved. See
112963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112964// for more information.
112965func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
112966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112967	return c
112968}
112969
112970// Context sets the context to be used in this call's Do method. Any
112971// pending HTTP request will be aborted if the provided context is
112972// canceled.
112973func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
112974	c.ctx_ = ctx
112975	return c
112976}
112977
112978// Header returns an http.Header that can be modified by the caller to
112979// add HTTP headers to the request.
112980func (c *RegionCommitmentsInsertCall) Header() http.Header {
112981	if c.header_ == nil {
112982		c.header_ = make(http.Header)
112983	}
112984	return c.header_
112985}
112986
112987func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
112988	reqHeaders := make(http.Header)
112989	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
112990	for k, v := range c.header_ {
112991		reqHeaders[k] = v
112992	}
112993	reqHeaders.Set("User-Agent", c.s.userAgent())
112994	var body io.Reader = nil
112995	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
112996	if err != nil {
112997		return nil, err
112998	}
112999	reqHeaders.Set("Content-Type", "application/json")
113000	c.urlParams_.Set("alt", alt)
113001	c.urlParams_.Set("prettyPrint", "false")
113002	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
113003	urls += "?" + c.urlParams_.Encode()
113004	req, err := http.NewRequest("POST", urls, body)
113005	if err != nil {
113006		return nil, err
113007	}
113008	req.Header = reqHeaders
113009	googleapi.Expand(req.URL, map[string]string{
113010		"project": c.project,
113011		"region":  c.region,
113012	})
113013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113014}
113015
113016// Do executes the "compute.regionCommitments.insert" call.
113017// Exactly one of *Operation or error will be non-nil. Any non-2xx
113018// status code is an error. Response headers are in either
113019// *Operation.ServerResponse.Header or (if a response was returned at
113020// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113021// to check whether the returned error was because
113022// http.StatusNotModified was returned.
113023func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113024	gensupport.SetOptions(c.urlParams_, opts...)
113025	res, err := c.doRequest("json")
113026	if res != nil && res.StatusCode == http.StatusNotModified {
113027		if res.Body != nil {
113028			res.Body.Close()
113029		}
113030		return nil, &googleapi.Error{
113031			Code:   res.StatusCode,
113032			Header: res.Header,
113033		}
113034	}
113035	if err != nil {
113036		return nil, err
113037	}
113038	defer googleapi.CloseBody(res)
113039	if err := googleapi.CheckResponse(res); err != nil {
113040		return nil, err
113041	}
113042	ret := &Operation{
113043		ServerResponse: googleapi.ServerResponse{
113044			Header:         res.Header,
113045			HTTPStatusCode: res.StatusCode,
113046		},
113047	}
113048	target := &ret
113049	if err := gensupport.DecodeResponse(target, res); err != nil {
113050		return nil, err
113051	}
113052	return ret, nil
113053	// {
113054	//   "description": "Creates a commitment in the specified project using the data included in the request.",
113055	//   "httpMethod": "POST",
113056	//   "id": "compute.regionCommitments.insert",
113057	//   "parameterOrder": [
113058	//     "project",
113059	//     "region"
113060	//   ],
113061	//   "parameters": {
113062	//     "project": {
113063	//       "description": "Project ID for this request.",
113064	//       "location": "path",
113065	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113066	//       "required": true,
113067	//       "type": "string"
113068	//     },
113069	//     "region": {
113070	//       "description": "Name of the region for this request.",
113071	//       "location": "path",
113072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113073	//       "required": true,
113074	//       "type": "string"
113075	//     },
113076	//     "requestId": {
113077	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113078	//       "location": "query",
113079	//       "type": "string"
113080	//     }
113081	//   },
113082	//   "path": "{project}/regions/{region}/commitments",
113083	//   "request": {
113084	//     "$ref": "Commitment"
113085	//   },
113086	//   "response": {
113087	//     "$ref": "Operation"
113088	//   },
113089	//   "scopes": [
113090	//     "https://www.googleapis.com/auth/cloud-platform",
113091	//     "https://www.googleapis.com/auth/compute"
113092	//   ]
113093	// }
113094
113095}
113096
113097// method id "compute.regionCommitments.list":
113098
113099type RegionCommitmentsListCall struct {
113100	s            *Service
113101	project      string
113102	region       string
113103	urlParams_   gensupport.URLParams
113104	ifNoneMatch_ string
113105	ctx_         context.Context
113106	header_      http.Header
113107}
113108
113109// List: Retrieves a list of commitments contained within the specified
113110// region.
113111func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
113112	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113113	c.project = project
113114	c.region = region
113115	return c
113116}
113117
113118// Filter sets the optional parameter "filter": A filter expression that
113119// filters resources listed in the response. The expression must specify
113120// the field name, a comparison operator, and the value that you want to
113121// use for filtering. The value must be a string, a number, or a
113122// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113123// `<`.
113124//
113125// For example, if you are filtering Compute Engine instances, you can
113126// exclude instances named `example-instance` by specifying `name !=
113127// example-instance`.
113128//
113129// You can also filter nested fields. For example, you could specify
113130// `scheduling.automaticRestart = false` to include instances only if
113131// they are not scheduled for automatic restarts. You can use filtering
113132// on nested fields to filter based on resource labels.
113133//
113134// To filter on multiple expressions, provide each separate expression
113135// within parentheses. For example: ``` (scheduling.automaticRestart =
113136// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
113137// is an `AND` expression. However, you can include `AND` and `OR`
113138// expressions explicitly. For example: ``` (cpuPlatform = "Intel
113139// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
113140// (scheduling.automaticRestart = true) ```
113141func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
113142	c.urlParams_.Set("filter", filter)
113143	return c
113144}
113145
113146// MaxResults sets the optional parameter "maxResults": The maximum
113147// number of results per page that should be returned. If the number of
113148// available results is larger than `maxResults`, Compute Engine returns
113149// a `nextPageToken` that can be used to get the next page of results in
113150// subsequent list requests. Acceptable values are `0` to `500`,
113151// inclusive. (Default: `500`)
113152func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
113153	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113154	return c
113155}
113156
113157// OrderBy sets the optional parameter "orderBy": Sorts list results by
113158// a certain order. By default, results are returned in alphanumerical
113159// order based on the resource name.
113160//
113161// You can also sort results in descending order based on the creation
113162// timestamp using `orderBy="creationTimestamp desc". This sorts
113163// results based on the `creationTimestamp` field in reverse
113164// chronological order (newest result first). Use this to sort resources
113165// like operations so that the newest operation is returned
113166// first.
113167//
113168// Currently, only sorting by `name` or `creationTimestamp desc` is
113169// supported.
113170func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
113171	c.urlParams_.Set("orderBy", orderBy)
113172	return c
113173}
113174
113175// PageToken sets the optional parameter "pageToken": Specifies a page
113176// token to use. Set `pageToken` to the `nextPageToken` returned by a
113177// previous list request to get the next page of results.
113178func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
113179	c.urlParams_.Set("pageToken", pageToken)
113180	return c
113181}
113182
113183// Fields allows partial responses to be retrieved. See
113184// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113185// for more information.
113186func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
113187	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113188	return c
113189}
113190
113191// IfNoneMatch sets the optional parameter which makes the operation
113192// fail if the object's ETag matches the given value. This is useful for
113193// getting updates only after the object has changed since the last
113194// request. Use googleapi.IsNotModified to check whether the response
113195// error from Do is the result of In-None-Match.
113196func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
113197	c.ifNoneMatch_ = entityTag
113198	return c
113199}
113200
113201// Context sets the context to be used in this call's Do method. Any
113202// pending HTTP request will be aborted if the provided context is
113203// canceled.
113204func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
113205	c.ctx_ = ctx
113206	return c
113207}
113208
113209// Header returns an http.Header that can be modified by the caller to
113210// add HTTP headers to the request.
113211func (c *RegionCommitmentsListCall) Header() http.Header {
113212	if c.header_ == nil {
113213		c.header_ = make(http.Header)
113214	}
113215	return c.header_
113216}
113217
113218func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
113219	reqHeaders := make(http.Header)
113220	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113221	for k, v := range c.header_ {
113222		reqHeaders[k] = v
113223	}
113224	reqHeaders.Set("User-Agent", c.s.userAgent())
113225	if c.ifNoneMatch_ != "" {
113226		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113227	}
113228	var body io.Reader = nil
113229	c.urlParams_.Set("alt", alt)
113230	c.urlParams_.Set("prettyPrint", "false")
113231	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
113232	urls += "?" + c.urlParams_.Encode()
113233	req, err := http.NewRequest("GET", urls, body)
113234	if err != nil {
113235		return nil, err
113236	}
113237	req.Header = reqHeaders
113238	googleapi.Expand(req.URL, map[string]string{
113239		"project": c.project,
113240		"region":  c.region,
113241	})
113242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113243}
113244
113245// Do executes the "compute.regionCommitments.list" call.
113246// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
113247// status code is an error. Response headers are in either
113248// *CommitmentList.ServerResponse.Header or (if a response was returned
113249// at all) in error.(*googleapi.Error).Header. Use
113250// googleapi.IsNotModified to check whether the returned error was
113251// because http.StatusNotModified was returned.
113252func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
113253	gensupport.SetOptions(c.urlParams_, opts...)
113254	res, err := c.doRequest("json")
113255	if res != nil && res.StatusCode == http.StatusNotModified {
113256		if res.Body != nil {
113257			res.Body.Close()
113258		}
113259		return nil, &googleapi.Error{
113260			Code:   res.StatusCode,
113261			Header: res.Header,
113262		}
113263	}
113264	if err != nil {
113265		return nil, err
113266	}
113267	defer googleapi.CloseBody(res)
113268	if err := googleapi.CheckResponse(res); err != nil {
113269		return nil, err
113270	}
113271	ret := &CommitmentList{
113272		ServerResponse: googleapi.ServerResponse{
113273			Header:         res.Header,
113274			HTTPStatusCode: res.StatusCode,
113275		},
113276	}
113277	target := &ret
113278	if err := gensupport.DecodeResponse(target, res); err != nil {
113279		return nil, err
113280	}
113281	return ret, nil
113282	// {
113283	//   "description": "Retrieves a list of commitments contained within the specified region.",
113284	//   "httpMethod": "GET",
113285	//   "id": "compute.regionCommitments.list",
113286	//   "parameterOrder": [
113287	//     "project",
113288	//     "region"
113289	//   ],
113290	//   "parameters": {
113291	//     "filter": {
113292	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
113293	//       "location": "query",
113294	//       "type": "string"
113295	//     },
113296	//     "maxResults": {
113297	//       "default": "500",
113298	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
113299	//       "format": "uint32",
113300	//       "location": "query",
113301	//       "minimum": "0",
113302	//       "type": "integer"
113303	//     },
113304	//     "orderBy": {
113305	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
113306	//       "location": "query",
113307	//       "type": "string"
113308	//     },
113309	//     "pageToken": {
113310	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
113311	//       "location": "query",
113312	//       "type": "string"
113313	//     },
113314	//     "project": {
113315	//       "description": "Project ID for this request.",
113316	//       "location": "path",
113317	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113318	//       "required": true,
113319	//       "type": "string"
113320	//     },
113321	//     "region": {
113322	//       "description": "Name of the region for this request.",
113323	//       "location": "path",
113324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113325	//       "required": true,
113326	//       "type": "string"
113327	//     }
113328	//   },
113329	//   "path": "{project}/regions/{region}/commitments",
113330	//   "response": {
113331	//     "$ref": "CommitmentList"
113332	//   },
113333	//   "scopes": [
113334	//     "https://www.googleapis.com/auth/cloud-platform",
113335	//     "https://www.googleapis.com/auth/compute",
113336	//     "https://www.googleapis.com/auth/compute.readonly"
113337	//   ]
113338	// }
113339
113340}
113341
113342// Pages invokes f for each page of results.
113343// A non-nil error returned from f will halt the iteration.
113344// The provided context supersedes any context provided to the Context method.
113345func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
113346	c.ctx_ = ctx
113347	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113348	for {
113349		x, err := c.Do()
113350		if err != nil {
113351			return err
113352		}
113353		if err := f(x); err != nil {
113354			return err
113355		}
113356		if x.NextPageToken == "" {
113357			return nil
113358		}
113359		c.PageToken(x.NextPageToken)
113360	}
113361}
113362
113363// method id "compute.regionCommitments.updateReservations":
113364
113365type RegionCommitmentsUpdateReservationsCall struct {
113366	s                                          *Service
113367	project                                    string
113368	region                                     string
113369	commitment                                 string
113370	regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest
113371	urlParams_                                 gensupport.URLParams
113372	ctx_                                       context.Context
113373	header_                                    http.Header
113374}
113375
113376// UpdateReservations: Transfers GPUs or local SSDs between reservations
113377// within commitments.
113378func (r *RegionCommitmentsService) UpdateReservations(project string, region string, commitment string, regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest) *RegionCommitmentsUpdateReservationsCall {
113379	c := &RegionCommitmentsUpdateReservationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113380	c.project = project
113381	c.region = region
113382	c.commitment = commitment
113383	c.regioncommitmentsupdatereservationsrequest = regioncommitmentsupdatereservationsrequest
113384	return c
113385}
113386
113387// RequestId sets the optional parameter "requestId": An optional
113388// request ID to identify requests. Specify a unique request ID so that
113389// if you must retry your request, the server will know to ignore the
113390// request if it has already been completed.
113391//
113392// For example, consider a situation where you make an initial request
113393// and the request times out. If you make the request again with the
113394// same request ID, the server can check if original operation with the
113395// same request ID was received, and if so, will ignore the second
113396// request. This prevents clients from accidentally creating duplicate
113397// commitments.
113398//
113399// The request ID must be a valid UUID with the exception that zero UUID
113400// is not supported (00000000-0000-0000-0000-000000000000).
113401func (c *RegionCommitmentsUpdateReservationsCall) RequestId(requestId string) *RegionCommitmentsUpdateReservationsCall {
113402	c.urlParams_.Set("requestId", requestId)
113403	return c
113404}
113405
113406// Fields allows partial responses to be retrieved. See
113407// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113408// for more information.
113409func (c *RegionCommitmentsUpdateReservationsCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateReservationsCall {
113410	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113411	return c
113412}
113413
113414// Context sets the context to be used in this call's Do method. Any
113415// pending HTTP request will be aborted if the provided context is
113416// canceled.
113417func (c *RegionCommitmentsUpdateReservationsCall) Context(ctx context.Context) *RegionCommitmentsUpdateReservationsCall {
113418	c.ctx_ = ctx
113419	return c
113420}
113421
113422// Header returns an http.Header that can be modified by the caller to
113423// add HTTP headers to the request.
113424func (c *RegionCommitmentsUpdateReservationsCall) Header() http.Header {
113425	if c.header_ == nil {
113426		c.header_ = make(http.Header)
113427	}
113428	return c.header_
113429}
113430
113431func (c *RegionCommitmentsUpdateReservationsCall) doRequest(alt string) (*http.Response, error) {
113432	reqHeaders := make(http.Header)
113433	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113434	for k, v := range c.header_ {
113435		reqHeaders[k] = v
113436	}
113437	reqHeaders.Set("User-Agent", c.s.userAgent())
113438	var body io.Reader = nil
113439	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioncommitmentsupdatereservationsrequest)
113440	if err != nil {
113441		return nil, err
113442	}
113443	reqHeaders.Set("Content-Type", "application/json")
113444	c.urlParams_.Set("alt", alt)
113445	c.urlParams_.Set("prettyPrint", "false")
113446	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}/updateReservations")
113447	urls += "?" + c.urlParams_.Encode()
113448	req, err := http.NewRequest("POST", urls, body)
113449	if err != nil {
113450		return nil, err
113451	}
113452	req.Header = reqHeaders
113453	googleapi.Expand(req.URL, map[string]string{
113454		"project":    c.project,
113455		"region":     c.region,
113456		"commitment": c.commitment,
113457	})
113458	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113459}
113460
113461// Do executes the "compute.regionCommitments.updateReservations" call.
113462// Exactly one of *Operation or error will be non-nil. Any non-2xx
113463// status code is an error. Response headers are in either
113464// *Operation.ServerResponse.Header or (if a response was returned at
113465// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113466// to check whether the returned error was because
113467// http.StatusNotModified was returned.
113468func (c *RegionCommitmentsUpdateReservationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113469	gensupport.SetOptions(c.urlParams_, opts...)
113470	res, err := c.doRequest("json")
113471	if res != nil && res.StatusCode == http.StatusNotModified {
113472		if res.Body != nil {
113473			res.Body.Close()
113474		}
113475		return nil, &googleapi.Error{
113476			Code:   res.StatusCode,
113477			Header: res.Header,
113478		}
113479	}
113480	if err != nil {
113481		return nil, err
113482	}
113483	defer googleapi.CloseBody(res)
113484	if err := googleapi.CheckResponse(res); err != nil {
113485		return nil, err
113486	}
113487	ret := &Operation{
113488		ServerResponse: googleapi.ServerResponse{
113489			Header:         res.Header,
113490			HTTPStatusCode: res.StatusCode,
113491		},
113492	}
113493	target := &ret
113494	if err := gensupport.DecodeResponse(target, res); err != nil {
113495		return nil, err
113496	}
113497	return ret, nil
113498	// {
113499	//   "description": "Transfers GPUs or local SSDs between reservations within commitments.",
113500	//   "httpMethod": "POST",
113501	//   "id": "compute.regionCommitments.updateReservations",
113502	//   "parameterOrder": [
113503	//     "project",
113504	//     "region",
113505	//     "commitment"
113506	//   ],
113507	//   "parameters": {
113508	//     "commitment": {
113509	//       "description": "Name of the commitment for which the reservation is being updated.",
113510	//       "location": "path",
113511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113512	//       "required": true,
113513	//       "type": "string"
113514	//     },
113515	//     "project": {
113516	//       "description": "Project ID for this request.",
113517	//       "location": "path",
113518	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113519	//       "required": true,
113520	//       "type": "string"
113521	//     },
113522	//     "region": {
113523	//       "description": "Name of the region for this request.",
113524	//       "location": "path",
113525	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113526	//       "required": true,
113527	//       "type": "string"
113528	//     },
113529	//     "requestId": {
113530	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113531	//       "location": "query",
113532	//       "type": "string"
113533	//     }
113534	//   },
113535	//   "path": "{project}/regions/{region}/commitments/{commitment}/updateReservations",
113536	//   "request": {
113537	//     "$ref": "RegionCommitmentsUpdateReservationsRequest"
113538	//   },
113539	//   "response": {
113540	//     "$ref": "Operation"
113541	//   },
113542	//   "scopes": [
113543	//     "https://www.googleapis.com/auth/cloud-platform",
113544	//     "https://www.googleapis.com/auth/compute"
113545	//   ]
113546	// }
113547
113548}
113549
113550// method id "compute.regionDiskTypes.get":
113551
113552type RegionDiskTypesGetCall struct {
113553	s            *Service
113554	project      string
113555	region       string
113556	diskType     string
113557	urlParams_   gensupport.URLParams
113558	ifNoneMatch_ string
113559	ctx_         context.Context
113560	header_      http.Header
113561}
113562
113563// Get: Returns the specified regional disk type. Gets a list of
113564// available disk types by making a list() request.
113565func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
113566	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113567	c.project = project
113568	c.region = region
113569	c.diskType = diskType
113570	return c
113571}
113572
113573// Fields allows partial responses to be retrieved. See
113574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113575// for more information.
113576func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
113577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113578	return c
113579}
113580
113581// IfNoneMatch sets the optional parameter which makes the operation
113582// fail if the object's ETag matches the given value. This is useful for
113583// getting updates only after the object has changed since the last
113584// request. Use googleapi.IsNotModified to check whether the response
113585// error from Do is the result of In-None-Match.
113586func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
113587	c.ifNoneMatch_ = entityTag
113588	return c
113589}
113590
113591// Context sets the context to be used in this call's Do method. Any
113592// pending HTTP request will be aborted if the provided context is
113593// canceled.
113594func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
113595	c.ctx_ = ctx
113596	return c
113597}
113598
113599// Header returns an http.Header that can be modified by the caller to
113600// add HTTP headers to the request.
113601func (c *RegionDiskTypesGetCall) Header() http.Header {
113602	if c.header_ == nil {
113603		c.header_ = make(http.Header)
113604	}
113605	return c.header_
113606}
113607
113608func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
113609	reqHeaders := make(http.Header)
113610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113611	for k, v := range c.header_ {
113612		reqHeaders[k] = v
113613	}
113614	reqHeaders.Set("User-Agent", c.s.userAgent())
113615	if c.ifNoneMatch_ != "" {
113616		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113617	}
113618	var body io.Reader = nil
113619	c.urlParams_.Set("alt", alt)
113620	c.urlParams_.Set("prettyPrint", "false")
113621	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes/{diskType}")
113622	urls += "?" + c.urlParams_.Encode()
113623	req, err := http.NewRequest("GET", urls, body)
113624	if err != nil {
113625		return nil, err
113626	}
113627	req.Header = reqHeaders
113628	googleapi.Expand(req.URL, map[string]string{
113629		"project":  c.project,
113630		"region":   c.region,
113631		"diskType": c.diskType,
113632	})
113633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113634}
113635
113636// Do executes the "compute.regionDiskTypes.get" call.
113637// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
113638// code is an error. Response headers are in either
113639// *DiskType.ServerResponse.Header or (if a response was returned at
113640// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113641// to check whether the returned error was because
113642// http.StatusNotModified was returned.
113643func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
113644	gensupport.SetOptions(c.urlParams_, opts...)
113645	res, err := c.doRequest("json")
113646	if res != nil && res.StatusCode == http.StatusNotModified {
113647		if res.Body != nil {
113648			res.Body.Close()
113649		}
113650		return nil, &googleapi.Error{
113651			Code:   res.StatusCode,
113652			Header: res.Header,
113653		}
113654	}
113655	if err != nil {
113656		return nil, err
113657	}
113658	defer googleapi.CloseBody(res)
113659	if err := googleapi.CheckResponse(res); err != nil {
113660		return nil, err
113661	}
113662	ret := &DiskType{
113663		ServerResponse: googleapi.ServerResponse{
113664			Header:         res.Header,
113665			HTTPStatusCode: res.StatusCode,
113666		},
113667	}
113668	target := &ret
113669	if err := gensupport.DecodeResponse(target, res); err != nil {
113670		return nil, err
113671	}
113672	return ret, nil
113673	// {
113674	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
113675	//   "httpMethod": "GET",
113676	//   "id": "compute.regionDiskTypes.get",
113677	//   "parameterOrder": [
113678	//     "project",
113679	//     "region",
113680	//     "diskType"
113681	//   ],
113682	//   "parameters": {
113683	//     "diskType": {
113684	//       "description": "Name of the disk type to return.",
113685	//       "location": "path",
113686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113687	//       "required": true,
113688	//       "type": "string"
113689	//     },
113690	//     "project": {
113691	//       "description": "Project ID for this request.",
113692	//       "location": "path",
113693	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113694	//       "required": true,
113695	//       "type": "string"
113696	//     },
113697	//     "region": {
113698	//       "description": "The name of the region for this request.",
113699	//       "location": "path",
113700	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113701	//       "required": true,
113702	//       "type": "string"
113703	//     }
113704	//   },
113705	//   "path": "{project}/regions/{region}/diskTypes/{diskType}",
113706	//   "response": {
113707	//     "$ref": "DiskType"
113708	//   },
113709	//   "scopes": [
113710	//     "https://www.googleapis.com/auth/cloud-platform",
113711	//     "https://www.googleapis.com/auth/compute",
113712	//     "https://www.googleapis.com/auth/compute.readonly"
113713	//   ]
113714	// }
113715
113716}
113717
113718// method id "compute.regionDiskTypes.list":
113719
113720type RegionDiskTypesListCall struct {
113721	s            *Service
113722	project      string
113723	region       string
113724	urlParams_   gensupport.URLParams
113725	ifNoneMatch_ string
113726	ctx_         context.Context
113727	header_      http.Header
113728}
113729
113730// List: Retrieves a list of regional disk types available to the
113731// specified project.
113732func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
113733	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113734	c.project = project
113735	c.region = region
113736	return c
113737}
113738
113739// Filter sets the optional parameter "filter": A filter expression that
113740// filters resources listed in the response. The expression must specify
113741// the field name, a comparison operator, and the value that you want to
113742// use for filtering. The value must be a string, a number, or a
113743// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113744// `<`.
113745//
113746// For example, if you are filtering Compute Engine instances, you can
113747// exclude instances named `example-instance` by specifying `name !=
113748// example-instance`.
113749//
113750// You can also filter nested fields. For example, you could specify
113751// `scheduling.automaticRestart = false` to include instances only if
113752// they are not scheduled for automatic restarts. You can use filtering
113753// on nested fields to filter based on resource labels.
113754//
113755// To filter on multiple expressions, provide each separate expression
113756// within parentheses. For example: ``` (scheduling.automaticRestart =
113757// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
113758// is an `AND` expression. However, you can include `AND` and `OR`
113759// expressions explicitly. For example: ``` (cpuPlatform = "Intel
113760// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
113761// (scheduling.automaticRestart = true) ```
113762func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
113763	c.urlParams_.Set("filter", filter)
113764	return c
113765}
113766
113767// MaxResults sets the optional parameter "maxResults": The maximum
113768// number of results per page that should be returned. If the number of
113769// available results is larger than `maxResults`, Compute Engine returns
113770// a `nextPageToken` that can be used to get the next page of results in
113771// subsequent list requests. Acceptable values are `0` to `500`,
113772// inclusive. (Default: `500`)
113773func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
113774	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113775	return c
113776}
113777
113778// OrderBy sets the optional parameter "orderBy": Sorts list results by
113779// a certain order. By default, results are returned in alphanumerical
113780// order based on the resource name.
113781//
113782// You can also sort results in descending order based on the creation
113783// timestamp using `orderBy="creationTimestamp desc". This sorts
113784// results based on the `creationTimestamp` field in reverse
113785// chronological order (newest result first). Use this to sort resources
113786// like operations so that the newest operation is returned
113787// first.
113788//
113789// Currently, only sorting by `name` or `creationTimestamp desc` is
113790// supported.
113791func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
113792	c.urlParams_.Set("orderBy", orderBy)
113793	return c
113794}
113795
113796// PageToken sets the optional parameter "pageToken": Specifies a page
113797// token to use. Set `pageToken` to the `nextPageToken` returned by a
113798// previous list request to get the next page of results.
113799func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
113800	c.urlParams_.Set("pageToken", pageToken)
113801	return c
113802}
113803
113804// Fields allows partial responses to be retrieved. See
113805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113806// for more information.
113807func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
113808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113809	return c
113810}
113811
113812// IfNoneMatch sets the optional parameter which makes the operation
113813// fail if the object's ETag matches the given value. This is useful for
113814// getting updates only after the object has changed since the last
113815// request. Use googleapi.IsNotModified to check whether the response
113816// error from Do is the result of In-None-Match.
113817func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
113818	c.ifNoneMatch_ = entityTag
113819	return c
113820}
113821
113822// Context sets the context to be used in this call's Do method. Any
113823// pending HTTP request will be aborted if the provided context is
113824// canceled.
113825func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
113826	c.ctx_ = ctx
113827	return c
113828}
113829
113830// Header returns an http.Header that can be modified by the caller to
113831// add HTTP headers to the request.
113832func (c *RegionDiskTypesListCall) Header() http.Header {
113833	if c.header_ == nil {
113834		c.header_ = make(http.Header)
113835	}
113836	return c.header_
113837}
113838
113839func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
113840	reqHeaders := make(http.Header)
113841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
113842	for k, v := range c.header_ {
113843		reqHeaders[k] = v
113844	}
113845	reqHeaders.Set("User-Agent", c.s.userAgent())
113846	if c.ifNoneMatch_ != "" {
113847		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113848	}
113849	var body io.Reader = nil
113850	c.urlParams_.Set("alt", alt)
113851	c.urlParams_.Set("prettyPrint", "false")
113852	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes")
113853	urls += "?" + c.urlParams_.Encode()
113854	req, err := http.NewRequest("GET", urls, body)
113855	if err != nil {
113856		return nil, err
113857	}
113858	req.Header = reqHeaders
113859	googleapi.Expand(req.URL, map[string]string{
113860		"project": c.project,
113861		"region":  c.region,
113862	})
113863	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113864}
113865
113866// Do executes the "compute.regionDiskTypes.list" call.
113867// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
113868// non-2xx status code is an error. Response headers are in either
113869// *RegionDiskTypeList.ServerResponse.Header or (if a response was
113870// returned at all) in error.(*googleapi.Error).Header. Use
113871// googleapi.IsNotModified to check whether the returned error was
113872// because http.StatusNotModified was returned.
113873func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
113874	gensupport.SetOptions(c.urlParams_, opts...)
113875	res, err := c.doRequest("json")
113876	if res != nil && res.StatusCode == http.StatusNotModified {
113877		if res.Body != nil {
113878			res.Body.Close()
113879		}
113880		return nil, &googleapi.Error{
113881			Code:   res.StatusCode,
113882			Header: res.Header,
113883		}
113884	}
113885	if err != nil {
113886		return nil, err
113887	}
113888	defer googleapi.CloseBody(res)
113889	if err := googleapi.CheckResponse(res); err != nil {
113890		return nil, err
113891	}
113892	ret := &RegionDiskTypeList{
113893		ServerResponse: googleapi.ServerResponse{
113894			Header:         res.Header,
113895			HTTPStatusCode: res.StatusCode,
113896		},
113897	}
113898	target := &ret
113899	if err := gensupport.DecodeResponse(target, res); err != nil {
113900		return nil, err
113901	}
113902	return ret, nil
113903	// {
113904	//   "description": "Retrieves a list of regional disk types available to the specified project.",
113905	//   "httpMethod": "GET",
113906	//   "id": "compute.regionDiskTypes.list",
113907	//   "parameterOrder": [
113908	//     "project",
113909	//     "region"
113910	//   ],
113911	//   "parameters": {
113912	//     "filter": {
113913	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
113914	//       "location": "query",
113915	//       "type": "string"
113916	//     },
113917	//     "maxResults": {
113918	//       "default": "500",
113919	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
113920	//       "format": "uint32",
113921	//       "location": "query",
113922	//       "minimum": "0",
113923	//       "type": "integer"
113924	//     },
113925	//     "orderBy": {
113926	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
113927	//       "location": "query",
113928	//       "type": "string"
113929	//     },
113930	//     "pageToken": {
113931	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
113932	//       "location": "query",
113933	//       "type": "string"
113934	//     },
113935	//     "project": {
113936	//       "description": "Project ID for this request.",
113937	//       "location": "path",
113938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113939	//       "required": true,
113940	//       "type": "string"
113941	//     },
113942	//     "region": {
113943	//       "description": "The name of the region for this request.",
113944	//       "location": "path",
113945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113946	//       "required": true,
113947	//       "type": "string"
113948	//     }
113949	//   },
113950	//   "path": "{project}/regions/{region}/diskTypes",
113951	//   "response": {
113952	//     "$ref": "RegionDiskTypeList"
113953	//   },
113954	//   "scopes": [
113955	//     "https://www.googleapis.com/auth/cloud-platform",
113956	//     "https://www.googleapis.com/auth/compute",
113957	//     "https://www.googleapis.com/auth/compute.readonly"
113958	//   ]
113959	// }
113960
113961}
113962
113963// Pages invokes f for each page of results.
113964// A non-nil error returned from f will halt the iteration.
113965// The provided context supersedes any context provided to the Context method.
113966func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
113967	c.ctx_ = ctx
113968	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113969	for {
113970		x, err := c.Do()
113971		if err != nil {
113972			return err
113973		}
113974		if err := f(x); err != nil {
113975			return err
113976		}
113977		if x.NextPageToken == "" {
113978			return nil
113979		}
113980		c.PageToken(x.NextPageToken)
113981	}
113982}
113983
113984// method id "compute.regionDisks.addResourcePolicies":
113985
113986type RegionDisksAddResourcePoliciesCall struct {
113987	s                                     *Service
113988	project                               string
113989	region                                string
113990	disk                                  string
113991	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
113992	urlParams_                            gensupport.URLParams
113993	ctx_                                  context.Context
113994	header_                               http.Header
113995}
113996
113997// AddResourcePolicies: Adds existing resource policies to a regional
113998// disk. You can only add one policy which will be applied to this disk
113999// for scheduling snapshot creation.
114000func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
114001	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114002	c.project = project
114003	c.region = region
114004	c.disk = disk
114005	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
114006	return c
114007}
114008
114009// RequestId sets the optional parameter "requestId": An optional
114010// request ID to identify requests. Specify a unique request ID so that
114011// if you must retry your request, the server will know to ignore the
114012// request if it has already been completed.
114013//
114014// For example, consider a situation where you make an initial request
114015// and the request times out. If you make the request again with the
114016// same request ID, the server can check if original operation with the
114017// same request ID was received, and if so, will ignore the second
114018// request. This prevents clients from accidentally creating duplicate
114019// commitments.
114020//
114021// The request ID must be a valid UUID with the exception that zero UUID
114022// is not supported (00000000-0000-0000-0000-000000000000).
114023func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
114024	c.urlParams_.Set("requestId", requestId)
114025	return c
114026}
114027
114028// Fields allows partial responses to be retrieved. See
114029// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114030// for more information.
114031func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
114032	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114033	return c
114034}
114035
114036// Context sets the context to be used in this call's Do method. Any
114037// pending HTTP request will be aborted if the provided context is
114038// canceled.
114039func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
114040	c.ctx_ = ctx
114041	return c
114042}
114043
114044// Header returns an http.Header that can be modified by the caller to
114045// add HTTP headers to the request.
114046func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
114047	if c.header_ == nil {
114048		c.header_ = make(http.Header)
114049	}
114050	return c.header_
114051}
114052
114053func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
114054	reqHeaders := make(http.Header)
114055	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114056	for k, v := range c.header_ {
114057		reqHeaders[k] = v
114058	}
114059	reqHeaders.Set("User-Agent", c.s.userAgent())
114060	var body io.Reader = nil
114061	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
114062	if err != nil {
114063		return nil, err
114064	}
114065	reqHeaders.Set("Content-Type", "application/json")
114066	c.urlParams_.Set("alt", alt)
114067	c.urlParams_.Set("prettyPrint", "false")
114068	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/addResourcePolicies")
114069	urls += "?" + c.urlParams_.Encode()
114070	req, err := http.NewRequest("POST", urls, body)
114071	if err != nil {
114072		return nil, err
114073	}
114074	req.Header = reqHeaders
114075	googleapi.Expand(req.URL, map[string]string{
114076		"project": c.project,
114077		"region":  c.region,
114078		"disk":    c.disk,
114079	})
114080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114081}
114082
114083// Do executes the "compute.regionDisks.addResourcePolicies" call.
114084// Exactly one of *Operation or error will be non-nil. Any non-2xx
114085// status code is an error. Response headers are in either
114086// *Operation.ServerResponse.Header or (if a response was returned at
114087// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114088// to check whether the returned error was because
114089// http.StatusNotModified was returned.
114090func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114091	gensupport.SetOptions(c.urlParams_, opts...)
114092	res, err := c.doRequest("json")
114093	if res != nil && res.StatusCode == http.StatusNotModified {
114094		if res.Body != nil {
114095			res.Body.Close()
114096		}
114097		return nil, &googleapi.Error{
114098			Code:   res.StatusCode,
114099			Header: res.Header,
114100		}
114101	}
114102	if err != nil {
114103		return nil, err
114104	}
114105	defer googleapi.CloseBody(res)
114106	if err := googleapi.CheckResponse(res); err != nil {
114107		return nil, err
114108	}
114109	ret := &Operation{
114110		ServerResponse: googleapi.ServerResponse{
114111			Header:         res.Header,
114112			HTTPStatusCode: res.StatusCode,
114113		},
114114	}
114115	target := &ret
114116	if err := gensupport.DecodeResponse(target, res); err != nil {
114117		return nil, err
114118	}
114119	return ret, nil
114120	// {
114121	//   "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.",
114122	//   "httpMethod": "POST",
114123	//   "id": "compute.regionDisks.addResourcePolicies",
114124	//   "parameterOrder": [
114125	//     "project",
114126	//     "region",
114127	//     "disk"
114128	//   ],
114129	//   "parameters": {
114130	//     "disk": {
114131	//       "description": "The disk name for this request.",
114132	//       "location": "path",
114133	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114134	//       "required": true,
114135	//       "type": "string"
114136	//     },
114137	//     "project": {
114138	//       "description": "Project ID for this request.",
114139	//       "location": "path",
114140	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114141	//       "required": true,
114142	//       "type": "string"
114143	//     },
114144	//     "region": {
114145	//       "description": "The name of the region for this request.",
114146	//       "location": "path",
114147	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114148	//       "required": true,
114149	//       "type": "string"
114150	//     },
114151	//     "requestId": {
114152	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114153	//       "location": "query",
114154	//       "type": "string"
114155	//     }
114156	//   },
114157	//   "path": "{project}/regions/{region}/disks/{disk}/addResourcePolicies",
114158	//   "request": {
114159	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
114160	//   },
114161	//   "response": {
114162	//     "$ref": "Operation"
114163	//   },
114164	//   "scopes": [
114165	//     "https://www.googleapis.com/auth/cloud-platform",
114166	//     "https://www.googleapis.com/auth/compute"
114167	//   ]
114168	// }
114169
114170}
114171
114172// method id "compute.regionDisks.createSnapshot":
114173
114174type RegionDisksCreateSnapshotCall struct {
114175	s          *Service
114176	project    string
114177	region     string
114178	disk       string
114179	snapshot   *Snapshot
114180	urlParams_ gensupport.URLParams
114181	ctx_       context.Context
114182	header_    http.Header
114183}
114184
114185// CreateSnapshot: Creates a snapshot of this regional disk.
114186func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
114187	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114188	c.project = project
114189	c.region = region
114190	c.disk = disk
114191	c.snapshot = snapshot
114192	return c
114193}
114194
114195// RequestId sets the optional parameter "requestId": An optional
114196// request ID to identify requests. Specify a unique request ID so that
114197// if you must retry your request, the server will know to ignore the
114198// request if it has already been completed.
114199//
114200// For example, consider a situation where you make an initial request
114201// and the request times out. If you make the request again with the
114202// same request ID, the server can check if original operation with the
114203// same request ID was received, and if so, will ignore the second
114204// request. This prevents clients from accidentally creating duplicate
114205// commitments.
114206//
114207// The request ID must be a valid UUID with the exception that zero UUID
114208// is not supported (00000000-0000-0000-0000-000000000000).
114209func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
114210	c.urlParams_.Set("requestId", requestId)
114211	return c
114212}
114213
114214// Fields allows partial responses to be retrieved. See
114215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114216// for more information.
114217func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
114218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114219	return c
114220}
114221
114222// Context sets the context to be used in this call's Do method. Any
114223// pending HTTP request will be aborted if the provided context is
114224// canceled.
114225func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
114226	c.ctx_ = ctx
114227	return c
114228}
114229
114230// Header returns an http.Header that can be modified by the caller to
114231// add HTTP headers to the request.
114232func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
114233	if c.header_ == nil {
114234		c.header_ = make(http.Header)
114235	}
114236	return c.header_
114237}
114238
114239func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
114240	reqHeaders := make(http.Header)
114241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114242	for k, v := range c.header_ {
114243		reqHeaders[k] = v
114244	}
114245	reqHeaders.Set("User-Agent", c.s.userAgent())
114246	var body io.Reader = nil
114247	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
114248	if err != nil {
114249		return nil, err
114250	}
114251	reqHeaders.Set("Content-Type", "application/json")
114252	c.urlParams_.Set("alt", alt)
114253	c.urlParams_.Set("prettyPrint", "false")
114254	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/createSnapshot")
114255	urls += "?" + c.urlParams_.Encode()
114256	req, err := http.NewRequest("POST", urls, body)
114257	if err != nil {
114258		return nil, err
114259	}
114260	req.Header = reqHeaders
114261	googleapi.Expand(req.URL, map[string]string{
114262		"project": c.project,
114263		"region":  c.region,
114264		"disk":    c.disk,
114265	})
114266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114267}
114268
114269// Do executes the "compute.regionDisks.createSnapshot" call.
114270// Exactly one of *Operation or error will be non-nil. Any non-2xx
114271// status code is an error. Response headers are in either
114272// *Operation.ServerResponse.Header or (if a response was returned at
114273// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114274// to check whether the returned error was because
114275// http.StatusNotModified was returned.
114276func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114277	gensupport.SetOptions(c.urlParams_, opts...)
114278	res, err := c.doRequest("json")
114279	if res != nil && res.StatusCode == http.StatusNotModified {
114280		if res.Body != nil {
114281			res.Body.Close()
114282		}
114283		return nil, &googleapi.Error{
114284			Code:   res.StatusCode,
114285			Header: res.Header,
114286		}
114287	}
114288	if err != nil {
114289		return nil, err
114290	}
114291	defer googleapi.CloseBody(res)
114292	if err := googleapi.CheckResponse(res); err != nil {
114293		return nil, err
114294	}
114295	ret := &Operation{
114296		ServerResponse: googleapi.ServerResponse{
114297			Header:         res.Header,
114298			HTTPStatusCode: res.StatusCode,
114299		},
114300	}
114301	target := &ret
114302	if err := gensupport.DecodeResponse(target, res); err != nil {
114303		return nil, err
114304	}
114305	return ret, nil
114306	// {
114307	//   "description": "Creates a snapshot of this regional disk.",
114308	//   "httpMethod": "POST",
114309	//   "id": "compute.regionDisks.createSnapshot",
114310	//   "parameterOrder": [
114311	//     "project",
114312	//     "region",
114313	//     "disk"
114314	//   ],
114315	//   "parameters": {
114316	//     "disk": {
114317	//       "description": "Name of the regional persistent disk to snapshot.",
114318	//       "location": "path",
114319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114320	//       "required": true,
114321	//       "type": "string"
114322	//     },
114323	//     "project": {
114324	//       "description": "Project ID for this request.",
114325	//       "location": "path",
114326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114327	//       "required": true,
114328	//       "type": "string"
114329	//     },
114330	//     "region": {
114331	//       "description": "Name of the region for this request.",
114332	//       "location": "path",
114333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114334	//       "required": true,
114335	//       "type": "string"
114336	//     },
114337	//     "requestId": {
114338	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114339	//       "location": "query",
114340	//       "type": "string"
114341	//     }
114342	//   },
114343	//   "path": "{project}/regions/{region}/disks/{disk}/createSnapshot",
114344	//   "request": {
114345	//     "$ref": "Snapshot"
114346	//   },
114347	//   "response": {
114348	//     "$ref": "Operation"
114349	//   },
114350	//   "scopes": [
114351	//     "https://www.googleapis.com/auth/cloud-platform",
114352	//     "https://www.googleapis.com/auth/compute"
114353	//   ]
114354	// }
114355
114356}
114357
114358// method id "compute.regionDisks.delete":
114359
114360type RegionDisksDeleteCall struct {
114361	s          *Service
114362	project    string
114363	region     string
114364	disk       string
114365	urlParams_ gensupport.URLParams
114366	ctx_       context.Context
114367	header_    http.Header
114368}
114369
114370// Delete: Deletes the specified regional persistent disk. Deleting a
114371// regional disk removes all the replicas of its data permanently and is
114372// irreversible. However, deleting a disk does not delete any snapshots
114373// previously made from the disk. You must separately delete snapshots.
114374func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
114375	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114376	c.project = project
114377	c.region = region
114378	c.disk = disk
114379	return c
114380}
114381
114382// RequestId sets the optional parameter "requestId": An optional
114383// request ID to identify requests. Specify a unique request ID so that
114384// if you must retry your request, the server will know to ignore the
114385// request if it has already been completed.
114386//
114387// For example, consider a situation where you make an initial request
114388// and the request times out. If you make the request again with the
114389// same request ID, the server can check if original operation with the
114390// same request ID was received, and if so, will ignore the second
114391// request. This prevents clients from accidentally creating duplicate
114392// commitments.
114393//
114394// The request ID must be a valid UUID with the exception that zero UUID
114395// is not supported (00000000-0000-0000-0000-000000000000).
114396func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
114397	c.urlParams_.Set("requestId", requestId)
114398	return c
114399}
114400
114401// Fields allows partial responses to be retrieved. See
114402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114403// for more information.
114404func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
114405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114406	return c
114407}
114408
114409// Context sets the context to be used in this call's Do method. Any
114410// pending HTTP request will be aborted if the provided context is
114411// canceled.
114412func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
114413	c.ctx_ = ctx
114414	return c
114415}
114416
114417// Header returns an http.Header that can be modified by the caller to
114418// add HTTP headers to the request.
114419func (c *RegionDisksDeleteCall) Header() http.Header {
114420	if c.header_ == nil {
114421		c.header_ = make(http.Header)
114422	}
114423	return c.header_
114424}
114425
114426func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
114427	reqHeaders := make(http.Header)
114428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114429	for k, v := range c.header_ {
114430		reqHeaders[k] = v
114431	}
114432	reqHeaders.Set("User-Agent", c.s.userAgent())
114433	var body io.Reader = nil
114434	c.urlParams_.Set("alt", alt)
114435	c.urlParams_.Set("prettyPrint", "false")
114436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
114437	urls += "?" + c.urlParams_.Encode()
114438	req, err := http.NewRequest("DELETE", urls, body)
114439	if err != nil {
114440		return nil, err
114441	}
114442	req.Header = reqHeaders
114443	googleapi.Expand(req.URL, map[string]string{
114444		"project": c.project,
114445		"region":  c.region,
114446		"disk":    c.disk,
114447	})
114448	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114449}
114450
114451// Do executes the "compute.regionDisks.delete" call.
114452// Exactly one of *Operation or error will be non-nil. Any non-2xx
114453// status code is an error. Response headers are in either
114454// *Operation.ServerResponse.Header or (if a response was returned at
114455// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114456// to check whether the returned error was because
114457// http.StatusNotModified was returned.
114458func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114459	gensupport.SetOptions(c.urlParams_, opts...)
114460	res, err := c.doRequest("json")
114461	if res != nil && res.StatusCode == http.StatusNotModified {
114462		if res.Body != nil {
114463			res.Body.Close()
114464		}
114465		return nil, &googleapi.Error{
114466			Code:   res.StatusCode,
114467			Header: res.Header,
114468		}
114469	}
114470	if err != nil {
114471		return nil, err
114472	}
114473	defer googleapi.CloseBody(res)
114474	if err := googleapi.CheckResponse(res); err != nil {
114475		return nil, err
114476	}
114477	ret := &Operation{
114478		ServerResponse: googleapi.ServerResponse{
114479			Header:         res.Header,
114480			HTTPStatusCode: res.StatusCode,
114481		},
114482	}
114483	target := &ret
114484	if err := gensupport.DecodeResponse(target, res); err != nil {
114485		return nil, err
114486	}
114487	return ret, nil
114488	// {
114489	//   "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.",
114490	//   "httpMethod": "DELETE",
114491	//   "id": "compute.regionDisks.delete",
114492	//   "parameterOrder": [
114493	//     "project",
114494	//     "region",
114495	//     "disk"
114496	//   ],
114497	//   "parameters": {
114498	//     "disk": {
114499	//       "description": "Name of the regional persistent disk to delete.",
114500	//       "location": "path",
114501	//       "required": true,
114502	//       "type": "string"
114503	//     },
114504	//     "project": {
114505	//       "description": "Project ID for this request.",
114506	//       "location": "path",
114507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114508	//       "required": true,
114509	//       "type": "string"
114510	//     },
114511	//     "region": {
114512	//       "description": "Name of the region for this request.",
114513	//       "location": "path",
114514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114515	//       "required": true,
114516	//       "type": "string"
114517	//     },
114518	//     "requestId": {
114519	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114520	//       "location": "query",
114521	//       "type": "string"
114522	//     }
114523	//   },
114524	//   "path": "{project}/regions/{region}/disks/{disk}",
114525	//   "response": {
114526	//     "$ref": "Operation"
114527	//   },
114528	//   "scopes": [
114529	//     "https://www.googleapis.com/auth/cloud-platform",
114530	//     "https://www.googleapis.com/auth/compute"
114531	//   ]
114532	// }
114533
114534}
114535
114536// method id "compute.regionDisks.get":
114537
114538type RegionDisksGetCall struct {
114539	s            *Service
114540	project      string
114541	region       string
114542	disk         string
114543	urlParams_   gensupport.URLParams
114544	ifNoneMatch_ string
114545	ctx_         context.Context
114546	header_      http.Header
114547}
114548
114549// Get: Returns a specified regional persistent disk.
114550func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
114551	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114552	c.project = project
114553	c.region = region
114554	c.disk = disk
114555	return c
114556}
114557
114558// Fields allows partial responses to be retrieved. See
114559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114560// for more information.
114561func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
114562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114563	return c
114564}
114565
114566// IfNoneMatch sets the optional parameter which makes the operation
114567// fail if the object's ETag matches the given value. This is useful for
114568// getting updates only after the object has changed since the last
114569// request. Use googleapi.IsNotModified to check whether the response
114570// error from Do is the result of In-None-Match.
114571func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
114572	c.ifNoneMatch_ = entityTag
114573	return c
114574}
114575
114576// Context sets the context to be used in this call's Do method. Any
114577// pending HTTP request will be aborted if the provided context is
114578// canceled.
114579func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
114580	c.ctx_ = ctx
114581	return c
114582}
114583
114584// Header returns an http.Header that can be modified by the caller to
114585// add HTTP headers to the request.
114586func (c *RegionDisksGetCall) Header() http.Header {
114587	if c.header_ == nil {
114588		c.header_ = make(http.Header)
114589	}
114590	return c.header_
114591}
114592
114593func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
114594	reqHeaders := make(http.Header)
114595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114596	for k, v := range c.header_ {
114597		reqHeaders[k] = v
114598	}
114599	reqHeaders.Set("User-Agent", c.s.userAgent())
114600	if c.ifNoneMatch_ != "" {
114601		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114602	}
114603	var body io.Reader = nil
114604	c.urlParams_.Set("alt", alt)
114605	c.urlParams_.Set("prettyPrint", "false")
114606	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
114607	urls += "?" + c.urlParams_.Encode()
114608	req, err := http.NewRequest("GET", urls, body)
114609	if err != nil {
114610		return nil, err
114611	}
114612	req.Header = reqHeaders
114613	googleapi.Expand(req.URL, map[string]string{
114614		"project": c.project,
114615		"region":  c.region,
114616		"disk":    c.disk,
114617	})
114618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114619}
114620
114621// Do executes the "compute.regionDisks.get" call.
114622// Exactly one of *Disk or error will be non-nil. Any non-2xx status
114623// code is an error. Response headers are in either
114624// *Disk.ServerResponse.Header or (if a response was returned at all) in
114625// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
114626// whether the returned error was because http.StatusNotModified was
114627// returned.
114628func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
114629	gensupport.SetOptions(c.urlParams_, opts...)
114630	res, err := c.doRequest("json")
114631	if res != nil && res.StatusCode == http.StatusNotModified {
114632		if res.Body != nil {
114633			res.Body.Close()
114634		}
114635		return nil, &googleapi.Error{
114636			Code:   res.StatusCode,
114637			Header: res.Header,
114638		}
114639	}
114640	if err != nil {
114641		return nil, err
114642	}
114643	defer googleapi.CloseBody(res)
114644	if err := googleapi.CheckResponse(res); err != nil {
114645		return nil, err
114646	}
114647	ret := &Disk{
114648		ServerResponse: googleapi.ServerResponse{
114649			Header:         res.Header,
114650			HTTPStatusCode: res.StatusCode,
114651		},
114652	}
114653	target := &ret
114654	if err := gensupport.DecodeResponse(target, res); err != nil {
114655		return nil, err
114656	}
114657	return ret, nil
114658	// {
114659	//   "description": "Returns a specified regional persistent disk.",
114660	//   "httpMethod": "GET",
114661	//   "id": "compute.regionDisks.get",
114662	//   "parameterOrder": [
114663	//     "project",
114664	//     "region",
114665	//     "disk"
114666	//   ],
114667	//   "parameters": {
114668	//     "disk": {
114669	//       "description": "Name of the regional persistent disk to return.",
114670	//       "location": "path",
114671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114672	//       "required": true,
114673	//       "type": "string"
114674	//     },
114675	//     "project": {
114676	//       "description": "Project ID for this request.",
114677	//       "location": "path",
114678	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114679	//       "required": true,
114680	//       "type": "string"
114681	//     },
114682	//     "region": {
114683	//       "description": "Name of the region for this request.",
114684	//       "location": "path",
114685	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114686	//       "required": true,
114687	//       "type": "string"
114688	//     }
114689	//   },
114690	//   "path": "{project}/regions/{region}/disks/{disk}",
114691	//   "response": {
114692	//     "$ref": "Disk"
114693	//   },
114694	//   "scopes": [
114695	//     "https://www.googleapis.com/auth/cloud-platform",
114696	//     "https://www.googleapis.com/auth/compute",
114697	//     "https://www.googleapis.com/auth/compute.readonly"
114698	//   ]
114699	// }
114700
114701}
114702
114703// method id "compute.regionDisks.getIamPolicy":
114704
114705type RegionDisksGetIamPolicyCall struct {
114706	s            *Service
114707	project      string
114708	region       string
114709	resource     string
114710	urlParams_   gensupport.URLParams
114711	ifNoneMatch_ string
114712	ctx_         context.Context
114713	header_      http.Header
114714}
114715
114716// GetIamPolicy: Gets the access control policy for a resource. May be
114717// empty if no such policy or resource exists.
114718func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
114719	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114720	c.project = project
114721	c.region = region
114722	c.resource = resource
114723	return c
114724}
114725
114726// OptionsRequestedPolicyVersion sets the optional parameter
114727// "optionsRequestedPolicyVersion": Requested IAM Policy version.
114728func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
114729	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
114730	return c
114731}
114732
114733// Fields allows partial responses to be retrieved. See
114734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114735// for more information.
114736func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
114737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114738	return c
114739}
114740
114741// IfNoneMatch sets the optional parameter which makes the operation
114742// fail if the object's ETag matches the given value. This is useful for
114743// getting updates only after the object has changed since the last
114744// request. Use googleapi.IsNotModified to check whether the response
114745// error from Do is the result of In-None-Match.
114746func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
114747	c.ifNoneMatch_ = entityTag
114748	return c
114749}
114750
114751// Context sets the context to be used in this call's Do method. Any
114752// pending HTTP request will be aborted if the provided context is
114753// canceled.
114754func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
114755	c.ctx_ = ctx
114756	return c
114757}
114758
114759// Header returns an http.Header that can be modified by the caller to
114760// add HTTP headers to the request.
114761func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
114762	if c.header_ == nil {
114763		c.header_ = make(http.Header)
114764	}
114765	return c.header_
114766}
114767
114768func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
114769	reqHeaders := make(http.Header)
114770	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114771	for k, v := range c.header_ {
114772		reqHeaders[k] = v
114773	}
114774	reqHeaders.Set("User-Agent", c.s.userAgent())
114775	if c.ifNoneMatch_ != "" {
114776		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114777	}
114778	var body io.Reader = nil
114779	c.urlParams_.Set("alt", alt)
114780	c.urlParams_.Set("prettyPrint", "false")
114781	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/getIamPolicy")
114782	urls += "?" + c.urlParams_.Encode()
114783	req, err := http.NewRequest("GET", urls, body)
114784	if err != nil {
114785		return nil, err
114786	}
114787	req.Header = reqHeaders
114788	googleapi.Expand(req.URL, map[string]string{
114789		"project":  c.project,
114790		"region":   c.region,
114791		"resource": c.resource,
114792	})
114793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114794}
114795
114796// Do executes the "compute.regionDisks.getIamPolicy" call.
114797// Exactly one of *Policy or error will be non-nil. Any non-2xx status
114798// code is an error. Response headers are in either
114799// *Policy.ServerResponse.Header or (if a response was returned at all)
114800// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
114801// check whether the returned error was because http.StatusNotModified
114802// was returned.
114803func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
114804	gensupport.SetOptions(c.urlParams_, opts...)
114805	res, err := c.doRequest("json")
114806	if res != nil && res.StatusCode == http.StatusNotModified {
114807		if res.Body != nil {
114808			res.Body.Close()
114809		}
114810		return nil, &googleapi.Error{
114811			Code:   res.StatusCode,
114812			Header: res.Header,
114813		}
114814	}
114815	if err != nil {
114816		return nil, err
114817	}
114818	defer googleapi.CloseBody(res)
114819	if err := googleapi.CheckResponse(res); err != nil {
114820		return nil, err
114821	}
114822	ret := &Policy{
114823		ServerResponse: googleapi.ServerResponse{
114824			Header:         res.Header,
114825			HTTPStatusCode: res.StatusCode,
114826		},
114827	}
114828	target := &ret
114829	if err := gensupport.DecodeResponse(target, res); err != nil {
114830		return nil, err
114831	}
114832	return ret, nil
114833	// {
114834	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
114835	//   "httpMethod": "GET",
114836	//   "id": "compute.regionDisks.getIamPolicy",
114837	//   "parameterOrder": [
114838	//     "project",
114839	//     "region",
114840	//     "resource"
114841	//   ],
114842	//   "parameters": {
114843	//     "optionsRequestedPolicyVersion": {
114844	//       "description": "Requested IAM Policy version.",
114845	//       "format": "int32",
114846	//       "location": "query",
114847	//       "type": "integer"
114848	//     },
114849	//     "project": {
114850	//       "description": "Project ID for this request.",
114851	//       "location": "path",
114852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114853	//       "required": true,
114854	//       "type": "string"
114855	//     },
114856	//     "region": {
114857	//       "description": "The name of the region for this request.",
114858	//       "location": "path",
114859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114860	//       "required": true,
114861	//       "type": "string"
114862	//     },
114863	//     "resource": {
114864	//       "description": "Name or id of the resource for this request.",
114865	//       "location": "path",
114866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114867	//       "required": true,
114868	//       "type": "string"
114869	//     }
114870	//   },
114871	//   "path": "{project}/regions/{region}/disks/{resource}/getIamPolicy",
114872	//   "response": {
114873	//     "$ref": "Policy"
114874	//   },
114875	//   "scopes": [
114876	//     "https://www.googleapis.com/auth/cloud-platform",
114877	//     "https://www.googleapis.com/auth/compute",
114878	//     "https://www.googleapis.com/auth/compute.readonly"
114879	//   ]
114880	// }
114881
114882}
114883
114884// method id "compute.regionDisks.insert":
114885
114886type RegionDisksInsertCall struct {
114887	s          *Service
114888	project    string
114889	region     string
114890	disk       *Disk
114891	urlParams_ gensupport.URLParams
114892	ctx_       context.Context
114893	header_    http.Header
114894}
114895
114896// Insert: Creates a persistent regional disk in the specified project
114897// using the data included in the request.
114898func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
114899	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114900	c.project = project
114901	c.region = region
114902	c.disk = disk
114903	return c
114904}
114905
114906// RequestId sets the optional parameter "requestId": An optional
114907// request ID to identify requests. Specify a unique request ID so that
114908// if you must retry your request, the server will know to ignore the
114909// request if it has already been completed.
114910//
114911// For example, consider a situation where you make an initial request
114912// and the request times out. If you make the request again with the
114913// same request ID, the server can check if original operation with the
114914// same request ID was received, and if so, will ignore the second
114915// request. This prevents clients from accidentally creating duplicate
114916// commitments.
114917//
114918// The request ID must be a valid UUID with the exception that zero UUID
114919// is not supported (00000000-0000-0000-0000-000000000000).
114920func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
114921	c.urlParams_.Set("requestId", requestId)
114922	return c
114923}
114924
114925// SourceImage sets the optional parameter "sourceImage": Source image
114926// to restore onto a disk.
114927func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
114928	c.urlParams_.Set("sourceImage", sourceImage)
114929	return c
114930}
114931
114932// Fields allows partial responses to be retrieved. See
114933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114934// for more information.
114935func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
114936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114937	return c
114938}
114939
114940// Context sets the context to be used in this call's Do method. Any
114941// pending HTTP request will be aborted if the provided context is
114942// canceled.
114943func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
114944	c.ctx_ = ctx
114945	return c
114946}
114947
114948// Header returns an http.Header that can be modified by the caller to
114949// add HTTP headers to the request.
114950func (c *RegionDisksInsertCall) Header() http.Header {
114951	if c.header_ == nil {
114952		c.header_ = make(http.Header)
114953	}
114954	return c.header_
114955}
114956
114957func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
114958	reqHeaders := make(http.Header)
114959	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
114960	for k, v := range c.header_ {
114961		reqHeaders[k] = v
114962	}
114963	reqHeaders.Set("User-Agent", c.s.userAgent())
114964	var body io.Reader = nil
114965	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
114966	if err != nil {
114967		return nil, err
114968	}
114969	reqHeaders.Set("Content-Type", "application/json")
114970	c.urlParams_.Set("alt", alt)
114971	c.urlParams_.Set("prettyPrint", "false")
114972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
114973	urls += "?" + c.urlParams_.Encode()
114974	req, err := http.NewRequest("POST", urls, body)
114975	if err != nil {
114976		return nil, err
114977	}
114978	req.Header = reqHeaders
114979	googleapi.Expand(req.URL, map[string]string{
114980		"project": c.project,
114981		"region":  c.region,
114982	})
114983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114984}
114985
114986// Do executes the "compute.regionDisks.insert" call.
114987// Exactly one of *Operation or error will be non-nil. Any non-2xx
114988// status code is an error. Response headers are in either
114989// *Operation.ServerResponse.Header or (if a response was returned at
114990// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114991// to check whether the returned error was because
114992// http.StatusNotModified was returned.
114993func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114994	gensupport.SetOptions(c.urlParams_, opts...)
114995	res, err := c.doRequest("json")
114996	if res != nil && res.StatusCode == http.StatusNotModified {
114997		if res.Body != nil {
114998			res.Body.Close()
114999		}
115000		return nil, &googleapi.Error{
115001			Code:   res.StatusCode,
115002			Header: res.Header,
115003		}
115004	}
115005	if err != nil {
115006		return nil, err
115007	}
115008	defer googleapi.CloseBody(res)
115009	if err := googleapi.CheckResponse(res); err != nil {
115010		return nil, err
115011	}
115012	ret := &Operation{
115013		ServerResponse: googleapi.ServerResponse{
115014			Header:         res.Header,
115015			HTTPStatusCode: res.StatusCode,
115016		},
115017	}
115018	target := &ret
115019	if err := gensupport.DecodeResponse(target, res); err != nil {
115020		return nil, err
115021	}
115022	return ret, nil
115023	// {
115024	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
115025	//   "httpMethod": "POST",
115026	//   "id": "compute.regionDisks.insert",
115027	//   "parameterOrder": [
115028	//     "project",
115029	//     "region"
115030	//   ],
115031	//   "parameters": {
115032	//     "project": {
115033	//       "description": "Project ID for this request.",
115034	//       "location": "path",
115035	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115036	//       "required": true,
115037	//       "type": "string"
115038	//     },
115039	//     "region": {
115040	//       "description": "Name of the region for this request.",
115041	//       "location": "path",
115042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115043	//       "required": true,
115044	//       "type": "string"
115045	//     },
115046	//     "requestId": {
115047	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115048	//       "location": "query",
115049	//       "type": "string"
115050	//     },
115051	//     "sourceImage": {
115052	//       "description": "Optional. Source image to restore onto a disk.",
115053	//       "location": "query",
115054	//       "type": "string"
115055	//     }
115056	//   },
115057	//   "path": "{project}/regions/{region}/disks",
115058	//   "request": {
115059	//     "$ref": "Disk"
115060	//   },
115061	//   "response": {
115062	//     "$ref": "Operation"
115063	//   },
115064	//   "scopes": [
115065	//     "https://www.googleapis.com/auth/cloud-platform",
115066	//     "https://www.googleapis.com/auth/compute"
115067	//   ]
115068	// }
115069
115070}
115071
115072// method id "compute.regionDisks.list":
115073
115074type RegionDisksListCall struct {
115075	s            *Service
115076	project      string
115077	region       string
115078	urlParams_   gensupport.URLParams
115079	ifNoneMatch_ string
115080	ctx_         context.Context
115081	header_      http.Header
115082}
115083
115084// List: Retrieves the list of persistent disks contained within the
115085// specified region.
115086func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
115087	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115088	c.project = project
115089	c.region = region
115090	return c
115091}
115092
115093// Filter sets the optional parameter "filter": A filter expression that
115094// filters resources listed in the response. The expression must specify
115095// the field name, a comparison operator, and the value that you want to
115096// use for filtering. The value must be a string, a number, or a
115097// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115098// `<`.
115099//
115100// For example, if you are filtering Compute Engine instances, you can
115101// exclude instances named `example-instance` by specifying `name !=
115102// example-instance`.
115103//
115104// You can also filter nested fields. For example, you could specify
115105// `scheduling.automaticRestart = false` to include instances only if
115106// they are not scheduled for automatic restarts. You can use filtering
115107// on nested fields to filter based on resource labels.
115108//
115109// To filter on multiple expressions, provide each separate expression
115110// within parentheses. For example: ``` (scheduling.automaticRestart =
115111// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115112// is an `AND` expression. However, you can include `AND` and `OR`
115113// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115114// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115115// (scheduling.automaticRestart = true) ```
115116func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
115117	c.urlParams_.Set("filter", filter)
115118	return c
115119}
115120
115121// MaxResults sets the optional parameter "maxResults": The maximum
115122// number of results per page that should be returned. If the number of
115123// available results is larger than `maxResults`, Compute Engine returns
115124// a `nextPageToken` that can be used to get the next page of results in
115125// subsequent list requests. Acceptable values are `0` to `500`,
115126// inclusive. (Default: `500`)
115127func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
115128	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115129	return c
115130}
115131
115132// OrderBy sets the optional parameter "orderBy": Sorts list results by
115133// a certain order. By default, results are returned in alphanumerical
115134// order based on the resource name.
115135//
115136// You can also sort results in descending order based on the creation
115137// timestamp using `orderBy="creationTimestamp desc". This sorts
115138// results based on the `creationTimestamp` field in reverse
115139// chronological order (newest result first). Use this to sort resources
115140// like operations so that the newest operation is returned
115141// first.
115142//
115143// Currently, only sorting by `name` or `creationTimestamp desc` is
115144// supported.
115145func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
115146	c.urlParams_.Set("orderBy", orderBy)
115147	return c
115148}
115149
115150// PageToken sets the optional parameter "pageToken": Specifies a page
115151// token to use. Set `pageToken` to the `nextPageToken` returned by a
115152// previous list request to get the next page of results.
115153func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
115154	c.urlParams_.Set("pageToken", pageToken)
115155	return c
115156}
115157
115158// Fields allows partial responses to be retrieved. See
115159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115160// for more information.
115161func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
115162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115163	return c
115164}
115165
115166// IfNoneMatch sets the optional parameter which makes the operation
115167// fail if the object's ETag matches the given value. This is useful for
115168// getting updates only after the object has changed since the last
115169// request. Use googleapi.IsNotModified to check whether the response
115170// error from Do is the result of In-None-Match.
115171func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
115172	c.ifNoneMatch_ = entityTag
115173	return c
115174}
115175
115176// Context sets the context to be used in this call's Do method. Any
115177// pending HTTP request will be aborted if the provided context is
115178// canceled.
115179func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
115180	c.ctx_ = ctx
115181	return c
115182}
115183
115184// Header returns an http.Header that can be modified by the caller to
115185// add HTTP headers to the request.
115186func (c *RegionDisksListCall) Header() http.Header {
115187	if c.header_ == nil {
115188		c.header_ = make(http.Header)
115189	}
115190	return c.header_
115191}
115192
115193func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
115194	reqHeaders := make(http.Header)
115195	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115196	for k, v := range c.header_ {
115197		reqHeaders[k] = v
115198	}
115199	reqHeaders.Set("User-Agent", c.s.userAgent())
115200	if c.ifNoneMatch_ != "" {
115201		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115202	}
115203	var body io.Reader = nil
115204	c.urlParams_.Set("alt", alt)
115205	c.urlParams_.Set("prettyPrint", "false")
115206	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
115207	urls += "?" + c.urlParams_.Encode()
115208	req, err := http.NewRequest("GET", urls, body)
115209	if err != nil {
115210		return nil, err
115211	}
115212	req.Header = reqHeaders
115213	googleapi.Expand(req.URL, map[string]string{
115214		"project": c.project,
115215		"region":  c.region,
115216	})
115217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115218}
115219
115220// Do executes the "compute.regionDisks.list" call.
115221// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
115222// code is an error. Response headers are in either
115223// *DiskList.ServerResponse.Header or (if a response was returned at
115224// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115225// to check whether the returned error was because
115226// http.StatusNotModified was returned.
115227func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
115228	gensupport.SetOptions(c.urlParams_, opts...)
115229	res, err := c.doRequest("json")
115230	if res != nil && res.StatusCode == http.StatusNotModified {
115231		if res.Body != nil {
115232			res.Body.Close()
115233		}
115234		return nil, &googleapi.Error{
115235			Code:   res.StatusCode,
115236			Header: res.Header,
115237		}
115238	}
115239	if err != nil {
115240		return nil, err
115241	}
115242	defer googleapi.CloseBody(res)
115243	if err := googleapi.CheckResponse(res); err != nil {
115244		return nil, err
115245	}
115246	ret := &DiskList{
115247		ServerResponse: googleapi.ServerResponse{
115248			Header:         res.Header,
115249			HTTPStatusCode: res.StatusCode,
115250		},
115251	}
115252	target := &ret
115253	if err := gensupport.DecodeResponse(target, res); err != nil {
115254		return nil, err
115255	}
115256	return ret, nil
115257	// {
115258	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
115259	//   "httpMethod": "GET",
115260	//   "id": "compute.regionDisks.list",
115261	//   "parameterOrder": [
115262	//     "project",
115263	//     "region"
115264	//   ],
115265	//   "parameters": {
115266	//     "filter": {
115267	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115268	//       "location": "query",
115269	//       "type": "string"
115270	//     },
115271	//     "maxResults": {
115272	//       "default": "500",
115273	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115274	//       "format": "uint32",
115275	//       "location": "query",
115276	//       "minimum": "0",
115277	//       "type": "integer"
115278	//     },
115279	//     "orderBy": {
115280	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
115281	//       "location": "query",
115282	//       "type": "string"
115283	//     },
115284	//     "pageToken": {
115285	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115286	//       "location": "query",
115287	//       "type": "string"
115288	//     },
115289	//     "project": {
115290	//       "description": "Project ID for this request.",
115291	//       "location": "path",
115292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115293	//       "required": true,
115294	//       "type": "string"
115295	//     },
115296	//     "region": {
115297	//       "description": "Name of the region for this request.",
115298	//       "location": "path",
115299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115300	//       "required": true,
115301	//       "type": "string"
115302	//     }
115303	//   },
115304	//   "path": "{project}/regions/{region}/disks",
115305	//   "response": {
115306	//     "$ref": "DiskList"
115307	//   },
115308	//   "scopes": [
115309	//     "https://www.googleapis.com/auth/cloud-platform",
115310	//     "https://www.googleapis.com/auth/compute",
115311	//     "https://www.googleapis.com/auth/compute.readonly"
115312	//   ]
115313	// }
115314
115315}
115316
115317// Pages invokes f for each page of results.
115318// A non-nil error returned from f will halt the iteration.
115319// The provided context supersedes any context provided to the Context method.
115320func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
115321	c.ctx_ = ctx
115322	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115323	for {
115324		x, err := c.Do()
115325		if err != nil {
115326			return err
115327		}
115328		if err := f(x); err != nil {
115329			return err
115330		}
115331		if x.NextPageToken == "" {
115332			return nil
115333		}
115334		c.PageToken(x.NextPageToken)
115335	}
115336}
115337
115338// method id "compute.regionDisks.removeResourcePolicies":
115339
115340type RegionDisksRemoveResourcePoliciesCall struct {
115341	s                                        *Service
115342	project                                  string
115343	region                                   string
115344	disk                                     string
115345	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
115346	urlParams_                               gensupport.URLParams
115347	ctx_                                     context.Context
115348	header_                                  http.Header
115349}
115350
115351// RemoveResourcePolicies: Removes resource policies from a regional
115352// disk.
115353func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
115354	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115355	c.project = project
115356	c.region = region
115357	c.disk = disk
115358	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
115359	return c
115360}
115361
115362// RequestId sets the optional parameter "requestId": An optional
115363// request ID to identify requests. Specify a unique request ID so that
115364// if you must retry your request, the server will know to ignore the
115365// request if it has already been completed.
115366//
115367// For example, consider a situation where you make an initial request
115368// and the request times out. If you make the request again with the
115369// same request ID, the server can check if original operation with the
115370// same request ID was received, and if so, will ignore the second
115371// request. This prevents clients from accidentally creating duplicate
115372// commitments.
115373//
115374// The request ID must be a valid UUID with the exception that zero UUID
115375// is not supported (00000000-0000-0000-0000-000000000000).
115376func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
115377	c.urlParams_.Set("requestId", requestId)
115378	return c
115379}
115380
115381// Fields allows partial responses to be retrieved. See
115382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115383// for more information.
115384func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
115385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115386	return c
115387}
115388
115389// Context sets the context to be used in this call's Do method. Any
115390// pending HTTP request will be aborted if the provided context is
115391// canceled.
115392func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
115393	c.ctx_ = ctx
115394	return c
115395}
115396
115397// Header returns an http.Header that can be modified by the caller to
115398// add HTTP headers to the request.
115399func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
115400	if c.header_ == nil {
115401		c.header_ = make(http.Header)
115402	}
115403	return c.header_
115404}
115405
115406func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
115407	reqHeaders := make(http.Header)
115408	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115409	for k, v := range c.header_ {
115410		reqHeaders[k] = v
115411	}
115412	reqHeaders.Set("User-Agent", c.s.userAgent())
115413	var body io.Reader = nil
115414	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
115415	if err != nil {
115416		return nil, err
115417	}
115418	reqHeaders.Set("Content-Type", "application/json")
115419	c.urlParams_.Set("alt", alt)
115420	c.urlParams_.Set("prettyPrint", "false")
115421	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
115422	urls += "?" + c.urlParams_.Encode()
115423	req, err := http.NewRequest("POST", urls, body)
115424	if err != nil {
115425		return nil, err
115426	}
115427	req.Header = reqHeaders
115428	googleapi.Expand(req.URL, map[string]string{
115429		"project": c.project,
115430		"region":  c.region,
115431		"disk":    c.disk,
115432	})
115433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115434}
115435
115436// Do executes the "compute.regionDisks.removeResourcePolicies" call.
115437// Exactly one of *Operation or error will be non-nil. Any non-2xx
115438// status code is an error. Response headers are in either
115439// *Operation.ServerResponse.Header or (if a response was returned at
115440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115441// to check whether the returned error was because
115442// http.StatusNotModified was returned.
115443func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115444	gensupport.SetOptions(c.urlParams_, opts...)
115445	res, err := c.doRequest("json")
115446	if res != nil && res.StatusCode == http.StatusNotModified {
115447		if res.Body != nil {
115448			res.Body.Close()
115449		}
115450		return nil, &googleapi.Error{
115451			Code:   res.StatusCode,
115452			Header: res.Header,
115453		}
115454	}
115455	if err != nil {
115456		return nil, err
115457	}
115458	defer googleapi.CloseBody(res)
115459	if err := googleapi.CheckResponse(res); err != nil {
115460		return nil, err
115461	}
115462	ret := &Operation{
115463		ServerResponse: googleapi.ServerResponse{
115464			Header:         res.Header,
115465			HTTPStatusCode: res.StatusCode,
115466		},
115467	}
115468	target := &ret
115469	if err := gensupport.DecodeResponse(target, res); err != nil {
115470		return nil, err
115471	}
115472	return ret, nil
115473	// {
115474	//   "description": "Removes resource policies from a regional disk.",
115475	//   "httpMethod": "POST",
115476	//   "id": "compute.regionDisks.removeResourcePolicies",
115477	//   "parameterOrder": [
115478	//     "project",
115479	//     "region",
115480	//     "disk"
115481	//   ],
115482	//   "parameters": {
115483	//     "disk": {
115484	//       "description": "The disk name for this request.",
115485	//       "location": "path",
115486	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115487	//       "required": true,
115488	//       "type": "string"
115489	//     },
115490	//     "project": {
115491	//       "description": "Project ID for this request.",
115492	//       "location": "path",
115493	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115494	//       "required": true,
115495	//       "type": "string"
115496	//     },
115497	//     "region": {
115498	//       "description": "The name of the region for this request.",
115499	//       "location": "path",
115500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115501	//       "required": true,
115502	//       "type": "string"
115503	//     },
115504	//     "requestId": {
115505	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115506	//       "location": "query",
115507	//       "type": "string"
115508	//     }
115509	//   },
115510	//   "path": "{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
115511	//   "request": {
115512	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
115513	//   },
115514	//   "response": {
115515	//     "$ref": "Operation"
115516	//   },
115517	//   "scopes": [
115518	//     "https://www.googleapis.com/auth/cloud-platform",
115519	//     "https://www.googleapis.com/auth/compute"
115520	//   ]
115521	// }
115522
115523}
115524
115525// method id "compute.regionDisks.resize":
115526
115527type RegionDisksResizeCall struct {
115528	s                        *Service
115529	project                  string
115530	region                   string
115531	disk                     string
115532	regiondisksresizerequest *RegionDisksResizeRequest
115533	urlParams_               gensupport.URLParams
115534	ctx_                     context.Context
115535	header_                  http.Header
115536}
115537
115538// Resize: Resizes the specified regional persistent disk.
115539func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
115540	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115541	c.project = project
115542	c.region = region
115543	c.disk = disk
115544	c.regiondisksresizerequest = regiondisksresizerequest
115545	return c
115546}
115547
115548// RequestId sets the optional parameter "requestId": An optional
115549// request ID to identify requests. Specify a unique request ID so that
115550// if you must retry your request, the server will know to ignore the
115551// request if it has already been completed.
115552//
115553// For example, consider a situation where you make an initial request
115554// and the request times out. If you make the request again with the
115555// same request ID, the server can check if original operation with the
115556// same request ID was received, and if so, will ignore the second
115557// request. This prevents clients from accidentally creating duplicate
115558// commitments.
115559//
115560// The request ID must be a valid UUID with the exception that zero UUID
115561// is not supported (00000000-0000-0000-0000-000000000000).
115562func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
115563	c.urlParams_.Set("requestId", requestId)
115564	return c
115565}
115566
115567// Fields allows partial responses to be retrieved. See
115568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115569// for more information.
115570func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
115571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115572	return c
115573}
115574
115575// Context sets the context to be used in this call's Do method. Any
115576// pending HTTP request will be aborted if the provided context is
115577// canceled.
115578func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
115579	c.ctx_ = ctx
115580	return c
115581}
115582
115583// Header returns an http.Header that can be modified by the caller to
115584// add HTTP headers to the request.
115585func (c *RegionDisksResizeCall) Header() http.Header {
115586	if c.header_ == nil {
115587		c.header_ = make(http.Header)
115588	}
115589	return c.header_
115590}
115591
115592func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
115593	reqHeaders := make(http.Header)
115594	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115595	for k, v := range c.header_ {
115596		reqHeaders[k] = v
115597	}
115598	reqHeaders.Set("User-Agent", c.s.userAgent())
115599	var body io.Reader = nil
115600	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
115601	if err != nil {
115602		return nil, err
115603	}
115604	reqHeaders.Set("Content-Type", "application/json")
115605	c.urlParams_.Set("alt", alt)
115606	c.urlParams_.Set("prettyPrint", "false")
115607	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/resize")
115608	urls += "?" + c.urlParams_.Encode()
115609	req, err := http.NewRequest("POST", urls, body)
115610	if err != nil {
115611		return nil, err
115612	}
115613	req.Header = reqHeaders
115614	googleapi.Expand(req.URL, map[string]string{
115615		"project": c.project,
115616		"region":  c.region,
115617		"disk":    c.disk,
115618	})
115619	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115620}
115621
115622// Do executes the "compute.regionDisks.resize" call.
115623// Exactly one of *Operation or error will be non-nil. Any non-2xx
115624// status code is an error. Response headers are in either
115625// *Operation.ServerResponse.Header or (if a response was returned at
115626// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115627// to check whether the returned error was because
115628// http.StatusNotModified was returned.
115629func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115630	gensupport.SetOptions(c.urlParams_, opts...)
115631	res, err := c.doRequest("json")
115632	if res != nil && res.StatusCode == http.StatusNotModified {
115633		if res.Body != nil {
115634			res.Body.Close()
115635		}
115636		return nil, &googleapi.Error{
115637			Code:   res.StatusCode,
115638			Header: res.Header,
115639		}
115640	}
115641	if err != nil {
115642		return nil, err
115643	}
115644	defer googleapi.CloseBody(res)
115645	if err := googleapi.CheckResponse(res); err != nil {
115646		return nil, err
115647	}
115648	ret := &Operation{
115649		ServerResponse: googleapi.ServerResponse{
115650			Header:         res.Header,
115651			HTTPStatusCode: res.StatusCode,
115652		},
115653	}
115654	target := &ret
115655	if err := gensupport.DecodeResponse(target, res); err != nil {
115656		return nil, err
115657	}
115658	return ret, nil
115659	// {
115660	//   "description": "Resizes the specified regional persistent disk.",
115661	//   "httpMethod": "POST",
115662	//   "id": "compute.regionDisks.resize",
115663	//   "parameterOrder": [
115664	//     "project",
115665	//     "region",
115666	//     "disk"
115667	//   ],
115668	//   "parameters": {
115669	//     "disk": {
115670	//       "description": "Name of the regional persistent disk.",
115671	//       "location": "path",
115672	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115673	//       "required": true,
115674	//       "type": "string"
115675	//     },
115676	//     "project": {
115677	//       "description": "The project ID for this request.",
115678	//       "location": "path",
115679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115680	//       "required": true,
115681	//       "type": "string"
115682	//     },
115683	//     "region": {
115684	//       "description": "Name of the region for this request.",
115685	//       "location": "path",
115686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115687	//       "required": true,
115688	//       "type": "string"
115689	//     },
115690	//     "requestId": {
115691	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115692	//       "location": "query",
115693	//       "type": "string"
115694	//     }
115695	//   },
115696	//   "path": "{project}/regions/{region}/disks/{disk}/resize",
115697	//   "request": {
115698	//     "$ref": "RegionDisksResizeRequest"
115699	//   },
115700	//   "response": {
115701	//     "$ref": "Operation"
115702	//   },
115703	//   "scopes": [
115704	//     "https://www.googleapis.com/auth/cloud-platform",
115705	//     "https://www.googleapis.com/auth/compute"
115706	//   ]
115707	// }
115708
115709}
115710
115711// method id "compute.regionDisks.setIamPolicy":
115712
115713type RegionDisksSetIamPolicyCall struct {
115714	s                      *Service
115715	project                string
115716	region                 string
115717	resource               string
115718	regionsetpolicyrequest *RegionSetPolicyRequest
115719	urlParams_             gensupport.URLParams
115720	ctx_                   context.Context
115721	header_                http.Header
115722}
115723
115724// SetIamPolicy: Sets the access control policy on the specified
115725// resource. Replaces any existing policy.
115726func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
115727	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115728	c.project = project
115729	c.region = region
115730	c.resource = resource
115731	c.regionsetpolicyrequest = regionsetpolicyrequest
115732	return c
115733}
115734
115735// Fields allows partial responses to be retrieved. See
115736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115737// for more information.
115738func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
115739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115740	return c
115741}
115742
115743// Context sets the context to be used in this call's Do method. Any
115744// pending HTTP request will be aborted if the provided context is
115745// canceled.
115746func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
115747	c.ctx_ = ctx
115748	return c
115749}
115750
115751// Header returns an http.Header that can be modified by the caller to
115752// add HTTP headers to the request.
115753func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
115754	if c.header_ == nil {
115755		c.header_ = make(http.Header)
115756	}
115757	return c.header_
115758}
115759
115760func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
115761	reqHeaders := make(http.Header)
115762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115763	for k, v := range c.header_ {
115764		reqHeaders[k] = v
115765	}
115766	reqHeaders.Set("User-Agent", c.s.userAgent())
115767	var body io.Reader = nil
115768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
115769	if err != nil {
115770		return nil, err
115771	}
115772	reqHeaders.Set("Content-Type", "application/json")
115773	c.urlParams_.Set("alt", alt)
115774	c.urlParams_.Set("prettyPrint", "false")
115775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setIamPolicy")
115776	urls += "?" + c.urlParams_.Encode()
115777	req, err := http.NewRequest("POST", urls, body)
115778	if err != nil {
115779		return nil, err
115780	}
115781	req.Header = reqHeaders
115782	googleapi.Expand(req.URL, map[string]string{
115783		"project":  c.project,
115784		"region":   c.region,
115785		"resource": c.resource,
115786	})
115787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115788}
115789
115790// Do executes the "compute.regionDisks.setIamPolicy" call.
115791// Exactly one of *Policy or error will be non-nil. Any non-2xx status
115792// code is an error. Response headers are in either
115793// *Policy.ServerResponse.Header or (if a response was returned at all)
115794// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
115795// check whether the returned error was because http.StatusNotModified
115796// was returned.
115797func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
115798	gensupport.SetOptions(c.urlParams_, opts...)
115799	res, err := c.doRequest("json")
115800	if res != nil && res.StatusCode == http.StatusNotModified {
115801		if res.Body != nil {
115802			res.Body.Close()
115803		}
115804		return nil, &googleapi.Error{
115805			Code:   res.StatusCode,
115806			Header: res.Header,
115807		}
115808	}
115809	if err != nil {
115810		return nil, err
115811	}
115812	defer googleapi.CloseBody(res)
115813	if err := googleapi.CheckResponse(res); err != nil {
115814		return nil, err
115815	}
115816	ret := &Policy{
115817		ServerResponse: googleapi.ServerResponse{
115818			Header:         res.Header,
115819			HTTPStatusCode: res.StatusCode,
115820		},
115821	}
115822	target := &ret
115823	if err := gensupport.DecodeResponse(target, res); err != nil {
115824		return nil, err
115825	}
115826	return ret, nil
115827	// {
115828	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
115829	//   "httpMethod": "POST",
115830	//   "id": "compute.regionDisks.setIamPolicy",
115831	//   "parameterOrder": [
115832	//     "project",
115833	//     "region",
115834	//     "resource"
115835	//   ],
115836	//   "parameters": {
115837	//     "project": {
115838	//       "description": "Project ID for this request.",
115839	//       "location": "path",
115840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115841	//       "required": true,
115842	//       "type": "string"
115843	//     },
115844	//     "region": {
115845	//       "description": "The name of the region for this request.",
115846	//       "location": "path",
115847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115848	//       "required": true,
115849	//       "type": "string"
115850	//     },
115851	//     "resource": {
115852	//       "description": "Name or id of the resource for this request.",
115853	//       "location": "path",
115854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115855	//       "required": true,
115856	//       "type": "string"
115857	//     }
115858	//   },
115859	//   "path": "{project}/regions/{region}/disks/{resource}/setIamPolicy",
115860	//   "request": {
115861	//     "$ref": "RegionSetPolicyRequest"
115862	//   },
115863	//   "response": {
115864	//     "$ref": "Policy"
115865	//   },
115866	//   "scopes": [
115867	//     "https://www.googleapis.com/auth/cloud-platform",
115868	//     "https://www.googleapis.com/auth/compute"
115869	//   ]
115870	// }
115871
115872}
115873
115874// method id "compute.regionDisks.setLabels":
115875
115876type RegionDisksSetLabelsCall struct {
115877	s                      *Service
115878	project                string
115879	region                 string
115880	resource               string
115881	regionsetlabelsrequest *RegionSetLabelsRequest
115882	urlParams_             gensupport.URLParams
115883	ctx_                   context.Context
115884	header_                http.Header
115885}
115886
115887// SetLabels: Sets the labels on the target regional disk.
115888func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
115889	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115890	c.project = project
115891	c.region = region
115892	c.resource = resource
115893	c.regionsetlabelsrequest = regionsetlabelsrequest
115894	return c
115895}
115896
115897// RequestId sets the optional parameter "requestId": An optional
115898// request ID to identify requests. Specify a unique request ID so that
115899// if you must retry your request, the server will know to ignore the
115900// request if it has already been completed.
115901//
115902// For example, consider a situation where you make an initial request
115903// and the request times out. If you make the request again with the
115904// same request ID, the server can check if original operation with the
115905// same request ID was received, and if so, will ignore the second
115906// request. This prevents clients from accidentally creating duplicate
115907// commitments.
115908//
115909// The request ID must be a valid UUID with the exception that zero UUID
115910// is not supported (00000000-0000-0000-0000-000000000000).
115911func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
115912	c.urlParams_.Set("requestId", requestId)
115913	return c
115914}
115915
115916// Fields allows partial responses to be retrieved. See
115917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115918// for more information.
115919func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
115920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115921	return c
115922}
115923
115924// Context sets the context to be used in this call's Do method. Any
115925// pending HTTP request will be aborted if the provided context is
115926// canceled.
115927func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
115928	c.ctx_ = ctx
115929	return c
115930}
115931
115932// Header returns an http.Header that can be modified by the caller to
115933// add HTTP headers to the request.
115934func (c *RegionDisksSetLabelsCall) Header() http.Header {
115935	if c.header_ == nil {
115936		c.header_ = make(http.Header)
115937	}
115938	return c.header_
115939}
115940
115941func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
115942	reqHeaders := make(http.Header)
115943	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
115944	for k, v := range c.header_ {
115945		reqHeaders[k] = v
115946	}
115947	reqHeaders.Set("User-Agent", c.s.userAgent())
115948	var body io.Reader = nil
115949	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
115950	if err != nil {
115951		return nil, err
115952	}
115953	reqHeaders.Set("Content-Type", "application/json")
115954	c.urlParams_.Set("alt", alt)
115955	c.urlParams_.Set("prettyPrint", "false")
115956	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setLabels")
115957	urls += "?" + c.urlParams_.Encode()
115958	req, err := http.NewRequest("POST", urls, body)
115959	if err != nil {
115960		return nil, err
115961	}
115962	req.Header = reqHeaders
115963	googleapi.Expand(req.URL, map[string]string{
115964		"project":  c.project,
115965		"region":   c.region,
115966		"resource": c.resource,
115967	})
115968	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115969}
115970
115971// Do executes the "compute.regionDisks.setLabels" call.
115972// Exactly one of *Operation or error will be non-nil. Any non-2xx
115973// status code is an error. Response headers are in either
115974// *Operation.ServerResponse.Header or (if a response was returned at
115975// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115976// to check whether the returned error was because
115977// http.StatusNotModified was returned.
115978func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115979	gensupport.SetOptions(c.urlParams_, opts...)
115980	res, err := c.doRequest("json")
115981	if res != nil && res.StatusCode == http.StatusNotModified {
115982		if res.Body != nil {
115983			res.Body.Close()
115984		}
115985		return nil, &googleapi.Error{
115986			Code:   res.StatusCode,
115987			Header: res.Header,
115988		}
115989	}
115990	if err != nil {
115991		return nil, err
115992	}
115993	defer googleapi.CloseBody(res)
115994	if err := googleapi.CheckResponse(res); err != nil {
115995		return nil, err
115996	}
115997	ret := &Operation{
115998		ServerResponse: googleapi.ServerResponse{
115999			Header:         res.Header,
116000			HTTPStatusCode: res.StatusCode,
116001		},
116002	}
116003	target := &ret
116004	if err := gensupport.DecodeResponse(target, res); err != nil {
116005		return nil, err
116006	}
116007	return ret, nil
116008	// {
116009	//   "description": "Sets the labels on the target regional disk.",
116010	//   "httpMethod": "POST",
116011	//   "id": "compute.regionDisks.setLabels",
116012	//   "parameterOrder": [
116013	//     "project",
116014	//     "region",
116015	//     "resource"
116016	//   ],
116017	//   "parameters": {
116018	//     "project": {
116019	//       "description": "Project ID for this request.",
116020	//       "location": "path",
116021	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116022	//       "required": true,
116023	//       "type": "string"
116024	//     },
116025	//     "region": {
116026	//       "description": "The region for this request.",
116027	//       "location": "path",
116028	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116029	//       "required": true,
116030	//       "type": "string"
116031	//     },
116032	//     "requestId": {
116033	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116034	//       "location": "query",
116035	//       "type": "string"
116036	//     },
116037	//     "resource": {
116038	//       "description": "Name or id of the resource for this request.",
116039	//       "location": "path",
116040	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116041	//       "required": true,
116042	//       "type": "string"
116043	//     }
116044	//   },
116045	//   "path": "{project}/regions/{region}/disks/{resource}/setLabels",
116046	//   "request": {
116047	//     "$ref": "RegionSetLabelsRequest"
116048	//   },
116049	//   "response": {
116050	//     "$ref": "Operation"
116051	//   },
116052	//   "scopes": [
116053	//     "https://www.googleapis.com/auth/cloud-platform",
116054	//     "https://www.googleapis.com/auth/compute"
116055	//   ]
116056	// }
116057
116058}
116059
116060// method id "compute.regionDisks.testIamPermissions":
116061
116062type RegionDisksTestIamPermissionsCall struct {
116063	s                      *Service
116064	project                string
116065	region                 string
116066	resource               string
116067	testpermissionsrequest *TestPermissionsRequest
116068	urlParams_             gensupport.URLParams
116069	ctx_                   context.Context
116070	header_                http.Header
116071}
116072
116073// TestIamPermissions: Returns permissions that a caller has on the
116074// specified resource.
116075func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
116076	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116077	c.project = project
116078	c.region = region
116079	c.resource = resource
116080	c.testpermissionsrequest = testpermissionsrequest
116081	return c
116082}
116083
116084// Fields allows partial responses to be retrieved. See
116085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116086// for more information.
116087func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
116088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116089	return c
116090}
116091
116092// Context sets the context to be used in this call's Do method. Any
116093// pending HTTP request will be aborted if the provided context is
116094// canceled.
116095func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
116096	c.ctx_ = ctx
116097	return c
116098}
116099
116100// Header returns an http.Header that can be modified by the caller to
116101// add HTTP headers to the request.
116102func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
116103	if c.header_ == nil {
116104		c.header_ = make(http.Header)
116105	}
116106	return c.header_
116107}
116108
116109func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
116110	reqHeaders := make(http.Header)
116111	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116112	for k, v := range c.header_ {
116113		reqHeaders[k] = v
116114	}
116115	reqHeaders.Set("User-Agent", c.s.userAgent())
116116	var body io.Reader = nil
116117	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
116118	if err != nil {
116119		return nil, err
116120	}
116121	reqHeaders.Set("Content-Type", "application/json")
116122	c.urlParams_.Set("alt", alt)
116123	c.urlParams_.Set("prettyPrint", "false")
116124	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/testIamPermissions")
116125	urls += "?" + c.urlParams_.Encode()
116126	req, err := http.NewRequest("POST", urls, body)
116127	if err != nil {
116128		return nil, err
116129	}
116130	req.Header = reqHeaders
116131	googleapi.Expand(req.URL, map[string]string{
116132		"project":  c.project,
116133		"region":   c.region,
116134		"resource": c.resource,
116135	})
116136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116137}
116138
116139// Do executes the "compute.regionDisks.testIamPermissions" call.
116140// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
116141// non-2xx status code is an error. Response headers are in either
116142// *TestPermissionsResponse.ServerResponse.Header or (if a response was
116143// returned at all) in error.(*googleapi.Error).Header. Use
116144// googleapi.IsNotModified to check whether the returned error was
116145// because http.StatusNotModified was returned.
116146func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
116147	gensupport.SetOptions(c.urlParams_, opts...)
116148	res, err := c.doRequest("json")
116149	if res != nil && res.StatusCode == http.StatusNotModified {
116150		if res.Body != nil {
116151			res.Body.Close()
116152		}
116153		return nil, &googleapi.Error{
116154			Code:   res.StatusCode,
116155			Header: res.Header,
116156		}
116157	}
116158	if err != nil {
116159		return nil, err
116160	}
116161	defer googleapi.CloseBody(res)
116162	if err := googleapi.CheckResponse(res); err != nil {
116163		return nil, err
116164	}
116165	ret := &TestPermissionsResponse{
116166		ServerResponse: googleapi.ServerResponse{
116167			Header:         res.Header,
116168			HTTPStatusCode: res.StatusCode,
116169		},
116170	}
116171	target := &ret
116172	if err := gensupport.DecodeResponse(target, res); err != nil {
116173		return nil, err
116174	}
116175	return ret, nil
116176	// {
116177	//   "description": "Returns permissions that a caller has on the specified resource.",
116178	//   "httpMethod": "POST",
116179	//   "id": "compute.regionDisks.testIamPermissions",
116180	//   "parameterOrder": [
116181	//     "project",
116182	//     "region",
116183	//     "resource"
116184	//   ],
116185	//   "parameters": {
116186	//     "project": {
116187	//       "description": "Project ID for this request.",
116188	//       "location": "path",
116189	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116190	//       "required": true,
116191	//       "type": "string"
116192	//     },
116193	//     "region": {
116194	//       "description": "The name of the region for this request.",
116195	//       "location": "path",
116196	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116197	//       "required": true,
116198	//       "type": "string"
116199	//     },
116200	//     "resource": {
116201	//       "description": "Name or id of the resource for this request.",
116202	//       "location": "path",
116203	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116204	//       "required": true,
116205	//       "type": "string"
116206	//     }
116207	//   },
116208	//   "path": "{project}/regions/{region}/disks/{resource}/testIamPermissions",
116209	//   "request": {
116210	//     "$ref": "TestPermissionsRequest"
116211	//   },
116212	//   "response": {
116213	//     "$ref": "TestPermissionsResponse"
116214	//   },
116215	//   "scopes": [
116216	//     "https://www.googleapis.com/auth/cloud-platform",
116217	//     "https://www.googleapis.com/auth/compute",
116218	//     "https://www.googleapis.com/auth/compute.readonly"
116219	//   ]
116220	// }
116221
116222}
116223
116224// method id "compute.regionHealthCheckServices.delete":
116225
116226type RegionHealthCheckServicesDeleteCall struct {
116227	s                  *Service
116228	project            string
116229	region             string
116230	healthCheckService string
116231	urlParams_         gensupport.URLParams
116232	ctx_               context.Context
116233	header_            http.Header
116234}
116235
116236// Delete: Deletes the specified regional HealthCheckService.
116237func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
116238	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116239	c.project = project
116240	c.region = region
116241	c.healthCheckService = healthCheckService
116242	return c
116243}
116244
116245// RequestId sets the optional parameter "requestId": An optional
116246// request ID to identify requests. Specify a unique request ID so that
116247// if you must retry your request, the server will know to ignore the
116248// request if it has already been completed.
116249//
116250// For example, consider a situation where you make an initial request
116251// and the request times out. If you make the request again with the
116252// same request ID, the server can check if original operation with the
116253// same request ID was received, and if so, will ignore the second
116254// request. This prevents clients from accidentally creating duplicate
116255// commitments.
116256//
116257// The request ID must be a valid UUID with the exception that zero UUID
116258// is not supported (00000000-0000-0000-0000-000000000000).
116259func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
116260	c.urlParams_.Set("requestId", requestId)
116261	return c
116262}
116263
116264// Fields allows partial responses to be retrieved. See
116265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116266// for more information.
116267func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
116268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116269	return c
116270}
116271
116272// Context sets the context to be used in this call's Do method. Any
116273// pending HTTP request will be aborted if the provided context is
116274// canceled.
116275func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
116276	c.ctx_ = ctx
116277	return c
116278}
116279
116280// Header returns an http.Header that can be modified by the caller to
116281// add HTTP headers to the request.
116282func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
116283	if c.header_ == nil {
116284		c.header_ = make(http.Header)
116285	}
116286	return c.header_
116287}
116288
116289func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
116290	reqHeaders := make(http.Header)
116291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116292	for k, v := range c.header_ {
116293		reqHeaders[k] = v
116294	}
116295	reqHeaders.Set("User-Agent", c.s.userAgent())
116296	var body io.Reader = nil
116297	c.urlParams_.Set("alt", alt)
116298	c.urlParams_.Set("prettyPrint", "false")
116299	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
116300	urls += "?" + c.urlParams_.Encode()
116301	req, err := http.NewRequest("DELETE", urls, body)
116302	if err != nil {
116303		return nil, err
116304	}
116305	req.Header = reqHeaders
116306	googleapi.Expand(req.URL, map[string]string{
116307		"project":            c.project,
116308		"region":             c.region,
116309		"healthCheckService": c.healthCheckService,
116310	})
116311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116312}
116313
116314// Do executes the "compute.regionHealthCheckServices.delete" call.
116315// Exactly one of *Operation or error will be non-nil. Any non-2xx
116316// status code is an error. Response headers are in either
116317// *Operation.ServerResponse.Header or (if a response was returned at
116318// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116319// to check whether the returned error was because
116320// http.StatusNotModified was returned.
116321func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116322	gensupport.SetOptions(c.urlParams_, opts...)
116323	res, err := c.doRequest("json")
116324	if res != nil && res.StatusCode == http.StatusNotModified {
116325		if res.Body != nil {
116326			res.Body.Close()
116327		}
116328		return nil, &googleapi.Error{
116329			Code:   res.StatusCode,
116330			Header: res.Header,
116331		}
116332	}
116333	if err != nil {
116334		return nil, err
116335	}
116336	defer googleapi.CloseBody(res)
116337	if err := googleapi.CheckResponse(res); err != nil {
116338		return nil, err
116339	}
116340	ret := &Operation{
116341		ServerResponse: googleapi.ServerResponse{
116342			Header:         res.Header,
116343			HTTPStatusCode: res.StatusCode,
116344		},
116345	}
116346	target := &ret
116347	if err := gensupport.DecodeResponse(target, res); err != nil {
116348		return nil, err
116349	}
116350	return ret, nil
116351	// {
116352	//   "description": "Deletes the specified regional HealthCheckService.",
116353	//   "httpMethod": "DELETE",
116354	//   "id": "compute.regionHealthCheckServices.delete",
116355	//   "parameterOrder": [
116356	//     "project",
116357	//     "region",
116358	//     "healthCheckService"
116359	//   ],
116360	//   "parameters": {
116361	//     "healthCheckService": {
116362	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
116363	//       "location": "path",
116364	//       "required": true,
116365	//       "type": "string"
116366	//     },
116367	//     "project": {
116368	//       "description": "Project ID for this request.",
116369	//       "location": "path",
116370	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116371	//       "required": true,
116372	//       "type": "string"
116373	//     },
116374	//     "region": {
116375	//       "description": "Name of the region scoping this request.",
116376	//       "location": "path",
116377	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116378	//       "required": true,
116379	//       "type": "string"
116380	//     },
116381	//     "requestId": {
116382	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116383	//       "location": "query",
116384	//       "type": "string"
116385	//     }
116386	//   },
116387	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
116388	//   "response": {
116389	//     "$ref": "Operation"
116390	//   },
116391	//   "scopes": [
116392	//     "https://www.googleapis.com/auth/cloud-platform",
116393	//     "https://www.googleapis.com/auth/compute"
116394	//   ]
116395	// }
116396
116397}
116398
116399// method id "compute.regionHealthCheckServices.get":
116400
116401type RegionHealthCheckServicesGetCall struct {
116402	s                  *Service
116403	project            string
116404	region             string
116405	healthCheckService string
116406	urlParams_         gensupport.URLParams
116407	ifNoneMatch_       string
116408	ctx_               context.Context
116409	header_            http.Header
116410}
116411
116412// Get: Returns the specified regional HealthCheckService resource.
116413func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
116414	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116415	c.project = project
116416	c.region = region
116417	c.healthCheckService = healthCheckService
116418	return c
116419}
116420
116421// Fields allows partial responses to be retrieved. See
116422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116423// for more information.
116424func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
116425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116426	return c
116427}
116428
116429// IfNoneMatch sets the optional parameter which makes the operation
116430// fail if the object's ETag matches the given value. This is useful for
116431// getting updates only after the object has changed since the last
116432// request. Use googleapi.IsNotModified to check whether the response
116433// error from Do is the result of In-None-Match.
116434func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
116435	c.ifNoneMatch_ = entityTag
116436	return c
116437}
116438
116439// Context sets the context to be used in this call's Do method. Any
116440// pending HTTP request will be aborted if the provided context is
116441// canceled.
116442func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
116443	c.ctx_ = ctx
116444	return c
116445}
116446
116447// Header returns an http.Header that can be modified by the caller to
116448// add HTTP headers to the request.
116449func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
116450	if c.header_ == nil {
116451		c.header_ = make(http.Header)
116452	}
116453	return c.header_
116454}
116455
116456func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
116457	reqHeaders := make(http.Header)
116458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116459	for k, v := range c.header_ {
116460		reqHeaders[k] = v
116461	}
116462	reqHeaders.Set("User-Agent", c.s.userAgent())
116463	if c.ifNoneMatch_ != "" {
116464		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116465	}
116466	var body io.Reader = nil
116467	c.urlParams_.Set("alt", alt)
116468	c.urlParams_.Set("prettyPrint", "false")
116469	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
116470	urls += "?" + c.urlParams_.Encode()
116471	req, err := http.NewRequest("GET", urls, body)
116472	if err != nil {
116473		return nil, err
116474	}
116475	req.Header = reqHeaders
116476	googleapi.Expand(req.URL, map[string]string{
116477		"project":            c.project,
116478		"region":             c.region,
116479		"healthCheckService": c.healthCheckService,
116480	})
116481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116482}
116483
116484// Do executes the "compute.regionHealthCheckServices.get" call.
116485// Exactly one of *HealthCheckService or error will be non-nil. Any
116486// non-2xx status code is an error. Response headers are in either
116487// *HealthCheckService.ServerResponse.Header or (if a response was
116488// returned at all) in error.(*googleapi.Error).Header. Use
116489// googleapi.IsNotModified to check whether the returned error was
116490// because http.StatusNotModified was returned.
116491func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
116492	gensupport.SetOptions(c.urlParams_, opts...)
116493	res, err := c.doRequest("json")
116494	if res != nil && res.StatusCode == http.StatusNotModified {
116495		if res.Body != nil {
116496			res.Body.Close()
116497		}
116498		return nil, &googleapi.Error{
116499			Code:   res.StatusCode,
116500			Header: res.Header,
116501		}
116502	}
116503	if err != nil {
116504		return nil, err
116505	}
116506	defer googleapi.CloseBody(res)
116507	if err := googleapi.CheckResponse(res); err != nil {
116508		return nil, err
116509	}
116510	ret := &HealthCheckService{
116511		ServerResponse: googleapi.ServerResponse{
116512			Header:         res.Header,
116513			HTTPStatusCode: res.StatusCode,
116514		},
116515	}
116516	target := &ret
116517	if err := gensupport.DecodeResponse(target, res); err != nil {
116518		return nil, err
116519	}
116520	return ret, nil
116521	// {
116522	//   "description": "Returns the specified regional HealthCheckService resource.",
116523	//   "httpMethod": "GET",
116524	//   "id": "compute.regionHealthCheckServices.get",
116525	//   "parameterOrder": [
116526	//     "project",
116527	//     "region",
116528	//     "healthCheckService"
116529	//   ],
116530	//   "parameters": {
116531	//     "healthCheckService": {
116532	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
116533	//       "location": "path",
116534	//       "required": true,
116535	//       "type": "string"
116536	//     },
116537	//     "project": {
116538	//       "description": "Project ID for this request.",
116539	//       "location": "path",
116540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116541	//       "required": true,
116542	//       "type": "string"
116543	//     },
116544	//     "region": {
116545	//       "description": "Name of the region scoping this request.",
116546	//       "location": "path",
116547	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116548	//       "required": true,
116549	//       "type": "string"
116550	//     }
116551	//   },
116552	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
116553	//   "response": {
116554	//     "$ref": "HealthCheckService"
116555	//   },
116556	//   "scopes": [
116557	//     "https://www.googleapis.com/auth/cloud-platform",
116558	//     "https://www.googleapis.com/auth/compute",
116559	//     "https://www.googleapis.com/auth/compute.readonly"
116560	//   ]
116561	// }
116562
116563}
116564
116565// method id "compute.regionHealthCheckServices.insert":
116566
116567type RegionHealthCheckServicesInsertCall struct {
116568	s                  *Service
116569	project            string
116570	region             string
116571	healthcheckservice *HealthCheckService
116572	urlParams_         gensupport.URLParams
116573	ctx_               context.Context
116574	header_            http.Header
116575}
116576
116577// Insert: Creates a regional HealthCheckService resource in the
116578// specified project and region using the data included in the request.
116579func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
116580	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116581	c.project = project
116582	c.region = region
116583	c.healthcheckservice = healthcheckservice
116584	return c
116585}
116586
116587// RequestId sets the optional parameter "requestId": An optional
116588// request ID to identify requests. Specify a unique request ID so that
116589// if you must retry your request, the server will know to ignore the
116590// request if it has already been completed.
116591//
116592// For example, consider a situation where you make an initial request
116593// and the request times out. If you make the request again with the
116594// same request ID, the server can check if original operation with the
116595// same request ID was received, and if so, will ignore the second
116596// request. This prevents clients from accidentally creating duplicate
116597// commitments.
116598//
116599// The request ID must be a valid UUID with the exception that zero UUID
116600// is not supported (00000000-0000-0000-0000-000000000000).
116601func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
116602	c.urlParams_.Set("requestId", requestId)
116603	return c
116604}
116605
116606// Fields allows partial responses to be retrieved. See
116607// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116608// for more information.
116609func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
116610	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116611	return c
116612}
116613
116614// Context sets the context to be used in this call's Do method. Any
116615// pending HTTP request will be aborted if the provided context is
116616// canceled.
116617func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
116618	c.ctx_ = ctx
116619	return c
116620}
116621
116622// Header returns an http.Header that can be modified by the caller to
116623// add HTTP headers to the request.
116624func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
116625	if c.header_ == nil {
116626		c.header_ = make(http.Header)
116627	}
116628	return c.header_
116629}
116630
116631func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
116632	reqHeaders := make(http.Header)
116633	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116634	for k, v := range c.header_ {
116635		reqHeaders[k] = v
116636	}
116637	reqHeaders.Set("User-Agent", c.s.userAgent())
116638	var body io.Reader = nil
116639	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
116640	if err != nil {
116641		return nil, err
116642	}
116643	reqHeaders.Set("Content-Type", "application/json")
116644	c.urlParams_.Set("alt", alt)
116645	c.urlParams_.Set("prettyPrint", "false")
116646	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
116647	urls += "?" + c.urlParams_.Encode()
116648	req, err := http.NewRequest("POST", urls, body)
116649	if err != nil {
116650		return nil, err
116651	}
116652	req.Header = reqHeaders
116653	googleapi.Expand(req.URL, map[string]string{
116654		"project": c.project,
116655		"region":  c.region,
116656	})
116657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116658}
116659
116660// Do executes the "compute.regionHealthCheckServices.insert" call.
116661// Exactly one of *Operation or error will be non-nil. Any non-2xx
116662// status code is an error. Response headers are in either
116663// *Operation.ServerResponse.Header or (if a response was returned at
116664// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116665// to check whether the returned error was because
116666// http.StatusNotModified was returned.
116667func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116668	gensupport.SetOptions(c.urlParams_, opts...)
116669	res, err := c.doRequest("json")
116670	if res != nil && res.StatusCode == http.StatusNotModified {
116671		if res.Body != nil {
116672			res.Body.Close()
116673		}
116674		return nil, &googleapi.Error{
116675			Code:   res.StatusCode,
116676			Header: res.Header,
116677		}
116678	}
116679	if err != nil {
116680		return nil, err
116681	}
116682	defer googleapi.CloseBody(res)
116683	if err := googleapi.CheckResponse(res); err != nil {
116684		return nil, err
116685	}
116686	ret := &Operation{
116687		ServerResponse: googleapi.ServerResponse{
116688			Header:         res.Header,
116689			HTTPStatusCode: res.StatusCode,
116690		},
116691	}
116692	target := &ret
116693	if err := gensupport.DecodeResponse(target, res); err != nil {
116694		return nil, err
116695	}
116696	return ret, nil
116697	// {
116698	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
116699	//   "httpMethod": "POST",
116700	//   "id": "compute.regionHealthCheckServices.insert",
116701	//   "parameterOrder": [
116702	//     "project",
116703	//     "region"
116704	//   ],
116705	//   "parameters": {
116706	//     "project": {
116707	//       "description": "Project ID for this request.",
116708	//       "location": "path",
116709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116710	//       "required": true,
116711	//       "type": "string"
116712	//     },
116713	//     "region": {
116714	//       "description": "Name of the region scoping this request.",
116715	//       "location": "path",
116716	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116717	//       "required": true,
116718	//       "type": "string"
116719	//     },
116720	//     "requestId": {
116721	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116722	//       "location": "query",
116723	//       "type": "string"
116724	//     }
116725	//   },
116726	//   "path": "{project}/regions/{region}/healthCheckServices",
116727	//   "request": {
116728	//     "$ref": "HealthCheckService"
116729	//   },
116730	//   "response": {
116731	//     "$ref": "Operation"
116732	//   },
116733	//   "scopes": [
116734	//     "https://www.googleapis.com/auth/cloud-platform",
116735	//     "https://www.googleapis.com/auth/compute"
116736	//   ]
116737	// }
116738
116739}
116740
116741// method id "compute.regionHealthCheckServices.list":
116742
116743type RegionHealthCheckServicesListCall struct {
116744	s            *Service
116745	project      string
116746	region       string
116747	urlParams_   gensupport.URLParams
116748	ifNoneMatch_ string
116749	ctx_         context.Context
116750	header_      http.Header
116751}
116752
116753// List: Lists all the HealthCheckService resources that have been
116754// configured for the specified project in the given region.
116755func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
116756	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116757	c.project = project
116758	c.region = region
116759	return c
116760}
116761
116762// Filter sets the optional parameter "filter": A filter expression that
116763// filters resources listed in the response. The expression must specify
116764// the field name, a comparison operator, and the value that you want to
116765// use for filtering. The value must be a string, a number, or a
116766// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116767// `<`.
116768//
116769// For example, if you are filtering Compute Engine instances, you can
116770// exclude instances named `example-instance` by specifying `name !=
116771// example-instance`.
116772//
116773// You can also filter nested fields. For example, you could specify
116774// `scheduling.automaticRestart = false` to include instances only if
116775// they are not scheduled for automatic restarts. You can use filtering
116776// on nested fields to filter based on resource labels.
116777//
116778// To filter on multiple expressions, provide each separate expression
116779// within parentheses. For example: ``` (scheduling.automaticRestart =
116780// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
116781// is an `AND` expression. However, you can include `AND` and `OR`
116782// expressions explicitly. For example: ``` (cpuPlatform = "Intel
116783// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
116784// (scheduling.automaticRestart = true) ```
116785func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
116786	c.urlParams_.Set("filter", filter)
116787	return c
116788}
116789
116790// MaxResults sets the optional parameter "maxResults": The maximum
116791// number of results per page that should be returned. If the number of
116792// available results is larger than `maxResults`, Compute Engine returns
116793// a `nextPageToken` that can be used to get the next page of results in
116794// subsequent list requests. Acceptable values are `0` to `500`,
116795// inclusive. (Default: `500`)
116796func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
116797	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116798	return c
116799}
116800
116801// OrderBy sets the optional parameter "orderBy": Sorts list results by
116802// a certain order. By default, results are returned in alphanumerical
116803// order based on the resource name.
116804//
116805// You can also sort results in descending order based on the creation
116806// timestamp using `orderBy="creationTimestamp desc". This sorts
116807// results based on the `creationTimestamp` field in reverse
116808// chronological order (newest result first). Use this to sort resources
116809// like operations so that the newest operation is returned
116810// first.
116811//
116812// Currently, only sorting by `name` or `creationTimestamp desc` is
116813// supported.
116814func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
116815	c.urlParams_.Set("orderBy", orderBy)
116816	return c
116817}
116818
116819// PageToken sets the optional parameter "pageToken": Specifies a page
116820// token to use. Set `pageToken` to the `nextPageToken` returned by a
116821// previous list request to get the next page of results.
116822func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
116823	c.urlParams_.Set("pageToken", pageToken)
116824	return c
116825}
116826
116827// Fields allows partial responses to be retrieved. See
116828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116829// for more information.
116830func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
116831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116832	return c
116833}
116834
116835// IfNoneMatch sets the optional parameter which makes the operation
116836// fail if the object's ETag matches the given value. This is useful for
116837// getting updates only after the object has changed since the last
116838// request. Use googleapi.IsNotModified to check whether the response
116839// error from Do is the result of In-None-Match.
116840func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
116841	c.ifNoneMatch_ = entityTag
116842	return c
116843}
116844
116845// Context sets the context to be used in this call's Do method. Any
116846// pending HTTP request will be aborted if the provided context is
116847// canceled.
116848func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
116849	c.ctx_ = ctx
116850	return c
116851}
116852
116853// Header returns an http.Header that can be modified by the caller to
116854// add HTTP headers to the request.
116855func (c *RegionHealthCheckServicesListCall) Header() http.Header {
116856	if c.header_ == nil {
116857		c.header_ = make(http.Header)
116858	}
116859	return c.header_
116860}
116861
116862func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
116863	reqHeaders := make(http.Header)
116864	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
116865	for k, v := range c.header_ {
116866		reqHeaders[k] = v
116867	}
116868	reqHeaders.Set("User-Agent", c.s.userAgent())
116869	if c.ifNoneMatch_ != "" {
116870		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116871	}
116872	var body io.Reader = nil
116873	c.urlParams_.Set("alt", alt)
116874	c.urlParams_.Set("prettyPrint", "false")
116875	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
116876	urls += "?" + c.urlParams_.Encode()
116877	req, err := http.NewRequest("GET", urls, body)
116878	if err != nil {
116879		return nil, err
116880	}
116881	req.Header = reqHeaders
116882	googleapi.Expand(req.URL, map[string]string{
116883		"project": c.project,
116884		"region":  c.region,
116885	})
116886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116887}
116888
116889// Do executes the "compute.regionHealthCheckServices.list" call.
116890// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
116891// non-2xx status code is an error. Response headers are in either
116892// *HealthCheckServicesList.ServerResponse.Header or (if a response was
116893// returned at all) in error.(*googleapi.Error).Header. Use
116894// googleapi.IsNotModified to check whether the returned error was
116895// because http.StatusNotModified was returned.
116896func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
116897	gensupport.SetOptions(c.urlParams_, opts...)
116898	res, err := c.doRequest("json")
116899	if res != nil && res.StatusCode == http.StatusNotModified {
116900		if res.Body != nil {
116901			res.Body.Close()
116902		}
116903		return nil, &googleapi.Error{
116904			Code:   res.StatusCode,
116905			Header: res.Header,
116906		}
116907	}
116908	if err != nil {
116909		return nil, err
116910	}
116911	defer googleapi.CloseBody(res)
116912	if err := googleapi.CheckResponse(res); err != nil {
116913		return nil, err
116914	}
116915	ret := &HealthCheckServicesList{
116916		ServerResponse: googleapi.ServerResponse{
116917			Header:         res.Header,
116918			HTTPStatusCode: res.StatusCode,
116919		},
116920	}
116921	target := &ret
116922	if err := gensupport.DecodeResponse(target, res); err != nil {
116923		return nil, err
116924	}
116925	return ret, nil
116926	// {
116927	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
116928	//   "httpMethod": "GET",
116929	//   "id": "compute.regionHealthCheckServices.list",
116930	//   "parameterOrder": [
116931	//     "project",
116932	//     "region"
116933	//   ],
116934	//   "parameters": {
116935	//     "filter": {
116936	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
116937	//       "location": "query",
116938	//       "type": "string"
116939	//     },
116940	//     "maxResults": {
116941	//       "default": "500",
116942	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
116943	//       "format": "uint32",
116944	//       "location": "query",
116945	//       "minimum": "0",
116946	//       "type": "integer"
116947	//     },
116948	//     "orderBy": {
116949	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
116950	//       "location": "query",
116951	//       "type": "string"
116952	//     },
116953	//     "pageToken": {
116954	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
116955	//       "location": "query",
116956	//       "type": "string"
116957	//     },
116958	//     "project": {
116959	//       "description": "Project ID for this request.",
116960	//       "location": "path",
116961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116962	//       "required": true,
116963	//       "type": "string"
116964	//     },
116965	//     "region": {
116966	//       "description": "Name of the region scoping this request.",
116967	//       "location": "path",
116968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116969	//       "required": true,
116970	//       "type": "string"
116971	//     }
116972	//   },
116973	//   "path": "{project}/regions/{region}/healthCheckServices",
116974	//   "response": {
116975	//     "$ref": "HealthCheckServicesList"
116976	//   },
116977	//   "scopes": [
116978	//     "https://www.googleapis.com/auth/cloud-platform",
116979	//     "https://www.googleapis.com/auth/compute",
116980	//     "https://www.googleapis.com/auth/compute.readonly"
116981	//   ]
116982	// }
116983
116984}
116985
116986// Pages invokes f for each page of results.
116987// A non-nil error returned from f will halt the iteration.
116988// The provided context supersedes any context provided to the Context method.
116989func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
116990	c.ctx_ = ctx
116991	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116992	for {
116993		x, err := c.Do()
116994		if err != nil {
116995			return err
116996		}
116997		if err := f(x); err != nil {
116998			return err
116999		}
117000		if x.NextPageToken == "" {
117001			return nil
117002		}
117003		c.PageToken(x.NextPageToken)
117004	}
117005}
117006
117007// method id "compute.regionHealthCheckServices.patch":
117008
117009type RegionHealthCheckServicesPatchCall struct {
117010	s                  *Service
117011	project            string
117012	region             string
117013	healthCheckService string
117014	healthcheckservice *HealthCheckService
117015	urlParams_         gensupport.URLParams
117016	ctx_               context.Context
117017	header_            http.Header
117018}
117019
117020// Patch: Updates the specified regional HealthCheckService resource
117021// with the data included in the request. This method supports PATCH
117022// semantics and uses the JSON merge patch format and processing rules.
117023func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
117024	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117025	c.project = project
117026	c.region = region
117027	c.healthCheckService = healthCheckService
117028	c.healthcheckservice = healthcheckservice
117029	return c
117030}
117031
117032// RequestId sets the optional parameter "requestId": An optional
117033// request ID to identify requests. Specify a unique request ID so that
117034// if you must retry your request, the server will know to ignore the
117035// request if it has already been completed.
117036//
117037// For example, consider a situation where you make an initial request
117038// and the request times out. If you make the request again with the
117039// same request ID, the server can check if original operation with the
117040// same request ID was received, and if so, will ignore the second
117041// request. This prevents clients from accidentally creating duplicate
117042// commitments.
117043//
117044// The request ID must be a valid UUID with the exception that zero UUID
117045// is not supported (00000000-0000-0000-0000-000000000000).
117046func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
117047	c.urlParams_.Set("requestId", requestId)
117048	return c
117049}
117050
117051// Fields allows partial responses to be retrieved. See
117052// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117053// for more information.
117054func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
117055	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117056	return c
117057}
117058
117059// Context sets the context to be used in this call's Do method. Any
117060// pending HTTP request will be aborted if the provided context is
117061// canceled.
117062func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
117063	c.ctx_ = ctx
117064	return c
117065}
117066
117067// Header returns an http.Header that can be modified by the caller to
117068// add HTTP headers to the request.
117069func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
117070	if c.header_ == nil {
117071		c.header_ = make(http.Header)
117072	}
117073	return c.header_
117074}
117075
117076func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
117077	reqHeaders := make(http.Header)
117078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117079	for k, v := range c.header_ {
117080		reqHeaders[k] = v
117081	}
117082	reqHeaders.Set("User-Agent", c.s.userAgent())
117083	var body io.Reader = nil
117084	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
117085	if err != nil {
117086		return nil, err
117087	}
117088	reqHeaders.Set("Content-Type", "application/json")
117089	c.urlParams_.Set("alt", alt)
117090	c.urlParams_.Set("prettyPrint", "false")
117091	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
117092	urls += "?" + c.urlParams_.Encode()
117093	req, err := http.NewRequest("PATCH", urls, body)
117094	if err != nil {
117095		return nil, err
117096	}
117097	req.Header = reqHeaders
117098	googleapi.Expand(req.URL, map[string]string{
117099		"project":            c.project,
117100		"region":             c.region,
117101		"healthCheckService": c.healthCheckService,
117102	})
117103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117104}
117105
117106// Do executes the "compute.regionHealthCheckServices.patch" call.
117107// Exactly one of *Operation or error will be non-nil. Any non-2xx
117108// status code is an error. Response headers are in either
117109// *Operation.ServerResponse.Header or (if a response was returned at
117110// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117111// to check whether the returned error was because
117112// http.StatusNotModified was returned.
117113func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117114	gensupport.SetOptions(c.urlParams_, opts...)
117115	res, err := c.doRequest("json")
117116	if res != nil && res.StatusCode == http.StatusNotModified {
117117		if res.Body != nil {
117118			res.Body.Close()
117119		}
117120		return nil, &googleapi.Error{
117121			Code:   res.StatusCode,
117122			Header: res.Header,
117123		}
117124	}
117125	if err != nil {
117126		return nil, err
117127	}
117128	defer googleapi.CloseBody(res)
117129	if err := googleapi.CheckResponse(res); err != nil {
117130		return nil, err
117131	}
117132	ret := &Operation{
117133		ServerResponse: googleapi.ServerResponse{
117134			Header:         res.Header,
117135			HTTPStatusCode: res.StatusCode,
117136		},
117137	}
117138	target := &ret
117139	if err := gensupport.DecodeResponse(target, res); err != nil {
117140		return nil, err
117141	}
117142	return ret, nil
117143	// {
117144	//   "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.",
117145	//   "httpMethod": "PATCH",
117146	//   "id": "compute.regionHealthCheckServices.patch",
117147	//   "parameterOrder": [
117148	//     "project",
117149	//     "region",
117150	//     "healthCheckService"
117151	//   ],
117152	//   "parameters": {
117153	//     "healthCheckService": {
117154	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
117155	//       "location": "path",
117156	//       "required": true,
117157	//       "type": "string"
117158	//     },
117159	//     "project": {
117160	//       "description": "Project ID for this request.",
117161	//       "location": "path",
117162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117163	//       "required": true,
117164	//       "type": "string"
117165	//     },
117166	//     "region": {
117167	//       "description": "Name of the region scoping this request.",
117168	//       "location": "path",
117169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117170	//       "required": true,
117171	//       "type": "string"
117172	//     },
117173	//     "requestId": {
117174	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117175	//       "location": "query",
117176	//       "type": "string"
117177	//     }
117178	//   },
117179	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
117180	//   "request": {
117181	//     "$ref": "HealthCheckService"
117182	//   },
117183	//   "response": {
117184	//     "$ref": "Operation"
117185	//   },
117186	//   "scopes": [
117187	//     "https://www.googleapis.com/auth/cloud-platform",
117188	//     "https://www.googleapis.com/auth/compute"
117189	//   ]
117190	// }
117191
117192}
117193
117194// method id "compute.regionHealthChecks.delete":
117195
117196type RegionHealthChecksDeleteCall struct {
117197	s           *Service
117198	project     string
117199	region      string
117200	healthCheck string
117201	urlParams_  gensupport.URLParams
117202	ctx_        context.Context
117203	header_     http.Header
117204}
117205
117206// Delete: Deletes the specified HealthCheck resource.
117207func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
117208	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117209	c.project = project
117210	c.region = region
117211	c.healthCheck = healthCheck
117212	return c
117213}
117214
117215// RequestId sets the optional parameter "requestId": An optional
117216// request ID to identify requests. Specify a unique request ID so that
117217// if you must retry your request, the server will know to ignore the
117218// request if it has already been completed.
117219//
117220// For example, consider a situation where you make an initial request
117221// and the request times out. If you make the request again with the
117222// same request ID, the server can check if original operation with the
117223// same request ID was received, and if so, will ignore the second
117224// request. This prevents clients from accidentally creating duplicate
117225// commitments.
117226//
117227// The request ID must be a valid UUID with the exception that zero UUID
117228// is not supported (00000000-0000-0000-0000-000000000000).
117229func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
117230	c.urlParams_.Set("requestId", requestId)
117231	return c
117232}
117233
117234// Fields allows partial responses to be retrieved. See
117235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117236// for more information.
117237func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
117238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117239	return c
117240}
117241
117242// Context sets the context to be used in this call's Do method. Any
117243// pending HTTP request will be aborted if the provided context is
117244// canceled.
117245func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
117246	c.ctx_ = ctx
117247	return c
117248}
117249
117250// Header returns an http.Header that can be modified by the caller to
117251// add HTTP headers to the request.
117252func (c *RegionHealthChecksDeleteCall) Header() http.Header {
117253	if c.header_ == nil {
117254		c.header_ = make(http.Header)
117255	}
117256	return c.header_
117257}
117258
117259func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
117260	reqHeaders := make(http.Header)
117261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117262	for k, v := range c.header_ {
117263		reqHeaders[k] = v
117264	}
117265	reqHeaders.Set("User-Agent", c.s.userAgent())
117266	var body io.Reader = nil
117267	c.urlParams_.Set("alt", alt)
117268	c.urlParams_.Set("prettyPrint", "false")
117269	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
117270	urls += "?" + c.urlParams_.Encode()
117271	req, err := http.NewRequest("DELETE", urls, body)
117272	if err != nil {
117273		return nil, err
117274	}
117275	req.Header = reqHeaders
117276	googleapi.Expand(req.URL, map[string]string{
117277		"project":     c.project,
117278		"region":      c.region,
117279		"healthCheck": c.healthCheck,
117280	})
117281	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117282}
117283
117284// Do executes the "compute.regionHealthChecks.delete" call.
117285// Exactly one of *Operation or error will be non-nil. Any non-2xx
117286// status code is an error. Response headers are in either
117287// *Operation.ServerResponse.Header or (if a response was returned at
117288// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117289// to check whether the returned error was because
117290// http.StatusNotModified was returned.
117291func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117292	gensupport.SetOptions(c.urlParams_, opts...)
117293	res, err := c.doRequest("json")
117294	if res != nil && res.StatusCode == http.StatusNotModified {
117295		if res.Body != nil {
117296			res.Body.Close()
117297		}
117298		return nil, &googleapi.Error{
117299			Code:   res.StatusCode,
117300			Header: res.Header,
117301		}
117302	}
117303	if err != nil {
117304		return nil, err
117305	}
117306	defer googleapi.CloseBody(res)
117307	if err := googleapi.CheckResponse(res); err != nil {
117308		return nil, err
117309	}
117310	ret := &Operation{
117311		ServerResponse: googleapi.ServerResponse{
117312			Header:         res.Header,
117313			HTTPStatusCode: res.StatusCode,
117314		},
117315	}
117316	target := &ret
117317	if err := gensupport.DecodeResponse(target, res); err != nil {
117318		return nil, err
117319	}
117320	return ret, nil
117321	// {
117322	//   "description": "Deletes the specified HealthCheck resource.",
117323	//   "httpMethod": "DELETE",
117324	//   "id": "compute.regionHealthChecks.delete",
117325	//   "parameterOrder": [
117326	//     "project",
117327	//     "region",
117328	//     "healthCheck"
117329	//   ],
117330	//   "parameters": {
117331	//     "healthCheck": {
117332	//       "description": "Name of the HealthCheck resource to delete.",
117333	//       "location": "path",
117334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117335	//       "required": true,
117336	//       "type": "string"
117337	//     },
117338	//     "project": {
117339	//       "description": "Project ID for this request.",
117340	//       "location": "path",
117341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117342	//       "required": true,
117343	//       "type": "string"
117344	//     },
117345	//     "region": {
117346	//       "description": "Name of the region scoping this request.",
117347	//       "location": "path",
117348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117349	//       "required": true,
117350	//       "type": "string"
117351	//     },
117352	//     "requestId": {
117353	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117354	//       "location": "query",
117355	//       "type": "string"
117356	//     }
117357	//   },
117358	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
117359	//   "response": {
117360	//     "$ref": "Operation"
117361	//   },
117362	//   "scopes": [
117363	//     "https://www.googleapis.com/auth/cloud-platform",
117364	//     "https://www.googleapis.com/auth/compute"
117365	//   ]
117366	// }
117367
117368}
117369
117370// method id "compute.regionHealthChecks.get":
117371
117372type RegionHealthChecksGetCall struct {
117373	s            *Service
117374	project      string
117375	region       string
117376	healthCheck  string
117377	urlParams_   gensupport.URLParams
117378	ifNoneMatch_ string
117379	ctx_         context.Context
117380	header_      http.Header
117381}
117382
117383// Get: Returns the specified HealthCheck resource. Gets a list of
117384// available health checks by making a list() request.
117385func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
117386	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117387	c.project = project
117388	c.region = region
117389	c.healthCheck = healthCheck
117390	return c
117391}
117392
117393// Fields allows partial responses to be retrieved. See
117394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117395// for more information.
117396func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
117397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117398	return c
117399}
117400
117401// IfNoneMatch sets the optional parameter which makes the operation
117402// fail if the object's ETag matches the given value. This is useful for
117403// getting updates only after the object has changed since the last
117404// request. Use googleapi.IsNotModified to check whether the response
117405// error from Do is the result of In-None-Match.
117406func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
117407	c.ifNoneMatch_ = entityTag
117408	return c
117409}
117410
117411// Context sets the context to be used in this call's Do method. Any
117412// pending HTTP request will be aborted if the provided context is
117413// canceled.
117414func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
117415	c.ctx_ = ctx
117416	return c
117417}
117418
117419// Header returns an http.Header that can be modified by the caller to
117420// add HTTP headers to the request.
117421func (c *RegionHealthChecksGetCall) Header() http.Header {
117422	if c.header_ == nil {
117423		c.header_ = make(http.Header)
117424	}
117425	return c.header_
117426}
117427
117428func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
117429	reqHeaders := make(http.Header)
117430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117431	for k, v := range c.header_ {
117432		reqHeaders[k] = v
117433	}
117434	reqHeaders.Set("User-Agent", c.s.userAgent())
117435	if c.ifNoneMatch_ != "" {
117436		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117437	}
117438	var body io.Reader = nil
117439	c.urlParams_.Set("alt", alt)
117440	c.urlParams_.Set("prettyPrint", "false")
117441	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
117442	urls += "?" + c.urlParams_.Encode()
117443	req, err := http.NewRequest("GET", urls, body)
117444	if err != nil {
117445		return nil, err
117446	}
117447	req.Header = reqHeaders
117448	googleapi.Expand(req.URL, map[string]string{
117449		"project":     c.project,
117450		"region":      c.region,
117451		"healthCheck": c.healthCheck,
117452	})
117453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117454}
117455
117456// Do executes the "compute.regionHealthChecks.get" call.
117457// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
117458// status code is an error. Response headers are in either
117459// *HealthCheck.ServerResponse.Header or (if a response was returned at
117460// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117461// to check whether the returned error was because
117462// http.StatusNotModified was returned.
117463func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
117464	gensupport.SetOptions(c.urlParams_, opts...)
117465	res, err := c.doRequest("json")
117466	if res != nil && res.StatusCode == http.StatusNotModified {
117467		if res.Body != nil {
117468			res.Body.Close()
117469		}
117470		return nil, &googleapi.Error{
117471			Code:   res.StatusCode,
117472			Header: res.Header,
117473		}
117474	}
117475	if err != nil {
117476		return nil, err
117477	}
117478	defer googleapi.CloseBody(res)
117479	if err := googleapi.CheckResponse(res); err != nil {
117480		return nil, err
117481	}
117482	ret := &HealthCheck{
117483		ServerResponse: googleapi.ServerResponse{
117484			Header:         res.Header,
117485			HTTPStatusCode: res.StatusCode,
117486		},
117487	}
117488	target := &ret
117489	if err := gensupport.DecodeResponse(target, res); err != nil {
117490		return nil, err
117491	}
117492	return ret, nil
117493	// {
117494	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
117495	//   "httpMethod": "GET",
117496	//   "id": "compute.regionHealthChecks.get",
117497	//   "parameterOrder": [
117498	//     "project",
117499	//     "region",
117500	//     "healthCheck"
117501	//   ],
117502	//   "parameters": {
117503	//     "healthCheck": {
117504	//       "description": "Name of the HealthCheck resource to return.",
117505	//       "location": "path",
117506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117507	//       "required": true,
117508	//       "type": "string"
117509	//     },
117510	//     "project": {
117511	//       "description": "Project ID for this request.",
117512	//       "location": "path",
117513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117514	//       "required": true,
117515	//       "type": "string"
117516	//     },
117517	//     "region": {
117518	//       "description": "Name of the region scoping this request.",
117519	//       "location": "path",
117520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117521	//       "required": true,
117522	//       "type": "string"
117523	//     }
117524	//   },
117525	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
117526	//   "response": {
117527	//     "$ref": "HealthCheck"
117528	//   },
117529	//   "scopes": [
117530	//     "https://www.googleapis.com/auth/cloud-platform",
117531	//     "https://www.googleapis.com/auth/compute",
117532	//     "https://www.googleapis.com/auth/compute.readonly"
117533	//   ]
117534	// }
117535
117536}
117537
117538// method id "compute.regionHealthChecks.insert":
117539
117540type RegionHealthChecksInsertCall struct {
117541	s           *Service
117542	project     string
117543	region      string
117544	healthcheck *HealthCheck
117545	urlParams_  gensupport.URLParams
117546	ctx_        context.Context
117547	header_     http.Header
117548}
117549
117550// Insert: Creates a HealthCheck resource in the specified project using
117551// the data included in the request.
117552func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
117553	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117554	c.project = project
117555	c.region = region
117556	c.healthcheck = healthcheck
117557	return c
117558}
117559
117560// RequestId sets the optional parameter "requestId": An optional
117561// request ID to identify requests. Specify a unique request ID so that
117562// if you must retry your request, the server will know to ignore the
117563// request if it has already been completed.
117564//
117565// For example, consider a situation where you make an initial request
117566// and the request times out. If you make the request again with the
117567// same request ID, the server can check if original operation with the
117568// same request ID was received, and if so, will ignore the second
117569// request. This prevents clients from accidentally creating duplicate
117570// commitments.
117571//
117572// The request ID must be a valid UUID with the exception that zero UUID
117573// is not supported (00000000-0000-0000-0000-000000000000).
117574func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
117575	c.urlParams_.Set("requestId", requestId)
117576	return c
117577}
117578
117579// Fields allows partial responses to be retrieved. See
117580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117581// for more information.
117582func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
117583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117584	return c
117585}
117586
117587// Context sets the context to be used in this call's Do method. Any
117588// pending HTTP request will be aborted if the provided context is
117589// canceled.
117590func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
117591	c.ctx_ = ctx
117592	return c
117593}
117594
117595// Header returns an http.Header that can be modified by the caller to
117596// add HTTP headers to the request.
117597func (c *RegionHealthChecksInsertCall) Header() http.Header {
117598	if c.header_ == nil {
117599		c.header_ = make(http.Header)
117600	}
117601	return c.header_
117602}
117603
117604func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
117605	reqHeaders := make(http.Header)
117606	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117607	for k, v := range c.header_ {
117608		reqHeaders[k] = v
117609	}
117610	reqHeaders.Set("User-Agent", c.s.userAgent())
117611	var body io.Reader = nil
117612	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
117613	if err != nil {
117614		return nil, err
117615	}
117616	reqHeaders.Set("Content-Type", "application/json")
117617	c.urlParams_.Set("alt", alt)
117618	c.urlParams_.Set("prettyPrint", "false")
117619	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
117620	urls += "?" + c.urlParams_.Encode()
117621	req, err := http.NewRequest("POST", urls, body)
117622	if err != nil {
117623		return nil, err
117624	}
117625	req.Header = reqHeaders
117626	googleapi.Expand(req.URL, map[string]string{
117627		"project": c.project,
117628		"region":  c.region,
117629	})
117630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117631}
117632
117633// Do executes the "compute.regionHealthChecks.insert" call.
117634// Exactly one of *Operation or error will be non-nil. Any non-2xx
117635// status code is an error. Response headers are in either
117636// *Operation.ServerResponse.Header or (if a response was returned at
117637// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117638// to check whether the returned error was because
117639// http.StatusNotModified was returned.
117640func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117641	gensupport.SetOptions(c.urlParams_, opts...)
117642	res, err := c.doRequest("json")
117643	if res != nil && res.StatusCode == http.StatusNotModified {
117644		if res.Body != nil {
117645			res.Body.Close()
117646		}
117647		return nil, &googleapi.Error{
117648			Code:   res.StatusCode,
117649			Header: res.Header,
117650		}
117651	}
117652	if err != nil {
117653		return nil, err
117654	}
117655	defer googleapi.CloseBody(res)
117656	if err := googleapi.CheckResponse(res); err != nil {
117657		return nil, err
117658	}
117659	ret := &Operation{
117660		ServerResponse: googleapi.ServerResponse{
117661			Header:         res.Header,
117662			HTTPStatusCode: res.StatusCode,
117663		},
117664	}
117665	target := &ret
117666	if err := gensupport.DecodeResponse(target, res); err != nil {
117667		return nil, err
117668	}
117669	return ret, nil
117670	// {
117671	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
117672	//   "httpMethod": "POST",
117673	//   "id": "compute.regionHealthChecks.insert",
117674	//   "parameterOrder": [
117675	//     "project",
117676	//     "region"
117677	//   ],
117678	//   "parameters": {
117679	//     "project": {
117680	//       "description": "Project ID for this request.",
117681	//       "location": "path",
117682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117683	//       "required": true,
117684	//       "type": "string"
117685	//     },
117686	//     "region": {
117687	//       "description": "Name of the region scoping this request.",
117688	//       "location": "path",
117689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117690	//       "required": true,
117691	//       "type": "string"
117692	//     },
117693	//     "requestId": {
117694	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117695	//       "location": "query",
117696	//       "type": "string"
117697	//     }
117698	//   },
117699	//   "path": "{project}/regions/{region}/healthChecks",
117700	//   "request": {
117701	//     "$ref": "HealthCheck"
117702	//   },
117703	//   "response": {
117704	//     "$ref": "Operation"
117705	//   },
117706	//   "scopes": [
117707	//     "https://www.googleapis.com/auth/cloud-platform",
117708	//     "https://www.googleapis.com/auth/compute"
117709	//   ]
117710	// }
117711
117712}
117713
117714// method id "compute.regionHealthChecks.list":
117715
117716type RegionHealthChecksListCall struct {
117717	s            *Service
117718	project      string
117719	region       string
117720	urlParams_   gensupport.URLParams
117721	ifNoneMatch_ string
117722	ctx_         context.Context
117723	header_      http.Header
117724}
117725
117726// List: Retrieves the list of HealthCheck resources available to the
117727// specified project.
117728func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
117729	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117730	c.project = project
117731	c.region = region
117732	return c
117733}
117734
117735// Filter sets the optional parameter "filter": A filter expression that
117736// filters resources listed in the response. The expression must specify
117737// the field name, a comparison operator, and the value that you want to
117738// use for filtering. The value must be a string, a number, or a
117739// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117740// `<`.
117741//
117742// For example, if you are filtering Compute Engine instances, you can
117743// exclude instances named `example-instance` by specifying `name !=
117744// example-instance`.
117745//
117746// You can also filter nested fields. For example, you could specify
117747// `scheduling.automaticRestart = false` to include instances only if
117748// they are not scheduled for automatic restarts. You can use filtering
117749// on nested fields to filter based on resource labels.
117750//
117751// To filter on multiple expressions, provide each separate expression
117752// within parentheses. For example: ``` (scheduling.automaticRestart =
117753// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
117754// is an `AND` expression. However, you can include `AND` and `OR`
117755// expressions explicitly. For example: ``` (cpuPlatform = "Intel
117756// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
117757// (scheduling.automaticRestart = true) ```
117758func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
117759	c.urlParams_.Set("filter", filter)
117760	return c
117761}
117762
117763// MaxResults sets the optional parameter "maxResults": The maximum
117764// number of results per page that should be returned. If the number of
117765// available results is larger than `maxResults`, Compute Engine returns
117766// a `nextPageToken` that can be used to get the next page of results in
117767// subsequent list requests. Acceptable values are `0` to `500`,
117768// inclusive. (Default: `500`)
117769func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
117770	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117771	return c
117772}
117773
117774// OrderBy sets the optional parameter "orderBy": Sorts list results by
117775// a certain order. By default, results are returned in alphanumerical
117776// order based on the resource name.
117777//
117778// You can also sort results in descending order based on the creation
117779// timestamp using `orderBy="creationTimestamp desc". This sorts
117780// results based on the `creationTimestamp` field in reverse
117781// chronological order (newest result first). Use this to sort resources
117782// like operations so that the newest operation is returned
117783// first.
117784//
117785// Currently, only sorting by `name` or `creationTimestamp desc` is
117786// supported.
117787func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
117788	c.urlParams_.Set("orderBy", orderBy)
117789	return c
117790}
117791
117792// PageToken sets the optional parameter "pageToken": Specifies a page
117793// token to use. Set `pageToken` to the `nextPageToken` returned by a
117794// previous list request to get the next page of results.
117795func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
117796	c.urlParams_.Set("pageToken", pageToken)
117797	return c
117798}
117799
117800// Fields allows partial responses to be retrieved. See
117801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117802// for more information.
117803func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
117804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117805	return c
117806}
117807
117808// IfNoneMatch sets the optional parameter which makes the operation
117809// fail if the object's ETag matches the given value. This is useful for
117810// getting updates only after the object has changed since the last
117811// request. Use googleapi.IsNotModified to check whether the response
117812// error from Do is the result of In-None-Match.
117813func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
117814	c.ifNoneMatch_ = entityTag
117815	return c
117816}
117817
117818// Context sets the context to be used in this call's Do method. Any
117819// pending HTTP request will be aborted if the provided context is
117820// canceled.
117821func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
117822	c.ctx_ = ctx
117823	return c
117824}
117825
117826// Header returns an http.Header that can be modified by the caller to
117827// add HTTP headers to the request.
117828func (c *RegionHealthChecksListCall) Header() http.Header {
117829	if c.header_ == nil {
117830		c.header_ = make(http.Header)
117831	}
117832	return c.header_
117833}
117834
117835func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
117836	reqHeaders := make(http.Header)
117837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
117838	for k, v := range c.header_ {
117839		reqHeaders[k] = v
117840	}
117841	reqHeaders.Set("User-Agent", c.s.userAgent())
117842	if c.ifNoneMatch_ != "" {
117843		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117844	}
117845	var body io.Reader = nil
117846	c.urlParams_.Set("alt", alt)
117847	c.urlParams_.Set("prettyPrint", "false")
117848	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
117849	urls += "?" + c.urlParams_.Encode()
117850	req, err := http.NewRequest("GET", urls, body)
117851	if err != nil {
117852		return nil, err
117853	}
117854	req.Header = reqHeaders
117855	googleapi.Expand(req.URL, map[string]string{
117856		"project": c.project,
117857		"region":  c.region,
117858	})
117859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117860}
117861
117862// Do executes the "compute.regionHealthChecks.list" call.
117863// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
117864// status code is an error. Response headers are in either
117865// *HealthCheckList.ServerResponse.Header or (if a response was returned
117866// at all) in error.(*googleapi.Error).Header. Use
117867// googleapi.IsNotModified to check whether the returned error was
117868// because http.StatusNotModified was returned.
117869func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
117870	gensupport.SetOptions(c.urlParams_, opts...)
117871	res, err := c.doRequest("json")
117872	if res != nil && res.StatusCode == http.StatusNotModified {
117873		if res.Body != nil {
117874			res.Body.Close()
117875		}
117876		return nil, &googleapi.Error{
117877			Code:   res.StatusCode,
117878			Header: res.Header,
117879		}
117880	}
117881	if err != nil {
117882		return nil, err
117883	}
117884	defer googleapi.CloseBody(res)
117885	if err := googleapi.CheckResponse(res); err != nil {
117886		return nil, err
117887	}
117888	ret := &HealthCheckList{
117889		ServerResponse: googleapi.ServerResponse{
117890			Header:         res.Header,
117891			HTTPStatusCode: res.StatusCode,
117892		},
117893	}
117894	target := &ret
117895	if err := gensupport.DecodeResponse(target, res); err != nil {
117896		return nil, err
117897	}
117898	return ret, nil
117899	// {
117900	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
117901	//   "httpMethod": "GET",
117902	//   "id": "compute.regionHealthChecks.list",
117903	//   "parameterOrder": [
117904	//     "project",
117905	//     "region"
117906	//   ],
117907	//   "parameters": {
117908	//     "filter": {
117909	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
117910	//       "location": "query",
117911	//       "type": "string"
117912	//     },
117913	//     "maxResults": {
117914	//       "default": "500",
117915	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
117916	//       "format": "uint32",
117917	//       "location": "query",
117918	//       "minimum": "0",
117919	//       "type": "integer"
117920	//     },
117921	//     "orderBy": {
117922	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
117923	//       "location": "query",
117924	//       "type": "string"
117925	//     },
117926	//     "pageToken": {
117927	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
117928	//       "location": "query",
117929	//       "type": "string"
117930	//     },
117931	//     "project": {
117932	//       "description": "Project ID for this request.",
117933	//       "location": "path",
117934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117935	//       "required": true,
117936	//       "type": "string"
117937	//     },
117938	//     "region": {
117939	//       "description": "Name of the region scoping this request.",
117940	//       "location": "path",
117941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117942	//       "required": true,
117943	//       "type": "string"
117944	//     }
117945	//   },
117946	//   "path": "{project}/regions/{region}/healthChecks",
117947	//   "response": {
117948	//     "$ref": "HealthCheckList"
117949	//   },
117950	//   "scopes": [
117951	//     "https://www.googleapis.com/auth/cloud-platform",
117952	//     "https://www.googleapis.com/auth/compute",
117953	//     "https://www.googleapis.com/auth/compute.readonly"
117954	//   ]
117955	// }
117956
117957}
117958
117959// Pages invokes f for each page of results.
117960// A non-nil error returned from f will halt the iteration.
117961// The provided context supersedes any context provided to the Context method.
117962func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
117963	c.ctx_ = ctx
117964	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117965	for {
117966		x, err := c.Do()
117967		if err != nil {
117968			return err
117969		}
117970		if err := f(x); err != nil {
117971			return err
117972		}
117973		if x.NextPageToken == "" {
117974			return nil
117975		}
117976		c.PageToken(x.NextPageToken)
117977	}
117978}
117979
117980// method id "compute.regionHealthChecks.patch":
117981
117982type RegionHealthChecksPatchCall struct {
117983	s           *Service
117984	project     string
117985	region      string
117986	healthCheck string
117987	healthcheck *HealthCheck
117988	urlParams_  gensupport.URLParams
117989	ctx_        context.Context
117990	header_     http.Header
117991}
117992
117993// Patch: Updates a HealthCheck resource in the specified project using
117994// the data included in the request. This method supports PATCH
117995// semantics and uses the JSON merge patch format and processing rules.
117996func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
117997	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117998	c.project = project
117999	c.region = region
118000	c.healthCheck = healthCheck
118001	c.healthcheck = healthcheck
118002	return c
118003}
118004
118005// RequestId sets the optional parameter "requestId": An optional
118006// request ID to identify requests. Specify a unique request ID so that
118007// if you must retry your request, the server will know to ignore the
118008// request if it has already been completed.
118009//
118010// For example, consider a situation where you make an initial request
118011// and the request times out. If you make the request again with the
118012// same request ID, the server can check if original operation with the
118013// same request ID was received, and if so, will ignore the second
118014// request. This prevents clients from accidentally creating duplicate
118015// commitments.
118016//
118017// The request ID must be a valid UUID with the exception that zero UUID
118018// is not supported (00000000-0000-0000-0000-000000000000).
118019func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
118020	c.urlParams_.Set("requestId", requestId)
118021	return c
118022}
118023
118024// Fields allows partial responses to be retrieved. See
118025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118026// for more information.
118027func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
118028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118029	return c
118030}
118031
118032// Context sets the context to be used in this call's Do method. Any
118033// pending HTTP request will be aborted if the provided context is
118034// canceled.
118035func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
118036	c.ctx_ = ctx
118037	return c
118038}
118039
118040// Header returns an http.Header that can be modified by the caller to
118041// add HTTP headers to the request.
118042func (c *RegionHealthChecksPatchCall) Header() http.Header {
118043	if c.header_ == nil {
118044		c.header_ = make(http.Header)
118045	}
118046	return c.header_
118047}
118048
118049func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
118050	reqHeaders := make(http.Header)
118051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118052	for k, v := range c.header_ {
118053		reqHeaders[k] = v
118054	}
118055	reqHeaders.Set("User-Agent", c.s.userAgent())
118056	var body io.Reader = nil
118057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
118058	if err != nil {
118059		return nil, err
118060	}
118061	reqHeaders.Set("Content-Type", "application/json")
118062	c.urlParams_.Set("alt", alt)
118063	c.urlParams_.Set("prettyPrint", "false")
118064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
118065	urls += "?" + c.urlParams_.Encode()
118066	req, err := http.NewRequest("PATCH", urls, body)
118067	if err != nil {
118068		return nil, err
118069	}
118070	req.Header = reqHeaders
118071	googleapi.Expand(req.URL, map[string]string{
118072		"project":     c.project,
118073		"region":      c.region,
118074		"healthCheck": c.healthCheck,
118075	})
118076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118077}
118078
118079// Do executes the "compute.regionHealthChecks.patch" call.
118080// Exactly one of *Operation or error will be non-nil. Any non-2xx
118081// status code is an error. Response headers are in either
118082// *Operation.ServerResponse.Header or (if a response was returned at
118083// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118084// to check whether the returned error was because
118085// http.StatusNotModified was returned.
118086func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118087	gensupport.SetOptions(c.urlParams_, opts...)
118088	res, err := c.doRequest("json")
118089	if res != nil && res.StatusCode == http.StatusNotModified {
118090		if res.Body != nil {
118091			res.Body.Close()
118092		}
118093		return nil, &googleapi.Error{
118094			Code:   res.StatusCode,
118095			Header: res.Header,
118096		}
118097	}
118098	if err != nil {
118099		return nil, err
118100	}
118101	defer googleapi.CloseBody(res)
118102	if err := googleapi.CheckResponse(res); err != nil {
118103		return nil, err
118104	}
118105	ret := &Operation{
118106		ServerResponse: googleapi.ServerResponse{
118107			Header:         res.Header,
118108			HTTPStatusCode: res.StatusCode,
118109		},
118110	}
118111	target := &ret
118112	if err := gensupport.DecodeResponse(target, res); err != nil {
118113		return nil, err
118114	}
118115	return ret, nil
118116	// {
118117	//   "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.",
118118	//   "httpMethod": "PATCH",
118119	//   "id": "compute.regionHealthChecks.patch",
118120	//   "parameterOrder": [
118121	//     "project",
118122	//     "region",
118123	//     "healthCheck"
118124	//   ],
118125	//   "parameters": {
118126	//     "healthCheck": {
118127	//       "description": "Name of the HealthCheck resource to patch.",
118128	//       "location": "path",
118129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118130	//       "required": true,
118131	//       "type": "string"
118132	//     },
118133	//     "project": {
118134	//       "description": "Project ID for this request.",
118135	//       "location": "path",
118136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118137	//       "required": true,
118138	//       "type": "string"
118139	//     },
118140	//     "region": {
118141	//       "description": "Name of the region scoping this request.",
118142	//       "location": "path",
118143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118144	//       "required": true,
118145	//       "type": "string"
118146	//     },
118147	//     "requestId": {
118148	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118149	//       "location": "query",
118150	//       "type": "string"
118151	//     }
118152	//   },
118153	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
118154	//   "request": {
118155	//     "$ref": "HealthCheck"
118156	//   },
118157	//   "response": {
118158	//     "$ref": "Operation"
118159	//   },
118160	//   "scopes": [
118161	//     "https://www.googleapis.com/auth/cloud-platform",
118162	//     "https://www.googleapis.com/auth/compute"
118163	//   ]
118164	// }
118165
118166}
118167
118168// method id "compute.regionHealthChecks.update":
118169
118170type RegionHealthChecksUpdateCall struct {
118171	s           *Service
118172	project     string
118173	region      string
118174	healthCheck string
118175	healthcheck *HealthCheck
118176	urlParams_  gensupport.URLParams
118177	ctx_        context.Context
118178	header_     http.Header
118179}
118180
118181// Update: Updates a HealthCheck resource in the specified project using
118182// the data included in the request.
118183func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
118184	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118185	c.project = project
118186	c.region = region
118187	c.healthCheck = healthCheck
118188	c.healthcheck = healthcheck
118189	return c
118190}
118191
118192// RequestId sets the optional parameter "requestId": An optional
118193// request ID to identify requests. Specify a unique request ID so that
118194// if you must retry your request, the server will know to ignore the
118195// request if it has already been completed.
118196//
118197// For example, consider a situation where you make an initial request
118198// and the request times out. If you make the request again with the
118199// same request ID, the server can check if original operation with the
118200// same request ID was received, and if so, will ignore the second
118201// request. This prevents clients from accidentally creating duplicate
118202// commitments.
118203//
118204// The request ID must be a valid UUID with the exception that zero UUID
118205// is not supported (00000000-0000-0000-0000-000000000000).
118206func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
118207	c.urlParams_.Set("requestId", requestId)
118208	return c
118209}
118210
118211// Fields allows partial responses to be retrieved. See
118212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118213// for more information.
118214func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
118215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118216	return c
118217}
118218
118219// Context sets the context to be used in this call's Do method. Any
118220// pending HTTP request will be aborted if the provided context is
118221// canceled.
118222func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
118223	c.ctx_ = ctx
118224	return c
118225}
118226
118227// Header returns an http.Header that can be modified by the caller to
118228// add HTTP headers to the request.
118229func (c *RegionHealthChecksUpdateCall) Header() http.Header {
118230	if c.header_ == nil {
118231		c.header_ = make(http.Header)
118232	}
118233	return c.header_
118234}
118235
118236func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
118237	reqHeaders := make(http.Header)
118238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118239	for k, v := range c.header_ {
118240		reqHeaders[k] = v
118241	}
118242	reqHeaders.Set("User-Agent", c.s.userAgent())
118243	var body io.Reader = nil
118244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
118245	if err != nil {
118246		return nil, err
118247	}
118248	reqHeaders.Set("Content-Type", "application/json")
118249	c.urlParams_.Set("alt", alt)
118250	c.urlParams_.Set("prettyPrint", "false")
118251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
118252	urls += "?" + c.urlParams_.Encode()
118253	req, err := http.NewRequest("PUT", urls, body)
118254	if err != nil {
118255		return nil, err
118256	}
118257	req.Header = reqHeaders
118258	googleapi.Expand(req.URL, map[string]string{
118259		"project":     c.project,
118260		"region":      c.region,
118261		"healthCheck": c.healthCheck,
118262	})
118263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118264}
118265
118266// Do executes the "compute.regionHealthChecks.update" call.
118267// Exactly one of *Operation or error will be non-nil. Any non-2xx
118268// status code is an error. Response headers are in either
118269// *Operation.ServerResponse.Header or (if a response was returned at
118270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118271// to check whether the returned error was because
118272// http.StatusNotModified was returned.
118273func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118274	gensupport.SetOptions(c.urlParams_, opts...)
118275	res, err := c.doRequest("json")
118276	if res != nil && res.StatusCode == http.StatusNotModified {
118277		if res.Body != nil {
118278			res.Body.Close()
118279		}
118280		return nil, &googleapi.Error{
118281			Code:   res.StatusCode,
118282			Header: res.Header,
118283		}
118284	}
118285	if err != nil {
118286		return nil, err
118287	}
118288	defer googleapi.CloseBody(res)
118289	if err := googleapi.CheckResponse(res); err != nil {
118290		return nil, err
118291	}
118292	ret := &Operation{
118293		ServerResponse: googleapi.ServerResponse{
118294			Header:         res.Header,
118295			HTTPStatusCode: res.StatusCode,
118296		},
118297	}
118298	target := &ret
118299	if err := gensupport.DecodeResponse(target, res); err != nil {
118300		return nil, err
118301	}
118302	return ret, nil
118303	// {
118304	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
118305	//   "httpMethod": "PUT",
118306	//   "id": "compute.regionHealthChecks.update",
118307	//   "parameterOrder": [
118308	//     "project",
118309	//     "region",
118310	//     "healthCheck"
118311	//   ],
118312	//   "parameters": {
118313	//     "healthCheck": {
118314	//       "description": "Name of the HealthCheck resource to update.",
118315	//       "location": "path",
118316	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118317	//       "required": true,
118318	//       "type": "string"
118319	//     },
118320	//     "project": {
118321	//       "description": "Project ID for this request.",
118322	//       "location": "path",
118323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118324	//       "required": true,
118325	//       "type": "string"
118326	//     },
118327	//     "region": {
118328	//       "description": "Name of the region scoping this request.",
118329	//       "location": "path",
118330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118331	//       "required": true,
118332	//       "type": "string"
118333	//     },
118334	//     "requestId": {
118335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118336	//       "location": "query",
118337	//       "type": "string"
118338	//     }
118339	//   },
118340	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
118341	//   "request": {
118342	//     "$ref": "HealthCheck"
118343	//   },
118344	//   "response": {
118345	//     "$ref": "Operation"
118346	//   },
118347	//   "scopes": [
118348	//     "https://www.googleapis.com/auth/cloud-platform",
118349	//     "https://www.googleapis.com/auth/compute"
118350	//   ]
118351	// }
118352
118353}
118354
118355// method id "compute.regionInstanceGroupManagers.abandonInstances":
118356
118357type RegionInstanceGroupManagersAbandonInstancesCall struct {
118358	s                                                  *Service
118359	project                                            string
118360	region                                             string
118361	instanceGroupManager                               string
118362	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
118363	urlParams_                                         gensupport.URLParams
118364	ctx_                                               context.Context
118365	header_                                            http.Header
118366}
118367
118368// AbandonInstances: Flags the specified instances to be immediately
118369// removed from the managed instance group. Abandoning an instance does
118370// not delete the instance, but it does remove the instance from any
118371// target pools that are applied by the managed instance group. This
118372// method reduces the targetSize of the managed instance group by the
118373// number of instances that you abandon. This operation is marked as
118374// DONE when the action is scheduled even if the instances have not yet
118375// been removed from the group. You must separately verify the status of
118376// the abandoning action with the listmanagedinstances method.
118377//
118378// If the group is part of a backend service that has enabled connection
118379// draining, it can take up to 60 seconds after the connection draining
118380// duration has elapsed before the VM instance is removed or
118381// deleted.
118382//
118383// You can specify a maximum of 1000 instances with this method per
118384// request.
118385func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
118386	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118387	c.project = project
118388	c.region = region
118389	c.instanceGroupManager = instanceGroupManager
118390	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
118391	return c
118392}
118393
118394// RequestId sets the optional parameter "requestId": An optional
118395// request ID to identify requests. Specify a unique request ID so that
118396// if you must retry your request, the server will know to ignore the
118397// request if it has already been completed.
118398//
118399// For example, consider a situation where you make an initial request
118400// and the request times out. If you make the request again with the
118401// same request ID, the server can check if original operation with the
118402// same request ID was received, and if so, will ignore the second
118403// request. This prevents clients from accidentally creating duplicate
118404// commitments.
118405//
118406// The request ID must be a valid UUID with the exception that zero UUID
118407// is not supported (00000000-0000-0000-0000-000000000000).
118408func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
118409	c.urlParams_.Set("requestId", requestId)
118410	return c
118411}
118412
118413// Fields allows partial responses to be retrieved. See
118414// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118415// for more information.
118416func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
118417	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118418	return c
118419}
118420
118421// Context sets the context to be used in this call's Do method. Any
118422// pending HTTP request will be aborted if the provided context is
118423// canceled.
118424func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
118425	c.ctx_ = ctx
118426	return c
118427}
118428
118429// Header returns an http.Header that can be modified by the caller to
118430// add HTTP headers to the request.
118431func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
118432	if c.header_ == nil {
118433		c.header_ = make(http.Header)
118434	}
118435	return c.header_
118436}
118437
118438func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
118439	reqHeaders := make(http.Header)
118440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118441	for k, v := range c.header_ {
118442		reqHeaders[k] = v
118443	}
118444	reqHeaders.Set("User-Agent", c.s.userAgent())
118445	var body io.Reader = nil
118446	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
118447	if err != nil {
118448		return nil, err
118449	}
118450	reqHeaders.Set("Content-Type", "application/json")
118451	c.urlParams_.Set("alt", alt)
118452	c.urlParams_.Set("prettyPrint", "false")
118453	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
118454	urls += "?" + c.urlParams_.Encode()
118455	req, err := http.NewRequest("POST", urls, body)
118456	if err != nil {
118457		return nil, err
118458	}
118459	req.Header = reqHeaders
118460	googleapi.Expand(req.URL, map[string]string{
118461		"project":              c.project,
118462		"region":               c.region,
118463		"instanceGroupManager": c.instanceGroupManager,
118464	})
118465	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118466}
118467
118468// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
118469// Exactly one of *Operation or error will be non-nil. Any non-2xx
118470// status code is an error. Response headers are in either
118471// *Operation.ServerResponse.Header or (if a response was returned at
118472// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118473// to check whether the returned error was because
118474// http.StatusNotModified was returned.
118475func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118476	gensupport.SetOptions(c.urlParams_, opts...)
118477	res, err := c.doRequest("json")
118478	if res != nil && res.StatusCode == http.StatusNotModified {
118479		if res.Body != nil {
118480			res.Body.Close()
118481		}
118482		return nil, &googleapi.Error{
118483			Code:   res.StatusCode,
118484			Header: res.Header,
118485		}
118486	}
118487	if err != nil {
118488		return nil, err
118489	}
118490	defer googleapi.CloseBody(res)
118491	if err := googleapi.CheckResponse(res); err != nil {
118492		return nil, err
118493	}
118494	ret := &Operation{
118495		ServerResponse: googleapi.ServerResponse{
118496			Header:         res.Header,
118497			HTTPStatusCode: res.StatusCode,
118498		},
118499	}
118500	target := &ret
118501	if err := gensupport.DecodeResponse(target, res); err != nil {
118502		return nil, err
118503	}
118504	return ret, nil
118505	// {
118506	//   "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.",
118507	//   "httpMethod": "POST",
118508	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
118509	//   "parameterOrder": [
118510	//     "project",
118511	//     "region",
118512	//     "instanceGroupManager"
118513	//   ],
118514	//   "parameters": {
118515	//     "instanceGroupManager": {
118516	//       "description": "Name of the managed instance group.",
118517	//       "location": "path",
118518	//       "required": true,
118519	//       "type": "string"
118520	//     },
118521	//     "project": {
118522	//       "description": "Project ID for this request.",
118523	//       "location": "path",
118524	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118525	//       "required": true,
118526	//       "type": "string"
118527	//     },
118528	//     "region": {
118529	//       "description": "Name of the region scoping this request.",
118530	//       "location": "path",
118531	//       "required": true,
118532	//       "type": "string"
118533	//     },
118534	//     "requestId": {
118535	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118536	//       "location": "query",
118537	//       "type": "string"
118538	//     }
118539	//   },
118540	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
118541	//   "request": {
118542	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
118543	//   },
118544	//   "response": {
118545	//     "$ref": "Operation"
118546	//   },
118547	//   "scopes": [
118548	//     "https://www.googleapis.com/auth/cloud-platform",
118549	//     "https://www.googleapis.com/auth/compute"
118550	//   ]
118551	// }
118552
118553}
118554
118555// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
118556
118557type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
118558	s                                              *Service
118559	project                                        string
118560	region                                         string
118561	instanceGroupManager                           string
118562	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
118563	urlParams_                                     gensupport.URLParams
118564	ctx_                                           context.Context
118565	header_                                        http.Header
118566}
118567
118568// ApplyUpdatesToInstances: Apply updates to selected instances the
118569// managed instance group.
118570func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
118571	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118572	c.project = project
118573	c.region = region
118574	c.instanceGroupManager = instanceGroupManager
118575	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
118576	return c
118577}
118578
118579// Fields allows partial responses to be retrieved. See
118580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118581// for more information.
118582func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
118583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118584	return c
118585}
118586
118587// Context sets the context to be used in this call's Do method. Any
118588// pending HTTP request will be aborted if the provided context is
118589// canceled.
118590func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
118591	c.ctx_ = ctx
118592	return c
118593}
118594
118595// Header returns an http.Header that can be modified by the caller to
118596// add HTTP headers to the request.
118597func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
118598	if c.header_ == nil {
118599		c.header_ = make(http.Header)
118600	}
118601	return c.header_
118602}
118603
118604func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
118605	reqHeaders := make(http.Header)
118606	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118607	for k, v := range c.header_ {
118608		reqHeaders[k] = v
118609	}
118610	reqHeaders.Set("User-Agent", c.s.userAgent())
118611	var body io.Reader = nil
118612	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
118613	if err != nil {
118614		return nil, err
118615	}
118616	reqHeaders.Set("Content-Type", "application/json")
118617	c.urlParams_.Set("alt", alt)
118618	c.urlParams_.Set("prettyPrint", "false")
118619	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
118620	urls += "?" + c.urlParams_.Encode()
118621	req, err := http.NewRequest("POST", urls, body)
118622	if err != nil {
118623		return nil, err
118624	}
118625	req.Header = reqHeaders
118626	googleapi.Expand(req.URL, map[string]string{
118627		"project":              c.project,
118628		"region":               c.region,
118629		"instanceGroupManager": c.instanceGroupManager,
118630	})
118631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118632}
118633
118634// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
118635// Exactly one of *Operation or error will be non-nil. Any non-2xx
118636// status code is an error. Response headers are in either
118637// *Operation.ServerResponse.Header or (if a response was returned at
118638// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118639// to check whether the returned error was because
118640// http.StatusNotModified was returned.
118641func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118642	gensupport.SetOptions(c.urlParams_, opts...)
118643	res, err := c.doRequest("json")
118644	if res != nil && res.StatusCode == http.StatusNotModified {
118645		if res.Body != nil {
118646			res.Body.Close()
118647		}
118648		return nil, &googleapi.Error{
118649			Code:   res.StatusCode,
118650			Header: res.Header,
118651		}
118652	}
118653	if err != nil {
118654		return nil, err
118655	}
118656	defer googleapi.CloseBody(res)
118657	if err := googleapi.CheckResponse(res); err != nil {
118658		return nil, err
118659	}
118660	ret := &Operation{
118661		ServerResponse: googleapi.ServerResponse{
118662			Header:         res.Header,
118663			HTTPStatusCode: res.StatusCode,
118664		},
118665	}
118666	target := &ret
118667	if err := gensupport.DecodeResponse(target, res); err != nil {
118668		return nil, err
118669	}
118670	return ret, nil
118671	// {
118672	//   "description": "Apply updates to selected instances the managed instance group.",
118673	//   "httpMethod": "POST",
118674	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
118675	//   "parameterOrder": [
118676	//     "project",
118677	//     "region",
118678	//     "instanceGroupManager"
118679	//   ],
118680	//   "parameters": {
118681	//     "instanceGroupManager": {
118682	//       "description": "The name of the managed instance group, should conform to RFC1035.",
118683	//       "location": "path",
118684	//       "required": true,
118685	//       "type": "string"
118686	//     },
118687	//     "project": {
118688	//       "description": "Project ID for this request.",
118689	//       "location": "path",
118690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118691	//       "required": true,
118692	//       "type": "string"
118693	//     },
118694	//     "region": {
118695	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
118696	//       "location": "path",
118697	//       "required": true,
118698	//       "type": "string"
118699	//     }
118700	//   },
118701	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
118702	//   "request": {
118703	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
118704	//   },
118705	//   "response": {
118706	//     "$ref": "Operation"
118707	//   },
118708	//   "scopes": [
118709	//     "https://www.googleapis.com/auth/cloud-platform",
118710	//     "https://www.googleapis.com/auth/compute"
118711	//   ]
118712	// }
118713
118714}
118715
118716// method id "compute.regionInstanceGroupManagers.createInstances":
118717
118718type RegionInstanceGroupManagersCreateInstancesCall struct {
118719	s                                                 *Service
118720	project                                           string
118721	region                                            string
118722	instanceGroupManager                              string
118723	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
118724	urlParams_                                        gensupport.URLParams
118725	ctx_                                              context.Context
118726	header_                                           http.Header
118727}
118728
118729// CreateInstances: Creates instances with per-instance configs in this
118730// regional managed instance group. Instances are created using the
118731// current instance template. The create instances operation is marked
118732// DONE if the createInstances request is successful. The underlying
118733// actions take additional time. You must separately verify the status
118734// of the creating or actions with the listmanagedinstances method.
118735func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
118736	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118737	c.project = project
118738	c.region = region
118739	c.instanceGroupManager = instanceGroupManager
118740	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
118741	return c
118742}
118743
118744// RequestId sets the optional parameter "requestId": An optional
118745// request ID to identify requests. Specify a unique request ID so that
118746// if you must retry your request, the server will know to ignore the
118747// request if it has already been completed.
118748//
118749// For example, consider a situation where you make an initial request
118750// and the request times out. If you make the request again with the
118751// same request ID, the server can check if original operation with the
118752// same request ID was received, and if so, will ignore the second
118753// request.
118754//
118755// The request ID must be a valid UUID with the exception that zero UUID
118756// is not supported (00000000-0000-0000-0000-000000000000).
118757func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
118758	c.urlParams_.Set("requestId", requestId)
118759	return c
118760}
118761
118762// Fields allows partial responses to be retrieved. See
118763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118764// for more information.
118765func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
118766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118767	return c
118768}
118769
118770// Context sets the context to be used in this call's Do method. Any
118771// pending HTTP request will be aborted if the provided context is
118772// canceled.
118773func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
118774	c.ctx_ = ctx
118775	return c
118776}
118777
118778// Header returns an http.Header that can be modified by the caller to
118779// add HTTP headers to the request.
118780func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
118781	if c.header_ == nil {
118782		c.header_ = make(http.Header)
118783	}
118784	return c.header_
118785}
118786
118787func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
118788	reqHeaders := make(http.Header)
118789	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118790	for k, v := range c.header_ {
118791		reqHeaders[k] = v
118792	}
118793	reqHeaders.Set("User-Agent", c.s.userAgent())
118794	var body io.Reader = nil
118795	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
118796	if err != nil {
118797		return nil, err
118798	}
118799	reqHeaders.Set("Content-Type", "application/json")
118800	c.urlParams_.Set("alt", alt)
118801	c.urlParams_.Set("prettyPrint", "false")
118802	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
118803	urls += "?" + c.urlParams_.Encode()
118804	req, err := http.NewRequest("POST", urls, body)
118805	if err != nil {
118806		return nil, err
118807	}
118808	req.Header = reqHeaders
118809	googleapi.Expand(req.URL, map[string]string{
118810		"project":              c.project,
118811		"region":               c.region,
118812		"instanceGroupManager": c.instanceGroupManager,
118813	})
118814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118815}
118816
118817// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
118818// Exactly one of *Operation or error will be non-nil. Any non-2xx
118819// status code is an error. Response headers are in either
118820// *Operation.ServerResponse.Header or (if a response was returned at
118821// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118822// to check whether the returned error was because
118823// http.StatusNotModified was returned.
118824func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118825	gensupport.SetOptions(c.urlParams_, opts...)
118826	res, err := c.doRequest("json")
118827	if res != nil && res.StatusCode == http.StatusNotModified {
118828		if res.Body != nil {
118829			res.Body.Close()
118830		}
118831		return nil, &googleapi.Error{
118832			Code:   res.StatusCode,
118833			Header: res.Header,
118834		}
118835	}
118836	if err != nil {
118837		return nil, err
118838	}
118839	defer googleapi.CloseBody(res)
118840	if err := googleapi.CheckResponse(res); err != nil {
118841		return nil, err
118842	}
118843	ret := &Operation{
118844		ServerResponse: googleapi.ServerResponse{
118845			Header:         res.Header,
118846			HTTPStatusCode: res.StatusCode,
118847		},
118848	}
118849	target := &ret
118850	if err := gensupport.DecodeResponse(target, res); err != nil {
118851		return nil, err
118852	}
118853	return ret, nil
118854	// {
118855	//   "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.",
118856	//   "httpMethod": "POST",
118857	//   "id": "compute.regionInstanceGroupManagers.createInstances",
118858	//   "parameterOrder": [
118859	//     "project",
118860	//     "region",
118861	//     "instanceGroupManager"
118862	//   ],
118863	//   "parameters": {
118864	//     "instanceGroupManager": {
118865	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
118866	//       "location": "path",
118867	//       "required": true,
118868	//       "type": "string"
118869	//     },
118870	//     "project": {
118871	//       "description": "Project ID for this request.",
118872	//       "location": "path",
118873	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118874	//       "required": true,
118875	//       "type": "string"
118876	//     },
118877	//     "region": {
118878	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
118879	//       "location": "path",
118880	//       "required": true,
118881	//       "type": "string"
118882	//     },
118883	//     "requestId": {
118884	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
118885	//       "location": "query",
118886	//       "type": "string"
118887	//     }
118888	//   },
118889	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
118890	//   "request": {
118891	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
118892	//   },
118893	//   "response": {
118894	//     "$ref": "Operation"
118895	//   },
118896	//   "scopes": [
118897	//     "https://www.googleapis.com/auth/cloud-platform",
118898	//     "https://www.googleapis.com/auth/compute"
118899	//   ]
118900	// }
118901
118902}
118903
118904// method id "compute.regionInstanceGroupManagers.delete":
118905
118906type RegionInstanceGroupManagersDeleteCall struct {
118907	s                    *Service
118908	project              string
118909	region               string
118910	instanceGroupManager string
118911	urlParams_           gensupport.URLParams
118912	ctx_                 context.Context
118913	header_              http.Header
118914}
118915
118916// Delete: Deletes the specified managed instance group and all of the
118917// instances in that group.
118918func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
118919	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118920	c.project = project
118921	c.region = region
118922	c.instanceGroupManager = instanceGroupManager
118923	return c
118924}
118925
118926// RequestId sets the optional parameter "requestId": An optional
118927// request ID to identify requests. Specify a unique request ID so that
118928// if you must retry your request, the server will know to ignore the
118929// request if it has already been completed.
118930//
118931// For example, consider a situation where you make an initial request
118932// and the request times out. If you make the request again with the
118933// same request ID, the server can check if original operation with the
118934// same request ID was received, and if so, will ignore the second
118935// request. This prevents clients from accidentally creating duplicate
118936// commitments.
118937//
118938// The request ID must be a valid UUID with the exception that zero UUID
118939// is not supported (00000000-0000-0000-0000-000000000000).
118940func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
118941	c.urlParams_.Set("requestId", requestId)
118942	return c
118943}
118944
118945// Fields allows partial responses to be retrieved. See
118946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118947// for more information.
118948func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
118949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118950	return c
118951}
118952
118953// Context sets the context to be used in this call's Do method. Any
118954// pending HTTP request will be aborted if the provided context is
118955// canceled.
118956func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
118957	c.ctx_ = ctx
118958	return c
118959}
118960
118961// Header returns an http.Header that can be modified by the caller to
118962// add HTTP headers to the request.
118963func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
118964	if c.header_ == nil {
118965		c.header_ = make(http.Header)
118966	}
118967	return c.header_
118968}
118969
118970func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
118971	reqHeaders := make(http.Header)
118972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
118973	for k, v := range c.header_ {
118974		reqHeaders[k] = v
118975	}
118976	reqHeaders.Set("User-Agent", c.s.userAgent())
118977	var body io.Reader = nil
118978	c.urlParams_.Set("alt", alt)
118979	c.urlParams_.Set("prettyPrint", "false")
118980	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
118981	urls += "?" + c.urlParams_.Encode()
118982	req, err := http.NewRequest("DELETE", urls, body)
118983	if err != nil {
118984		return nil, err
118985	}
118986	req.Header = reqHeaders
118987	googleapi.Expand(req.URL, map[string]string{
118988		"project":              c.project,
118989		"region":               c.region,
118990		"instanceGroupManager": c.instanceGroupManager,
118991	})
118992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118993}
118994
118995// Do executes the "compute.regionInstanceGroupManagers.delete" call.
118996// Exactly one of *Operation or error will be non-nil. Any non-2xx
118997// status code is an error. Response headers are in either
118998// *Operation.ServerResponse.Header or (if a response was returned at
118999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119000// to check whether the returned error was because
119001// http.StatusNotModified was returned.
119002func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119003	gensupport.SetOptions(c.urlParams_, opts...)
119004	res, err := c.doRequest("json")
119005	if res != nil && res.StatusCode == http.StatusNotModified {
119006		if res.Body != nil {
119007			res.Body.Close()
119008		}
119009		return nil, &googleapi.Error{
119010			Code:   res.StatusCode,
119011			Header: res.Header,
119012		}
119013	}
119014	if err != nil {
119015		return nil, err
119016	}
119017	defer googleapi.CloseBody(res)
119018	if err := googleapi.CheckResponse(res); err != nil {
119019		return nil, err
119020	}
119021	ret := &Operation{
119022		ServerResponse: googleapi.ServerResponse{
119023			Header:         res.Header,
119024			HTTPStatusCode: res.StatusCode,
119025		},
119026	}
119027	target := &ret
119028	if err := gensupport.DecodeResponse(target, res); err != nil {
119029		return nil, err
119030	}
119031	return ret, nil
119032	// {
119033	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
119034	//   "httpMethod": "DELETE",
119035	//   "id": "compute.regionInstanceGroupManagers.delete",
119036	//   "parameterOrder": [
119037	//     "project",
119038	//     "region",
119039	//     "instanceGroupManager"
119040	//   ],
119041	//   "parameters": {
119042	//     "instanceGroupManager": {
119043	//       "description": "Name of the managed instance group to delete.",
119044	//       "location": "path",
119045	//       "required": true,
119046	//       "type": "string"
119047	//     },
119048	//     "project": {
119049	//       "description": "Project ID for this request.",
119050	//       "location": "path",
119051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119052	//       "required": true,
119053	//       "type": "string"
119054	//     },
119055	//     "region": {
119056	//       "description": "Name of the region scoping this request.",
119057	//       "location": "path",
119058	//       "required": true,
119059	//       "type": "string"
119060	//     },
119061	//     "requestId": {
119062	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119063	//       "location": "query",
119064	//       "type": "string"
119065	//     }
119066	//   },
119067	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
119068	//   "response": {
119069	//     "$ref": "Operation"
119070	//   },
119071	//   "scopes": [
119072	//     "https://www.googleapis.com/auth/cloud-platform",
119073	//     "https://www.googleapis.com/auth/compute"
119074	//   ]
119075	// }
119076
119077}
119078
119079// method id "compute.regionInstanceGroupManagers.deleteInstances":
119080
119081type RegionInstanceGroupManagersDeleteInstancesCall struct {
119082	s                                                 *Service
119083	project                                           string
119084	region                                            string
119085	instanceGroupManager                              string
119086	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
119087	urlParams_                                        gensupport.URLParams
119088	ctx_                                              context.Context
119089	header_                                           http.Header
119090}
119091
119092// DeleteInstances: Flags the specified instances in the managed
119093// instance group to be immediately deleted. The instances are also
119094// removed from any target pools of which they were a member. This
119095// method reduces the targetSize of the managed instance group by the
119096// number of instances that you delete. The deleteInstances operation is
119097// marked DONE if the deleteInstances request is successful. The
119098// underlying actions take additional time. You must separately verify
119099// the status of the deleting action with the listmanagedinstances
119100// method.
119101//
119102// If the group is part of a backend service that has enabled connection
119103// draining, it can take up to 60 seconds after the connection draining
119104// duration has elapsed before the VM instance is removed or
119105// deleted.
119106//
119107// You can specify a maximum of 1000 instances with this method per
119108// request.
119109func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
119110	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119111	c.project = project
119112	c.region = region
119113	c.instanceGroupManager = instanceGroupManager
119114	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
119115	return c
119116}
119117
119118// RequestId sets the optional parameter "requestId": An optional
119119// request ID to identify requests. Specify a unique request ID so that
119120// if you must retry your request, the server will know to ignore the
119121// request if it has already been completed.
119122//
119123// For example, consider a situation where you make an initial request
119124// and the request times out. If you make the request again with the
119125// same request ID, the server can check if original operation with the
119126// same request ID was received, and if so, will ignore the second
119127// request. This prevents clients from accidentally creating duplicate
119128// commitments.
119129//
119130// The request ID must be a valid UUID with the exception that zero UUID
119131// is not supported (00000000-0000-0000-0000-000000000000).
119132func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
119133	c.urlParams_.Set("requestId", requestId)
119134	return c
119135}
119136
119137// Fields allows partial responses to be retrieved. See
119138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119139// for more information.
119140func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
119141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119142	return c
119143}
119144
119145// Context sets the context to be used in this call's Do method. Any
119146// pending HTTP request will be aborted if the provided context is
119147// canceled.
119148func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
119149	c.ctx_ = ctx
119150	return c
119151}
119152
119153// Header returns an http.Header that can be modified by the caller to
119154// add HTTP headers to the request.
119155func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
119156	if c.header_ == nil {
119157		c.header_ = make(http.Header)
119158	}
119159	return c.header_
119160}
119161
119162func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
119163	reqHeaders := make(http.Header)
119164	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119165	for k, v := range c.header_ {
119166		reqHeaders[k] = v
119167	}
119168	reqHeaders.Set("User-Agent", c.s.userAgent())
119169	var body io.Reader = nil
119170	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
119171	if err != nil {
119172		return nil, err
119173	}
119174	reqHeaders.Set("Content-Type", "application/json")
119175	c.urlParams_.Set("alt", alt)
119176	c.urlParams_.Set("prettyPrint", "false")
119177	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
119178	urls += "?" + c.urlParams_.Encode()
119179	req, err := http.NewRequest("POST", urls, body)
119180	if err != nil {
119181		return nil, err
119182	}
119183	req.Header = reqHeaders
119184	googleapi.Expand(req.URL, map[string]string{
119185		"project":              c.project,
119186		"region":               c.region,
119187		"instanceGroupManager": c.instanceGroupManager,
119188	})
119189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119190}
119191
119192// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
119193// Exactly one of *Operation or error will be non-nil. Any non-2xx
119194// status code is an error. Response headers are in either
119195// *Operation.ServerResponse.Header or (if a response was returned at
119196// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119197// to check whether the returned error was because
119198// http.StatusNotModified was returned.
119199func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119200	gensupport.SetOptions(c.urlParams_, opts...)
119201	res, err := c.doRequest("json")
119202	if res != nil && res.StatusCode == http.StatusNotModified {
119203		if res.Body != nil {
119204			res.Body.Close()
119205		}
119206		return nil, &googleapi.Error{
119207			Code:   res.StatusCode,
119208			Header: res.Header,
119209		}
119210	}
119211	if err != nil {
119212		return nil, err
119213	}
119214	defer googleapi.CloseBody(res)
119215	if err := googleapi.CheckResponse(res); err != nil {
119216		return nil, err
119217	}
119218	ret := &Operation{
119219		ServerResponse: googleapi.ServerResponse{
119220			Header:         res.Header,
119221			HTTPStatusCode: res.StatusCode,
119222		},
119223	}
119224	target := &ret
119225	if err := gensupport.DecodeResponse(target, res); err != nil {
119226		return nil, err
119227	}
119228	return ret, nil
119229	// {
119230	//   "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.",
119231	//   "httpMethod": "POST",
119232	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
119233	//   "parameterOrder": [
119234	//     "project",
119235	//     "region",
119236	//     "instanceGroupManager"
119237	//   ],
119238	//   "parameters": {
119239	//     "instanceGroupManager": {
119240	//       "description": "Name of the managed instance group.",
119241	//       "location": "path",
119242	//       "required": true,
119243	//       "type": "string"
119244	//     },
119245	//     "project": {
119246	//       "description": "Project ID for this request.",
119247	//       "location": "path",
119248	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119249	//       "required": true,
119250	//       "type": "string"
119251	//     },
119252	//     "region": {
119253	//       "description": "Name of the region scoping this request.",
119254	//       "location": "path",
119255	//       "required": true,
119256	//       "type": "string"
119257	//     },
119258	//     "requestId": {
119259	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119260	//       "location": "query",
119261	//       "type": "string"
119262	//     }
119263	//   },
119264	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
119265	//   "request": {
119266	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
119267	//   },
119268	//   "response": {
119269	//     "$ref": "Operation"
119270	//   },
119271	//   "scopes": [
119272	//     "https://www.googleapis.com/auth/cloud-platform",
119273	//     "https://www.googleapis.com/auth/compute"
119274	//   ]
119275	// }
119276
119277}
119278
119279// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
119280
119281type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
119282	s                                                 *Service
119283	project                                           string
119284	region                                            string
119285	instanceGroupManager                              string
119286	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
119287	urlParams_                                        gensupport.URLParams
119288	ctx_                                              context.Context
119289	header_                                           http.Header
119290}
119291
119292// DeletePerInstanceConfigs: Deletes selected per-instance configs for
119293// the managed instance group.
119294func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
119295	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119296	c.project = project
119297	c.region = region
119298	c.instanceGroupManager = instanceGroupManager
119299	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
119300	return c
119301}
119302
119303// Fields allows partial responses to be retrieved. See
119304// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119305// for more information.
119306func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
119307	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119308	return c
119309}
119310
119311// Context sets the context to be used in this call's Do method. Any
119312// pending HTTP request will be aborted if the provided context is
119313// canceled.
119314func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
119315	c.ctx_ = ctx
119316	return c
119317}
119318
119319// Header returns an http.Header that can be modified by the caller to
119320// add HTTP headers to the request.
119321func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
119322	if c.header_ == nil {
119323		c.header_ = make(http.Header)
119324	}
119325	return c.header_
119326}
119327
119328func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
119329	reqHeaders := make(http.Header)
119330	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119331	for k, v := range c.header_ {
119332		reqHeaders[k] = v
119333	}
119334	reqHeaders.Set("User-Agent", c.s.userAgent())
119335	var body io.Reader = nil
119336	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
119337	if err != nil {
119338		return nil, err
119339	}
119340	reqHeaders.Set("Content-Type", "application/json")
119341	c.urlParams_.Set("alt", alt)
119342	c.urlParams_.Set("prettyPrint", "false")
119343	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
119344	urls += "?" + c.urlParams_.Encode()
119345	req, err := http.NewRequest("POST", urls, body)
119346	if err != nil {
119347		return nil, err
119348	}
119349	req.Header = reqHeaders
119350	googleapi.Expand(req.URL, map[string]string{
119351		"project":              c.project,
119352		"region":               c.region,
119353		"instanceGroupManager": c.instanceGroupManager,
119354	})
119355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119356}
119357
119358// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
119359// Exactly one of *Operation or error will be non-nil. Any non-2xx
119360// status code is an error. Response headers are in either
119361// *Operation.ServerResponse.Header or (if a response was returned at
119362// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119363// to check whether the returned error was because
119364// http.StatusNotModified was returned.
119365func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119366	gensupport.SetOptions(c.urlParams_, opts...)
119367	res, err := c.doRequest("json")
119368	if res != nil && res.StatusCode == http.StatusNotModified {
119369		if res.Body != nil {
119370			res.Body.Close()
119371		}
119372		return nil, &googleapi.Error{
119373			Code:   res.StatusCode,
119374			Header: res.Header,
119375		}
119376	}
119377	if err != nil {
119378		return nil, err
119379	}
119380	defer googleapi.CloseBody(res)
119381	if err := googleapi.CheckResponse(res); err != nil {
119382		return nil, err
119383	}
119384	ret := &Operation{
119385		ServerResponse: googleapi.ServerResponse{
119386			Header:         res.Header,
119387			HTTPStatusCode: res.StatusCode,
119388		},
119389	}
119390	target := &ret
119391	if err := gensupport.DecodeResponse(target, res); err != nil {
119392		return nil, err
119393	}
119394	return ret, nil
119395	// {
119396	//   "description": "Deletes selected per-instance configs for the managed instance group.",
119397	//   "httpMethod": "POST",
119398	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
119399	//   "parameterOrder": [
119400	//     "project",
119401	//     "region",
119402	//     "instanceGroupManager"
119403	//   ],
119404	//   "parameters": {
119405	//     "instanceGroupManager": {
119406	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
119407	//       "location": "path",
119408	//       "required": true,
119409	//       "type": "string"
119410	//     },
119411	//     "project": {
119412	//       "description": "Project ID for this request.",
119413	//       "location": "path",
119414	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119415	//       "required": true,
119416	//       "type": "string"
119417	//     },
119418	//     "region": {
119419	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
119420	//       "location": "path",
119421	//       "required": true,
119422	//       "type": "string"
119423	//     }
119424	//   },
119425	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
119426	//   "request": {
119427	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
119428	//   },
119429	//   "response": {
119430	//     "$ref": "Operation"
119431	//   },
119432	//   "scopes": [
119433	//     "https://www.googleapis.com/auth/cloud-platform",
119434	//     "https://www.googleapis.com/auth/compute"
119435	//   ]
119436	// }
119437
119438}
119439
119440// method id "compute.regionInstanceGroupManagers.get":
119441
119442type RegionInstanceGroupManagersGetCall struct {
119443	s                    *Service
119444	project              string
119445	region               string
119446	instanceGroupManager string
119447	urlParams_           gensupport.URLParams
119448	ifNoneMatch_         string
119449	ctx_                 context.Context
119450	header_              http.Header
119451}
119452
119453// Get: Returns all of the details about the specified managed instance
119454// group.
119455func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
119456	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119457	c.project = project
119458	c.region = region
119459	c.instanceGroupManager = instanceGroupManager
119460	return c
119461}
119462
119463// Fields allows partial responses to be retrieved. See
119464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119465// for more information.
119466func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
119467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119468	return c
119469}
119470
119471// IfNoneMatch sets the optional parameter which makes the operation
119472// fail if the object's ETag matches the given value. This is useful for
119473// getting updates only after the object has changed since the last
119474// request. Use googleapi.IsNotModified to check whether the response
119475// error from Do is the result of In-None-Match.
119476func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
119477	c.ifNoneMatch_ = entityTag
119478	return c
119479}
119480
119481// Context sets the context to be used in this call's Do method. Any
119482// pending HTTP request will be aborted if the provided context is
119483// canceled.
119484func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
119485	c.ctx_ = ctx
119486	return c
119487}
119488
119489// Header returns an http.Header that can be modified by the caller to
119490// add HTTP headers to the request.
119491func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
119492	if c.header_ == nil {
119493		c.header_ = make(http.Header)
119494	}
119495	return c.header_
119496}
119497
119498func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
119499	reqHeaders := make(http.Header)
119500	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119501	for k, v := range c.header_ {
119502		reqHeaders[k] = v
119503	}
119504	reqHeaders.Set("User-Agent", c.s.userAgent())
119505	if c.ifNoneMatch_ != "" {
119506		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119507	}
119508	var body io.Reader = nil
119509	c.urlParams_.Set("alt", alt)
119510	c.urlParams_.Set("prettyPrint", "false")
119511	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
119512	urls += "?" + c.urlParams_.Encode()
119513	req, err := http.NewRequest("GET", urls, body)
119514	if err != nil {
119515		return nil, err
119516	}
119517	req.Header = reqHeaders
119518	googleapi.Expand(req.URL, map[string]string{
119519		"project":              c.project,
119520		"region":               c.region,
119521		"instanceGroupManager": c.instanceGroupManager,
119522	})
119523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119524}
119525
119526// Do executes the "compute.regionInstanceGroupManagers.get" call.
119527// Exactly one of *InstanceGroupManager or error will be non-nil. Any
119528// non-2xx status code is an error. Response headers are in either
119529// *InstanceGroupManager.ServerResponse.Header or (if a response was
119530// returned at all) in error.(*googleapi.Error).Header. Use
119531// googleapi.IsNotModified to check whether the returned error was
119532// because http.StatusNotModified was returned.
119533func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
119534	gensupport.SetOptions(c.urlParams_, opts...)
119535	res, err := c.doRequest("json")
119536	if res != nil && res.StatusCode == http.StatusNotModified {
119537		if res.Body != nil {
119538			res.Body.Close()
119539		}
119540		return nil, &googleapi.Error{
119541			Code:   res.StatusCode,
119542			Header: res.Header,
119543		}
119544	}
119545	if err != nil {
119546		return nil, err
119547	}
119548	defer googleapi.CloseBody(res)
119549	if err := googleapi.CheckResponse(res); err != nil {
119550		return nil, err
119551	}
119552	ret := &InstanceGroupManager{
119553		ServerResponse: googleapi.ServerResponse{
119554			Header:         res.Header,
119555			HTTPStatusCode: res.StatusCode,
119556		},
119557	}
119558	target := &ret
119559	if err := gensupport.DecodeResponse(target, res); err != nil {
119560		return nil, err
119561	}
119562	return ret, nil
119563	// {
119564	//   "description": "Returns all of the details about the specified managed instance group.",
119565	//   "httpMethod": "GET",
119566	//   "id": "compute.regionInstanceGroupManagers.get",
119567	//   "parameterOrder": [
119568	//     "project",
119569	//     "region",
119570	//     "instanceGroupManager"
119571	//   ],
119572	//   "parameters": {
119573	//     "instanceGroupManager": {
119574	//       "description": "Name of the managed instance group to return.",
119575	//       "location": "path",
119576	//       "required": true,
119577	//       "type": "string"
119578	//     },
119579	//     "project": {
119580	//       "description": "Project ID for this request.",
119581	//       "location": "path",
119582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119583	//       "required": true,
119584	//       "type": "string"
119585	//     },
119586	//     "region": {
119587	//       "description": "Name of the region scoping this request.",
119588	//       "location": "path",
119589	//       "required": true,
119590	//       "type": "string"
119591	//     }
119592	//   },
119593	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
119594	//   "response": {
119595	//     "$ref": "InstanceGroupManager"
119596	//   },
119597	//   "scopes": [
119598	//     "https://www.googleapis.com/auth/cloud-platform",
119599	//     "https://www.googleapis.com/auth/compute",
119600	//     "https://www.googleapis.com/auth/compute.readonly"
119601	//   ]
119602	// }
119603
119604}
119605
119606// method id "compute.regionInstanceGroupManagers.insert":
119607
119608type RegionInstanceGroupManagersInsertCall struct {
119609	s                    *Service
119610	project              string
119611	region               string
119612	instancegroupmanager *InstanceGroupManager
119613	urlParams_           gensupport.URLParams
119614	ctx_                 context.Context
119615	header_              http.Header
119616}
119617
119618// Insert: Creates a managed instance group using the information that
119619// you specify in the request. After the group is created, instances in
119620// the group are created using the specified instance template. This
119621// operation is marked as DONE when the group is created even if the
119622// instances in the group have not yet been created. You must separately
119623// verify the status of the individual instances with the
119624// listmanagedinstances method.
119625//
119626// A regional managed instance group can contain up to 2000 instances.
119627func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
119628	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119629	c.project = project
119630	c.region = region
119631	c.instancegroupmanager = instancegroupmanager
119632	return c
119633}
119634
119635// RequestId sets the optional parameter "requestId": An optional
119636// request ID to identify requests. Specify a unique request ID so that
119637// if you must retry your request, the server will know to ignore the
119638// request if it has already been completed.
119639//
119640// For example, consider a situation where you make an initial request
119641// and the request times out. If you make the request again with the
119642// same request ID, the server can check if original operation with the
119643// same request ID was received, and if so, will ignore the second
119644// request. This prevents clients from accidentally creating duplicate
119645// commitments.
119646//
119647// The request ID must be a valid UUID with the exception that zero UUID
119648// is not supported (00000000-0000-0000-0000-000000000000).
119649func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
119650	c.urlParams_.Set("requestId", requestId)
119651	return c
119652}
119653
119654// Fields allows partial responses to be retrieved. See
119655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119656// for more information.
119657func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
119658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119659	return c
119660}
119661
119662// Context sets the context to be used in this call's Do method. Any
119663// pending HTTP request will be aborted if the provided context is
119664// canceled.
119665func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
119666	c.ctx_ = ctx
119667	return c
119668}
119669
119670// Header returns an http.Header that can be modified by the caller to
119671// add HTTP headers to the request.
119672func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
119673	if c.header_ == nil {
119674		c.header_ = make(http.Header)
119675	}
119676	return c.header_
119677}
119678
119679func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
119680	reqHeaders := make(http.Header)
119681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119682	for k, v := range c.header_ {
119683		reqHeaders[k] = v
119684	}
119685	reqHeaders.Set("User-Agent", c.s.userAgent())
119686	var body io.Reader = nil
119687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
119688	if err != nil {
119689		return nil, err
119690	}
119691	reqHeaders.Set("Content-Type", "application/json")
119692	c.urlParams_.Set("alt", alt)
119693	c.urlParams_.Set("prettyPrint", "false")
119694	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
119695	urls += "?" + c.urlParams_.Encode()
119696	req, err := http.NewRequest("POST", urls, body)
119697	if err != nil {
119698		return nil, err
119699	}
119700	req.Header = reqHeaders
119701	googleapi.Expand(req.URL, map[string]string{
119702		"project": c.project,
119703		"region":  c.region,
119704	})
119705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119706}
119707
119708// Do executes the "compute.regionInstanceGroupManagers.insert" call.
119709// Exactly one of *Operation or error will be non-nil. Any non-2xx
119710// status code is an error. Response headers are in either
119711// *Operation.ServerResponse.Header or (if a response was returned at
119712// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119713// to check whether the returned error was because
119714// http.StatusNotModified was returned.
119715func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119716	gensupport.SetOptions(c.urlParams_, opts...)
119717	res, err := c.doRequest("json")
119718	if res != nil && res.StatusCode == http.StatusNotModified {
119719		if res.Body != nil {
119720			res.Body.Close()
119721		}
119722		return nil, &googleapi.Error{
119723			Code:   res.StatusCode,
119724			Header: res.Header,
119725		}
119726	}
119727	if err != nil {
119728		return nil, err
119729	}
119730	defer googleapi.CloseBody(res)
119731	if err := googleapi.CheckResponse(res); err != nil {
119732		return nil, err
119733	}
119734	ret := &Operation{
119735		ServerResponse: googleapi.ServerResponse{
119736			Header:         res.Header,
119737			HTTPStatusCode: res.StatusCode,
119738		},
119739	}
119740	target := &ret
119741	if err := gensupport.DecodeResponse(target, res); err != nil {
119742		return nil, err
119743	}
119744	return ret, nil
119745	// {
119746	//   "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.",
119747	//   "httpMethod": "POST",
119748	//   "id": "compute.regionInstanceGroupManagers.insert",
119749	//   "parameterOrder": [
119750	//     "project",
119751	//     "region"
119752	//   ],
119753	//   "parameters": {
119754	//     "project": {
119755	//       "description": "Project ID for this request.",
119756	//       "location": "path",
119757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119758	//       "required": true,
119759	//       "type": "string"
119760	//     },
119761	//     "region": {
119762	//       "description": "Name of the region scoping this request.",
119763	//       "location": "path",
119764	//       "required": true,
119765	//       "type": "string"
119766	//     },
119767	//     "requestId": {
119768	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119769	//       "location": "query",
119770	//       "type": "string"
119771	//     }
119772	//   },
119773	//   "path": "{project}/regions/{region}/instanceGroupManagers",
119774	//   "request": {
119775	//     "$ref": "InstanceGroupManager"
119776	//   },
119777	//   "response": {
119778	//     "$ref": "Operation"
119779	//   },
119780	//   "scopes": [
119781	//     "https://www.googleapis.com/auth/cloud-platform",
119782	//     "https://www.googleapis.com/auth/compute"
119783	//   ]
119784	// }
119785
119786}
119787
119788// method id "compute.regionInstanceGroupManagers.list":
119789
119790type RegionInstanceGroupManagersListCall struct {
119791	s            *Service
119792	project      string
119793	region       string
119794	urlParams_   gensupport.URLParams
119795	ifNoneMatch_ string
119796	ctx_         context.Context
119797	header_      http.Header
119798}
119799
119800// List: Retrieves the list of managed instance groups that are
119801// contained within the specified region.
119802func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
119803	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119804	c.project = project
119805	c.region = region
119806	return c
119807}
119808
119809// Filter sets the optional parameter "filter": A filter expression that
119810// filters resources listed in the response. The expression must specify
119811// the field name, a comparison operator, and the value that you want to
119812// use for filtering. The value must be a string, a number, or a
119813// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119814// `<`.
119815//
119816// For example, if you are filtering Compute Engine instances, you can
119817// exclude instances named `example-instance` by specifying `name !=
119818// example-instance`.
119819//
119820// You can also filter nested fields. For example, you could specify
119821// `scheduling.automaticRestart = false` to include instances only if
119822// they are not scheduled for automatic restarts. You can use filtering
119823// on nested fields to filter based on resource labels.
119824//
119825// To filter on multiple expressions, provide each separate expression
119826// within parentheses. For example: ``` (scheduling.automaticRestart =
119827// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
119828// is an `AND` expression. However, you can include `AND` and `OR`
119829// expressions explicitly. For example: ``` (cpuPlatform = "Intel
119830// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
119831// (scheduling.automaticRestart = true) ```
119832func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
119833	c.urlParams_.Set("filter", filter)
119834	return c
119835}
119836
119837// MaxResults sets the optional parameter "maxResults": The maximum
119838// number of results per page that should be returned. If the number of
119839// available results is larger than `maxResults`, Compute Engine returns
119840// a `nextPageToken` that can be used to get the next page of results in
119841// subsequent list requests. Acceptable values are `0` to `500`,
119842// inclusive. (Default: `500`)
119843func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
119844	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119845	return c
119846}
119847
119848// OrderBy sets the optional parameter "orderBy": Sorts list results by
119849// a certain order. By default, results are returned in alphanumerical
119850// order based on the resource name.
119851//
119852// You can also sort results in descending order based on the creation
119853// timestamp using `orderBy="creationTimestamp desc". This sorts
119854// results based on the `creationTimestamp` field in reverse
119855// chronological order (newest result first). Use this to sort resources
119856// like operations so that the newest operation is returned
119857// first.
119858//
119859// Currently, only sorting by `name` or `creationTimestamp desc` is
119860// supported.
119861func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
119862	c.urlParams_.Set("orderBy", orderBy)
119863	return c
119864}
119865
119866// PageToken sets the optional parameter "pageToken": Specifies a page
119867// token to use. Set `pageToken` to the `nextPageToken` returned by a
119868// previous list request to get the next page of results.
119869func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
119870	c.urlParams_.Set("pageToken", pageToken)
119871	return c
119872}
119873
119874// Fields allows partial responses to be retrieved. See
119875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119876// for more information.
119877func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
119878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119879	return c
119880}
119881
119882// IfNoneMatch sets the optional parameter which makes the operation
119883// fail if the object's ETag matches the given value. This is useful for
119884// getting updates only after the object has changed since the last
119885// request. Use googleapi.IsNotModified to check whether the response
119886// error from Do is the result of In-None-Match.
119887func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
119888	c.ifNoneMatch_ = entityTag
119889	return c
119890}
119891
119892// Context sets the context to be used in this call's Do method. Any
119893// pending HTTP request will be aborted if the provided context is
119894// canceled.
119895func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
119896	c.ctx_ = ctx
119897	return c
119898}
119899
119900// Header returns an http.Header that can be modified by the caller to
119901// add HTTP headers to the request.
119902func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
119903	if c.header_ == nil {
119904		c.header_ = make(http.Header)
119905	}
119906	return c.header_
119907}
119908
119909func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
119910	reqHeaders := make(http.Header)
119911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
119912	for k, v := range c.header_ {
119913		reqHeaders[k] = v
119914	}
119915	reqHeaders.Set("User-Agent", c.s.userAgent())
119916	if c.ifNoneMatch_ != "" {
119917		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119918	}
119919	var body io.Reader = nil
119920	c.urlParams_.Set("alt", alt)
119921	c.urlParams_.Set("prettyPrint", "false")
119922	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
119923	urls += "?" + c.urlParams_.Encode()
119924	req, err := http.NewRequest("GET", urls, body)
119925	if err != nil {
119926		return nil, err
119927	}
119928	req.Header = reqHeaders
119929	googleapi.Expand(req.URL, map[string]string{
119930		"project": c.project,
119931		"region":  c.region,
119932	})
119933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119934}
119935
119936// Do executes the "compute.regionInstanceGroupManagers.list" call.
119937// Exactly one of *RegionInstanceGroupManagerList or error will be
119938// non-nil. Any non-2xx status code is an error. Response headers are in
119939// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
119940// response was returned at all) in error.(*googleapi.Error).Header. Use
119941// googleapi.IsNotModified to check whether the returned error was
119942// because http.StatusNotModified was returned.
119943func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
119944	gensupport.SetOptions(c.urlParams_, opts...)
119945	res, err := c.doRequest("json")
119946	if res != nil && res.StatusCode == http.StatusNotModified {
119947		if res.Body != nil {
119948			res.Body.Close()
119949		}
119950		return nil, &googleapi.Error{
119951			Code:   res.StatusCode,
119952			Header: res.Header,
119953		}
119954	}
119955	if err != nil {
119956		return nil, err
119957	}
119958	defer googleapi.CloseBody(res)
119959	if err := googleapi.CheckResponse(res); err != nil {
119960		return nil, err
119961	}
119962	ret := &RegionInstanceGroupManagerList{
119963		ServerResponse: googleapi.ServerResponse{
119964			Header:         res.Header,
119965			HTTPStatusCode: res.StatusCode,
119966		},
119967	}
119968	target := &ret
119969	if err := gensupport.DecodeResponse(target, res); err != nil {
119970		return nil, err
119971	}
119972	return ret, nil
119973	// {
119974	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
119975	//   "httpMethod": "GET",
119976	//   "id": "compute.regionInstanceGroupManagers.list",
119977	//   "parameterOrder": [
119978	//     "project",
119979	//     "region"
119980	//   ],
119981	//   "parameters": {
119982	//     "filter": {
119983	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
119984	//       "location": "query",
119985	//       "type": "string"
119986	//     },
119987	//     "maxResults": {
119988	//       "default": "500",
119989	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119990	//       "format": "uint32",
119991	//       "location": "query",
119992	//       "minimum": "0",
119993	//       "type": "integer"
119994	//     },
119995	//     "orderBy": {
119996	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
119997	//       "location": "query",
119998	//       "type": "string"
119999	//     },
120000	//     "pageToken": {
120001	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120002	//       "location": "query",
120003	//       "type": "string"
120004	//     },
120005	//     "project": {
120006	//       "description": "Project ID for this request.",
120007	//       "location": "path",
120008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120009	//       "required": true,
120010	//       "type": "string"
120011	//     },
120012	//     "region": {
120013	//       "description": "Name of the region scoping this request.",
120014	//       "location": "path",
120015	//       "required": true,
120016	//       "type": "string"
120017	//     }
120018	//   },
120019	//   "path": "{project}/regions/{region}/instanceGroupManagers",
120020	//   "response": {
120021	//     "$ref": "RegionInstanceGroupManagerList"
120022	//   },
120023	//   "scopes": [
120024	//     "https://www.googleapis.com/auth/cloud-platform",
120025	//     "https://www.googleapis.com/auth/compute",
120026	//     "https://www.googleapis.com/auth/compute.readonly"
120027	//   ]
120028	// }
120029
120030}
120031
120032// Pages invokes f for each page of results.
120033// A non-nil error returned from f will halt the iteration.
120034// The provided context supersedes any context provided to the Context method.
120035func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
120036	c.ctx_ = ctx
120037	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120038	for {
120039		x, err := c.Do()
120040		if err != nil {
120041			return err
120042		}
120043		if err := f(x); err != nil {
120044			return err
120045		}
120046		if x.NextPageToken == "" {
120047			return nil
120048		}
120049		c.PageToken(x.NextPageToken)
120050	}
120051}
120052
120053// method id "compute.regionInstanceGroupManagers.listErrors":
120054
120055type RegionInstanceGroupManagersListErrorsCall struct {
120056	s                    *Service
120057	project              string
120058	region               string
120059	instanceGroupManager string
120060	urlParams_           gensupport.URLParams
120061	ifNoneMatch_         string
120062	ctx_                 context.Context
120063	header_              http.Header
120064}
120065
120066// ListErrors: Lists all errors thrown by actions on instances for a
120067// given regional managed instance group. The filter and orderBy query
120068// parameters are not supported.
120069func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
120070	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120071	c.project = project
120072	c.region = region
120073	c.instanceGroupManager = instanceGroupManager
120074	return c
120075}
120076
120077// Filter sets the optional parameter "filter": A filter expression that
120078// filters resources listed in the response. The expression must specify
120079// the field name, a comparison operator, and the value that you want to
120080// use for filtering. The value must be a string, a number, or a
120081// boolean. The comparison operator must be either `=`, `!=`, `>`, or
120082// `<`.
120083//
120084// For example, if you are filtering Compute Engine instances, you can
120085// exclude instances named `example-instance` by specifying `name !=
120086// example-instance`.
120087//
120088// You can also filter nested fields. For example, you could specify
120089// `scheduling.automaticRestart = false` to include instances only if
120090// they are not scheduled for automatic restarts. You can use filtering
120091// on nested fields to filter based on resource labels.
120092//
120093// To filter on multiple expressions, provide each separate expression
120094// within parentheses. For example: ``` (scheduling.automaticRestart =
120095// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
120096// is an `AND` expression. However, you can include `AND` and `OR`
120097// expressions explicitly. For example: ``` (cpuPlatform = "Intel
120098// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
120099// (scheduling.automaticRestart = true) ```
120100func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
120101	c.urlParams_.Set("filter", filter)
120102	return c
120103}
120104
120105// MaxResults sets the optional parameter "maxResults": The maximum
120106// number of results per page that should be returned. If the number of
120107// available results is larger than `maxResults`, Compute Engine returns
120108// a `nextPageToken` that can be used to get the next page of results in
120109// subsequent list requests. Acceptable values are `0` to `500`,
120110// inclusive. (Default: `500`)
120111func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
120112	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120113	return c
120114}
120115
120116// OrderBy sets the optional parameter "orderBy": Sorts list results by
120117// a certain order. By default, results are returned in alphanumerical
120118// order based on the resource name.
120119//
120120// You can also sort results in descending order based on the creation
120121// timestamp using `orderBy="creationTimestamp desc". This sorts
120122// results based on the `creationTimestamp` field in reverse
120123// chronological order (newest result first). Use this to sort resources
120124// like operations so that the newest operation is returned
120125// first.
120126//
120127// Currently, only sorting by `name` or `creationTimestamp desc` is
120128// supported.
120129func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
120130	c.urlParams_.Set("orderBy", orderBy)
120131	return c
120132}
120133
120134// PageToken sets the optional parameter "pageToken": Specifies a page
120135// token to use. Set `pageToken` to the `nextPageToken` returned by a
120136// previous list request to get the next page of results.
120137func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
120138	c.urlParams_.Set("pageToken", pageToken)
120139	return c
120140}
120141
120142// Fields allows partial responses to be retrieved. See
120143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120144// for more information.
120145func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
120146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120147	return c
120148}
120149
120150// IfNoneMatch sets the optional parameter which makes the operation
120151// fail if the object's ETag matches the given value. This is useful for
120152// getting updates only after the object has changed since the last
120153// request. Use googleapi.IsNotModified to check whether the response
120154// error from Do is the result of In-None-Match.
120155func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
120156	c.ifNoneMatch_ = entityTag
120157	return c
120158}
120159
120160// Context sets the context to be used in this call's Do method. Any
120161// pending HTTP request will be aborted if the provided context is
120162// canceled.
120163func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
120164	c.ctx_ = ctx
120165	return c
120166}
120167
120168// Header returns an http.Header that can be modified by the caller to
120169// add HTTP headers to the request.
120170func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
120171	if c.header_ == nil {
120172		c.header_ = make(http.Header)
120173	}
120174	return c.header_
120175}
120176
120177func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
120178	reqHeaders := make(http.Header)
120179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120180	for k, v := range c.header_ {
120181		reqHeaders[k] = v
120182	}
120183	reqHeaders.Set("User-Agent", c.s.userAgent())
120184	if c.ifNoneMatch_ != "" {
120185		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120186	}
120187	var body io.Reader = nil
120188	c.urlParams_.Set("alt", alt)
120189	c.urlParams_.Set("prettyPrint", "false")
120190	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
120191	urls += "?" + c.urlParams_.Encode()
120192	req, err := http.NewRequest("GET", urls, body)
120193	if err != nil {
120194		return nil, err
120195	}
120196	req.Header = reqHeaders
120197	googleapi.Expand(req.URL, map[string]string{
120198		"project":              c.project,
120199		"region":               c.region,
120200		"instanceGroupManager": c.instanceGroupManager,
120201	})
120202	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120203}
120204
120205// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
120206// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
120207// error will be non-nil. Any non-2xx status code is an error. Response
120208// headers are in either
120209// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
120210// or (if a response was returned at all) in
120211// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
120212// whether the returned error was because http.StatusNotModified was
120213// returned.
120214func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
120215	gensupport.SetOptions(c.urlParams_, opts...)
120216	res, err := c.doRequest("json")
120217	if res != nil && res.StatusCode == http.StatusNotModified {
120218		if res.Body != nil {
120219			res.Body.Close()
120220		}
120221		return nil, &googleapi.Error{
120222			Code:   res.StatusCode,
120223			Header: res.Header,
120224		}
120225	}
120226	if err != nil {
120227		return nil, err
120228	}
120229	defer googleapi.CloseBody(res)
120230	if err := googleapi.CheckResponse(res); err != nil {
120231		return nil, err
120232	}
120233	ret := &RegionInstanceGroupManagersListErrorsResponse{
120234		ServerResponse: googleapi.ServerResponse{
120235			Header:         res.Header,
120236			HTTPStatusCode: res.StatusCode,
120237		},
120238	}
120239	target := &ret
120240	if err := gensupport.DecodeResponse(target, res); err != nil {
120241		return nil, err
120242	}
120243	return ret, nil
120244	// {
120245	//   "description": "Lists all errors thrown by actions on instances for a given regional managed instance group. The filter and orderBy query parameters are not supported.",
120246	//   "httpMethod": "GET",
120247	//   "id": "compute.regionInstanceGroupManagers.listErrors",
120248	//   "parameterOrder": [
120249	//     "project",
120250	//     "region",
120251	//     "instanceGroupManager"
120252	//   ],
120253	//   "parameters": {
120254	//     "filter": {
120255	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
120256	//       "location": "query",
120257	//       "type": "string"
120258	//     },
120259	//     "instanceGroupManager": {
120260	//       "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}.",
120261	//       "location": "path",
120262	//       "required": true,
120263	//       "type": "string"
120264	//     },
120265	//     "maxResults": {
120266	//       "default": "500",
120267	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
120268	//       "format": "uint32",
120269	//       "location": "query",
120270	//       "minimum": "0",
120271	//       "type": "integer"
120272	//     },
120273	//     "orderBy": {
120274	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
120275	//       "location": "query",
120276	//       "type": "string"
120277	//     },
120278	//     "pageToken": {
120279	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120280	//       "location": "query",
120281	//       "type": "string"
120282	//     },
120283	//     "project": {
120284	//       "description": "Project ID for this request.",
120285	//       "location": "path",
120286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120287	//       "required": true,
120288	//       "type": "string"
120289	//     },
120290	//     "region": {
120291	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
120292	//       "location": "path",
120293	//       "required": true,
120294	//       "type": "string"
120295	//     }
120296	//   },
120297	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
120298	//   "response": {
120299	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
120300	//   },
120301	//   "scopes": [
120302	//     "https://www.googleapis.com/auth/cloud-platform",
120303	//     "https://www.googleapis.com/auth/compute",
120304	//     "https://www.googleapis.com/auth/compute.readonly"
120305	//   ]
120306	// }
120307
120308}
120309
120310// Pages invokes f for each page of results.
120311// A non-nil error returned from f will halt the iteration.
120312// The provided context supersedes any context provided to the Context method.
120313func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
120314	c.ctx_ = ctx
120315	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120316	for {
120317		x, err := c.Do()
120318		if err != nil {
120319			return err
120320		}
120321		if err := f(x); err != nil {
120322			return err
120323		}
120324		if x.NextPageToken == "" {
120325			return nil
120326		}
120327		c.PageToken(x.NextPageToken)
120328	}
120329}
120330
120331// method id "compute.regionInstanceGroupManagers.listManagedInstances":
120332
120333type RegionInstanceGroupManagersListManagedInstancesCall struct {
120334	s                    *Service
120335	project              string
120336	region               string
120337	instanceGroupManager string
120338	urlParams_           gensupport.URLParams
120339	ctx_                 context.Context
120340	header_              http.Header
120341}
120342
120343// ListManagedInstances: Lists the instances in the managed instance
120344// group and instances that are scheduled to be created. The list
120345// includes any current actions that the group has scheduled for its
120346// instances. The orderBy query parameter is not supported.
120347func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
120348	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120349	c.project = project
120350	c.region = region
120351	c.instanceGroupManager = instanceGroupManager
120352	return c
120353}
120354
120355// Filter sets the optional parameter "filter": A filter expression that
120356// filters resources listed in the response. The expression must specify
120357// the field name, a comparison operator, and the value that you want to
120358// use for filtering. The value must be a string, a number, or a
120359// boolean. The comparison operator must be either `=`, `!=`, `>`, or
120360// `<`.
120361//
120362// For example, if you are filtering Compute Engine instances, you can
120363// exclude instances named `example-instance` by specifying `name !=
120364// example-instance`.
120365//
120366// You can also filter nested fields. For example, you could specify
120367// `scheduling.automaticRestart = false` to include instances only if
120368// they are not scheduled for automatic restarts. You can use filtering
120369// on nested fields to filter based on resource labels.
120370//
120371// To filter on multiple expressions, provide each separate expression
120372// within parentheses. For example: ``` (scheduling.automaticRestart =
120373// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
120374// is an `AND` expression. However, you can include `AND` and `OR`
120375// expressions explicitly. For example: ``` (cpuPlatform = "Intel
120376// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
120377// (scheduling.automaticRestart = true) ```
120378func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
120379	c.urlParams_.Set("filter", filter)
120380	return c
120381}
120382
120383// MaxResults sets the optional parameter "maxResults": The maximum
120384// number of results per page that should be returned. If the number of
120385// available results is larger than `maxResults`, Compute Engine returns
120386// a `nextPageToken` that can be used to get the next page of results in
120387// subsequent list requests. Acceptable values are `0` to `500`,
120388// inclusive. (Default: `500`)
120389func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
120390	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120391	return c
120392}
120393
120394// OrderBy sets the optional parameter "orderBy": Sorts list results by
120395// a certain order. By default, results are returned in alphanumerical
120396// order based on the resource name.
120397//
120398// You can also sort results in descending order based on the creation
120399// timestamp using `orderBy="creationTimestamp desc". This sorts
120400// results based on the `creationTimestamp` field in reverse
120401// chronological order (newest result first). Use this to sort resources
120402// like operations so that the newest operation is returned
120403// first.
120404//
120405// Currently, only sorting by `name` or `creationTimestamp desc` is
120406// supported.
120407func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
120408	c.urlParams_.Set("orderBy", orderBy)
120409	return c
120410}
120411
120412// PageToken sets the optional parameter "pageToken": Specifies a page
120413// token to use. Set `pageToken` to the `nextPageToken` returned by a
120414// previous list request to get the next page of results.
120415func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
120416	c.urlParams_.Set("pageToken", pageToken)
120417	return c
120418}
120419
120420// Fields allows partial responses to be retrieved. See
120421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120422// for more information.
120423func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
120424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120425	return c
120426}
120427
120428// Context sets the context to be used in this call's Do method. Any
120429// pending HTTP request will be aborted if the provided context is
120430// canceled.
120431func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
120432	c.ctx_ = ctx
120433	return c
120434}
120435
120436// Header returns an http.Header that can be modified by the caller to
120437// add HTTP headers to the request.
120438func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
120439	if c.header_ == nil {
120440		c.header_ = make(http.Header)
120441	}
120442	return c.header_
120443}
120444
120445func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
120446	reqHeaders := make(http.Header)
120447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120448	for k, v := range c.header_ {
120449		reqHeaders[k] = v
120450	}
120451	reqHeaders.Set("User-Agent", c.s.userAgent())
120452	var body io.Reader = nil
120453	c.urlParams_.Set("alt", alt)
120454	c.urlParams_.Set("prettyPrint", "false")
120455	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
120456	urls += "?" + c.urlParams_.Encode()
120457	req, err := http.NewRequest("POST", urls, body)
120458	if err != nil {
120459		return nil, err
120460	}
120461	req.Header = reqHeaders
120462	googleapi.Expand(req.URL, map[string]string{
120463		"project":              c.project,
120464		"region":               c.region,
120465		"instanceGroupManager": c.instanceGroupManager,
120466	})
120467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120468}
120469
120470// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
120471// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
120472// error will be non-nil. Any non-2xx status code is an error. Response
120473// headers are in either
120474// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
120475// r or (if a response was returned at all) in
120476// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
120477// whether the returned error was because http.StatusNotModified was
120478// returned.
120479func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
120480	gensupport.SetOptions(c.urlParams_, opts...)
120481	res, err := c.doRequest("json")
120482	if res != nil && res.StatusCode == http.StatusNotModified {
120483		if res.Body != nil {
120484			res.Body.Close()
120485		}
120486		return nil, &googleapi.Error{
120487			Code:   res.StatusCode,
120488			Header: res.Header,
120489		}
120490	}
120491	if err != nil {
120492		return nil, err
120493	}
120494	defer googleapi.CloseBody(res)
120495	if err := googleapi.CheckResponse(res); err != nil {
120496		return nil, err
120497	}
120498	ret := &RegionInstanceGroupManagersListInstancesResponse{
120499		ServerResponse: googleapi.ServerResponse{
120500			Header:         res.Header,
120501			HTTPStatusCode: res.StatusCode,
120502		},
120503	}
120504	target := &ret
120505	if err := gensupport.DecodeResponse(target, res); err != nil {
120506		return nil, err
120507	}
120508	return ret, nil
120509	// {
120510	//   "description": "Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported.",
120511	//   "httpMethod": "POST",
120512	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
120513	//   "parameterOrder": [
120514	//     "project",
120515	//     "region",
120516	//     "instanceGroupManager"
120517	//   ],
120518	//   "parameters": {
120519	//     "filter": {
120520	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
120521	//       "location": "query",
120522	//       "type": "string"
120523	//     },
120524	//     "instanceGroupManager": {
120525	//       "description": "The name of the managed instance group.",
120526	//       "location": "path",
120527	//       "required": true,
120528	//       "type": "string"
120529	//     },
120530	//     "maxResults": {
120531	//       "default": "500",
120532	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
120533	//       "format": "uint32",
120534	//       "location": "query",
120535	//       "minimum": "0",
120536	//       "type": "integer"
120537	//     },
120538	//     "orderBy": {
120539	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
120540	//       "location": "query",
120541	//       "type": "string"
120542	//     },
120543	//     "pageToken": {
120544	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120545	//       "location": "query",
120546	//       "type": "string"
120547	//     },
120548	//     "project": {
120549	//       "description": "Project ID for this request.",
120550	//       "location": "path",
120551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120552	//       "required": true,
120553	//       "type": "string"
120554	//     },
120555	//     "region": {
120556	//       "description": "Name of the region scoping this request.",
120557	//       "location": "path",
120558	//       "required": true,
120559	//       "type": "string"
120560	//     }
120561	//   },
120562	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
120563	//   "response": {
120564	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
120565	//   },
120566	//   "scopes": [
120567	//     "https://www.googleapis.com/auth/cloud-platform",
120568	//     "https://www.googleapis.com/auth/compute",
120569	//     "https://www.googleapis.com/auth/compute.readonly"
120570	//   ]
120571	// }
120572
120573}
120574
120575// Pages invokes f for each page of results.
120576// A non-nil error returned from f will halt the iteration.
120577// The provided context supersedes any context provided to the Context method.
120578func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
120579	c.ctx_ = ctx
120580	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120581	for {
120582		x, err := c.Do()
120583		if err != nil {
120584			return err
120585		}
120586		if err := f(x); err != nil {
120587			return err
120588		}
120589		if x.NextPageToken == "" {
120590			return nil
120591		}
120592		c.PageToken(x.NextPageToken)
120593	}
120594}
120595
120596// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
120597
120598type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
120599	s                    *Service
120600	project              string
120601	region               string
120602	instanceGroupManager string
120603	urlParams_           gensupport.URLParams
120604	ctx_                 context.Context
120605	header_              http.Header
120606}
120607
120608// ListPerInstanceConfigs: Lists all of the per-instance configs defined
120609// for the managed instance group. The orderBy query parameter is not
120610// supported.
120611func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
120612	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120613	c.project = project
120614	c.region = region
120615	c.instanceGroupManager = instanceGroupManager
120616	return c
120617}
120618
120619// Filter sets the optional parameter "filter": A filter expression that
120620// filters resources listed in the response. The expression must specify
120621// the field name, a comparison operator, and the value that you want to
120622// use for filtering. The value must be a string, a number, or a
120623// boolean. The comparison operator must be either `=`, `!=`, `>`, or
120624// `<`.
120625//
120626// For example, if you are filtering Compute Engine instances, you can
120627// exclude instances named `example-instance` by specifying `name !=
120628// example-instance`.
120629//
120630// You can also filter nested fields. For example, you could specify
120631// `scheduling.automaticRestart = false` to include instances only if
120632// they are not scheduled for automatic restarts. You can use filtering
120633// on nested fields to filter based on resource labels.
120634//
120635// To filter on multiple expressions, provide each separate expression
120636// within parentheses. For example: ``` (scheduling.automaticRestart =
120637// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
120638// is an `AND` expression. However, you can include `AND` and `OR`
120639// expressions explicitly. For example: ``` (cpuPlatform = "Intel
120640// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
120641// (scheduling.automaticRestart = true) ```
120642func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
120643	c.urlParams_.Set("filter", filter)
120644	return c
120645}
120646
120647// MaxResults sets the optional parameter "maxResults": The maximum
120648// number of results per page that should be returned. If the number of
120649// available results is larger than `maxResults`, Compute Engine returns
120650// a `nextPageToken` that can be used to get the next page of results in
120651// subsequent list requests. Acceptable values are `0` to `500`,
120652// inclusive. (Default: `500`)
120653func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
120654	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120655	return c
120656}
120657
120658// OrderBy sets the optional parameter "orderBy": Sorts list results by
120659// a certain order. By default, results are returned in alphanumerical
120660// order based on the resource name.
120661//
120662// You can also sort results in descending order based on the creation
120663// timestamp using `orderBy="creationTimestamp desc". This sorts
120664// results based on the `creationTimestamp` field in reverse
120665// chronological order (newest result first). Use this to sort resources
120666// like operations so that the newest operation is returned
120667// first.
120668//
120669// Currently, only sorting by `name` or `creationTimestamp desc` is
120670// supported.
120671func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
120672	c.urlParams_.Set("orderBy", orderBy)
120673	return c
120674}
120675
120676// PageToken sets the optional parameter "pageToken": Specifies a page
120677// token to use. Set `pageToken` to the `nextPageToken` returned by a
120678// previous list request to get the next page of results.
120679func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
120680	c.urlParams_.Set("pageToken", pageToken)
120681	return c
120682}
120683
120684// Fields allows partial responses to be retrieved. See
120685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120686// for more information.
120687func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
120688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120689	return c
120690}
120691
120692// Context sets the context to be used in this call's Do method. Any
120693// pending HTTP request will be aborted if the provided context is
120694// canceled.
120695func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
120696	c.ctx_ = ctx
120697	return c
120698}
120699
120700// Header returns an http.Header that can be modified by the caller to
120701// add HTTP headers to the request.
120702func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
120703	if c.header_ == nil {
120704		c.header_ = make(http.Header)
120705	}
120706	return c.header_
120707}
120708
120709func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
120710	reqHeaders := make(http.Header)
120711	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120712	for k, v := range c.header_ {
120713		reqHeaders[k] = v
120714	}
120715	reqHeaders.Set("User-Agent", c.s.userAgent())
120716	var body io.Reader = nil
120717	c.urlParams_.Set("alt", alt)
120718	c.urlParams_.Set("prettyPrint", "false")
120719	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
120720	urls += "?" + c.urlParams_.Encode()
120721	req, err := http.NewRequest("POST", urls, body)
120722	if err != nil {
120723		return nil, err
120724	}
120725	req.Header = reqHeaders
120726	googleapi.Expand(req.URL, map[string]string{
120727		"project":              c.project,
120728		"region":               c.region,
120729		"instanceGroupManager": c.instanceGroupManager,
120730	})
120731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120732}
120733
120734// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
120735// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
120736// error will be non-nil. Any non-2xx status code is an error. Response
120737// headers are in either
120738// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
120739// der or (if a response was returned at all) in
120740// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
120741// whether the returned error was because http.StatusNotModified was
120742// returned.
120743func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
120744	gensupport.SetOptions(c.urlParams_, opts...)
120745	res, err := c.doRequest("json")
120746	if res != nil && res.StatusCode == http.StatusNotModified {
120747		if res.Body != nil {
120748			res.Body.Close()
120749		}
120750		return nil, &googleapi.Error{
120751			Code:   res.StatusCode,
120752			Header: res.Header,
120753		}
120754	}
120755	if err != nil {
120756		return nil, err
120757	}
120758	defer googleapi.CloseBody(res)
120759	if err := googleapi.CheckResponse(res); err != nil {
120760		return nil, err
120761	}
120762	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
120763		ServerResponse: googleapi.ServerResponse{
120764			Header:         res.Header,
120765			HTTPStatusCode: res.StatusCode,
120766		},
120767	}
120768	target := &ret
120769	if err := gensupport.DecodeResponse(target, res); err != nil {
120770		return nil, err
120771	}
120772	return ret, nil
120773	// {
120774	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
120775	//   "httpMethod": "POST",
120776	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
120777	//   "parameterOrder": [
120778	//     "project",
120779	//     "region",
120780	//     "instanceGroupManager"
120781	//   ],
120782	//   "parameters": {
120783	//     "filter": {
120784	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
120785	//       "location": "query",
120786	//       "type": "string"
120787	//     },
120788	//     "instanceGroupManager": {
120789	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
120790	//       "location": "path",
120791	//       "required": true,
120792	//       "type": "string"
120793	//     },
120794	//     "maxResults": {
120795	//       "default": "500",
120796	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
120797	//       "format": "uint32",
120798	//       "location": "query",
120799	//       "minimum": "0",
120800	//       "type": "integer"
120801	//     },
120802	//     "orderBy": {
120803	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
120804	//       "location": "query",
120805	//       "type": "string"
120806	//     },
120807	//     "pageToken": {
120808	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
120809	//       "location": "query",
120810	//       "type": "string"
120811	//     },
120812	//     "project": {
120813	//       "description": "Project ID for this request.",
120814	//       "location": "path",
120815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120816	//       "required": true,
120817	//       "type": "string"
120818	//     },
120819	//     "region": {
120820	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
120821	//       "location": "path",
120822	//       "required": true,
120823	//       "type": "string"
120824	//     }
120825	//   },
120826	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
120827	//   "response": {
120828	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
120829	//   },
120830	//   "scopes": [
120831	//     "https://www.googleapis.com/auth/cloud-platform",
120832	//     "https://www.googleapis.com/auth/compute",
120833	//     "https://www.googleapis.com/auth/compute.readonly"
120834	//   ]
120835	// }
120836
120837}
120838
120839// Pages invokes f for each page of results.
120840// A non-nil error returned from f will halt the iteration.
120841// The provided context supersedes any context provided to the Context method.
120842func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
120843	c.ctx_ = ctx
120844	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120845	for {
120846		x, err := c.Do()
120847		if err != nil {
120848			return err
120849		}
120850		if err := f(x); err != nil {
120851			return err
120852		}
120853		if x.NextPageToken == "" {
120854			return nil
120855		}
120856		c.PageToken(x.NextPageToken)
120857	}
120858}
120859
120860// method id "compute.regionInstanceGroupManagers.patch":
120861
120862type RegionInstanceGroupManagersPatchCall struct {
120863	s                    *Service
120864	project              string
120865	region               string
120866	instanceGroupManager string
120867	instancegroupmanager *InstanceGroupManager
120868	urlParams_           gensupport.URLParams
120869	ctx_                 context.Context
120870	header_              http.Header
120871}
120872
120873// Patch: Updates a managed instance group using the information that
120874// you specify in the request. This operation is marked as DONE when the
120875// group is patched even if the instances in the group are still in the
120876// process of being patched. You must separately verify the status of
120877// the individual instances with the listmanagedinstances method. This
120878// method supports PATCH semantics and uses the JSON merge patch format
120879// and processing rules.
120880func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
120881	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120882	c.project = project
120883	c.region = region
120884	c.instanceGroupManager = instanceGroupManager
120885	c.instancegroupmanager = instancegroupmanager
120886	return c
120887}
120888
120889// RequestId sets the optional parameter "requestId": An optional
120890// request ID to identify requests. Specify a unique request ID so that
120891// if you must retry your request, the server will know to ignore the
120892// request if it has already been completed.
120893//
120894// For example, consider a situation where you make an initial request
120895// and the request times out. If you make the request again with the
120896// same request ID, the server can check if original operation with the
120897// same request ID was received, and if so, will ignore the second
120898// request. This prevents clients from accidentally creating duplicate
120899// commitments.
120900//
120901// The request ID must be a valid UUID with the exception that zero UUID
120902// is not supported (00000000-0000-0000-0000-000000000000).
120903func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
120904	c.urlParams_.Set("requestId", requestId)
120905	return c
120906}
120907
120908// Fields allows partial responses to be retrieved. See
120909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120910// for more information.
120911func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
120912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120913	return c
120914}
120915
120916// Context sets the context to be used in this call's Do method. Any
120917// pending HTTP request will be aborted if the provided context is
120918// canceled.
120919func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
120920	c.ctx_ = ctx
120921	return c
120922}
120923
120924// Header returns an http.Header that can be modified by the caller to
120925// add HTTP headers to the request.
120926func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
120927	if c.header_ == nil {
120928		c.header_ = make(http.Header)
120929	}
120930	return c.header_
120931}
120932
120933func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
120934	reqHeaders := make(http.Header)
120935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
120936	for k, v := range c.header_ {
120937		reqHeaders[k] = v
120938	}
120939	reqHeaders.Set("User-Agent", c.s.userAgent())
120940	var body io.Reader = nil
120941	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
120942	if err != nil {
120943		return nil, err
120944	}
120945	reqHeaders.Set("Content-Type", "application/json")
120946	c.urlParams_.Set("alt", alt)
120947	c.urlParams_.Set("prettyPrint", "false")
120948	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
120949	urls += "?" + c.urlParams_.Encode()
120950	req, err := http.NewRequest("PATCH", urls, body)
120951	if err != nil {
120952		return nil, err
120953	}
120954	req.Header = reqHeaders
120955	googleapi.Expand(req.URL, map[string]string{
120956		"project":              c.project,
120957		"region":               c.region,
120958		"instanceGroupManager": c.instanceGroupManager,
120959	})
120960	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120961}
120962
120963// Do executes the "compute.regionInstanceGroupManagers.patch" call.
120964// Exactly one of *Operation or error will be non-nil. Any non-2xx
120965// status code is an error. Response headers are in either
120966// *Operation.ServerResponse.Header or (if a response was returned at
120967// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120968// to check whether the returned error was because
120969// http.StatusNotModified was returned.
120970func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120971	gensupport.SetOptions(c.urlParams_, opts...)
120972	res, err := c.doRequest("json")
120973	if res != nil && res.StatusCode == http.StatusNotModified {
120974		if res.Body != nil {
120975			res.Body.Close()
120976		}
120977		return nil, &googleapi.Error{
120978			Code:   res.StatusCode,
120979			Header: res.Header,
120980		}
120981	}
120982	if err != nil {
120983		return nil, err
120984	}
120985	defer googleapi.CloseBody(res)
120986	if err := googleapi.CheckResponse(res); err != nil {
120987		return nil, err
120988	}
120989	ret := &Operation{
120990		ServerResponse: googleapi.ServerResponse{
120991			Header:         res.Header,
120992			HTTPStatusCode: res.StatusCode,
120993		},
120994	}
120995	target := &ret
120996	if err := gensupport.DecodeResponse(target, res); err != nil {
120997		return nil, err
120998	}
120999	return ret, nil
121000	// {
121001	//   "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.",
121002	//   "httpMethod": "PATCH",
121003	//   "id": "compute.regionInstanceGroupManagers.patch",
121004	//   "parameterOrder": [
121005	//     "project",
121006	//     "region",
121007	//     "instanceGroupManager"
121008	//   ],
121009	//   "parameters": {
121010	//     "instanceGroupManager": {
121011	//       "description": "The name of the instance group manager.",
121012	//       "location": "path",
121013	//       "required": true,
121014	//       "type": "string"
121015	//     },
121016	//     "project": {
121017	//       "description": "Project ID for this request.",
121018	//       "location": "path",
121019	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121020	//       "required": true,
121021	//       "type": "string"
121022	//     },
121023	//     "region": {
121024	//       "description": "Name of the region scoping this request.",
121025	//       "location": "path",
121026	//       "required": true,
121027	//       "type": "string"
121028	//     },
121029	//     "requestId": {
121030	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121031	//       "location": "query",
121032	//       "type": "string"
121033	//     }
121034	//   },
121035	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
121036	//   "request": {
121037	//     "$ref": "InstanceGroupManager"
121038	//   },
121039	//   "response": {
121040	//     "$ref": "Operation"
121041	//   },
121042	//   "scopes": [
121043	//     "https://www.googleapis.com/auth/cloud-platform",
121044	//     "https://www.googleapis.com/auth/compute"
121045	//   ]
121046	// }
121047
121048}
121049
121050// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
121051
121052type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
121053	s                                                *Service
121054	project                                          string
121055	region                                           string
121056	instanceGroupManager                             string
121057	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
121058	urlParams_                                       gensupport.URLParams
121059	ctx_                                             context.Context
121060	header_                                          http.Header
121061}
121062
121063// PatchPerInstanceConfigs: Insert or patch (for the ones that already
121064// exist) per-instance configs for the managed instance group.
121065// perInstanceConfig.instance serves as a key used to distinguish
121066// whether to perform insert or patch.
121067func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
121068	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121069	c.project = project
121070	c.region = region
121071	c.instanceGroupManager = instanceGroupManager
121072	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
121073	return c
121074}
121075
121076// RequestId sets the optional parameter "requestId": An optional
121077// request ID to identify requests. Specify a unique request ID so that
121078// if you must retry your request, the server will know to ignore the
121079// request if it has already been completed.
121080//
121081// For example, consider a situation where you make an initial request
121082// and the request times out. If you make the request again with the
121083// same request ID, the server can check if original operation with the
121084// same request ID was received, and if so, will ignore the second
121085// request. This prevents clients from accidentally creating duplicate
121086// commitments.
121087//
121088// The request ID must be a valid UUID with the exception that zero UUID
121089// is not supported (00000000-0000-0000-0000-000000000000).
121090func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
121091	c.urlParams_.Set("requestId", requestId)
121092	return c
121093}
121094
121095// Fields allows partial responses to be retrieved. See
121096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121097// for more information.
121098func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
121099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121100	return c
121101}
121102
121103// Context sets the context to be used in this call's Do method. Any
121104// pending HTTP request will be aborted if the provided context is
121105// canceled.
121106func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
121107	c.ctx_ = ctx
121108	return c
121109}
121110
121111// Header returns an http.Header that can be modified by the caller to
121112// add HTTP headers to the request.
121113func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
121114	if c.header_ == nil {
121115		c.header_ = make(http.Header)
121116	}
121117	return c.header_
121118}
121119
121120func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
121121	reqHeaders := make(http.Header)
121122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121123	for k, v := range c.header_ {
121124		reqHeaders[k] = v
121125	}
121126	reqHeaders.Set("User-Agent", c.s.userAgent())
121127	var body io.Reader = nil
121128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
121129	if err != nil {
121130		return nil, err
121131	}
121132	reqHeaders.Set("Content-Type", "application/json")
121133	c.urlParams_.Set("alt", alt)
121134	c.urlParams_.Set("prettyPrint", "false")
121135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
121136	urls += "?" + c.urlParams_.Encode()
121137	req, err := http.NewRequest("POST", urls, body)
121138	if err != nil {
121139		return nil, err
121140	}
121141	req.Header = reqHeaders
121142	googleapi.Expand(req.URL, map[string]string{
121143		"project":              c.project,
121144		"region":               c.region,
121145		"instanceGroupManager": c.instanceGroupManager,
121146	})
121147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121148}
121149
121150// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
121151// Exactly one of *Operation or error will be non-nil. Any non-2xx
121152// status code is an error. Response headers are in either
121153// *Operation.ServerResponse.Header or (if a response was returned at
121154// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121155// to check whether the returned error was because
121156// http.StatusNotModified was returned.
121157func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121158	gensupport.SetOptions(c.urlParams_, opts...)
121159	res, err := c.doRequest("json")
121160	if res != nil && res.StatusCode == http.StatusNotModified {
121161		if res.Body != nil {
121162			res.Body.Close()
121163		}
121164		return nil, &googleapi.Error{
121165			Code:   res.StatusCode,
121166			Header: res.Header,
121167		}
121168	}
121169	if err != nil {
121170		return nil, err
121171	}
121172	defer googleapi.CloseBody(res)
121173	if err := googleapi.CheckResponse(res); err != nil {
121174		return nil, err
121175	}
121176	ret := &Operation{
121177		ServerResponse: googleapi.ServerResponse{
121178			Header:         res.Header,
121179			HTTPStatusCode: res.StatusCode,
121180		},
121181	}
121182	target := &ret
121183	if err := gensupport.DecodeResponse(target, res); err != nil {
121184		return nil, err
121185	}
121186	return ret, nil
121187	// {
121188	//   "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.",
121189	//   "httpMethod": "POST",
121190	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
121191	//   "parameterOrder": [
121192	//     "project",
121193	//     "region",
121194	//     "instanceGroupManager"
121195	//   ],
121196	//   "parameters": {
121197	//     "instanceGroupManager": {
121198	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
121199	//       "location": "path",
121200	//       "required": true,
121201	//       "type": "string"
121202	//     },
121203	//     "project": {
121204	//       "description": "Project ID for this request.",
121205	//       "location": "path",
121206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121207	//       "required": true,
121208	//       "type": "string"
121209	//     },
121210	//     "region": {
121211	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
121212	//       "location": "path",
121213	//       "required": true,
121214	//       "type": "string"
121215	//     },
121216	//     "requestId": {
121217	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121218	//       "location": "query",
121219	//       "type": "string"
121220	//     }
121221	//   },
121222	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
121223	//   "request": {
121224	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
121225	//   },
121226	//   "response": {
121227	//     "$ref": "Operation"
121228	//   },
121229	//   "scopes": [
121230	//     "https://www.googleapis.com/auth/cloud-platform",
121231	//     "https://www.googleapis.com/auth/compute"
121232	//   ]
121233	// }
121234
121235}
121236
121237// method id "compute.regionInstanceGroupManagers.recreateInstances":
121238
121239type RegionInstanceGroupManagersRecreateInstancesCall struct {
121240	s                                          *Service
121241	project                                    string
121242	region                                     string
121243	instanceGroupManager                       string
121244	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
121245	urlParams_                                 gensupport.URLParams
121246	ctx_                                       context.Context
121247	header_                                    http.Header
121248}
121249
121250// RecreateInstances: Flags the specified instances in the managed
121251// instance group to be immediately recreated. The instances are deleted
121252// and recreated using the current instance template for the managed
121253// instance group. This operation is marked as DONE when the flag is set
121254// even if the instances have not yet been recreated. You must
121255// separately verify the status of the recreating action with the
121256// listmanagedinstances method.
121257//
121258// If the group is part of a backend service that has enabled connection
121259// draining, it can take up to 60 seconds after the connection draining
121260// duration has elapsed before the VM instance is removed or
121261// deleted.
121262//
121263// You can specify a maximum of 1000 instances with this method per
121264// request.
121265func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
121266	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121267	c.project = project
121268	c.region = region
121269	c.instanceGroupManager = instanceGroupManager
121270	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
121271	return c
121272}
121273
121274// RequestId sets the optional parameter "requestId": An optional
121275// request ID to identify requests. Specify a unique request ID so that
121276// if you must retry your request, the server will know to ignore the
121277// request if it has already been completed.
121278//
121279// For example, consider a situation where you make an initial request
121280// and the request times out. If you make the request again with the
121281// same request ID, the server can check if original operation with the
121282// same request ID was received, and if so, will ignore the second
121283// request. This prevents clients from accidentally creating duplicate
121284// commitments.
121285//
121286// The request ID must be a valid UUID with the exception that zero UUID
121287// is not supported (00000000-0000-0000-0000-000000000000).
121288func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
121289	c.urlParams_.Set("requestId", requestId)
121290	return c
121291}
121292
121293// Fields allows partial responses to be retrieved. See
121294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121295// for more information.
121296func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
121297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121298	return c
121299}
121300
121301// Context sets the context to be used in this call's Do method. Any
121302// pending HTTP request will be aborted if the provided context is
121303// canceled.
121304func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
121305	c.ctx_ = ctx
121306	return c
121307}
121308
121309// Header returns an http.Header that can be modified by the caller to
121310// add HTTP headers to the request.
121311func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
121312	if c.header_ == nil {
121313		c.header_ = make(http.Header)
121314	}
121315	return c.header_
121316}
121317
121318func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
121319	reqHeaders := make(http.Header)
121320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121321	for k, v := range c.header_ {
121322		reqHeaders[k] = v
121323	}
121324	reqHeaders.Set("User-Agent", c.s.userAgent())
121325	var body io.Reader = nil
121326	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
121327	if err != nil {
121328		return nil, err
121329	}
121330	reqHeaders.Set("Content-Type", "application/json")
121331	c.urlParams_.Set("alt", alt)
121332	c.urlParams_.Set("prettyPrint", "false")
121333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
121334	urls += "?" + c.urlParams_.Encode()
121335	req, err := http.NewRequest("POST", urls, body)
121336	if err != nil {
121337		return nil, err
121338	}
121339	req.Header = reqHeaders
121340	googleapi.Expand(req.URL, map[string]string{
121341		"project":              c.project,
121342		"region":               c.region,
121343		"instanceGroupManager": c.instanceGroupManager,
121344	})
121345	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121346}
121347
121348// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
121349// Exactly one of *Operation or error will be non-nil. Any non-2xx
121350// status code is an error. Response headers are in either
121351// *Operation.ServerResponse.Header or (if a response was returned at
121352// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121353// to check whether the returned error was because
121354// http.StatusNotModified was returned.
121355func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121356	gensupport.SetOptions(c.urlParams_, opts...)
121357	res, err := c.doRequest("json")
121358	if res != nil && res.StatusCode == http.StatusNotModified {
121359		if res.Body != nil {
121360			res.Body.Close()
121361		}
121362		return nil, &googleapi.Error{
121363			Code:   res.StatusCode,
121364			Header: res.Header,
121365		}
121366	}
121367	if err != nil {
121368		return nil, err
121369	}
121370	defer googleapi.CloseBody(res)
121371	if err := googleapi.CheckResponse(res); err != nil {
121372		return nil, err
121373	}
121374	ret := &Operation{
121375		ServerResponse: googleapi.ServerResponse{
121376			Header:         res.Header,
121377			HTTPStatusCode: res.StatusCode,
121378		},
121379	}
121380	target := &ret
121381	if err := gensupport.DecodeResponse(target, res); err != nil {
121382		return nil, err
121383	}
121384	return ret, nil
121385	// {
121386	//   "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.",
121387	//   "httpMethod": "POST",
121388	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
121389	//   "parameterOrder": [
121390	//     "project",
121391	//     "region",
121392	//     "instanceGroupManager"
121393	//   ],
121394	//   "parameters": {
121395	//     "instanceGroupManager": {
121396	//       "description": "Name of the managed instance group.",
121397	//       "location": "path",
121398	//       "required": true,
121399	//       "type": "string"
121400	//     },
121401	//     "project": {
121402	//       "description": "Project ID for this request.",
121403	//       "location": "path",
121404	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121405	//       "required": true,
121406	//       "type": "string"
121407	//     },
121408	//     "region": {
121409	//       "description": "Name of the region scoping this request.",
121410	//       "location": "path",
121411	//       "required": true,
121412	//       "type": "string"
121413	//     },
121414	//     "requestId": {
121415	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121416	//       "location": "query",
121417	//       "type": "string"
121418	//     }
121419	//   },
121420	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
121421	//   "request": {
121422	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
121423	//   },
121424	//   "response": {
121425	//     "$ref": "Operation"
121426	//   },
121427	//   "scopes": [
121428	//     "https://www.googleapis.com/auth/cloud-platform",
121429	//     "https://www.googleapis.com/auth/compute"
121430	//   ]
121431	// }
121432
121433}
121434
121435// method id "compute.regionInstanceGroupManagers.resize":
121436
121437type RegionInstanceGroupManagersResizeCall struct {
121438	s                    *Service
121439	project              string
121440	region               string
121441	instanceGroupManager string
121442	urlParams_           gensupport.URLParams
121443	ctx_                 context.Context
121444	header_              http.Header
121445}
121446
121447// Resize: Changes the intended size of the managed instance group. If
121448// you increase the size, the group creates new instances using the
121449// current instance template. If you decrease the size, the group
121450// deletes one or more instances.
121451//
121452// The resize operation is marked DONE if the resize request is
121453// successful. The underlying actions take additional time. You must
121454// separately verify the status of the creating or deleting actions with
121455// the listmanagedinstances method.
121456//
121457// If the group is part of a backend service that has enabled connection
121458// draining, it can take up to 60 seconds after the connection draining
121459// duration has elapsed before the VM instance is removed or deleted.
121460func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
121461	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121462	c.project = project
121463	c.region = region
121464	c.instanceGroupManager = instanceGroupManager
121465	c.urlParams_.Set("size", fmt.Sprint(size))
121466	return c
121467}
121468
121469// RequestId sets the optional parameter "requestId": An optional
121470// request ID to identify requests. Specify a unique request ID so that
121471// if you must retry your request, the server will know to ignore the
121472// request if it has already been completed.
121473//
121474// For example, consider a situation where you make an initial request
121475// and the request times out. If you make the request again with the
121476// same request ID, the server can check if original operation with the
121477// same request ID was received, and if so, will ignore the second
121478// request. This prevents clients from accidentally creating duplicate
121479// commitments.
121480//
121481// The request ID must be a valid UUID with the exception that zero UUID
121482// is not supported (00000000-0000-0000-0000-000000000000).
121483func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
121484	c.urlParams_.Set("requestId", requestId)
121485	return c
121486}
121487
121488// Fields allows partial responses to be retrieved. See
121489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121490// for more information.
121491func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
121492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121493	return c
121494}
121495
121496// Context sets the context to be used in this call's Do method. Any
121497// pending HTTP request will be aborted if the provided context is
121498// canceled.
121499func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
121500	c.ctx_ = ctx
121501	return c
121502}
121503
121504// Header returns an http.Header that can be modified by the caller to
121505// add HTTP headers to the request.
121506func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
121507	if c.header_ == nil {
121508		c.header_ = make(http.Header)
121509	}
121510	return c.header_
121511}
121512
121513func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
121514	reqHeaders := make(http.Header)
121515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121516	for k, v := range c.header_ {
121517		reqHeaders[k] = v
121518	}
121519	reqHeaders.Set("User-Agent", c.s.userAgent())
121520	var body io.Reader = nil
121521	c.urlParams_.Set("alt", alt)
121522	c.urlParams_.Set("prettyPrint", "false")
121523	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
121524	urls += "?" + c.urlParams_.Encode()
121525	req, err := http.NewRequest("POST", urls, body)
121526	if err != nil {
121527		return nil, err
121528	}
121529	req.Header = reqHeaders
121530	googleapi.Expand(req.URL, map[string]string{
121531		"project":              c.project,
121532		"region":               c.region,
121533		"instanceGroupManager": c.instanceGroupManager,
121534	})
121535	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121536}
121537
121538// Do executes the "compute.regionInstanceGroupManagers.resize" call.
121539// Exactly one of *Operation or error will be non-nil. Any non-2xx
121540// status code is an error. Response headers are in either
121541// *Operation.ServerResponse.Header or (if a response was returned at
121542// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121543// to check whether the returned error was because
121544// http.StatusNotModified was returned.
121545func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121546	gensupport.SetOptions(c.urlParams_, opts...)
121547	res, err := c.doRequest("json")
121548	if res != nil && res.StatusCode == http.StatusNotModified {
121549		if res.Body != nil {
121550			res.Body.Close()
121551		}
121552		return nil, &googleapi.Error{
121553			Code:   res.StatusCode,
121554			Header: res.Header,
121555		}
121556	}
121557	if err != nil {
121558		return nil, err
121559	}
121560	defer googleapi.CloseBody(res)
121561	if err := googleapi.CheckResponse(res); err != nil {
121562		return nil, err
121563	}
121564	ret := &Operation{
121565		ServerResponse: googleapi.ServerResponse{
121566			Header:         res.Header,
121567			HTTPStatusCode: res.StatusCode,
121568		},
121569	}
121570	target := &ret
121571	if err := gensupport.DecodeResponse(target, res); err != nil {
121572		return nil, err
121573	}
121574	return ret, nil
121575	// {
121576	//   "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.",
121577	//   "httpMethod": "POST",
121578	//   "id": "compute.regionInstanceGroupManagers.resize",
121579	//   "parameterOrder": [
121580	//     "project",
121581	//     "region",
121582	//     "instanceGroupManager",
121583	//     "size"
121584	//   ],
121585	//   "parameters": {
121586	//     "instanceGroupManager": {
121587	//       "description": "Name of the managed instance group.",
121588	//       "location": "path",
121589	//       "required": true,
121590	//       "type": "string"
121591	//     },
121592	//     "project": {
121593	//       "description": "Project ID for this request.",
121594	//       "location": "path",
121595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121596	//       "required": true,
121597	//       "type": "string"
121598	//     },
121599	//     "region": {
121600	//       "description": "Name of the region scoping this request.",
121601	//       "location": "path",
121602	//       "required": true,
121603	//       "type": "string"
121604	//     },
121605	//     "requestId": {
121606	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121607	//       "location": "query",
121608	//       "type": "string"
121609	//     },
121610	//     "size": {
121611	//       "description": "Number of instances that should exist in this instance group manager.",
121612	//       "format": "int32",
121613	//       "location": "query",
121614	//       "minimum": "0",
121615	//       "required": true,
121616	//       "type": "integer"
121617	//     }
121618	//   },
121619	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
121620	//   "response": {
121621	//     "$ref": "Operation"
121622	//   },
121623	//   "scopes": [
121624	//     "https://www.googleapis.com/auth/cloud-platform",
121625	//     "https://www.googleapis.com/auth/compute"
121626	//   ]
121627	// }
121628
121629}
121630
121631// method id "compute.regionInstanceGroupManagers.setAutoHealingPolicies":
121632
121633type RegionInstanceGroupManagersSetAutoHealingPoliciesCall struct {
121634	s                                                *Service
121635	project                                          string
121636	region                                           string
121637	instanceGroupManager                             string
121638	regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest
121639	urlParams_                                       gensupport.URLParams
121640	ctx_                                             context.Context
121641	header_                                          http.Header
121642}
121643
121644// SetAutoHealingPolicies: Modifies the autohealing policy for the
121645// instances in this managed instance group. [Deprecated] This method is
121646// deprecated. Please use Patch instead.
121647func (r *RegionInstanceGroupManagersService) SetAutoHealingPolicies(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
121648	c := &RegionInstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121649	c.project = project
121650	c.region = region
121651	c.instanceGroupManager = instanceGroupManager
121652	c.regioninstancegroupmanagerssetautohealingrequest = regioninstancegroupmanagerssetautohealingrequest
121653	return c
121654}
121655
121656// RequestId sets the optional parameter "requestId": An optional
121657// request ID to identify requests. Specify a unique request ID so that
121658// if you must retry your request, the server will know to ignore the
121659// request if it has already been completed.
121660//
121661// For example, consider a situation where you make an initial request
121662// and the request times out. If you make the request again with the
121663// same request ID, the server can check if original operation with the
121664// same request ID was received, and if so, will ignore the second
121665// request. This prevents clients from accidentally creating duplicate
121666// commitments.
121667//
121668// The request ID must be a valid UUID with the exception that zero UUID
121669// is not supported (00000000-0000-0000-0000-000000000000).
121670func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
121671	c.urlParams_.Set("requestId", requestId)
121672	return c
121673}
121674
121675// Fields allows partial responses to be retrieved. See
121676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121677// for more information.
121678func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
121679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121680	return c
121681}
121682
121683// Context sets the context to be used in this call's Do method. Any
121684// pending HTTP request will be aborted if the provided context is
121685// canceled.
121686func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
121687	c.ctx_ = ctx
121688	return c
121689}
121690
121691// Header returns an http.Header that can be modified by the caller to
121692// add HTTP headers to the request.
121693func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
121694	if c.header_ == nil {
121695		c.header_ = make(http.Header)
121696	}
121697	return c.header_
121698}
121699
121700func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
121701	reqHeaders := make(http.Header)
121702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121703	for k, v := range c.header_ {
121704		reqHeaders[k] = v
121705	}
121706	reqHeaders.Set("User-Agent", c.s.userAgent())
121707	var body io.Reader = nil
121708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssetautohealingrequest)
121709	if err != nil {
121710		return nil, err
121711	}
121712	reqHeaders.Set("Content-Type", "application/json")
121713	c.urlParams_.Set("alt", alt)
121714	c.urlParams_.Set("prettyPrint", "false")
121715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
121716	urls += "?" + c.urlParams_.Encode()
121717	req, err := http.NewRequest("POST", urls, body)
121718	if err != nil {
121719		return nil, err
121720	}
121721	req.Header = reqHeaders
121722	googleapi.Expand(req.URL, map[string]string{
121723		"project":              c.project,
121724		"region":               c.region,
121725		"instanceGroupManager": c.instanceGroupManager,
121726	})
121727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121728}
121729
121730// Do executes the "compute.regionInstanceGroupManagers.setAutoHealingPolicies" call.
121731// Exactly one of *Operation or error will be non-nil. Any non-2xx
121732// status code is an error. Response headers are in either
121733// *Operation.ServerResponse.Header or (if a response was returned at
121734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121735// to check whether the returned error was because
121736// http.StatusNotModified was returned.
121737func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121738	gensupport.SetOptions(c.urlParams_, opts...)
121739	res, err := c.doRequest("json")
121740	if res != nil && res.StatusCode == http.StatusNotModified {
121741		if res.Body != nil {
121742			res.Body.Close()
121743		}
121744		return nil, &googleapi.Error{
121745			Code:   res.StatusCode,
121746			Header: res.Header,
121747		}
121748	}
121749	if err != nil {
121750		return nil, err
121751	}
121752	defer googleapi.CloseBody(res)
121753	if err := googleapi.CheckResponse(res); err != nil {
121754		return nil, err
121755	}
121756	ret := &Operation{
121757		ServerResponse: googleapi.ServerResponse{
121758			Header:         res.Header,
121759			HTTPStatusCode: res.StatusCode,
121760		},
121761	}
121762	target := &ret
121763	if err := gensupport.DecodeResponse(target, res); err != nil {
121764		return nil, err
121765	}
121766	return ret, nil
121767	// {
121768	//   "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Please use Patch instead.",
121769	//   "httpMethod": "POST",
121770	//   "id": "compute.regionInstanceGroupManagers.setAutoHealingPolicies",
121771	//   "parameterOrder": [
121772	//     "project",
121773	//     "region",
121774	//     "instanceGroupManager"
121775	//   ],
121776	//   "parameters": {
121777	//     "instanceGroupManager": {
121778	//       "description": "Name of the managed instance group.",
121779	//       "location": "path",
121780	//       "required": true,
121781	//       "type": "string"
121782	//     },
121783	//     "project": {
121784	//       "description": "Project ID for this request.",
121785	//       "location": "path",
121786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121787	//       "required": true,
121788	//       "type": "string"
121789	//     },
121790	//     "region": {
121791	//       "description": "Name of the region scoping this request.",
121792	//       "location": "path",
121793	//       "required": true,
121794	//       "type": "string"
121795	//     },
121796	//     "requestId": {
121797	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121798	//       "location": "query",
121799	//       "type": "string"
121800	//     }
121801	//   },
121802	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
121803	//   "request": {
121804	//     "$ref": "RegionInstanceGroupManagersSetAutoHealingRequest"
121805	//   },
121806	//   "response": {
121807	//     "$ref": "Operation"
121808	//   },
121809	//   "scopes": [
121810	//     "https://www.googleapis.com/auth/cloud-platform",
121811	//     "https://www.googleapis.com/auth/compute"
121812	//   ]
121813	// }
121814
121815}
121816
121817// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
121818
121819type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
121820	s                                             *Service
121821	project                                       string
121822	region                                        string
121823	instanceGroupManager                          string
121824	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
121825	urlParams_                                    gensupport.URLParams
121826	ctx_                                          context.Context
121827	header_                                       http.Header
121828}
121829
121830// SetInstanceTemplate: Sets the instance template to use when creating
121831// new instances or recreating instances in this group. Existing
121832// instances are not affected.
121833func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
121834	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121835	c.project = project
121836	c.region = region
121837	c.instanceGroupManager = instanceGroupManager
121838	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
121839	return c
121840}
121841
121842// RequestId sets the optional parameter "requestId": An optional
121843// request ID to identify requests. Specify a unique request ID so that
121844// if you must retry your request, the server will know to ignore the
121845// request if it has already been completed.
121846//
121847// For example, consider a situation where you make an initial request
121848// and the request times out. If you make the request again with the
121849// same request ID, the server can check if original operation with the
121850// same request ID was received, and if so, will ignore the second
121851// request. This prevents clients from accidentally creating duplicate
121852// commitments.
121853//
121854// The request ID must be a valid UUID with the exception that zero UUID
121855// is not supported (00000000-0000-0000-0000-000000000000).
121856func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
121857	c.urlParams_.Set("requestId", requestId)
121858	return c
121859}
121860
121861// Fields allows partial responses to be retrieved. See
121862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121863// for more information.
121864func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
121865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121866	return c
121867}
121868
121869// Context sets the context to be used in this call's Do method. Any
121870// pending HTTP request will be aborted if the provided context is
121871// canceled.
121872func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
121873	c.ctx_ = ctx
121874	return c
121875}
121876
121877// Header returns an http.Header that can be modified by the caller to
121878// add HTTP headers to the request.
121879func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
121880	if c.header_ == nil {
121881		c.header_ = make(http.Header)
121882	}
121883	return c.header_
121884}
121885
121886func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
121887	reqHeaders := make(http.Header)
121888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
121889	for k, v := range c.header_ {
121890		reqHeaders[k] = v
121891	}
121892	reqHeaders.Set("User-Agent", c.s.userAgent())
121893	var body io.Reader = nil
121894	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
121895	if err != nil {
121896		return nil, err
121897	}
121898	reqHeaders.Set("Content-Type", "application/json")
121899	c.urlParams_.Set("alt", alt)
121900	c.urlParams_.Set("prettyPrint", "false")
121901	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
121902	urls += "?" + c.urlParams_.Encode()
121903	req, err := http.NewRequest("POST", urls, body)
121904	if err != nil {
121905		return nil, err
121906	}
121907	req.Header = reqHeaders
121908	googleapi.Expand(req.URL, map[string]string{
121909		"project":              c.project,
121910		"region":               c.region,
121911		"instanceGroupManager": c.instanceGroupManager,
121912	})
121913	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121914}
121915
121916// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
121917// Exactly one of *Operation or error will be non-nil. Any non-2xx
121918// status code is an error. Response headers are in either
121919// *Operation.ServerResponse.Header or (if a response was returned at
121920// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121921// to check whether the returned error was because
121922// http.StatusNotModified was returned.
121923func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121924	gensupport.SetOptions(c.urlParams_, opts...)
121925	res, err := c.doRequest("json")
121926	if res != nil && res.StatusCode == http.StatusNotModified {
121927		if res.Body != nil {
121928			res.Body.Close()
121929		}
121930		return nil, &googleapi.Error{
121931			Code:   res.StatusCode,
121932			Header: res.Header,
121933		}
121934	}
121935	if err != nil {
121936		return nil, err
121937	}
121938	defer googleapi.CloseBody(res)
121939	if err := googleapi.CheckResponse(res); err != nil {
121940		return nil, err
121941	}
121942	ret := &Operation{
121943		ServerResponse: googleapi.ServerResponse{
121944			Header:         res.Header,
121945			HTTPStatusCode: res.StatusCode,
121946		},
121947	}
121948	target := &ret
121949	if err := gensupport.DecodeResponse(target, res); err != nil {
121950		return nil, err
121951	}
121952	return ret, nil
121953	// {
121954	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
121955	//   "httpMethod": "POST",
121956	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
121957	//   "parameterOrder": [
121958	//     "project",
121959	//     "region",
121960	//     "instanceGroupManager"
121961	//   ],
121962	//   "parameters": {
121963	//     "instanceGroupManager": {
121964	//       "description": "The name of the managed instance group.",
121965	//       "location": "path",
121966	//       "required": true,
121967	//       "type": "string"
121968	//     },
121969	//     "project": {
121970	//       "description": "Project ID for this request.",
121971	//       "location": "path",
121972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121973	//       "required": true,
121974	//       "type": "string"
121975	//     },
121976	//     "region": {
121977	//       "description": "Name of the region scoping this request.",
121978	//       "location": "path",
121979	//       "required": true,
121980	//       "type": "string"
121981	//     },
121982	//     "requestId": {
121983	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121984	//       "location": "query",
121985	//       "type": "string"
121986	//     }
121987	//   },
121988	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
121989	//   "request": {
121990	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
121991	//   },
121992	//   "response": {
121993	//     "$ref": "Operation"
121994	//   },
121995	//   "scopes": [
121996	//     "https://www.googleapis.com/auth/cloud-platform",
121997	//     "https://www.googleapis.com/auth/compute"
121998	//   ]
121999	// }
122000
122001}
122002
122003// method id "compute.regionInstanceGroupManagers.setTargetPools":
122004
122005type RegionInstanceGroupManagersSetTargetPoolsCall struct {
122006	s                                                *Service
122007	project                                          string
122008	region                                           string
122009	instanceGroupManager                             string
122010	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
122011	urlParams_                                       gensupport.URLParams
122012	ctx_                                             context.Context
122013	header_                                          http.Header
122014}
122015
122016// SetTargetPools: Modifies the target pools to which all new instances
122017// in this group are assigned. Existing instances in the group are not
122018// affected.
122019func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
122020	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122021	c.project = project
122022	c.region = region
122023	c.instanceGroupManager = instanceGroupManager
122024	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
122025	return c
122026}
122027
122028// RequestId sets the optional parameter "requestId": An optional
122029// request ID to identify requests. Specify a unique request ID so that
122030// if you must retry your request, the server will know to ignore the
122031// request if it has already been completed.
122032//
122033// For example, consider a situation where you make an initial request
122034// and the request times out. If you make the request again with the
122035// same request ID, the server can check if original operation with the
122036// same request ID was received, and if so, will ignore the second
122037// request. This prevents clients from accidentally creating duplicate
122038// commitments.
122039//
122040// The request ID must be a valid UUID with the exception that zero UUID
122041// is not supported (00000000-0000-0000-0000-000000000000).
122042func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
122043	c.urlParams_.Set("requestId", requestId)
122044	return c
122045}
122046
122047// Fields allows partial responses to be retrieved. See
122048// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122049// for more information.
122050func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
122051	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122052	return c
122053}
122054
122055// Context sets the context to be used in this call's Do method. Any
122056// pending HTTP request will be aborted if the provided context is
122057// canceled.
122058func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
122059	c.ctx_ = ctx
122060	return c
122061}
122062
122063// Header returns an http.Header that can be modified by the caller to
122064// add HTTP headers to the request.
122065func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
122066	if c.header_ == nil {
122067		c.header_ = make(http.Header)
122068	}
122069	return c.header_
122070}
122071
122072func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
122073	reqHeaders := make(http.Header)
122074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122075	for k, v := range c.header_ {
122076		reqHeaders[k] = v
122077	}
122078	reqHeaders.Set("User-Agent", c.s.userAgent())
122079	var body io.Reader = nil
122080	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
122081	if err != nil {
122082		return nil, err
122083	}
122084	reqHeaders.Set("Content-Type", "application/json")
122085	c.urlParams_.Set("alt", alt)
122086	c.urlParams_.Set("prettyPrint", "false")
122087	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
122088	urls += "?" + c.urlParams_.Encode()
122089	req, err := http.NewRequest("POST", urls, body)
122090	if err != nil {
122091		return nil, err
122092	}
122093	req.Header = reqHeaders
122094	googleapi.Expand(req.URL, map[string]string{
122095		"project":              c.project,
122096		"region":               c.region,
122097		"instanceGroupManager": c.instanceGroupManager,
122098	})
122099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122100}
122101
122102// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
122103// Exactly one of *Operation or error will be non-nil. Any non-2xx
122104// status code is an error. Response headers are in either
122105// *Operation.ServerResponse.Header or (if a response was returned at
122106// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122107// to check whether the returned error was because
122108// http.StatusNotModified was returned.
122109func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122110	gensupport.SetOptions(c.urlParams_, opts...)
122111	res, err := c.doRequest("json")
122112	if res != nil && res.StatusCode == http.StatusNotModified {
122113		if res.Body != nil {
122114			res.Body.Close()
122115		}
122116		return nil, &googleapi.Error{
122117			Code:   res.StatusCode,
122118			Header: res.Header,
122119		}
122120	}
122121	if err != nil {
122122		return nil, err
122123	}
122124	defer googleapi.CloseBody(res)
122125	if err := googleapi.CheckResponse(res); err != nil {
122126		return nil, err
122127	}
122128	ret := &Operation{
122129		ServerResponse: googleapi.ServerResponse{
122130			Header:         res.Header,
122131			HTTPStatusCode: res.StatusCode,
122132		},
122133	}
122134	target := &ret
122135	if err := gensupport.DecodeResponse(target, res); err != nil {
122136		return nil, err
122137	}
122138	return ret, nil
122139	// {
122140	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
122141	//   "httpMethod": "POST",
122142	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
122143	//   "parameterOrder": [
122144	//     "project",
122145	//     "region",
122146	//     "instanceGroupManager"
122147	//   ],
122148	//   "parameters": {
122149	//     "instanceGroupManager": {
122150	//       "description": "Name of the managed instance group.",
122151	//       "location": "path",
122152	//       "required": true,
122153	//       "type": "string"
122154	//     },
122155	//     "project": {
122156	//       "description": "Project ID for this request.",
122157	//       "location": "path",
122158	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122159	//       "required": true,
122160	//       "type": "string"
122161	//     },
122162	//     "region": {
122163	//       "description": "Name of the region scoping this request.",
122164	//       "location": "path",
122165	//       "required": true,
122166	//       "type": "string"
122167	//     },
122168	//     "requestId": {
122169	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122170	//       "location": "query",
122171	//       "type": "string"
122172	//     }
122173	//   },
122174	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
122175	//   "request": {
122176	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
122177	//   },
122178	//   "response": {
122179	//     "$ref": "Operation"
122180	//   },
122181	//   "scopes": [
122182	//     "https://www.googleapis.com/auth/cloud-platform",
122183	//     "https://www.googleapis.com/auth/compute"
122184	//   ]
122185	// }
122186
122187}
122188
122189// method id "compute.regionInstanceGroupManagers.testIamPermissions":
122190
122191type RegionInstanceGroupManagersTestIamPermissionsCall struct {
122192	s                      *Service
122193	project                string
122194	region                 string
122195	resource               string
122196	testpermissionsrequest *TestPermissionsRequest
122197	urlParams_             gensupport.URLParams
122198	ctx_                   context.Context
122199	header_                http.Header
122200}
122201
122202// TestIamPermissions: Returns permissions that a caller has on the
122203// specified resource.
122204func (r *RegionInstanceGroupManagersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupManagersTestIamPermissionsCall {
122205	c := &RegionInstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122206	c.project = project
122207	c.region = region
122208	c.resource = resource
122209	c.testpermissionsrequest = testpermissionsrequest
122210	return c
122211}
122212
122213// Fields allows partial responses to be retrieved. See
122214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122215// for more information.
122216func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersTestIamPermissionsCall {
122217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122218	return c
122219}
122220
122221// Context sets the context to be used in this call's Do method. Any
122222// pending HTTP request will be aborted if the provided context is
122223// canceled.
122224func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupManagersTestIamPermissionsCall {
122225	c.ctx_ = ctx
122226	return c
122227}
122228
122229// Header returns an http.Header that can be modified by the caller to
122230// add HTTP headers to the request.
122231func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
122232	if c.header_ == nil {
122233		c.header_ = make(http.Header)
122234	}
122235	return c.header_
122236}
122237
122238func (c *RegionInstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
122239	reqHeaders := make(http.Header)
122240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122241	for k, v := range c.header_ {
122242		reqHeaders[k] = v
122243	}
122244	reqHeaders.Set("User-Agent", c.s.userAgent())
122245	var body io.Reader = nil
122246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
122247	if err != nil {
122248		return nil, err
122249	}
122250	reqHeaders.Set("Content-Type", "application/json")
122251	c.urlParams_.Set("alt", alt)
122252	c.urlParams_.Set("prettyPrint", "false")
122253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions")
122254	urls += "?" + c.urlParams_.Encode()
122255	req, err := http.NewRequest("POST", urls, body)
122256	if err != nil {
122257		return nil, err
122258	}
122259	req.Header = reqHeaders
122260	googleapi.Expand(req.URL, map[string]string{
122261		"project":  c.project,
122262		"region":   c.region,
122263		"resource": c.resource,
122264	})
122265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122266}
122267
122268// Do executes the "compute.regionInstanceGroupManagers.testIamPermissions" call.
122269// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
122270// non-2xx status code is an error. Response headers are in either
122271// *TestPermissionsResponse.ServerResponse.Header or (if a response was
122272// returned at all) in error.(*googleapi.Error).Header. Use
122273// googleapi.IsNotModified to check whether the returned error was
122274// because http.StatusNotModified was returned.
122275func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
122276	gensupport.SetOptions(c.urlParams_, opts...)
122277	res, err := c.doRequest("json")
122278	if res != nil && res.StatusCode == http.StatusNotModified {
122279		if res.Body != nil {
122280			res.Body.Close()
122281		}
122282		return nil, &googleapi.Error{
122283			Code:   res.StatusCode,
122284			Header: res.Header,
122285		}
122286	}
122287	if err != nil {
122288		return nil, err
122289	}
122290	defer googleapi.CloseBody(res)
122291	if err := googleapi.CheckResponse(res); err != nil {
122292		return nil, err
122293	}
122294	ret := &TestPermissionsResponse{
122295		ServerResponse: googleapi.ServerResponse{
122296			Header:         res.Header,
122297			HTTPStatusCode: res.StatusCode,
122298		},
122299	}
122300	target := &ret
122301	if err := gensupport.DecodeResponse(target, res); err != nil {
122302		return nil, err
122303	}
122304	return ret, nil
122305	// {
122306	//   "description": "Returns permissions that a caller has on the specified resource.",
122307	//   "httpMethod": "POST",
122308	//   "id": "compute.regionInstanceGroupManagers.testIamPermissions",
122309	//   "parameterOrder": [
122310	//     "project",
122311	//     "region",
122312	//     "resource"
122313	//   ],
122314	//   "parameters": {
122315	//     "project": {
122316	//       "description": "Project ID for this request.",
122317	//       "location": "path",
122318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122319	//       "required": true,
122320	//       "type": "string"
122321	//     },
122322	//     "region": {
122323	//       "description": "The name of the region for this request.",
122324	//       "location": "path",
122325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122326	//       "required": true,
122327	//       "type": "string"
122328	//     },
122329	//     "resource": {
122330	//       "description": "Name or id of the resource for this request.",
122331	//       "location": "path",
122332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122333	//       "required": true,
122334	//       "type": "string"
122335	//     }
122336	//   },
122337	//   "path": "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions",
122338	//   "request": {
122339	//     "$ref": "TestPermissionsRequest"
122340	//   },
122341	//   "response": {
122342	//     "$ref": "TestPermissionsResponse"
122343	//   },
122344	//   "scopes": [
122345	//     "https://www.googleapis.com/auth/cloud-platform",
122346	//     "https://www.googleapis.com/auth/compute",
122347	//     "https://www.googleapis.com/auth/compute.readonly"
122348	//   ]
122349	// }
122350
122351}
122352
122353// method id "compute.regionInstanceGroupManagers.update":
122354
122355type RegionInstanceGroupManagersUpdateCall struct {
122356	s                    *Service
122357	project              string
122358	region               string
122359	instanceGroupManager string
122360	instancegroupmanager *InstanceGroupManager
122361	urlParams_           gensupport.URLParams
122362	ctx_                 context.Context
122363	header_              http.Header
122364}
122365
122366// Update: Updates a managed instance group using the information that
122367// you specify in the request. This operation is marked as DONE when the
122368// group is updated even if the instances in the group have not yet been
122369// updated. You must separately verify the status of the individual
122370// instances with the listmanagedinstances method.
122371func (r *RegionInstanceGroupManagersService) Update(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersUpdateCall {
122372	c := &RegionInstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122373	c.project = project
122374	c.region = region
122375	c.instanceGroupManager = instanceGroupManager
122376	c.instancegroupmanager = instancegroupmanager
122377	return c
122378}
122379
122380// RequestId sets the optional parameter "requestId": An optional
122381// request ID to identify requests. Specify a unique request ID so that
122382// if you must retry your request, the server will know to ignore the
122383// request if it has already been completed.
122384//
122385// For example, consider a situation where you make an initial request
122386// and the request times out. If you make the request again with the
122387// same request ID, the server can check if original operation with the
122388// same request ID was received, and if so, will ignore the second
122389// request. This prevents clients from accidentally creating duplicate
122390// commitments.
122391//
122392// The request ID must be a valid UUID with the exception that zero UUID
122393// is not supported (00000000-0000-0000-0000-000000000000).
122394func (c *RegionInstanceGroupManagersUpdateCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdateCall {
122395	c.urlParams_.Set("requestId", requestId)
122396	return c
122397}
122398
122399// Fields allows partial responses to be retrieved. See
122400// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122401// for more information.
122402func (c *RegionInstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdateCall {
122403	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122404	return c
122405}
122406
122407// Context sets the context to be used in this call's Do method. Any
122408// pending HTTP request will be aborted if the provided context is
122409// canceled.
122410func (c *RegionInstanceGroupManagersUpdateCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdateCall {
122411	c.ctx_ = ctx
122412	return c
122413}
122414
122415// Header returns an http.Header that can be modified by the caller to
122416// add HTTP headers to the request.
122417func (c *RegionInstanceGroupManagersUpdateCall) Header() http.Header {
122418	if c.header_ == nil {
122419		c.header_ = make(http.Header)
122420	}
122421	return c.header_
122422}
122423
122424func (c *RegionInstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
122425	reqHeaders := make(http.Header)
122426	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122427	for k, v := range c.header_ {
122428		reqHeaders[k] = v
122429	}
122430	reqHeaders.Set("User-Agent", c.s.userAgent())
122431	var body io.Reader = nil
122432	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
122433	if err != nil {
122434		return nil, err
122435	}
122436	reqHeaders.Set("Content-Type", "application/json")
122437	c.urlParams_.Set("alt", alt)
122438	c.urlParams_.Set("prettyPrint", "false")
122439	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
122440	urls += "?" + c.urlParams_.Encode()
122441	req, err := http.NewRequest("PUT", urls, body)
122442	if err != nil {
122443		return nil, err
122444	}
122445	req.Header = reqHeaders
122446	googleapi.Expand(req.URL, map[string]string{
122447		"project":              c.project,
122448		"region":               c.region,
122449		"instanceGroupManager": c.instanceGroupManager,
122450	})
122451	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122452}
122453
122454// Do executes the "compute.regionInstanceGroupManagers.update" call.
122455// Exactly one of *Operation or error will be non-nil. Any non-2xx
122456// status code is an error. Response headers are in either
122457// *Operation.ServerResponse.Header or (if a response was returned at
122458// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122459// to check whether the returned error was because
122460// http.StatusNotModified was returned.
122461func (c *RegionInstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122462	gensupport.SetOptions(c.urlParams_, opts...)
122463	res, err := c.doRequest("json")
122464	if res != nil && res.StatusCode == http.StatusNotModified {
122465		if res.Body != nil {
122466			res.Body.Close()
122467		}
122468		return nil, &googleapi.Error{
122469			Code:   res.StatusCode,
122470			Header: res.Header,
122471		}
122472	}
122473	if err != nil {
122474		return nil, err
122475	}
122476	defer googleapi.CloseBody(res)
122477	if err := googleapi.CheckResponse(res); err != nil {
122478		return nil, err
122479	}
122480	ret := &Operation{
122481		ServerResponse: googleapi.ServerResponse{
122482			Header:         res.Header,
122483			HTTPStatusCode: res.StatusCode,
122484		},
122485	}
122486	target := &ret
122487	if err := gensupport.DecodeResponse(target, res); err != nil {
122488		return nil, err
122489	}
122490	return ret, nil
122491	// {
122492	//   "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.",
122493	//   "httpMethod": "PUT",
122494	//   "id": "compute.regionInstanceGroupManagers.update",
122495	//   "parameterOrder": [
122496	//     "project",
122497	//     "region",
122498	//     "instanceGroupManager"
122499	//   ],
122500	//   "parameters": {
122501	//     "instanceGroupManager": {
122502	//       "description": "The name of the instance group manager.",
122503	//       "location": "path",
122504	//       "required": true,
122505	//       "type": "string"
122506	//     },
122507	//     "project": {
122508	//       "description": "Project ID for this request.",
122509	//       "location": "path",
122510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122511	//       "required": true,
122512	//       "type": "string"
122513	//     },
122514	//     "region": {
122515	//       "description": "Name of the region scoping this request.",
122516	//       "location": "path",
122517	//       "required": true,
122518	//       "type": "string"
122519	//     },
122520	//     "requestId": {
122521	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122522	//       "location": "query",
122523	//       "type": "string"
122524	//     }
122525	//   },
122526	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
122527	//   "request": {
122528	//     "$ref": "InstanceGroupManager"
122529	//   },
122530	//   "response": {
122531	//     "$ref": "Operation"
122532	//   },
122533	//   "scopes": [
122534	//     "https://www.googleapis.com/auth/cloud-platform",
122535	//     "https://www.googleapis.com/auth/compute"
122536	//   ]
122537	// }
122538
122539}
122540
122541// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
122542
122543type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
122544	s                                                 *Service
122545	project                                           string
122546	region                                            string
122547	instanceGroupManager                              string
122548	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
122549	urlParams_                                        gensupport.URLParams
122550	ctx_                                              context.Context
122551	header_                                           http.Header
122552}
122553
122554// UpdatePerInstanceConfigs: Insert or update (for the ones that already
122555// exist) per-instance configs for the managed instance group.
122556// perInstanceConfig.instance serves as a key used to distinguish
122557// whether to perform insert or patch.
122558func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
122559	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122560	c.project = project
122561	c.region = region
122562	c.instanceGroupManager = instanceGroupManager
122563	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
122564	return c
122565}
122566
122567// RequestId sets the optional parameter "requestId": An optional
122568// request ID to identify requests. Specify a unique request ID so that
122569// if you must retry your request, the server will know to ignore the
122570// request if it has already been completed.
122571//
122572// For example, consider a situation where you make an initial request
122573// and the request times out. If you make the request again with the
122574// same request ID, the server can check if original operation with the
122575// same request ID was received, and if so, will ignore the second
122576// request. This prevents clients from accidentally creating duplicate
122577// commitments.
122578//
122579// The request ID must be a valid UUID with the exception that zero UUID
122580// is not supported (00000000-0000-0000-0000-000000000000).
122581func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
122582	c.urlParams_.Set("requestId", requestId)
122583	return c
122584}
122585
122586// Fields allows partial responses to be retrieved. See
122587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122588// for more information.
122589func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
122590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122591	return c
122592}
122593
122594// Context sets the context to be used in this call's Do method. Any
122595// pending HTTP request will be aborted if the provided context is
122596// canceled.
122597func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
122598	c.ctx_ = ctx
122599	return c
122600}
122601
122602// Header returns an http.Header that can be modified by the caller to
122603// add HTTP headers to the request.
122604func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
122605	if c.header_ == nil {
122606		c.header_ = make(http.Header)
122607	}
122608	return c.header_
122609}
122610
122611func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
122612	reqHeaders := make(http.Header)
122613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122614	for k, v := range c.header_ {
122615		reqHeaders[k] = v
122616	}
122617	reqHeaders.Set("User-Agent", c.s.userAgent())
122618	var body io.Reader = nil
122619	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
122620	if err != nil {
122621		return nil, err
122622	}
122623	reqHeaders.Set("Content-Type", "application/json")
122624	c.urlParams_.Set("alt", alt)
122625	c.urlParams_.Set("prettyPrint", "false")
122626	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
122627	urls += "?" + c.urlParams_.Encode()
122628	req, err := http.NewRequest("POST", urls, body)
122629	if err != nil {
122630		return nil, err
122631	}
122632	req.Header = reqHeaders
122633	googleapi.Expand(req.URL, map[string]string{
122634		"project":              c.project,
122635		"region":               c.region,
122636		"instanceGroupManager": c.instanceGroupManager,
122637	})
122638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122639}
122640
122641// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
122642// Exactly one of *Operation or error will be non-nil. Any non-2xx
122643// status code is an error. Response headers are in either
122644// *Operation.ServerResponse.Header or (if a response was returned at
122645// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122646// to check whether the returned error was because
122647// http.StatusNotModified was returned.
122648func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122649	gensupport.SetOptions(c.urlParams_, opts...)
122650	res, err := c.doRequest("json")
122651	if res != nil && res.StatusCode == http.StatusNotModified {
122652		if res.Body != nil {
122653			res.Body.Close()
122654		}
122655		return nil, &googleapi.Error{
122656			Code:   res.StatusCode,
122657			Header: res.Header,
122658		}
122659	}
122660	if err != nil {
122661		return nil, err
122662	}
122663	defer googleapi.CloseBody(res)
122664	if err := googleapi.CheckResponse(res); err != nil {
122665		return nil, err
122666	}
122667	ret := &Operation{
122668		ServerResponse: googleapi.ServerResponse{
122669			Header:         res.Header,
122670			HTTPStatusCode: res.StatusCode,
122671		},
122672	}
122673	target := &ret
122674	if err := gensupport.DecodeResponse(target, res); err != nil {
122675		return nil, err
122676	}
122677	return ret, nil
122678	// {
122679	//   "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.",
122680	//   "httpMethod": "POST",
122681	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
122682	//   "parameterOrder": [
122683	//     "project",
122684	//     "region",
122685	//     "instanceGroupManager"
122686	//   ],
122687	//   "parameters": {
122688	//     "instanceGroupManager": {
122689	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
122690	//       "location": "path",
122691	//       "required": true,
122692	//       "type": "string"
122693	//     },
122694	//     "project": {
122695	//       "description": "Project ID for this request.",
122696	//       "location": "path",
122697	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122698	//       "required": true,
122699	//       "type": "string"
122700	//     },
122701	//     "region": {
122702	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
122703	//       "location": "path",
122704	//       "required": true,
122705	//       "type": "string"
122706	//     },
122707	//     "requestId": {
122708	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122709	//       "location": "query",
122710	//       "type": "string"
122711	//     }
122712	//   },
122713	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
122714	//   "request": {
122715	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
122716	//   },
122717	//   "response": {
122718	//     "$ref": "Operation"
122719	//   },
122720	//   "scopes": [
122721	//     "https://www.googleapis.com/auth/cloud-platform",
122722	//     "https://www.googleapis.com/auth/compute"
122723	//   ]
122724	// }
122725
122726}
122727
122728// method id "compute.regionInstanceGroups.get":
122729
122730type RegionInstanceGroupsGetCall struct {
122731	s             *Service
122732	project       string
122733	region        string
122734	instanceGroup string
122735	urlParams_    gensupport.URLParams
122736	ifNoneMatch_  string
122737	ctx_          context.Context
122738	header_       http.Header
122739}
122740
122741// Get: Returns the specified instance group resource.
122742func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
122743	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122744	c.project = project
122745	c.region = region
122746	c.instanceGroup = instanceGroup
122747	return c
122748}
122749
122750// Fields allows partial responses to be retrieved. See
122751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122752// for more information.
122753func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
122754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122755	return c
122756}
122757
122758// IfNoneMatch sets the optional parameter which makes the operation
122759// fail if the object's ETag matches the given value. This is useful for
122760// getting updates only after the object has changed since the last
122761// request. Use googleapi.IsNotModified to check whether the response
122762// error from Do is the result of In-None-Match.
122763func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
122764	c.ifNoneMatch_ = entityTag
122765	return c
122766}
122767
122768// Context sets the context to be used in this call's Do method. Any
122769// pending HTTP request will be aborted if the provided context is
122770// canceled.
122771func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
122772	c.ctx_ = ctx
122773	return c
122774}
122775
122776// Header returns an http.Header that can be modified by the caller to
122777// add HTTP headers to the request.
122778func (c *RegionInstanceGroupsGetCall) Header() http.Header {
122779	if c.header_ == nil {
122780		c.header_ = make(http.Header)
122781	}
122782	return c.header_
122783}
122784
122785func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
122786	reqHeaders := make(http.Header)
122787	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
122788	for k, v := range c.header_ {
122789		reqHeaders[k] = v
122790	}
122791	reqHeaders.Set("User-Agent", c.s.userAgent())
122792	if c.ifNoneMatch_ != "" {
122793		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122794	}
122795	var body io.Reader = nil
122796	c.urlParams_.Set("alt", alt)
122797	c.urlParams_.Set("prettyPrint", "false")
122798	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
122799	urls += "?" + c.urlParams_.Encode()
122800	req, err := http.NewRequest("GET", urls, body)
122801	if err != nil {
122802		return nil, err
122803	}
122804	req.Header = reqHeaders
122805	googleapi.Expand(req.URL, map[string]string{
122806		"project":       c.project,
122807		"region":        c.region,
122808		"instanceGroup": c.instanceGroup,
122809	})
122810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122811}
122812
122813// Do executes the "compute.regionInstanceGroups.get" call.
122814// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
122815// status code is an error. Response headers are in either
122816// *InstanceGroup.ServerResponse.Header or (if a response was returned
122817// at all) in error.(*googleapi.Error).Header. Use
122818// googleapi.IsNotModified to check whether the returned error was
122819// because http.StatusNotModified was returned.
122820func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
122821	gensupport.SetOptions(c.urlParams_, opts...)
122822	res, err := c.doRequest("json")
122823	if res != nil && res.StatusCode == http.StatusNotModified {
122824		if res.Body != nil {
122825			res.Body.Close()
122826		}
122827		return nil, &googleapi.Error{
122828			Code:   res.StatusCode,
122829			Header: res.Header,
122830		}
122831	}
122832	if err != nil {
122833		return nil, err
122834	}
122835	defer googleapi.CloseBody(res)
122836	if err := googleapi.CheckResponse(res); err != nil {
122837		return nil, err
122838	}
122839	ret := &InstanceGroup{
122840		ServerResponse: googleapi.ServerResponse{
122841			Header:         res.Header,
122842			HTTPStatusCode: res.StatusCode,
122843		},
122844	}
122845	target := &ret
122846	if err := gensupport.DecodeResponse(target, res); err != nil {
122847		return nil, err
122848	}
122849	return ret, nil
122850	// {
122851	//   "description": "Returns the specified instance group resource.",
122852	//   "httpMethod": "GET",
122853	//   "id": "compute.regionInstanceGroups.get",
122854	//   "parameterOrder": [
122855	//     "project",
122856	//     "region",
122857	//     "instanceGroup"
122858	//   ],
122859	//   "parameters": {
122860	//     "instanceGroup": {
122861	//       "description": "Name of the instance group resource to return.",
122862	//       "location": "path",
122863	//       "required": true,
122864	//       "type": "string"
122865	//     },
122866	//     "project": {
122867	//       "description": "Project ID for this request.",
122868	//       "location": "path",
122869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122870	//       "required": true,
122871	//       "type": "string"
122872	//     },
122873	//     "region": {
122874	//       "description": "Name of the region scoping this request.",
122875	//       "location": "path",
122876	//       "required": true,
122877	//       "type": "string"
122878	//     }
122879	//   },
122880	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
122881	//   "response": {
122882	//     "$ref": "InstanceGroup"
122883	//   },
122884	//   "scopes": [
122885	//     "https://www.googleapis.com/auth/cloud-platform",
122886	//     "https://www.googleapis.com/auth/compute",
122887	//     "https://www.googleapis.com/auth/compute.readonly"
122888	//   ]
122889	// }
122890
122891}
122892
122893// method id "compute.regionInstanceGroups.list":
122894
122895type RegionInstanceGroupsListCall struct {
122896	s            *Service
122897	project      string
122898	region       string
122899	urlParams_   gensupport.URLParams
122900	ifNoneMatch_ string
122901	ctx_         context.Context
122902	header_      http.Header
122903}
122904
122905// List: Retrieves the list of instance group resources contained within
122906// the specified region.
122907func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
122908	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122909	c.project = project
122910	c.region = region
122911	return c
122912}
122913
122914// Filter sets the optional parameter "filter": A filter expression that
122915// filters resources listed in the response. The expression must specify
122916// the field name, a comparison operator, and the value that you want to
122917// use for filtering. The value must be a string, a number, or a
122918// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122919// `<`.
122920//
122921// For example, if you are filtering Compute Engine instances, you can
122922// exclude instances named `example-instance` by specifying `name !=
122923// example-instance`.
122924//
122925// You can also filter nested fields. For example, you could specify
122926// `scheduling.automaticRestart = false` to include instances only if
122927// they are not scheduled for automatic restarts. You can use filtering
122928// on nested fields to filter based on resource labels.
122929//
122930// To filter on multiple expressions, provide each separate expression
122931// within parentheses. For example: ``` (scheduling.automaticRestart =
122932// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122933// is an `AND` expression. However, you can include `AND` and `OR`
122934// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122935// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122936// (scheduling.automaticRestart = true) ```
122937func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
122938	c.urlParams_.Set("filter", filter)
122939	return c
122940}
122941
122942// MaxResults sets the optional parameter "maxResults": The maximum
122943// number of results per page that should be returned. If the number of
122944// available results is larger than `maxResults`, Compute Engine returns
122945// a `nextPageToken` that can be used to get the next page of results in
122946// subsequent list requests. Acceptable values are `0` to `500`,
122947// inclusive. (Default: `500`)
122948func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
122949	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122950	return c
122951}
122952
122953// OrderBy sets the optional parameter "orderBy": Sorts list results by
122954// a certain order. By default, results are returned in alphanumerical
122955// order based on the resource name.
122956//
122957// You can also sort results in descending order based on the creation
122958// timestamp using `orderBy="creationTimestamp desc". This sorts
122959// results based on the `creationTimestamp` field in reverse
122960// chronological order (newest result first). Use this to sort resources
122961// like operations so that the newest operation is returned
122962// first.
122963//
122964// Currently, only sorting by `name` or `creationTimestamp desc` is
122965// supported.
122966func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
122967	c.urlParams_.Set("orderBy", orderBy)
122968	return c
122969}
122970
122971// PageToken sets the optional parameter "pageToken": Specifies a page
122972// token to use. Set `pageToken` to the `nextPageToken` returned by a
122973// previous list request to get the next page of results.
122974func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
122975	c.urlParams_.Set("pageToken", pageToken)
122976	return c
122977}
122978
122979// Fields allows partial responses to be retrieved. See
122980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122981// for more information.
122982func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
122983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122984	return c
122985}
122986
122987// IfNoneMatch sets the optional parameter which makes the operation
122988// fail if the object's ETag matches the given value. This is useful for
122989// getting updates only after the object has changed since the last
122990// request. Use googleapi.IsNotModified to check whether the response
122991// error from Do is the result of In-None-Match.
122992func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
122993	c.ifNoneMatch_ = entityTag
122994	return c
122995}
122996
122997// Context sets the context to be used in this call's Do method. Any
122998// pending HTTP request will be aborted if the provided context is
122999// canceled.
123000func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
123001	c.ctx_ = ctx
123002	return c
123003}
123004
123005// Header returns an http.Header that can be modified by the caller to
123006// add HTTP headers to the request.
123007func (c *RegionInstanceGroupsListCall) Header() http.Header {
123008	if c.header_ == nil {
123009		c.header_ = make(http.Header)
123010	}
123011	return c.header_
123012}
123013
123014func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
123015	reqHeaders := make(http.Header)
123016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123017	for k, v := range c.header_ {
123018		reqHeaders[k] = v
123019	}
123020	reqHeaders.Set("User-Agent", c.s.userAgent())
123021	if c.ifNoneMatch_ != "" {
123022		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123023	}
123024	var body io.Reader = nil
123025	c.urlParams_.Set("alt", alt)
123026	c.urlParams_.Set("prettyPrint", "false")
123027	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
123028	urls += "?" + c.urlParams_.Encode()
123029	req, err := http.NewRequest("GET", urls, body)
123030	if err != nil {
123031		return nil, err
123032	}
123033	req.Header = reqHeaders
123034	googleapi.Expand(req.URL, map[string]string{
123035		"project": c.project,
123036		"region":  c.region,
123037	})
123038	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123039}
123040
123041// Do executes the "compute.regionInstanceGroups.list" call.
123042// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
123043// non-2xx status code is an error. Response headers are in either
123044// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
123045// returned at all) in error.(*googleapi.Error).Header. Use
123046// googleapi.IsNotModified to check whether the returned error was
123047// because http.StatusNotModified was returned.
123048func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
123049	gensupport.SetOptions(c.urlParams_, opts...)
123050	res, err := c.doRequest("json")
123051	if res != nil && res.StatusCode == http.StatusNotModified {
123052		if res.Body != nil {
123053			res.Body.Close()
123054		}
123055		return nil, &googleapi.Error{
123056			Code:   res.StatusCode,
123057			Header: res.Header,
123058		}
123059	}
123060	if err != nil {
123061		return nil, err
123062	}
123063	defer googleapi.CloseBody(res)
123064	if err := googleapi.CheckResponse(res); err != nil {
123065		return nil, err
123066	}
123067	ret := &RegionInstanceGroupList{
123068		ServerResponse: googleapi.ServerResponse{
123069			Header:         res.Header,
123070			HTTPStatusCode: res.StatusCode,
123071		},
123072	}
123073	target := &ret
123074	if err := gensupport.DecodeResponse(target, res); err != nil {
123075		return nil, err
123076	}
123077	return ret, nil
123078	// {
123079	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
123080	//   "httpMethod": "GET",
123081	//   "id": "compute.regionInstanceGroups.list",
123082	//   "parameterOrder": [
123083	//     "project",
123084	//     "region"
123085	//   ],
123086	//   "parameters": {
123087	//     "filter": {
123088	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
123089	//       "location": "query",
123090	//       "type": "string"
123091	//     },
123092	//     "maxResults": {
123093	//       "default": "500",
123094	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
123095	//       "format": "uint32",
123096	//       "location": "query",
123097	//       "minimum": "0",
123098	//       "type": "integer"
123099	//     },
123100	//     "orderBy": {
123101	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
123102	//       "location": "query",
123103	//       "type": "string"
123104	//     },
123105	//     "pageToken": {
123106	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
123107	//       "location": "query",
123108	//       "type": "string"
123109	//     },
123110	//     "project": {
123111	//       "description": "Project ID for this request.",
123112	//       "location": "path",
123113	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123114	//       "required": true,
123115	//       "type": "string"
123116	//     },
123117	//     "region": {
123118	//       "description": "Name of the region scoping this request.",
123119	//       "location": "path",
123120	//       "required": true,
123121	//       "type": "string"
123122	//     }
123123	//   },
123124	//   "path": "{project}/regions/{region}/instanceGroups",
123125	//   "response": {
123126	//     "$ref": "RegionInstanceGroupList"
123127	//   },
123128	//   "scopes": [
123129	//     "https://www.googleapis.com/auth/cloud-platform",
123130	//     "https://www.googleapis.com/auth/compute",
123131	//     "https://www.googleapis.com/auth/compute.readonly"
123132	//   ]
123133	// }
123134
123135}
123136
123137// Pages invokes f for each page of results.
123138// A non-nil error returned from f will halt the iteration.
123139// The provided context supersedes any context provided to the Context method.
123140func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
123141	c.ctx_ = ctx
123142	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123143	for {
123144		x, err := c.Do()
123145		if err != nil {
123146			return err
123147		}
123148		if err := f(x); err != nil {
123149			return err
123150		}
123151		if x.NextPageToken == "" {
123152			return nil
123153		}
123154		c.PageToken(x.NextPageToken)
123155	}
123156}
123157
123158// method id "compute.regionInstanceGroups.listInstances":
123159
123160type RegionInstanceGroupsListInstancesCall struct {
123161	s                                        *Service
123162	project                                  string
123163	region                                   string
123164	instanceGroup                            string
123165	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
123166	urlParams_                               gensupport.URLParams
123167	ctx_                                     context.Context
123168	header_                                  http.Header
123169}
123170
123171// ListInstances: Lists the instances in the specified instance group
123172// and displays information about the named ports. Depending on the
123173// specified options, this method can list all instances or only the
123174// instances that are running. The orderBy query parameter is not
123175// supported.
123176func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
123177	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123178	c.project = project
123179	c.region = region
123180	c.instanceGroup = instanceGroup
123181	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
123182	return c
123183}
123184
123185// Filter sets the optional parameter "filter": A filter expression that
123186// filters resources listed in the response. The expression must specify
123187// the field name, a comparison operator, and the value that you want to
123188// use for filtering. The value must be a string, a number, or a
123189// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123190// `<`.
123191//
123192// For example, if you are filtering Compute Engine instances, you can
123193// exclude instances named `example-instance` by specifying `name !=
123194// example-instance`.
123195//
123196// You can also filter nested fields. For example, you could specify
123197// `scheduling.automaticRestart = false` to include instances only if
123198// they are not scheduled for automatic restarts. You can use filtering
123199// on nested fields to filter based on resource labels.
123200//
123201// To filter on multiple expressions, provide each separate expression
123202// within parentheses. For example: ``` (scheduling.automaticRestart =
123203// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
123204// is an `AND` expression. However, you can include `AND` and `OR`
123205// expressions explicitly. For example: ``` (cpuPlatform = "Intel
123206// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
123207// (scheduling.automaticRestart = true) ```
123208func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
123209	c.urlParams_.Set("filter", filter)
123210	return c
123211}
123212
123213// MaxResults sets the optional parameter "maxResults": The maximum
123214// number of results per page that should be returned. If the number of
123215// available results is larger than `maxResults`, Compute Engine returns
123216// a `nextPageToken` that can be used to get the next page of results in
123217// subsequent list requests. Acceptable values are `0` to `500`,
123218// inclusive. (Default: `500`)
123219func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
123220	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123221	return c
123222}
123223
123224// OrderBy sets the optional parameter "orderBy": Sorts list results by
123225// a certain order. By default, results are returned in alphanumerical
123226// order based on the resource name.
123227//
123228// You can also sort results in descending order based on the creation
123229// timestamp using `orderBy="creationTimestamp desc". This sorts
123230// results based on the `creationTimestamp` field in reverse
123231// chronological order (newest result first). Use this to sort resources
123232// like operations so that the newest operation is returned
123233// first.
123234//
123235// Currently, only sorting by `name` or `creationTimestamp desc` is
123236// supported.
123237func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
123238	c.urlParams_.Set("orderBy", orderBy)
123239	return c
123240}
123241
123242// PageToken sets the optional parameter "pageToken": Specifies a page
123243// token to use. Set `pageToken` to the `nextPageToken` returned by a
123244// previous list request to get the next page of results.
123245func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
123246	c.urlParams_.Set("pageToken", pageToken)
123247	return c
123248}
123249
123250// Fields allows partial responses to be retrieved. See
123251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123252// for more information.
123253func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
123254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123255	return c
123256}
123257
123258// Context sets the context to be used in this call's Do method. Any
123259// pending HTTP request will be aborted if the provided context is
123260// canceled.
123261func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
123262	c.ctx_ = ctx
123263	return c
123264}
123265
123266// Header returns an http.Header that can be modified by the caller to
123267// add HTTP headers to the request.
123268func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
123269	if c.header_ == nil {
123270		c.header_ = make(http.Header)
123271	}
123272	return c.header_
123273}
123274
123275func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
123276	reqHeaders := make(http.Header)
123277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123278	for k, v := range c.header_ {
123279		reqHeaders[k] = v
123280	}
123281	reqHeaders.Set("User-Agent", c.s.userAgent())
123282	var body io.Reader = nil
123283	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
123284	if err != nil {
123285		return nil, err
123286	}
123287	reqHeaders.Set("Content-Type", "application/json")
123288	c.urlParams_.Set("alt", alt)
123289	c.urlParams_.Set("prettyPrint", "false")
123290	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
123291	urls += "?" + c.urlParams_.Encode()
123292	req, err := http.NewRequest("POST", urls, body)
123293	if err != nil {
123294		return nil, err
123295	}
123296	req.Header = reqHeaders
123297	googleapi.Expand(req.URL, map[string]string{
123298		"project":       c.project,
123299		"region":        c.region,
123300		"instanceGroup": c.instanceGroup,
123301	})
123302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123303}
123304
123305// Do executes the "compute.regionInstanceGroups.listInstances" call.
123306// Exactly one of *RegionInstanceGroupsListInstances or error will be
123307// non-nil. Any non-2xx status code is an error. Response headers are in
123308// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
123309// (if a response was returned at all) in
123310// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
123311// whether the returned error was because http.StatusNotModified was
123312// returned.
123313func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
123314	gensupport.SetOptions(c.urlParams_, opts...)
123315	res, err := c.doRequest("json")
123316	if res != nil && res.StatusCode == http.StatusNotModified {
123317		if res.Body != nil {
123318			res.Body.Close()
123319		}
123320		return nil, &googleapi.Error{
123321			Code:   res.StatusCode,
123322			Header: res.Header,
123323		}
123324	}
123325	if err != nil {
123326		return nil, err
123327	}
123328	defer googleapi.CloseBody(res)
123329	if err := googleapi.CheckResponse(res); err != nil {
123330		return nil, err
123331	}
123332	ret := &RegionInstanceGroupsListInstances{
123333		ServerResponse: googleapi.ServerResponse{
123334			Header:         res.Header,
123335			HTTPStatusCode: res.StatusCode,
123336		},
123337	}
123338	target := &ret
123339	if err := gensupport.DecodeResponse(target, res); err != nil {
123340		return nil, err
123341	}
123342	return ret, nil
123343	// {
123344	//   "description": "Lists the instances in the specified instance group and displays information about the named ports. Depending on the specified options, this method can list all instances or only the instances that are running. The orderBy query parameter is not supported.",
123345	//   "httpMethod": "POST",
123346	//   "id": "compute.regionInstanceGroups.listInstances",
123347	//   "parameterOrder": [
123348	//     "project",
123349	//     "region",
123350	//     "instanceGroup"
123351	//   ],
123352	//   "parameters": {
123353	//     "filter": {
123354	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
123355	//       "location": "query",
123356	//       "type": "string"
123357	//     },
123358	//     "instanceGroup": {
123359	//       "description": "Name of the regional instance group for which we want to list the instances.",
123360	//       "location": "path",
123361	//       "required": true,
123362	//       "type": "string"
123363	//     },
123364	//     "maxResults": {
123365	//       "default": "500",
123366	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
123367	//       "format": "uint32",
123368	//       "location": "query",
123369	//       "minimum": "0",
123370	//       "type": "integer"
123371	//     },
123372	//     "orderBy": {
123373	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
123374	//       "location": "query",
123375	//       "type": "string"
123376	//     },
123377	//     "pageToken": {
123378	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
123379	//       "location": "query",
123380	//       "type": "string"
123381	//     },
123382	//     "project": {
123383	//       "description": "Project ID for this request.",
123384	//       "location": "path",
123385	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123386	//       "required": true,
123387	//       "type": "string"
123388	//     },
123389	//     "region": {
123390	//       "description": "Name of the region scoping this request.",
123391	//       "location": "path",
123392	//       "required": true,
123393	//       "type": "string"
123394	//     }
123395	//   },
123396	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
123397	//   "request": {
123398	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
123399	//   },
123400	//   "response": {
123401	//     "$ref": "RegionInstanceGroupsListInstances"
123402	//   },
123403	//   "scopes": [
123404	//     "https://www.googleapis.com/auth/cloud-platform",
123405	//     "https://www.googleapis.com/auth/compute",
123406	//     "https://www.googleapis.com/auth/compute.readonly"
123407	//   ]
123408	// }
123409
123410}
123411
123412// Pages invokes f for each page of results.
123413// A non-nil error returned from f will halt the iteration.
123414// The provided context supersedes any context provided to the Context method.
123415func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
123416	c.ctx_ = ctx
123417	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123418	for {
123419		x, err := c.Do()
123420		if err != nil {
123421			return err
123422		}
123423		if err := f(x); err != nil {
123424			return err
123425		}
123426		if x.NextPageToken == "" {
123427			return nil
123428		}
123429		c.PageToken(x.NextPageToken)
123430	}
123431}
123432
123433// method id "compute.regionInstanceGroups.setNamedPorts":
123434
123435type RegionInstanceGroupsSetNamedPortsCall struct {
123436	s                                        *Service
123437	project                                  string
123438	region                                   string
123439	instanceGroup                            string
123440	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
123441	urlParams_                               gensupport.URLParams
123442	ctx_                                     context.Context
123443	header_                                  http.Header
123444}
123445
123446// SetNamedPorts: Sets the named ports for the specified regional
123447// instance group.
123448func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
123449	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123450	c.project = project
123451	c.region = region
123452	c.instanceGroup = instanceGroup
123453	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
123454	return c
123455}
123456
123457// RequestId sets the optional parameter "requestId": An optional
123458// request ID to identify requests. Specify a unique request ID so that
123459// if you must retry your request, the server will know to ignore the
123460// request if it has already been completed.
123461//
123462// For example, consider a situation where you make an initial request
123463// and the request times out. If you make the request again with the
123464// same request ID, the server can check if original operation with the
123465// same request ID was received, and if so, will ignore the second
123466// request. This prevents clients from accidentally creating duplicate
123467// commitments.
123468//
123469// The request ID must be a valid UUID with the exception that zero UUID
123470// is not supported (00000000-0000-0000-0000-000000000000).
123471func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
123472	c.urlParams_.Set("requestId", requestId)
123473	return c
123474}
123475
123476// Fields allows partial responses to be retrieved. See
123477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123478// for more information.
123479func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
123480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123481	return c
123482}
123483
123484// Context sets the context to be used in this call's Do method. Any
123485// pending HTTP request will be aborted if the provided context is
123486// canceled.
123487func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
123488	c.ctx_ = ctx
123489	return c
123490}
123491
123492// Header returns an http.Header that can be modified by the caller to
123493// add HTTP headers to the request.
123494func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
123495	if c.header_ == nil {
123496		c.header_ = make(http.Header)
123497	}
123498	return c.header_
123499}
123500
123501func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
123502	reqHeaders := make(http.Header)
123503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123504	for k, v := range c.header_ {
123505		reqHeaders[k] = v
123506	}
123507	reqHeaders.Set("User-Agent", c.s.userAgent())
123508	var body io.Reader = nil
123509	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
123510	if err != nil {
123511		return nil, err
123512	}
123513	reqHeaders.Set("Content-Type", "application/json")
123514	c.urlParams_.Set("alt", alt)
123515	c.urlParams_.Set("prettyPrint", "false")
123516	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
123517	urls += "?" + c.urlParams_.Encode()
123518	req, err := http.NewRequest("POST", urls, body)
123519	if err != nil {
123520		return nil, err
123521	}
123522	req.Header = reqHeaders
123523	googleapi.Expand(req.URL, map[string]string{
123524		"project":       c.project,
123525		"region":        c.region,
123526		"instanceGroup": c.instanceGroup,
123527	})
123528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123529}
123530
123531// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
123532// Exactly one of *Operation or error will be non-nil. Any non-2xx
123533// status code is an error. Response headers are in either
123534// *Operation.ServerResponse.Header or (if a response was returned at
123535// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123536// to check whether the returned error was because
123537// http.StatusNotModified was returned.
123538func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123539	gensupport.SetOptions(c.urlParams_, opts...)
123540	res, err := c.doRequest("json")
123541	if res != nil && res.StatusCode == http.StatusNotModified {
123542		if res.Body != nil {
123543			res.Body.Close()
123544		}
123545		return nil, &googleapi.Error{
123546			Code:   res.StatusCode,
123547			Header: res.Header,
123548		}
123549	}
123550	if err != nil {
123551		return nil, err
123552	}
123553	defer googleapi.CloseBody(res)
123554	if err := googleapi.CheckResponse(res); err != nil {
123555		return nil, err
123556	}
123557	ret := &Operation{
123558		ServerResponse: googleapi.ServerResponse{
123559			Header:         res.Header,
123560			HTTPStatusCode: res.StatusCode,
123561		},
123562	}
123563	target := &ret
123564	if err := gensupport.DecodeResponse(target, res); err != nil {
123565		return nil, err
123566	}
123567	return ret, nil
123568	// {
123569	//   "description": "Sets the named ports for the specified regional instance group.",
123570	//   "httpMethod": "POST",
123571	//   "id": "compute.regionInstanceGroups.setNamedPorts",
123572	//   "parameterOrder": [
123573	//     "project",
123574	//     "region",
123575	//     "instanceGroup"
123576	//   ],
123577	//   "parameters": {
123578	//     "instanceGroup": {
123579	//       "description": "The name of the regional instance group where the named ports are updated.",
123580	//       "location": "path",
123581	//       "required": true,
123582	//       "type": "string"
123583	//     },
123584	//     "project": {
123585	//       "description": "Project ID for this request.",
123586	//       "location": "path",
123587	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123588	//       "required": true,
123589	//       "type": "string"
123590	//     },
123591	//     "region": {
123592	//       "description": "Name of the region scoping this request.",
123593	//       "location": "path",
123594	//       "required": true,
123595	//       "type": "string"
123596	//     },
123597	//     "requestId": {
123598	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123599	//       "location": "query",
123600	//       "type": "string"
123601	//     }
123602	//   },
123603	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
123604	//   "request": {
123605	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
123606	//   },
123607	//   "response": {
123608	//     "$ref": "Operation"
123609	//   },
123610	//   "scopes": [
123611	//     "https://www.googleapis.com/auth/cloud-platform",
123612	//     "https://www.googleapis.com/auth/compute"
123613	//   ]
123614	// }
123615
123616}
123617
123618// method id "compute.regionInstanceGroups.testIamPermissions":
123619
123620type RegionInstanceGroupsTestIamPermissionsCall struct {
123621	s                      *Service
123622	project                string
123623	region                 string
123624	resource               string
123625	testpermissionsrequest *TestPermissionsRequest
123626	urlParams_             gensupport.URLParams
123627	ctx_                   context.Context
123628	header_                http.Header
123629}
123630
123631// TestIamPermissions: Returns permissions that a caller has on the
123632// specified resource.
123633func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall {
123634	c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123635	c.project = project
123636	c.region = region
123637	c.resource = resource
123638	c.testpermissionsrequest = testpermissionsrequest
123639	return c
123640}
123641
123642// Fields allows partial responses to be retrieved. See
123643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123644// for more information.
123645func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall {
123646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123647	return c
123648}
123649
123650// Context sets the context to be used in this call's Do method. Any
123651// pending HTTP request will be aborted if the provided context is
123652// canceled.
123653func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall {
123654	c.ctx_ = ctx
123655	return c
123656}
123657
123658// Header returns an http.Header that can be modified by the caller to
123659// add HTTP headers to the request.
123660func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header {
123661	if c.header_ == nil {
123662		c.header_ = make(http.Header)
123663	}
123664	return c.header_
123665}
123666
123667func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
123668	reqHeaders := make(http.Header)
123669	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123670	for k, v := range c.header_ {
123671		reqHeaders[k] = v
123672	}
123673	reqHeaders.Set("User-Agent", c.s.userAgent())
123674	var body io.Reader = nil
123675	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
123676	if err != nil {
123677		return nil, err
123678	}
123679	reqHeaders.Set("Content-Type", "application/json")
123680	c.urlParams_.Set("alt", alt)
123681	c.urlParams_.Set("prettyPrint", "false")
123682	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions")
123683	urls += "?" + c.urlParams_.Encode()
123684	req, err := http.NewRequest("POST", urls, body)
123685	if err != nil {
123686		return nil, err
123687	}
123688	req.Header = reqHeaders
123689	googleapi.Expand(req.URL, map[string]string{
123690		"project":  c.project,
123691		"region":   c.region,
123692		"resource": c.resource,
123693	})
123694	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123695}
123696
123697// Do executes the "compute.regionInstanceGroups.testIamPermissions" call.
123698// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
123699// non-2xx status code is an error. Response headers are in either
123700// *TestPermissionsResponse.ServerResponse.Header or (if a response was
123701// returned at all) in error.(*googleapi.Error).Header. Use
123702// googleapi.IsNotModified to check whether the returned error was
123703// because http.StatusNotModified was returned.
123704func (c *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
123705	gensupport.SetOptions(c.urlParams_, opts...)
123706	res, err := c.doRequest("json")
123707	if res != nil && res.StatusCode == http.StatusNotModified {
123708		if res.Body != nil {
123709			res.Body.Close()
123710		}
123711		return nil, &googleapi.Error{
123712			Code:   res.StatusCode,
123713			Header: res.Header,
123714		}
123715	}
123716	if err != nil {
123717		return nil, err
123718	}
123719	defer googleapi.CloseBody(res)
123720	if err := googleapi.CheckResponse(res); err != nil {
123721		return nil, err
123722	}
123723	ret := &TestPermissionsResponse{
123724		ServerResponse: googleapi.ServerResponse{
123725			Header:         res.Header,
123726			HTTPStatusCode: res.StatusCode,
123727		},
123728	}
123729	target := &ret
123730	if err := gensupport.DecodeResponse(target, res); err != nil {
123731		return nil, err
123732	}
123733	return ret, nil
123734	// {
123735	//   "description": "Returns permissions that a caller has on the specified resource.",
123736	//   "httpMethod": "POST",
123737	//   "id": "compute.regionInstanceGroups.testIamPermissions",
123738	//   "parameterOrder": [
123739	//     "project",
123740	//     "region",
123741	//     "resource"
123742	//   ],
123743	//   "parameters": {
123744	//     "project": {
123745	//       "description": "Project ID for this request.",
123746	//       "location": "path",
123747	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123748	//       "required": true,
123749	//       "type": "string"
123750	//     },
123751	//     "region": {
123752	//       "description": "The name of the region for this request.",
123753	//       "location": "path",
123754	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123755	//       "required": true,
123756	//       "type": "string"
123757	//     },
123758	//     "resource": {
123759	//       "description": "Name or id of the resource for this request.",
123760	//       "location": "path",
123761	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123762	//       "required": true,
123763	//       "type": "string"
123764	//     }
123765	//   },
123766	//   "path": "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
123767	//   "request": {
123768	//     "$ref": "TestPermissionsRequest"
123769	//   },
123770	//   "response": {
123771	//     "$ref": "TestPermissionsResponse"
123772	//   },
123773	//   "scopes": [
123774	//     "https://www.googleapis.com/auth/cloud-platform",
123775	//     "https://www.googleapis.com/auth/compute",
123776	//     "https://www.googleapis.com/auth/compute.readonly"
123777	//   ]
123778	// }
123779
123780}
123781
123782// method id "compute.regionNetworkEndpointGroups.delete":
123783
123784type RegionNetworkEndpointGroupsDeleteCall struct {
123785	s                    *Service
123786	project              string
123787	region               string
123788	networkEndpointGroup string
123789	urlParams_           gensupport.URLParams
123790	ctx_                 context.Context
123791	header_              http.Header
123792}
123793
123794// Delete: Deletes the specified network endpoint group. Note that the
123795// NEG cannot be deleted if it is configured as a backend of a backend
123796// service.
123797func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
123798	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123799	c.project = project
123800	c.region = region
123801	c.networkEndpointGroup = networkEndpointGroup
123802	return c
123803}
123804
123805// RequestId sets the optional parameter "requestId": An optional
123806// request ID to identify requests. Specify a unique request ID so that
123807// if you must retry your request, the server will know to ignore the
123808// request if it has already been completed.
123809//
123810// For example, consider a situation where you make an initial request
123811// and the request times out. If you make the request again with the
123812// same request ID, the server can check if original operation with the
123813// same request ID was received, and if so, will ignore the second
123814// request. This prevents clients from accidentally creating duplicate
123815// commitments.
123816//
123817// The request ID must be a valid UUID with the exception that zero UUID
123818// is not supported (00000000-0000-0000-0000-000000000000).
123819func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
123820	c.urlParams_.Set("requestId", requestId)
123821	return c
123822}
123823
123824// Fields allows partial responses to be retrieved. See
123825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123826// for more information.
123827func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
123828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123829	return c
123830}
123831
123832// Context sets the context to be used in this call's Do method. Any
123833// pending HTTP request will be aborted if the provided context is
123834// canceled.
123835func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
123836	c.ctx_ = ctx
123837	return c
123838}
123839
123840// Header returns an http.Header that can be modified by the caller to
123841// add HTTP headers to the request.
123842func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
123843	if c.header_ == nil {
123844		c.header_ = make(http.Header)
123845	}
123846	return c.header_
123847}
123848
123849func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
123850	reqHeaders := make(http.Header)
123851	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
123852	for k, v := range c.header_ {
123853		reqHeaders[k] = v
123854	}
123855	reqHeaders.Set("User-Agent", c.s.userAgent())
123856	var body io.Reader = nil
123857	c.urlParams_.Set("alt", alt)
123858	c.urlParams_.Set("prettyPrint", "false")
123859	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
123860	urls += "?" + c.urlParams_.Encode()
123861	req, err := http.NewRequest("DELETE", urls, body)
123862	if err != nil {
123863		return nil, err
123864	}
123865	req.Header = reqHeaders
123866	googleapi.Expand(req.URL, map[string]string{
123867		"project":              c.project,
123868		"region":               c.region,
123869		"networkEndpointGroup": c.networkEndpointGroup,
123870	})
123871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123872}
123873
123874// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
123875// Exactly one of *Operation or error will be non-nil. Any non-2xx
123876// status code is an error. Response headers are in either
123877// *Operation.ServerResponse.Header or (if a response was returned at
123878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123879// to check whether the returned error was because
123880// http.StatusNotModified was returned.
123881func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123882	gensupport.SetOptions(c.urlParams_, opts...)
123883	res, err := c.doRequest("json")
123884	if res != nil && res.StatusCode == http.StatusNotModified {
123885		if res.Body != nil {
123886			res.Body.Close()
123887		}
123888		return nil, &googleapi.Error{
123889			Code:   res.StatusCode,
123890			Header: res.Header,
123891		}
123892	}
123893	if err != nil {
123894		return nil, err
123895	}
123896	defer googleapi.CloseBody(res)
123897	if err := googleapi.CheckResponse(res); err != nil {
123898		return nil, err
123899	}
123900	ret := &Operation{
123901		ServerResponse: googleapi.ServerResponse{
123902			Header:         res.Header,
123903			HTTPStatusCode: res.StatusCode,
123904		},
123905	}
123906	target := &ret
123907	if err := gensupport.DecodeResponse(target, res); err != nil {
123908		return nil, err
123909	}
123910	return ret, nil
123911	// {
123912	//   "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.",
123913	//   "httpMethod": "DELETE",
123914	//   "id": "compute.regionNetworkEndpointGroups.delete",
123915	//   "parameterOrder": [
123916	//     "project",
123917	//     "region",
123918	//     "networkEndpointGroup"
123919	//   ],
123920	//   "parameters": {
123921	//     "networkEndpointGroup": {
123922	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
123923	//       "location": "path",
123924	//       "required": true,
123925	//       "type": "string"
123926	//     },
123927	//     "project": {
123928	//       "description": "Project ID for this request.",
123929	//       "location": "path",
123930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123931	//       "required": true,
123932	//       "type": "string"
123933	//     },
123934	//     "region": {
123935	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
123936	//       "location": "path",
123937	//       "required": true,
123938	//       "type": "string"
123939	//     },
123940	//     "requestId": {
123941	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123942	//       "location": "query",
123943	//       "type": "string"
123944	//     }
123945	//   },
123946	//   "path": "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
123947	//   "response": {
123948	//     "$ref": "Operation"
123949	//   },
123950	//   "scopes": [
123951	//     "https://www.googleapis.com/auth/cloud-platform",
123952	//     "https://www.googleapis.com/auth/compute"
123953	//   ]
123954	// }
123955
123956}
123957
123958// method id "compute.regionNetworkEndpointGroups.get":
123959
123960type RegionNetworkEndpointGroupsGetCall struct {
123961	s                    *Service
123962	project              string
123963	region               string
123964	networkEndpointGroup string
123965	urlParams_           gensupport.URLParams
123966	ifNoneMatch_         string
123967	ctx_                 context.Context
123968	header_              http.Header
123969}
123970
123971// Get: Returns the specified network endpoint group. Gets a list of
123972// available network endpoint groups by making a list() request.
123973func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
123974	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123975	c.project = project
123976	c.region = region
123977	c.networkEndpointGroup = networkEndpointGroup
123978	return c
123979}
123980
123981// Fields allows partial responses to be retrieved. See
123982// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123983// for more information.
123984func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
123985	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123986	return c
123987}
123988
123989// IfNoneMatch sets the optional parameter which makes the operation
123990// fail if the object's ETag matches the given value. This is useful for
123991// getting updates only after the object has changed since the last
123992// request. Use googleapi.IsNotModified to check whether the response
123993// error from Do is the result of In-None-Match.
123994func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
123995	c.ifNoneMatch_ = entityTag
123996	return c
123997}
123998
123999// Context sets the context to be used in this call's Do method. Any
124000// pending HTTP request will be aborted if the provided context is
124001// canceled.
124002func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
124003	c.ctx_ = ctx
124004	return c
124005}
124006
124007// Header returns an http.Header that can be modified by the caller to
124008// add HTTP headers to the request.
124009func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
124010	if c.header_ == nil {
124011		c.header_ = make(http.Header)
124012	}
124013	return c.header_
124014}
124015
124016func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
124017	reqHeaders := make(http.Header)
124018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124019	for k, v := range c.header_ {
124020		reqHeaders[k] = v
124021	}
124022	reqHeaders.Set("User-Agent", c.s.userAgent())
124023	if c.ifNoneMatch_ != "" {
124024		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124025	}
124026	var body io.Reader = nil
124027	c.urlParams_.Set("alt", alt)
124028	c.urlParams_.Set("prettyPrint", "false")
124029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
124030	urls += "?" + c.urlParams_.Encode()
124031	req, err := http.NewRequest("GET", urls, body)
124032	if err != nil {
124033		return nil, err
124034	}
124035	req.Header = reqHeaders
124036	googleapi.Expand(req.URL, map[string]string{
124037		"project":              c.project,
124038		"region":               c.region,
124039		"networkEndpointGroup": c.networkEndpointGroup,
124040	})
124041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124042}
124043
124044// Do executes the "compute.regionNetworkEndpointGroups.get" call.
124045// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
124046// non-2xx status code is an error. Response headers are in either
124047// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
124048// returned at all) in error.(*googleapi.Error).Header. Use
124049// googleapi.IsNotModified to check whether the returned error was
124050// because http.StatusNotModified was returned.
124051func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
124052	gensupport.SetOptions(c.urlParams_, opts...)
124053	res, err := c.doRequest("json")
124054	if res != nil && res.StatusCode == http.StatusNotModified {
124055		if res.Body != nil {
124056			res.Body.Close()
124057		}
124058		return nil, &googleapi.Error{
124059			Code:   res.StatusCode,
124060			Header: res.Header,
124061		}
124062	}
124063	if err != nil {
124064		return nil, err
124065	}
124066	defer googleapi.CloseBody(res)
124067	if err := googleapi.CheckResponse(res); err != nil {
124068		return nil, err
124069	}
124070	ret := &NetworkEndpointGroup{
124071		ServerResponse: googleapi.ServerResponse{
124072			Header:         res.Header,
124073			HTTPStatusCode: res.StatusCode,
124074		},
124075	}
124076	target := &ret
124077	if err := gensupport.DecodeResponse(target, res); err != nil {
124078		return nil, err
124079	}
124080	return ret, nil
124081	// {
124082	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
124083	//   "httpMethod": "GET",
124084	//   "id": "compute.regionNetworkEndpointGroups.get",
124085	//   "parameterOrder": [
124086	//     "project",
124087	//     "region",
124088	//     "networkEndpointGroup"
124089	//   ],
124090	//   "parameters": {
124091	//     "networkEndpointGroup": {
124092	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
124093	//       "location": "path",
124094	//       "required": true,
124095	//       "type": "string"
124096	//     },
124097	//     "project": {
124098	//       "description": "Project ID for this request.",
124099	//       "location": "path",
124100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124101	//       "required": true,
124102	//       "type": "string"
124103	//     },
124104	//     "region": {
124105	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
124106	//       "location": "path",
124107	//       "required": true,
124108	//       "type": "string"
124109	//     }
124110	//   },
124111	//   "path": "{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
124112	//   "response": {
124113	//     "$ref": "NetworkEndpointGroup"
124114	//   },
124115	//   "scopes": [
124116	//     "https://www.googleapis.com/auth/cloud-platform",
124117	//     "https://www.googleapis.com/auth/compute",
124118	//     "https://www.googleapis.com/auth/compute.readonly"
124119	//   ]
124120	// }
124121
124122}
124123
124124// method id "compute.regionNetworkEndpointGroups.insert":
124125
124126type RegionNetworkEndpointGroupsInsertCall struct {
124127	s                    *Service
124128	project              string
124129	region               string
124130	networkendpointgroup *NetworkEndpointGroup
124131	urlParams_           gensupport.URLParams
124132	ctx_                 context.Context
124133	header_              http.Header
124134}
124135
124136// Insert: Creates a network endpoint group in the specified project
124137// using the parameters that are included in the request.
124138func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
124139	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124140	c.project = project
124141	c.region = region
124142	c.networkendpointgroup = networkendpointgroup
124143	return c
124144}
124145
124146// RequestId sets the optional parameter "requestId": An optional
124147// request ID to identify requests. Specify a unique request ID so that
124148// if you must retry your request, the server will know to ignore the
124149// request if it has already been completed.
124150//
124151// For example, consider a situation where you make an initial request
124152// and the request times out. If you make the request again with the
124153// same request ID, the server can check if original operation with the
124154// same request ID was received, and if so, will ignore the second
124155// request. This prevents clients from accidentally creating duplicate
124156// commitments.
124157//
124158// The request ID must be a valid UUID with the exception that zero UUID
124159// is not supported (00000000-0000-0000-0000-000000000000).
124160func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
124161	c.urlParams_.Set("requestId", requestId)
124162	return c
124163}
124164
124165// Fields allows partial responses to be retrieved. See
124166// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124167// for more information.
124168func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
124169	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124170	return c
124171}
124172
124173// Context sets the context to be used in this call's Do method. Any
124174// pending HTTP request will be aborted if the provided context is
124175// canceled.
124176func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
124177	c.ctx_ = ctx
124178	return c
124179}
124180
124181// Header returns an http.Header that can be modified by the caller to
124182// add HTTP headers to the request.
124183func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
124184	if c.header_ == nil {
124185		c.header_ = make(http.Header)
124186	}
124187	return c.header_
124188}
124189
124190func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
124191	reqHeaders := make(http.Header)
124192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124193	for k, v := range c.header_ {
124194		reqHeaders[k] = v
124195	}
124196	reqHeaders.Set("User-Agent", c.s.userAgent())
124197	var body io.Reader = nil
124198	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
124199	if err != nil {
124200		return nil, err
124201	}
124202	reqHeaders.Set("Content-Type", "application/json")
124203	c.urlParams_.Set("alt", alt)
124204	c.urlParams_.Set("prettyPrint", "false")
124205	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups")
124206	urls += "?" + c.urlParams_.Encode()
124207	req, err := http.NewRequest("POST", urls, body)
124208	if err != nil {
124209		return nil, err
124210	}
124211	req.Header = reqHeaders
124212	googleapi.Expand(req.URL, map[string]string{
124213		"project": c.project,
124214		"region":  c.region,
124215	})
124216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124217}
124218
124219// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
124220// Exactly one of *Operation or error will be non-nil. Any non-2xx
124221// status code is an error. Response headers are in either
124222// *Operation.ServerResponse.Header or (if a response was returned at
124223// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124224// to check whether the returned error was because
124225// http.StatusNotModified was returned.
124226func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124227	gensupport.SetOptions(c.urlParams_, opts...)
124228	res, err := c.doRequest("json")
124229	if res != nil && res.StatusCode == http.StatusNotModified {
124230		if res.Body != nil {
124231			res.Body.Close()
124232		}
124233		return nil, &googleapi.Error{
124234			Code:   res.StatusCode,
124235			Header: res.Header,
124236		}
124237	}
124238	if err != nil {
124239		return nil, err
124240	}
124241	defer googleapi.CloseBody(res)
124242	if err := googleapi.CheckResponse(res); err != nil {
124243		return nil, err
124244	}
124245	ret := &Operation{
124246		ServerResponse: googleapi.ServerResponse{
124247			Header:         res.Header,
124248			HTTPStatusCode: res.StatusCode,
124249		},
124250	}
124251	target := &ret
124252	if err := gensupport.DecodeResponse(target, res); err != nil {
124253		return nil, err
124254	}
124255	return ret, nil
124256	// {
124257	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
124258	//   "httpMethod": "POST",
124259	//   "id": "compute.regionNetworkEndpointGroups.insert",
124260	//   "parameterOrder": [
124261	//     "project",
124262	//     "region"
124263	//   ],
124264	//   "parameters": {
124265	//     "project": {
124266	//       "description": "Project ID for this request.",
124267	//       "location": "path",
124268	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124269	//       "required": true,
124270	//       "type": "string"
124271	//     },
124272	//     "region": {
124273	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
124274	//       "location": "path",
124275	//       "required": true,
124276	//       "type": "string"
124277	//     },
124278	//     "requestId": {
124279	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124280	//       "location": "query",
124281	//       "type": "string"
124282	//     }
124283	//   },
124284	//   "path": "{project}/regions/{region}/networkEndpointGroups",
124285	//   "request": {
124286	//     "$ref": "NetworkEndpointGroup"
124287	//   },
124288	//   "response": {
124289	//     "$ref": "Operation"
124290	//   },
124291	//   "scopes": [
124292	//     "https://www.googleapis.com/auth/cloud-platform",
124293	//     "https://www.googleapis.com/auth/compute"
124294	//   ]
124295	// }
124296
124297}
124298
124299// method id "compute.regionNetworkEndpointGroups.list":
124300
124301type RegionNetworkEndpointGroupsListCall struct {
124302	s            *Service
124303	project      string
124304	region       string
124305	urlParams_   gensupport.URLParams
124306	ifNoneMatch_ string
124307	ctx_         context.Context
124308	header_      http.Header
124309}
124310
124311// List: Retrieves the list of regional network endpoint groups
124312// available to the specified project in the given region.
124313func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
124314	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124315	c.project = project
124316	c.region = region
124317	return c
124318}
124319
124320// Filter sets the optional parameter "filter": A filter expression that
124321// filters resources listed in the response. The expression must specify
124322// the field name, a comparison operator, and the value that you want to
124323// use for filtering. The value must be a string, a number, or a
124324// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124325// `<`.
124326//
124327// For example, if you are filtering Compute Engine instances, you can
124328// exclude instances named `example-instance` by specifying `name !=
124329// example-instance`.
124330//
124331// You can also filter nested fields. For example, you could specify
124332// `scheduling.automaticRestart = false` to include instances only if
124333// they are not scheduled for automatic restarts. You can use filtering
124334// on nested fields to filter based on resource labels.
124335//
124336// To filter on multiple expressions, provide each separate expression
124337// within parentheses. For example: ``` (scheduling.automaticRestart =
124338// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124339// is an `AND` expression. However, you can include `AND` and `OR`
124340// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124341// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124342// (scheduling.automaticRestart = true) ```
124343func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
124344	c.urlParams_.Set("filter", filter)
124345	return c
124346}
124347
124348// MaxResults sets the optional parameter "maxResults": The maximum
124349// number of results per page that should be returned. If the number of
124350// available results is larger than `maxResults`, Compute Engine returns
124351// a `nextPageToken` that can be used to get the next page of results in
124352// subsequent list requests. Acceptable values are `0` to `500`,
124353// inclusive. (Default: `500`)
124354func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
124355	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124356	return c
124357}
124358
124359// OrderBy sets the optional parameter "orderBy": Sorts list results by
124360// a certain order. By default, results are returned in alphanumerical
124361// order based on the resource name.
124362//
124363// You can also sort results in descending order based on the creation
124364// timestamp using `orderBy="creationTimestamp desc". This sorts
124365// results based on the `creationTimestamp` field in reverse
124366// chronological order (newest result first). Use this to sort resources
124367// like operations so that the newest operation is returned
124368// first.
124369//
124370// Currently, only sorting by `name` or `creationTimestamp desc` is
124371// supported.
124372func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
124373	c.urlParams_.Set("orderBy", orderBy)
124374	return c
124375}
124376
124377// PageToken sets the optional parameter "pageToken": Specifies a page
124378// token to use. Set `pageToken` to the `nextPageToken` returned by a
124379// previous list request to get the next page of results.
124380func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
124381	c.urlParams_.Set("pageToken", pageToken)
124382	return c
124383}
124384
124385// Fields allows partial responses to be retrieved. See
124386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124387// for more information.
124388func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
124389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124390	return c
124391}
124392
124393// IfNoneMatch sets the optional parameter which makes the operation
124394// fail if the object's ETag matches the given value. This is useful for
124395// getting updates only after the object has changed since the last
124396// request. Use googleapi.IsNotModified to check whether the response
124397// error from Do is the result of In-None-Match.
124398func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
124399	c.ifNoneMatch_ = entityTag
124400	return c
124401}
124402
124403// Context sets the context to be used in this call's Do method. Any
124404// pending HTTP request will be aborted if the provided context is
124405// canceled.
124406func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
124407	c.ctx_ = ctx
124408	return c
124409}
124410
124411// Header returns an http.Header that can be modified by the caller to
124412// add HTTP headers to the request.
124413func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
124414	if c.header_ == nil {
124415		c.header_ = make(http.Header)
124416	}
124417	return c.header_
124418}
124419
124420func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
124421	reqHeaders := make(http.Header)
124422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124423	for k, v := range c.header_ {
124424		reqHeaders[k] = v
124425	}
124426	reqHeaders.Set("User-Agent", c.s.userAgent())
124427	if c.ifNoneMatch_ != "" {
124428		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124429	}
124430	var body io.Reader = nil
124431	c.urlParams_.Set("alt", alt)
124432	c.urlParams_.Set("prettyPrint", "false")
124433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/networkEndpointGroups")
124434	urls += "?" + c.urlParams_.Encode()
124435	req, err := http.NewRequest("GET", urls, body)
124436	if err != nil {
124437		return nil, err
124438	}
124439	req.Header = reqHeaders
124440	googleapi.Expand(req.URL, map[string]string{
124441		"project": c.project,
124442		"region":  c.region,
124443	})
124444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124445}
124446
124447// Do executes the "compute.regionNetworkEndpointGroups.list" call.
124448// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
124449// Any non-2xx status code is an error. Response headers are in either
124450// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
124451// returned at all) in error.(*googleapi.Error).Header. Use
124452// googleapi.IsNotModified to check whether the returned error was
124453// because http.StatusNotModified was returned.
124454func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
124455	gensupport.SetOptions(c.urlParams_, opts...)
124456	res, err := c.doRequest("json")
124457	if res != nil && res.StatusCode == http.StatusNotModified {
124458		if res.Body != nil {
124459			res.Body.Close()
124460		}
124461		return nil, &googleapi.Error{
124462			Code:   res.StatusCode,
124463			Header: res.Header,
124464		}
124465	}
124466	if err != nil {
124467		return nil, err
124468	}
124469	defer googleapi.CloseBody(res)
124470	if err := googleapi.CheckResponse(res); err != nil {
124471		return nil, err
124472	}
124473	ret := &NetworkEndpointGroupList{
124474		ServerResponse: googleapi.ServerResponse{
124475			Header:         res.Header,
124476			HTTPStatusCode: res.StatusCode,
124477		},
124478	}
124479	target := &ret
124480	if err := gensupport.DecodeResponse(target, res); err != nil {
124481		return nil, err
124482	}
124483	return ret, nil
124484	// {
124485	//   "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
124486	//   "httpMethod": "GET",
124487	//   "id": "compute.regionNetworkEndpointGroups.list",
124488	//   "parameterOrder": [
124489	//     "project",
124490	//     "region"
124491	//   ],
124492	//   "parameters": {
124493	//     "filter": {
124494	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
124495	//       "location": "query",
124496	//       "type": "string"
124497	//     },
124498	//     "maxResults": {
124499	//       "default": "500",
124500	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
124501	//       "format": "uint32",
124502	//       "location": "query",
124503	//       "minimum": "0",
124504	//       "type": "integer"
124505	//     },
124506	//     "orderBy": {
124507	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
124508	//       "location": "query",
124509	//       "type": "string"
124510	//     },
124511	//     "pageToken": {
124512	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
124513	//       "location": "query",
124514	//       "type": "string"
124515	//     },
124516	//     "project": {
124517	//       "description": "Project ID for this request.",
124518	//       "location": "path",
124519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124520	//       "required": true,
124521	//       "type": "string"
124522	//     },
124523	//     "region": {
124524	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
124525	//       "location": "path",
124526	//       "required": true,
124527	//       "type": "string"
124528	//     }
124529	//   },
124530	//   "path": "{project}/regions/{region}/networkEndpointGroups",
124531	//   "response": {
124532	//     "$ref": "NetworkEndpointGroupList"
124533	//   },
124534	//   "scopes": [
124535	//     "https://www.googleapis.com/auth/cloud-platform",
124536	//     "https://www.googleapis.com/auth/compute",
124537	//     "https://www.googleapis.com/auth/compute.readonly"
124538	//   ]
124539	// }
124540
124541}
124542
124543// Pages invokes f for each page of results.
124544// A non-nil error returned from f will halt the iteration.
124545// The provided context supersedes any context provided to the Context method.
124546func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
124547	c.ctx_ = ctx
124548	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124549	for {
124550		x, err := c.Do()
124551		if err != nil {
124552			return err
124553		}
124554		if err := f(x); err != nil {
124555			return err
124556		}
124557		if x.NextPageToken == "" {
124558			return nil
124559		}
124560		c.PageToken(x.NextPageToken)
124561	}
124562}
124563
124564// method id "compute.regionNotificationEndpoints.delete":
124565
124566type RegionNotificationEndpointsDeleteCall struct {
124567	s                    *Service
124568	project              string
124569	region               string
124570	notificationEndpoint string
124571	urlParams_           gensupport.URLParams
124572	ctx_                 context.Context
124573	header_              http.Header
124574}
124575
124576// Delete: Deletes the specified NotificationEndpoint in the given
124577// region
124578func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
124579	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124580	c.project = project
124581	c.region = region
124582	c.notificationEndpoint = notificationEndpoint
124583	return c
124584}
124585
124586// RequestId sets the optional parameter "requestId": An optional
124587// request ID to identify requests. Specify a unique request ID so that
124588// if you must retry your request, the server will know to ignore the
124589// request if it has already been completed.
124590//
124591// For example, consider a situation where you make an initial request
124592// and the request times out. If you make the request again with the
124593// same request ID, the server can check if original operation with the
124594// same request ID was received, and if so, will ignore the second
124595// request. This prevents clients from accidentally creating duplicate
124596// commitments.
124597//
124598// The request ID must be a valid UUID with the exception that zero UUID
124599// is not supported (00000000-0000-0000-0000-000000000000).
124600func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
124601	c.urlParams_.Set("requestId", requestId)
124602	return c
124603}
124604
124605// Fields allows partial responses to be retrieved. See
124606// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124607// for more information.
124608func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
124609	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124610	return c
124611}
124612
124613// Context sets the context to be used in this call's Do method. Any
124614// pending HTTP request will be aborted if the provided context is
124615// canceled.
124616func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
124617	c.ctx_ = ctx
124618	return c
124619}
124620
124621// Header returns an http.Header that can be modified by the caller to
124622// add HTTP headers to the request.
124623func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
124624	if c.header_ == nil {
124625		c.header_ = make(http.Header)
124626	}
124627	return c.header_
124628}
124629
124630func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
124631	reqHeaders := make(http.Header)
124632	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124633	for k, v := range c.header_ {
124634		reqHeaders[k] = v
124635	}
124636	reqHeaders.Set("User-Agent", c.s.userAgent())
124637	var body io.Reader = nil
124638	c.urlParams_.Set("alt", alt)
124639	c.urlParams_.Set("prettyPrint", "false")
124640	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
124641	urls += "?" + c.urlParams_.Encode()
124642	req, err := http.NewRequest("DELETE", urls, body)
124643	if err != nil {
124644		return nil, err
124645	}
124646	req.Header = reqHeaders
124647	googleapi.Expand(req.URL, map[string]string{
124648		"project":              c.project,
124649		"region":               c.region,
124650		"notificationEndpoint": c.notificationEndpoint,
124651	})
124652	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124653}
124654
124655// Do executes the "compute.regionNotificationEndpoints.delete" call.
124656// Exactly one of *Operation or error will be non-nil. Any non-2xx
124657// status code is an error. Response headers are in either
124658// *Operation.ServerResponse.Header or (if a response was returned at
124659// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124660// to check whether the returned error was because
124661// http.StatusNotModified was returned.
124662func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124663	gensupport.SetOptions(c.urlParams_, opts...)
124664	res, err := c.doRequest("json")
124665	if res != nil && res.StatusCode == http.StatusNotModified {
124666		if res.Body != nil {
124667			res.Body.Close()
124668		}
124669		return nil, &googleapi.Error{
124670			Code:   res.StatusCode,
124671			Header: res.Header,
124672		}
124673	}
124674	if err != nil {
124675		return nil, err
124676	}
124677	defer googleapi.CloseBody(res)
124678	if err := googleapi.CheckResponse(res); err != nil {
124679		return nil, err
124680	}
124681	ret := &Operation{
124682		ServerResponse: googleapi.ServerResponse{
124683			Header:         res.Header,
124684			HTTPStatusCode: res.StatusCode,
124685		},
124686	}
124687	target := &ret
124688	if err := gensupport.DecodeResponse(target, res); err != nil {
124689		return nil, err
124690	}
124691	return ret, nil
124692	// {
124693	//   "description": "Deletes the specified NotificationEndpoint in the given region",
124694	//   "httpMethod": "DELETE",
124695	//   "id": "compute.regionNotificationEndpoints.delete",
124696	//   "parameterOrder": [
124697	//     "project",
124698	//     "region",
124699	//     "notificationEndpoint"
124700	//   ],
124701	//   "parameters": {
124702	//     "notificationEndpoint": {
124703	//       "description": "Name of the NotificationEndpoint resource to delete.",
124704	//       "location": "path",
124705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124706	//       "required": true,
124707	//       "type": "string"
124708	//     },
124709	//     "project": {
124710	//       "description": "Project ID for this request.",
124711	//       "location": "path",
124712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124713	//       "required": true,
124714	//       "type": "string"
124715	//     },
124716	//     "region": {
124717	//       "description": "Name of the region scoping this request.",
124718	//       "location": "path",
124719	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124720	//       "required": true,
124721	//       "type": "string"
124722	//     },
124723	//     "requestId": {
124724	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124725	//       "location": "query",
124726	//       "type": "string"
124727	//     }
124728	//   },
124729	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
124730	//   "response": {
124731	//     "$ref": "Operation"
124732	//   },
124733	//   "scopes": [
124734	//     "https://www.googleapis.com/auth/cloud-platform",
124735	//     "https://www.googleapis.com/auth/compute"
124736	//   ]
124737	// }
124738
124739}
124740
124741// method id "compute.regionNotificationEndpoints.get":
124742
124743type RegionNotificationEndpointsGetCall struct {
124744	s                    *Service
124745	project              string
124746	region               string
124747	notificationEndpoint string
124748	urlParams_           gensupport.URLParams
124749	ifNoneMatch_         string
124750	ctx_                 context.Context
124751	header_              http.Header
124752}
124753
124754// Get: Returns the specified NotificationEndpoint resource in the given
124755// region.
124756func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
124757	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124758	c.project = project
124759	c.region = region
124760	c.notificationEndpoint = notificationEndpoint
124761	return c
124762}
124763
124764// Fields allows partial responses to be retrieved. See
124765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124766// for more information.
124767func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
124768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124769	return c
124770}
124771
124772// IfNoneMatch sets the optional parameter which makes the operation
124773// fail if the object's ETag matches the given value. This is useful for
124774// getting updates only after the object has changed since the last
124775// request. Use googleapi.IsNotModified to check whether the response
124776// error from Do is the result of In-None-Match.
124777func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
124778	c.ifNoneMatch_ = entityTag
124779	return c
124780}
124781
124782// Context sets the context to be used in this call's Do method. Any
124783// pending HTTP request will be aborted if the provided context is
124784// canceled.
124785func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
124786	c.ctx_ = ctx
124787	return c
124788}
124789
124790// Header returns an http.Header that can be modified by the caller to
124791// add HTTP headers to the request.
124792func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
124793	if c.header_ == nil {
124794		c.header_ = make(http.Header)
124795	}
124796	return c.header_
124797}
124798
124799func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
124800	reqHeaders := make(http.Header)
124801	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124802	for k, v := range c.header_ {
124803		reqHeaders[k] = v
124804	}
124805	reqHeaders.Set("User-Agent", c.s.userAgent())
124806	if c.ifNoneMatch_ != "" {
124807		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124808	}
124809	var body io.Reader = nil
124810	c.urlParams_.Set("alt", alt)
124811	c.urlParams_.Set("prettyPrint", "false")
124812	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
124813	urls += "?" + c.urlParams_.Encode()
124814	req, err := http.NewRequest("GET", urls, body)
124815	if err != nil {
124816		return nil, err
124817	}
124818	req.Header = reqHeaders
124819	googleapi.Expand(req.URL, map[string]string{
124820		"project":              c.project,
124821		"region":               c.region,
124822		"notificationEndpoint": c.notificationEndpoint,
124823	})
124824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124825}
124826
124827// Do executes the "compute.regionNotificationEndpoints.get" call.
124828// Exactly one of *NotificationEndpoint or error will be non-nil. Any
124829// non-2xx status code is an error. Response headers are in either
124830// *NotificationEndpoint.ServerResponse.Header or (if a response was
124831// returned at all) in error.(*googleapi.Error).Header. Use
124832// googleapi.IsNotModified to check whether the returned error was
124833// because http.StatusNotModified was returned.
124834func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
124835	gensupport.SetOptions(c.urlParams_, opts...)
124836	res, err := c.doRequest("json")
124837	if res != nil && res.StatusCode == http.StatusNotModified {
124838		if res.Body != nil {
124839			res.Body.Close()
124840		}
124841		return nil, &googleapi.Error{
124842			Code:   res.StatusCode,
124843			Header: res.Header,
124844		}
124845	}
124846	if err != nil {
124847		return nil, err
124848	}
124849	defer googleapi.CloseBody(res)
124850	if err := googleapi.CheckResponse(res); err != nil {
124851		return nil, err
124852	}
124853	ret := &NotificationEndpoint{
124854		ServerResponse: googleapi.ServerResponse{
124855			Header:         res.Header,
124856			HTTPStatusCode: res.StatusCode,
124857		},
124858	}
124859	target := &ret
124860	if err := gensupport.DecodeResponse(target, res); err != nil {
124861		return nil, err
124862	}
124863	return ret, nil
124864	// {
124865	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
124866	//   "httpMethod": "GET",
124867	//   "id": "compute.regionNotificationEndpoints.get",
124868	//   "parameterOrder": [
124869	//     "project",
124870	//     "region",
124871	//     "notificationEndpoint"
124872	//   ],
124873	//   "parameters": {
124874	//     "notificationEndpoint": {
124875	//       "description": "Name of the NotificationEndpoint resource to return.",
124876	//       "location": "path",
124877	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124878	//       "required": true,
124879	//       "type": "string"
124880	//     },
124881	//     "project": {
124882	//       "description": "Project ID for this request.",
124883	//       "location": "path",
124884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124885	//       "required": true,
124886	//       "type": "string"
124887	//     },
124888	//     "region": {
124889	//       "description": "Name of the region scoping this request.",
124890	//       "location": "path",
124891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124892	//       "required": true,
124893	//       "type": "string"
124894	//     }
124895	//   },
124896	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
124897	//   "response": {
124898	//     "$ref": "NotificationEndpoint"
124899	//   },
124900	//   "scopes": [
124901	//     "https://www.googleapis.com/auth/cloud-platform",
124902	//     "https://www.googleapis.com/auth/compute",
124903	//     "https://www.googleapis.com/auth/compute.readonly"
124904	//   ]
124905	// }
124906
124907}
124908
124909// method id "compute.regionNotificationEndpoints.insert":
124910
124911type RegionNotificationEndpointsInsertCall struct {
124912	s                    *Service
124913	project              string
124914	region               string
124915	notificationendpoint *NotificationEndpoint
124916	urlParams_           gensupport.URLParams
124917	ctx_                 context.Context
124918	header_              http.Header
124919}
124920
124921// Insert: Create a NotificationEndpoint in the specified project in the
124922// given region using the parameters that are included in the request.
124923func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
124924	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124925	c.project = project
124926	c.region = region
124927	c.notificationendpoint = notificationendpoint
124928	return c
124929}
124930
124931// RequestId sets the optional parameter "requestId": An optional
124932// request ID to identify requests. Specify a unique request ID so that
124933// if you must retry your request, the server will know to ignore the
124934// request if it has already been completed.
124935//
124936// For example, consider a situation where you make an initial request
124937// and the request times out. If you make the request again with the
124938// same request ID, the server can check if original operation with the
124939// same request ID was received, and if so, will ignore the second
124940// request. This prevents clients from accidentally creating duplicate
124941// commitments.
124942//
124943// The request ID must be a valid UUID with the exception that zero UUID
124944// is not supported (00000000-0000-0000-0000-000000000000).
124945func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
124946	c.urlParams_.Set("requestId", requestId)
124947	return c
124948}
124949
124950// Fields allows partial responses to be retrieved. See
124951// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124952// for more information.
124953func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
124954	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124955	return c
124956}
124957
124958// Context sets the context to be used in this call's Do method. Any
124959// pending HTTP request will be aborted if the provided context is
124960// canceled.
124961func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
124962	c.ctx_ = ctx
124963	return c
124964}
124965
124966// Header returns an http.Header that can be modified by the caller to
124967// add HTTP headers to the request.
124968func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
124969	if c.header_ == nil {
124970		c.header_ = make(http.Header)
124971	}
124972	return c.header_
124973}
124974
124975func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
124976	reqHeaders := make(http.Header)
124977	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
124978	for k, v := range c.header_ {
124979		reqHeaders[k] = v
124980	}
124981	reqHeaders.Set("User-Agent", c.s.userAgent())
124982	var body io.Reader = nil
124983	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
124984	if err != nil {
124985		return nil, err
124986	}
124987	reqHeaders.Set("Content-Type", "application/json")
124988	c.urlParams_.Set("alt", alt)
124989	c.urlParams_.Set("prettyPrint", "false")
124990	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
124991	urls += "?" + c.urlParams_.Encode()
124992	req, err := http.NewRequest("POST", urls, body)
124993	if err != nil {
124994		return nil, err
124995	}
124996	req.Header = reqHeaders
124997	googleapi.Expand(req.URL, map[string]string{
124998		"project": c.project,
124999		"region":  c.region,
125000	})
125001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125002}
125003
125004// Do executes the "compute.regionNotificationEndpoints.insert" call.
125005// Exactly one of *Operation or error will be non-nil. Any non-2xx
125006// status code is an error. Response headers are in either
125007// *Operation.ServerResponse.Header or (if a response was returned at
125008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125009// to check whether the returned error was because
125010// http.StatusNotModified was returned.
125011func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125012	gensupport.SetOptions(c.urlParams_, opts...)
125013	res, err := c.doRequest("json")
125014	if res != nil && res.StatusCode == http.StatusNotModified {
125015		if res.Body != nil {
125016			res.Body.Close()
125017		}
125018		return nil, &googleapi.Error{
125019			Code:   res.StatusCode,
125020			Header: res.Header,
125021		}
125022	}
125023	if err != nil {
125024		return nil, err
125025	}
125026	defer googleapi.CloseBody(res)
125027	if err := googleapi.CheckResponse(res); err != nil {
125028		return nil, err
125029	}
125030	ret := &Operation{
125031		ServerResponse: googleapi.ServerResponse{
125032			Header:         res.Header,
125033			HTTPStatusCode: res.StatusCode,
125034		},
125035	}
125036	target := &ret
125037	if err := gensupport.DecodeResponse(target, res); err != nil {
125038		return nil, err
125039	}
125040	return ret, nil
125041	// {
125042	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
125043	//   "httpMethod": "POST",
125044	//   "id": "compute.regionNotificationEndpoints.insert",
125045	//   "parameterOrder": [
125046	//     "project",
125047	//     "region"
125048	//   ],
125049	//   "parameters": {
125050	//     "project": {
125051	//       "description": "Project ID for this request.",
125052	//       "location": "path",
125053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125054	//       "required": true,
125055	//       "type": "string"
125056	//     },
125057	//     "region": {
125058	//       "description": "Name of the region scoping this request.",
125059	//       "location": "path",
125060	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125061	//       "required": true,
125062	//       "type": "string"
125063	//     },
125064	//     "requestId": {
125065	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125066	//       "location": "query",
125067	//       "type": "string"
125068	//     }
125069	//   },
125070	//   "path": "{project}/regions/{region}/notificationEndpoints",
125071	//   "request": {
125072	//     "$ref": "NotificationEndpoint"
125073	//   },
125074	//   "response": {
125075	//     "$ref": "Operation"
125076	//   },
125077	//   "scopes": [
125078	//     "https://www.googleapis.com/auth/cloud-platform",
125079	//     "https://www.googleapis.com/auth/compute"
125080	//   ]
125081	// }
125082
125083}
125084
125085// method id "compute.regionNotificationEndpoints.list":
125086
125087type RegionNotificationEndpointsListCall struct {
125088	s            *Service
125089	project      string
125090	region       string
125091	urlParams_   gensupport.URLParams
125092	ifNoneMatch_ string
125093	ctx_         context.Context
125094	header_      http.Header
125095}
125096
125097// List: Lists the NotificationEndpoints for a project in the given
125098// region.
125099func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
125100	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125101	c.project = project
125102	c.region = region
125103	return c
125104}
125105
125106// Filter sets the optional parameter "filter": A filter expression that
125107// filters resources listed in the response. The expression must specify
125108// the field name, a comparison operator, and the value that you want to
125109// use for filtering. The value must be a string, a number, or a
125110// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125111// `<`.
125112//
125113// For example, if you are filtering Compute Engine instances, you can
125114// exclude instances named `example-instance` by specifying `name !=
125115// example-instance`.
125116//
125117// You can also filter nested fields. For example, you could specify
125118// `scheduling.automaticRestart = false` to include instances only if
125119// they are not scheduled for automatic restarts. You can use filtering
125120// on nested fields to filter based on resource labels.
125121//
125122// To filter on multiple expressions, provide each separate expression
125123// within parentheses. For example: ``` (scheduling.automaticRestart =
125124// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
125125// is an `AND` expression. However, you can include `AND` and `OR`
125126// expressions explicitly. For example: ``` (cpuPlatform = "Intel
125127// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
125128// (scheduling.automaticRestart = true) ```
125129func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
125130	c.urlParams_.Set("filter", filter)
125131	return c
125132}
125133
125134// MaxResults sets the optional parameter "maxResults": The maximum
125135// number of results per page that should be returned. If the number of
125136// available results is larger than `maxResults`, Compute Engine returns
125137// a `nextPageToken` that can be used to get the next page of results in
125138// subsequent list requests. Acceptable values are `0` to `500`,
125139// inclusive. (Default: `500`)
125140func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
125141	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125142	return c
125143}
125144
125145// OrderBy sets the optional parameter "orderBy": Sorts list results by
125146// a certain order. By default, results are returned in alphanumerical
125147// order based on the resource name.
125148//
125149// You can also sort results in descending order based on the creation
125150// timestamp using `orderBy="creationTimestamp desc". This sorts
125151// results based on the `creationTimestamp` field in reverse
125152// chronological order (newest result first). Use this to sort resources
125153// like operations so that the newest operation is returned
125154// first.
125155//
125156// Currently, only sorting by `name` or `creationTimestamp desc` is
125157// supported.
125158func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
125159	c.urlParams_.Set("orderBy", orderBy)
125160	return c
125161}
125162
125163// PageToken sets the optional parameter "pageToken": Specifies a page
125164// token to use. Set `pageToken` to the `nextPageToken` returned by a
125165// previous list request to get the next page of results.
125166func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
125167	c.urlParams_.Set("pageToken", pageToken)
125168	return c
125169}
125170
125171// Fields allows partial responses to be retrieved. See
125172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125173// for more information.
125174func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
125175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125176	return c
125177}
125178
125179// IfNoneMatch sets the optional parameter which makes the operation
125180// fail if the object's ETag matches the given value. This is useful for
125181// getting updates only after the object has changed since the last
125182// request. Use googleapi.IsNotModified to check whether the response
125183// error from Do is the result of In-None-Match.
125184func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
125185	c.ifNoneMatch_ = entityTag
125186	return c
125187}
125188
125189// Context sets the context to be used in this call's Do method. Any
125190// pending HTTP request will be aborted if the provided context is
125191// canceled.
125192func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
125193	c.ctx_ = ctx
125194	return c
125195}
125196
125197// Header returns an http.Header that can be modified by the caller to
125198// add HTTP headers to the request.
125199func (c *RegionNotificationEndpointsListCall) Header() http.Header {
125200	if c.header_ == nil {
125201		c.header_ = make(http.Header)
125202	}
125203	return c.header_
125204}
125205
125206func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
125207	reqHeaders := make(http.Header)
125208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125209	for k, v := range c.header_ {
125210		reqHeaders[k] = v
125211	}
125212	reqHeaders.Set("User-Agent", c.s.userAgent())
125213	if c.ifNoneMatch_ != "" {
125214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125215	}
125216	var body io.Reader = nil
125217	c.urlParams_.Set("alt", alt)
125218	c.urlParams_.Set("prettyPrint", "false")
125219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
125220	urls += "?" + c.urlParams_.Encode()
125221	req, err := http.NewRequest("GET", urls, body)
125222	if err != nil {
125223		return nil, err
125224	}
125225	req.Header = reqHeaders
125226	googleapi.Expand(req.URL, map[string]string{
125227		"project": c.project,
125228		"region":  c.region,
125229	})
125230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125231}
125232
125233// Do executes the "compute.regionNotificationEndpoints.list" call.
125234// Exactly one of *NotificationEndpointList or error will be non-nil.
125235// Any non-2xx status code is an error. Response headers are in either
125236// *NotificationEndpointList.ServerResponse.Header or (if a response was
125237// returned at all) in error.(*googleapi.Error).Header. Use
125238// googleapi.IsNotModified to check whether the returned error was
125239// because http.StatusNotModified was returned.
125240func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
125241	gensupport.SetOptions(c.urlParams_, opts...)
125242	res, err := c.doRequest("json")
125243	if res != nil && res.StatusCode == http.StatusNotModified {
125244		if res.Body != nil {
125245			res.Body.Close()
125246		}
125247		return nil, &googleapi.Error{
125248			Code:   res.StatusCode,
125249			Header: res.Header,
125250		}
125251	}
125252	if err != nil {
125253		return nil, err
125254	}
125255	defer googleapi.CloseBody(res)
125256	if err := googleapi.CheckResponse(res); err != nil {
125257		return nil, err
125258	}
125259	ret := &NotificationEndpointList{
125260		ServerResponse: googleapi.ServerResponse{
125261			Header:         res.Header,
125262			HTTPStatusCode: res.StatusCode,
125263		},
125264	}
125265	target := &ret
125266	if err := gensupport.DecodeResponse(target, res); err != nil {
125267		return nil, err
125268	}
125269	return ret, nil
125270	// {
125271	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
125272	//   "httpMethod": "GET",
125273	//   "id": "compute.regionNotificationEndpoints.list",
125274	//   "parameterOrder": [
125275	//     "project",
125276	//     "region"
125277	//   ],
125278	//   "parameters": {
125279	//     "filter": {
125280	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125281	//       "location": "query",
125282	//       "type": "string"
125283	//     },
125284	//     "maxResults": {
125285	//       "default": "500",
125286	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125287	//       "format": "uint32",
125288	//       "location": "query",
125289	//       "minimum": "0",
125290	//       "type": "integer"
125291	//     },
125292	//     "orderBy": {
125293	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125294	//       "location": "query",
125295	//       "type": "string"
125296	//     },
125297	//     "pageToken": {
125298	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125299	//       "location": "query",
125300	//       "type": "string"
125301	//     },
125302	//     "project": {
125303	//       "description": "Project ID for this request.",
125304	//       "location": "path",
125305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125306	//       "required": true,
125307	//       "type": "string"
125308	//     },
125309	//     "region": {
125310	//       "description": "Name of the region scoping this request.",
125311	//       "location": "path",
125312	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125313	//       "required": true,
125314	//       "type": "string"
125315	//     }
125316	//   },
125317	//   "path": "{project}/regions/{region}/notificationEndpoints",
125318	//   "response": {
125319	//     "$ref": "NotificationEndpointList"
125320	//   },
125321	//   "scopes": [
125322	//     "https://www.googleapis.com/auth/cloud-platform",
125323	//     "https://www.googleapis.com/auth/compute",
125324	//     "https://www.googleapis.com/auth/compute.readonly"
125325	//   ]
125326	// }
125327
125328}
125329
125330// Pages invokes f for each page of results.
125331// A non-nil error returned from f will halt the iteration.
125332// The provided context supersedes any context provided to the Context method.
125333func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
125334	c.ctx_ = ctx
125335	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125336	for {
125337		x, err := c.Do()
125338		if err != nil {
125339			return err
125340		}
125341		if err := f(x); err != nil {
125342			return err
125343		}
125344		if x.NextPageToken == "" {
125345			return nil
125346		}
125347		c.PageToken(x.NextPageToken)
125348	}
125349}
125350
125351// method id "compute.regionOperations.delete":
125352
125353type RegionOperationsDeleteCall struct {
125354	s          *Service
125355	project    string
125356	region     string
125357	operation  string
125358	urlParams_ gensupport.URLParams
125359	ctx_       context.Context
125360	header_    http.Header
125361}
125362
125363// Delete: Deletes the specified region-specific Operations resource.
125364// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
125365func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
125366	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125367	c.project = project
125368	c.region = region
125369	c.operation = operation
125370	return c
125371}
125372
125373// Fields allows partial responses to be retrieved. See
125374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125375// for more information.
125376func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
125377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125378	return c
125379}
125380
125381// Context sets the context to be used in this call's Do method. Any
125382// pending HTTP request will be aborted if the provided context is
125383// canceled.
125384func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
125385	c.ctx_ = ctx
125386	return c
125387}
125388
125389// Header returns an http.Header that can be modified by the caller to
125390// add HTTP headers to the request.
125391func (c *RegionOperationsDeleteCall) Header() http.Header {
125392	if c.header_ == nil {
125393		c.header_ = make(http.Header)
125394	}
125395	return c.header_
125396}
125397
125398func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
125399	reqHeaders := make(http.Header)
125400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125401	for k, v := range c.header_ {
125402		reqHeaders[k] = v
125403	}
125404	reqHeaders.Set("User-Agent", c.s.userAgent())
125405	var body io.Reader = nil
125406	c.urlParams_.Set("alt", alt)
125407	c.urlParams_.Set("prettyPrint", "false")
125408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
125409	urls += "?" + c.urlParams_.Encode()
125410	req, err := http.NewRequest("DELETE", urls, body)
125411	if err != nil {
125412		return nil, err
125413	}
125414	req.Header = reqHeaders
125415	googleapi.Expand(req.URL, map[string]string{
125416		"project":   c.project,
125417		"region":    c.region,
125418		"operation": c.operation,
125419	})
125420	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125421}
125422
125423// Do executes the "compute.regionOperations.delete" call.
125424func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
125425	gensupport.SetOptions(c.urlParams_, opts...)
125426	res, err := c.doRequest("json")
125427	if err != nil {
125428		return err
125429	}
125430	defer googleapi.CloseBody(res)
125431	if err := googleapi.CheckResponse(res); err != nil {
125432		return err
125433	}
125434	return nil
125435	// {
125436	//   "description": "Deletes the specified region-specific Operations resource.",
125437	//   "httpMethod": "DELETE",
125438	//   "id": "compute.regionOperations.delete",
125439	//   "parameterOrder": [
125440	//     "project",
125441	//     "region",
125442	//     "operation"
125443	//   ],
125444	//   "parameters": {
125445	//     "operation": {
125446	//       "description": "Name of the Operations resource to delete.",
125447	//       "location": "path",
125448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125449	//       "required": true,
125450	//       "type": "string"
125451	//     },
125452	//     "project": {
125453	//       "description": "Project ID for this request.",
125454	//       "location": "path",
125455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125456	//       "required": true,
125457	//       "type": "string"
125458	//     },
125459	//     "region": {
125460	//       "description": "Name of the region for this request.",
125461	//       "location": "path",
125462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125463	//       "required": true,
125464	//       "type": "string"
125465	//     }
125466	//   },
125467	//   "path": "{project}/regions/{region}/operations/{operation}",
125468	//   "scopes": [
125469	//     "https://www.googleapis.com/auth/cloud-platform",
125470	//     "https://www.googleapis.com/auth/compute"
125471	//   ]
125472	// }
125473
125474}
125475
125476// method id "compute.regionOperations.get":
125477
125478type RegionOperationsGetCall struct {
125479	s            *Service
125480	project      string
125481	region       string
125482	operation    string
125483	urlParams_   gensupport.URLParams
125484	ifNoneMatch_ string
125485	ctx_         context.Context
125486	header_      http.Header
125487}
125488
125489// Get: Retrieves the specified region-specific Operations resource.
125490// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
125491func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
125492	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125493	c.project = project
125494	c.region = region
125495	c.operation = operation
125496	return c
125497}
125498
125499// Fields allows partial responses to be retrieved. See
125500// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125501// for more information.
125502func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
125503	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125504	return c
125505}
125506
125507// IfNoneMatch sets the optional parameter which makes the operation
125508// fail if the object's ETag matches the given value. This is useful for
125509// getting updates only after the object has changed since the last
125510// request. Use googleapi.IsNotModified to check whether the response
125511// error from Do is the result of In-None-Match.
125512func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
125513	c.ifNoneMatch_ = entityTag
125514	return c
125515}
125516
125517// Context sets the context to be used in this call's Do method. Any
125518// pending HTTP request will be aborted if the provided context is
125519// canceled.
125520func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
125521	c.ctx_ = ctx
125522	return c
125523}
125524
125525// Header returns an http.Header that can be modified by the caller to
125526// add HTTP headers to the request.
125527func (c *RegionOperationsGetCall) Header() http.Header {
125528	if c.header_ == nil {
125529		c.header_ = make(http.Header)
125530	}
125531	return c.header_
125532}
125533
125534func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
125535	reqHeaders := make(http.Header)
125536	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125537	for k, v := range c.header_ {
125538		reqHeaders[k] = v
125539	}
125540	reqHeaders.Set("User-Agent", c.s.userAgent())
125541	if c.ifNoneMatch_ != "" {
125542		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125543	}
125544	var body io.Reader = nil
125545	c.urlParams_.Set("alt", alt)
125546	c.urlParams_.Set("prettyPrint", "false")
125547	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
125548	urls += "?" + c.urlParams_.Encode()
125549	req, err := http.NewRequest("GET", urls, body)
125550	if err != nil {
125551		return nil, err
125552	}
125553	req.Header = reqHeaders
125554	googleapi.Expand(req.URL, map[string]string{
125555		"project":   c.project,
125556		"region":    c.region,
125557		"operation": c.operation,
125558	})
125559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125560}
125561
125562// Do executes the "compute.regionOperations.get" call.
125563// Exactly one of *Operation or error will be non-nil. Any non-2xx
125564// status code is an error. Response headers are in either
125565// *Operation.ServerResponse.Header or (if a response was returned at
125566// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125567// to check whether the returned error was because
125568// http.StatusNotModified was returned.
125569func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125570	gensupport.SetOptions(c.urlParams_, opts...)
125571	res, err := c.doRequest("json")
125572	if res != nil && res.StatusCode == http.StatusNotModified {
125573		if res.Body != nil {
125574			res.Body.Close()
125575		}
125576		return nil, &googleapi.Error{
125577			Code:   res.StatusCode,
125578			Header: res.Header,
125579		}
125580	}
125581	if err != nil {
125582		return nil, err
125583	}
125584	defer googleapi.CloseBody(res)
125585	if err := googleapi.CheckResponse(res); err != nil {
125586		return nil, err
125587	}
125588	ret := &Operation{
125589		ServerResponse: googleapi.ServerResponse{
125590			Header:         res.Header,
125591			HTTPStatusCode: res.StatusCode,
125592		},
125593	}
125594	target := &ret
125595	if err := gensupport.DecodeResponse(target, res); err != nil {
125596		return nil, err
125597	}
125598	return ret, nil
125599	// {
125600	//   "description": "Retrieves the specified region-specific Operations resource.",
125601	//   "httpMethod": "GET",
125602	//   "id": "compute.regionOperations.get",
125603	//   "parameterOrder": [
125604	//     "project",
125605	//     "region",
125606	//     "operation"
125607	//   ],
125608	//   "parameters": {
125609	//     "operation": {
125610	//       "description": "Name of the Operations resource to return.",
125611	//       "location": "path",
125612	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125613	//       "required": true,
125614	//       "type": "string"
125615	//     },
125616	//     "project": {
125617	//       "description": "Project ID for this request.",
125618	//       "location": "path",
125619	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125620	//       "required": true,
125621	//       "type": "string"
125622	//     },
125623	//     "region": {
125624	//       "description": "Name of the region for this request.",
125625	//       "location": "path",
125626	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125627	//       "required": true,
125628	//       "type": "string"
125629	//     }
125630	//   },
125631	//   "path": "{project}/regions/{region}/operations/{operation}",
125632	//   "response": {
125633	//     "$ref": "Operation"
125634	//   },
125635	//   "scopes": [
125636	//     "https://www.googleapis.com/auth/cloud-platform",
125637	//     "https://www.googleapis.com/auth/compute",
125638	//     "https://www.googleapis.com/auth/compute.readonly"
125639	//   ]
125640	// }
125641
125642}
125643
125644// method id "compute.regionOperations.list":
125645
125646type RegionOperationsListCall struct {
125647	s            *Service
125648	project      string
125649	region       string
125650	urlParams_   gensupport.URLParams
125651	ifNoneMatch_ string
125652	ctx_         context.Context
125653	header_      http.Header
125654}
125655
125656// List: Retrieves a list of Operation resources contained within the
125657// specified region.
125658// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
125659func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
125660	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125661	c.project = project
125662	c.region = region
125663	return c
125664}
125665
125666// Filter sets the optional parameter "filter": A filter expression that
125667// filters resources listed in the response. The expression must specify
125668// the field name, a comparison operator, and the value that you want to
125669// use for filtering. The value must be a string, a number, or a
125670// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125671// `<`.
125672//
125673// For example, if you are filtering Compute Engine instances, you can
125674// exclude instances named `example-instance` by specifying `name !=
125675// example-instance`.
125676//
125677// You can also filter nested fields. For example, you could specify
125678// `scheduling.automaticRestart = false` to include instances only if
125679// they are not scheduled for automatic restarts. You can use filtering
125680// on nested fields to filter based on resource labels.
125681//
125682// To filter on multiple expressions, provide each separate expression
125683// within parentheses. For example: ``` (scheduling.automaticRestart =
125684// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
125685// is an `AND` expression. However, you can include `AND` and `OR`
125686// expressions explicitly. For example: ``` (cpuPlatform = "Intel
125687// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
125688// (scheduling.automaticRestart = true) ```
125689func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
125690	c.urlParams_.Set("filter", filter)
125691	return c
125692}
125693
125694// MaxResults sets the optional parameter "maxResults": The maximum
125695// number of results per page that should be returned. If the number of
125696// available results is larger than `maxResults`, Compute Engine returns
125697// a `nextPageToken` that can be used to get the next page of results in
125698// subsequent list requests. Acceptable values are `0` to `500`,
125699// inclusive. (Default: `500`)
125700func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
125701	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125702	return c
125703}
125704
125705// OrderBy sets the optional parameter "orderBy": Sorts list results by
125706// a certain order. By default, results are returned in alphanumerical
125707// order based on the resource name.
125708//
125709// You can also sort results in descending order based on the creation
125710// timestamp using `orderBy="creationTimestamp desc". This sorts
125711// results based on the `creationTimestamp` field in reverse
125712// chronological order (newest result first). Use this to sort resources
125713// like operations so that the newest operation is returned
125714// first.
125715//
125716// Currently, only sorting by `name` or `creationTimestamp desc` is
125717// supported.
125718func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
125719	c.urlParams_.Set("orderBy", orderBy)
125720	return c
125721}
125722
125723// PageToken sets the optional parameter "pageToken": Specifies a page
125724// token to use. Set `pageToken` to the `nextPageToken` returned by a
125725// previous list request to get the next page of results.
125726func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
125727	c.urlParams_.Set("pageToken", pageToken)
125728	return c
125729}
125730
125731// Fields allows partial responses to be retrieved. See
125732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125733// for more information.
125734func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
125735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125736	return c
125737}
125738
125739// IfNoneMatch sets the optional parameter which makes the operation
125740// fail if the object's ETag matches the given value. This is useful for
125741// getting updates only after the object has changed since the last
125742// request. Use googleapi.IsNotModified to check whether the response
125743// error from Do is the result of In-None-Match.
125744func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
125745	c.ifNoneMatch_ = entityTag
125746	return c
125747}
125748
125749// Context sets the context to be used in this call's Do method. Any
125750// pending HTTP request will be aborted if the provided context is
125751// canceled.
125752func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
125753	c.ctx_ = ctx
125754	return c
125755}
125756
125757// Header returns an http.Header that can be modified by the caller to
125758// add HTTP headers to the request.
125759func (c *RegionOperationsListCall) Header() http.Header {
125760	if c.header_ == nil {
125761		c.header_ = make(http.Header)
125762	}
125763	return c.header_
125764}
125765
125766func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
125767	reqHeaders := make(http.Header)
125768	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125769	for k, v := range c.header_ {
125770		reqHeaders[k] = v
125771	}
125772	reqHeaders.Set("User-Agent", c.s.userAgent())
125773	if c.ifNoneMatch_ != "" {
125774		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125775	}
125776	var body io.Reader = nil
125777	c.urlParams_.Set("alt", alt)
125778	c.urlParams_.Set("prettyPrint", "false")
125779	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
125780	urls += "?" + c.urlParams_.Encode()
125781	req, err := http.NewRequest("GET", urls, body)
125782	if err != nil {
125783		return nil, err
125784	}
125785	req.Header = reqHeaders
125786	googleapi.Expand(req.URL, map[string]string{
125787		"project": c.project,
125788		"region":  c.region,
125789	})
125790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125791}
125792
125793// Do executes the "compute.regionOperations.list" call.
125794// Exactly one of *OperationList or error will be non-nil. Any non-2xx
125795// status code is an error. Response headers are in either
125796// *OperationList.ServerResponse.Header or (if a response was returned
125797// at all) in error.(*googleapi.Error).Header. Use
125798// googleapi.IsNotModified to check whether the returned error was
125799// because http.StatusNotModified was returned.
125800func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
125801	gensupport.SetOptions(c.urlParams_, opts...)
125802	res, err := c.doRequest("json")
125803	if res != nil && res.StatusCode == http.StatusNotModified {
125804		if res.Body != nil {
125805			res.Body.Close()
125806		}
125807		return nil, &googleapi.Error{
125808			Code:   res.StatusCode,
125809			Header: res.Header,
125810		}
125811	}
125812	if err != nil {
125813		return nil, err
125814	}
125815	defer googleapi.CloseBody(res)
125816	if err := googleapi.CheckResponse(res); err != nil {
125817		return nil, err
125818	}
125819	ret := &OperationList{
125820		ServerResponse: googleapi.ServerResponse{
125821			Header:         res.Header,
125822			HTTPStatusCode: res.StatusCode,
125823		},
125824	}
125825	target := &ret
125826	if err := gensupport.DecodeResponse(target, res); err != nil {
125827		return nil, err
125828	}
125829	return ret, nil
125830	// {
125831	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
125832	//   "httpMethod": "GET",
125833	//   "id": "compute.regionOperations.list",
125834	//   "parameterOrder": [
125835	//     "project",
125836	//     "region"
125837	//   ],
125838	//   "parameters": {
125839	//     "filter": {
125840	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125841	//       "location": "query",
125842	//       "type": "string"
125843	//     },
125844	//     "maxResults": {
125845	//       "default": "500",
125846	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125847	//       "format": "uint32",
125848	//       "location": "query",
125849	//       "minimum": "0",
125850	//       "type": "integer"
125851	//     },
125852	//     "orderBy": {
125853	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125854	//       "location": "query",
125855	//       "type": "string"
125856	//     },
125857	//     "pageToken": {
125858	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125859	//       "location": "query",
125860	//       "type": "string"
125861	//     },
125862	//     "project": {
125863	//       "description": "Project ID for this request.",
125864	//       "location": "path",
125865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125866	//       "required": true,
125867	//       "type": "string"
125868	//     },
125869	//     "region": {
125870	//       "description": "Name of the region for this request.",
125871	//       "location": "path",
125872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125873	//       "required": true,
125874	//       "type": "string"
125875	//     }
125876	//   },
125877	//   "path": "{project}/regions/{region}/operations",
125878	//   "response": {
125879	//     "$ref": "OperationList"
125880	//   },
125881	//   "scopes": [
125882	//     "https://www.googleapis.com/auth/cloud-platform",
125883	//     "https://www.googleapis.com/auth/compute",
125884	//     "https://www.googleapis.com/auth/compute.readonly"
125885	//   ]
125886	// }
125887
125888}
125889
125890// Pages invokes f for each page of results.
125891// A non-nil error returned from f will halt the iteration.
125892// The provided context supersedes any context provided to the Context method.
125893func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
125894	c.ctx_ = ctx
125895	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125896	for {
125897		x, err := c.Do()
125898		if err != nil {
125899			return err
125900		}
125901		if err := f(x); err != nil {
125902			return err
125903		}
125904		if x.NextPageToken == "" {
125905			return nil
125906		}
125907		c.PageToken(x.NextPageToken)
125908	}
125909}
125910
125911// method id "compute.regionOperations.wait":
125912
125913type RegionOperationsWaitCall struct {
125914	s          *Service
125915	project    string
125916	region     string
125917	operation  string
125918	urlParams_ gensupport.URLParams
125919	ctx_       context.Context
125920	header_    http.Header
125921}
125922
125923// Wait: Waits for the specified Operation resource to return as `DONE`
125924// or for the request to approach the 2 minute deadline, and retrieves
125925// the specified Operation resource. This method differs from the `GET`
125926// method in that it waits for no more than the default deadline (2
125927// minutes) and then returns the current state of the operation, which
125928// might be `DONE` or still in progress.
125929//
125930// This method is called on a best-effort basis. Specifically:
125931// - In uncommon cases, when the server is overloaded, the request might
125932// return before the default deadline is reached, or might return after
125933// zero seconds.
125934// - If the default deadline is reached, there is no guarantee that the
125935// operation is actually done when the method returns. Be prepared to
125936// retry if the operation is not `DONE`.
125937func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
125938	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125939	c.project = project
125940	c.region = region
125941	c.operation = operation
125942	return c
125943}
125944
125945// Fields allows partial responses to be retrieved. See
125946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125947// for more information.
125948func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
125949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125950	return c
125951}
125952
125953// Context sets the context to be used in this call's Do method. Any
125954// pending HTTP request will be aborted if the provided context is
125955// canceled.
125956func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
125957	c.ctx_ = ctx
125958	return c
125959}
125960
125961// Header returns an http.Header that can be modified by the caller to
125962// add HTTP headers to the request.
125963func (c *RegionOperationsWaitCall) Header() http.Header {
125964	if c.header_ == nil {
125965		c.header_ = make(http.Header)
125966	}
125967	return c.header_
125968}
125969
125970func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
125971	reqHeaders := make(http.Header)
125972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
125973	for k, v := range c.header_ {
125974		reqHeaders[k] = v
125975	}
125976	reqHeaders.Set("User-Agent", c.s.userAgent())
125977	var body io.Reader = nil
125978	c.urlParams_.Set("alt", alt)
125979	c.urlParams_.Set("prettyPrint", "false")
125980	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}/wait")
125981	urls += "?" + c.urlParams_.Encode()
125982	req, err := http.NewRequest("POST", urls, body)
125983	if err != nil {
125984		return nil, err
125985	}
125986	req.Header = reqHeaders
125987	googleapi.Expand(req.URL, map[string]string{
125988		"project":   c.project,
125989		"region":    c.region,
125990		"operation": c.operation,
125991	})
125992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125993}
125994
125995// Do executes the "compute.regionOperations.wait" call.
125996// Exactly one of *Operation or error will be non-nil. Any non-2xx
125997// status code is an error. Response headers are in either
125998// *Operation.ServerResponse.Header or (if a response was returned at
125999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126000// to check whether the returned error was because
126001// http.StatusNotModified was returned.
126002func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126003	gensupport.SetOptions(c.urlParams_, opts...)
126004	res, err := c.doRequest("json")
126005	if res != nil && res.StatusCode == http.StatusNotModified {
126006		if res.Body != nil {
126007			res.Body.Close()
126008		}
126009		return nil, &googleapi.Error{
126010			Code:   res.StatusCode,
126011			Header: res.Header,
126012		}
126013	}
126014	if err != nil {
126015		return nil, err
126016	}
126017	defer googleapi.CloseBody(res)
126018	if err := googleapi.CheckResponse(res); err != nil {
126019		return nil, err
126020	}
126021	ret := &Operation{
126022		ServerResponse: googleapi.ServerResponse{
126023			Header:         res.Header,
126024			HTTPStatusCode: res.StatusCode,
126025		},
126026	}
126027	target := &ret
126028	if err := gensupport.DecodeResponse(target, res); err != nil {
126029		return nil, err
126030	}
126031	return ret, nil
126032	// {
126033	//   "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`.",
126034	//   "httpMethod": "POST",
126035	//   "id": "compute.regionOperations.wait",
126036	//   "parameterOrder": [
126037	//     "project",
126038	//     "region",
126039	//     "operation"
126040	//   ],
126041	//   "parameters": {
126042	//     "operation": {
126043	//       "description": "Name of the Operations resource to return.",
126044	//       "location": "path",
126045	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126046	//       "required": true,
126047	//       "type": "string"
126048	//     },
126049	//     "project": {
126050	//       "description": "Project ID for this request.",
126051	//       "location": "path",
126052	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126053	//       "required": true,
126054	//       "type": "string"
126055	//     },
126056	//     "region": {
126057	//       "description": "Name of the region for this request.",
126058	//       "location": "path",
126059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126060	//       "required": true,
126061	//       "type": "string"
126062	//     }
126063	//   },
126064	//   "path": "{project}/regions/{region}/operations/{operation}/wait",
126065	//   "response": {
126066	//     "$ref": "Operation"
126067	//   },
126068	//   "scopes": [
126069	//     "https://www.googleapis.com/auth/cloud-platform",
126070	//     "https://www.googleapis.com/auth/compute",
126071	//     "https://www.googleapis.com/auth/compute.readonly"
126072	//   ]
126073	// }
126074
126075}
126076
126077// method id "compute.regionSslCertificates.delete":
126078
126079type RegionSslCertificatesDeleteCall struct {
126080	s              *Service
126081	project        string
126082	region         string
126083	sslCertificate string
126084	urlParams_     gensupport.URLParams
126085	ctx_           context.Context
126086	header_        http.Header
126087}
126088
126089// Delete: Deletes the specified SslCertificate resource in the region.
126090func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
126091	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126092	c.project = project
126093	c.region = region
126094	c.sslCertificate = sslCertificate
126095	return c
126096}
126097
126098// RequestId sets the optional parameter "requestId": An optional
126099// request ID to identify requests. Specify a unique request ID so that
126100// if you must retry your request, the server will know to ignore the
126101// request if it has already been completed.
126102//
126103// For example, consider a situation where you make an initial request
126104// and the request times out. If you make the request again with the
126105// same request ID, the server can check if original operation with the
126106// same request ID was received, and if so, will ignore the second
126107// request. This prevents clients from accidentally creating duplicate
126108// commitments.
126109//
126110// The request ID must be a valid UUID with the exception that zero UUID
126111// is not supported (00000000-0000-0000-0000-000000000000).
126112func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
126113	c.urlParams_.Set("requestId", requestId)
126114	return c
126115}
126116
126117// Fields allows partial responses to be retrieved. See
126118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126119// for more information.
126120func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
126121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126122	return c
126123}
126124
126125// Context sets the context to be used in this call's Do method. Any
126126// pending HTTP request will be aborted if the provided context is
126127// canceled.
126128func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
126129	c.ctx_ = ctx
126130	return c
126131}
126132
126133// Header returns an http.Header that can be modified by the caller to
126134// add HTTP headers to the request.
126135func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
126136	if c.header_ == nil {
126137		c.header_ = make(http.Header)
126138	}
126139	return c.header_
126140}
126141
126142func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
126143	reqHeaders := make(http.Header)
126144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126145	for k, v := range c.header_ {
126146		reqHeaders[k] = v
126147	}
126148	reqHeaders.Set("User-Agent", c.s.userAgent())
126149	var body io.Reader = nil
126150	c.urlParams_.Set("alt", alt)
126151	c.urlParams_.Set("prettyPrint", "false")
126152	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
126153	urls += "?" + c.urlParams_.Encode()
126154	req, err := http.NewRequest("DELETE", urls, body)
126155	if err != nil {
126156		return nil, err
126157	}
126158	req.Header = reqHeaders
126159	googleapi.Expand(req.URL, map[string]string{
126160		"project":        c.project,
126161		"region":         c.region,
126162		"sslCertificate": c.sslCertificate,
126163	})
126164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126165}
126166
126167// Do executes the "compute.regionSslCertificates.delete" call.
126168// Exactly one of *Operation or error will be non-nil. Any non-2xx
126169// status code is an error. Response headers are in either
126170// *Operation.ServerResponse.Header or (if a response was returned at
126171// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126172// to check whether the returned error was because
126173// http.StatusNotModified was returned.
126174func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126175	gensupport.SetOptions(c.urlParams_, opts...)
126176	res, err := c.doRequest("json")
126177	if res != nil && res.StatusCode == http.StatusNotModified {
126178		if res.Body != nil {
126179			res.Body.Close()
126180		}
126181		return nil, &googleapi.Error{
126182			Code:   res.StatusCode,
126183			Header: res.Header,
126184		}
126185	}
126186	if err != nil {
126187		return nil, err
126188	}
126189	defer googleapi.CloseBody(res)
126190	if err := googleapi.CheckResponse(res); err != nil {
126191		return nil, err
126192	}
126193	ret := &Operation{
126194		ServerResponse: googleapi.ServerResponse{
126195			Header:         res.Header,
126196			HTTPStatusCode: res.StatusCode,
126197		},
126198	}
126199	target := &ret
126200	if err := gensupport.DecodeResponse(target, res); err != nil {
126201		return nil, err
126202	}
126203	return ret, nil
126204	// {
126205	//   "description": "Deletes the specified SslCertificate resource in the region.",
126206	//   "httpMethod": "DELETE",
126207	//   "id": "compute.regionSslCertificates.delete",
126208	//   "parameterOrder": [
126209	//     "project",
126210	//     "region",
126211	//     "sslCertificate"
126212	//   ],
126213	//   "parameters": {
126214	//     "project": {
126215	//       "description": "Project ID for this request.",
126216	//       "location": "path",
126217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126218	//       "required": true,
126219	//       "type": "string"
126220	//     },
126221	//     "region": {
126222	//       "description": "Name of the region scoping this request.",
126223	//       "location": "path",
126224	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126225	//       "required": true,
126226	//       "type": "string"
126227	//     },
126228	//     "requestId": {
126229	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126230	//       "location": "query",
126231	//       "type": "string"
126232	//     },
126233	//     "sslCertificate": {
126234	//       "description": "Name of the SslCertificate resource to delete.",
126235	//       "location": "path",
126236	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126237	//       "required": true,
126238	//       "type": "string"
126239	//     }
126240	//   },
126241	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
126242	//   "response": {
126243	//     "$ref": "Operation"
126244	//   },
126245	//   "scopes": [
126246	//     "https://www.googleapis.com/auth/cloud-platform",
126247	//     "https://www.googleapis.com/auth/compute"
126248	//   ]
126249	// }
126250
126251}
126252
126253// method id "compute.regionSslCertificates.get":
126254
126255type RegionSslCertificatesGetCall struct {
126256	s              *Service
126257	project        string
126258	region         string
126259	sslCertificate string
126260	urlParams_     gensupport.URLParams
126261	ifNoneMatch_   string
126262	ctx_           context.Context
126263	header_        http.Header
126264}
126265
126266// Get: Returns the specified SslCertificate resource in the specified
126267// region. Get a list of available SSL certificates by making a list()
126268// request.
126269func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
126270	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126271	c.project = project
126272	c.region = region
126273	c.sslCertificate = sslCertificate
126274	return c
126275}
126276
126277// Fields allows partial responses to be retrieved. See
126278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126279// for more information.
126280func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
126281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126282	return c
126283}
126284
126285// IfNoneMatch sets the optional parameter which makes the operation
126286// fail if the object's ETag matches the given value. This is useful for
126287// getting updates only after the object has changed since the last
126288// request. Use googleapi.IsNotModified to check whether the response
126289// error from Do is the result of In-None-Match.
126290func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
126291	c.ifNoneMatch_ = entityTag
126292	return c
126293}
126294
126295// Context sets the context to be used in this call's Do method. Any
126296// pending HTTP request will be aborted if the provided context is
126297// canceled.
126298func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
126299	c.ctx_ = ctx
126300	return c
126301}
126302
126303// Header returns an http.Header that can be modified by the caller to
126304// add HTTP headers to the request.
126305func (c *RegionSslCertificatesGetCall) Header() http.Header {
126306	if c.header_ == nil {
126307		c.header_ = make(http.Header)
126308	}
126309	return c.header_
126310}
126311
126312func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
126313	reqHeaders := make(http.Header)
126314	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126315	for k, v := range c.header_ {
126316		reqHeaders[k] = v
126317	}
126318	reqHeaders.Set("User-Agent", c.s.userAgent())
126319	if c.ifNoneMatch_ != "" {
126320		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126321	}
126322	var body io.Reader = nil
126323	c.urlParams_.Set("alt", alt)
126324	c.urlParams_.Set("prettyPrint", "false")
126325	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
126326	urls += "?" + c.urlParams_.Encode()
126327	req, err := http.NewRequest("GET", urls, body)
126328	if err != nil {
126329		return nil, err
126330	}
126331	req.Header = reqHeaders
126332	googleapi.Expand(req.URL, map[string]string{
126333		"project":        c.project,
126334		"region":         c.region,
126335		"sslCertificate": c.sslCertificate,
126336	})
126337	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126338}
126339
126340// Do executes the "compute.regionSslCertificates.get" call.
126341// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
126342// status code is an error. Response headers are in either
126343// *SslCertificate.ServerResponse.Header or (if a response was returned
126344// at all) in error.(*googleapi.Error).Header. Use
126345// googleapi.IsNotModified to check whether the returned error was
126346// because http.StatusNotModified was returned.
126347func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
126348	gensupport.SetOptions(c.urlParams_, opts...)
126349	res, err := c.doRequest("json")
126350	if res != nil && res.StatusCode == http.StatusNotModified {
126351		if res.Body != nil {
126352			res.Body.Close()
126353		}
126354		return nil, &googleapi.Error{
126355			Code:   res.StatusCode,
126356			Header: res.Header,
126357		}
126358	}
126359	if err != nil {
126360		return nil, err
126361	}
126362	defer googleapi.CloseBody(res)
126363	if err := googleapi.CheckResponse(res); err != nil {
126364		return nil, err
126365	}
126366	ret := &SslCertificate{
126367		ServerResponse: googleapi.ServerResponse{
126368			Header:         res.Header,
126369			HTTPStatusCode: res.StatusCode,
126370		},
126371	}
126372	target := &ret
126373	if err := gensupport.DecodeResponse(target, res); err != nil {
126374		return nil, err
126375	}
126376	return ret, nil
126377	// {
126378	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
126379	//   "httpMethod": "GET",
126380	//   "id": "compute.regionSslCertificates.get",
126381	//   "parameterOrder": [
126382	//     "project",
126383	//     "region",
126384	//     "sslCertificate"
126385	//   ],
126386	//   "parameters": {
126387	//     "project": {
126388	//       "description": "Project ID for this request.",
126389	//       "location": "path",
126390	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126391	//       "required": true,
126392	//       "type": "string"
126393	//     },
126394	//     "region": {
126395	//       "description": "Name of the region scoping this request.",
126396	//       "location": "path",
126397	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126398	//       "required": true,
126399	//       "type": "string"
126400	//     },
126401	//     "sslCertificate": {
126402	//       "description": "Name of the SslCertificate resource to return.",
126403	//       "location": "path",
126404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126405	//       "required": true,
126406	//       "type": "string"
126407	//     }
126408	//   },
126409	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
126410	//   "response": {
126411	//     "$ref": "SslCertificate"
126412	//   },
126413	//   "scopes": [
126414	//     "https://www.googleapis.com/auth/cloud-platform",
126415	//     "https://www.googleapis.com/auth/compute",
126416	//     "https://www.googleapis.com/auth/compute.readonly"
126417	//   ]
126418	// }
126419
126420}
126421
126422// method id "compute.regionSslCertificates.insert":
126423
126424type RegionSslCertificatesInsertCall struct {
126425	s              *Service
126426	project        string
126427	region         string
126428	sslcertificate *SslCertificate
126429	urlParams_     gensupport.URLParams
126430	ctx_           context.Context
126431	header_        http.Header
126432}
126433
126434// Insert: Creates a SslCertificate resource in the specified project
126435// and region using the data included in the request
126436func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
126437	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126438	c.project = project
126439	c.region = region
126440	c.sslcertificate = sslcertificate
126441	return c
126442}
126443
126444// RequestId sets the optional parameter "requestId": An optional
126445// request ID to identify requests. Specify a unique request ID so that
126446// if you must retry your request, the server will know to ignore the
126447// request if it has already been completed.
126448//
126449// For example, consider a situation where you make an initial request
126450// and the request times out. If you make the request again with the
126451// same request ID, the server can check if original operation with the
126452// same request ID was received, and if so, will ignore the second
126453// request. This prevents clients from accidentally creating duplicate
126454// commitments.
126455//
126456// The request ID must be a valid UUID with the exception that zero UUID
126457// is not supported (00000000-0000-0000-0000-000000000000).
126458func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
126459	c.urlParams_.Set("requestId", requestId)
126460	return c
126461}
126462
126463// Fields allows partial responses to be retrieved. See
126464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126465// for more information.
126466func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
126467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126468	return c
126469}
126470
126471// Context sets the context to be used in this call's Do method. Any
126472// pending HTTP request will be aborted if the provided context is
126473// canceled.
126474func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
126475	c.ctx_ = ctx
126476	return c
126477}
126478
126479// Header returns an http.Header that can be modified by the caller to
126480// add HTTP headers to the request.
126481func (c *RegionSslCertificatesInsertCall) Header() http.Header {
126482	if c.header_ == nil {
126483		c.header_ = make(http.Header)
126484	}
126485	return c.header_
126486}
126487
126488func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
126489	reqHeaders := make(http.Header)
126490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126491	for k, v := range c.header_ {
126492		reqHeaders[k] = v
126493	}
126494	reqHeaders.Set("User-Agent", c.s.userAgent())
126495	var body io.Reader = nil
126496	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
126497	if err != nil {
126498		return nil, err
126499	}
126500	reqHeaders.Set("Content-Type", "application/json")
126501	c.urlParams_.Set("alt", alt)
126502	c.urlParams_.Set("prettyPrint", "false")
126503	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
126504	urls += "?" + c.urlParams_.Encode()
126505	req, err := http.NewRequest("POST", urls, body)
126506	if err != nil {
126507		return nil, err
126508	}
126509	req.Header = reqHeaders
126510	googleapi.Expand(req.URL, map[string]string{
126511		"project": c.project,
126512		"region":  c.region,
126513	})
126514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126515}
126516
126517// Do executes the "compute.regionSslCertificates.insert" call.
126518// Exactly one of *Operation or error will be non-nil. Any non-2xx
126519// status code is an error. Response headers are in either
126520// *Operation.ServerResponse.Header or (if a response was returned at
126521// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126522// to check whether the returned error was because
126523// http.StatusNotModified was returned.
126524func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126525	gensupport.SetOptions(c.urlParams_, opts...)
126526	res, err := c.doRequest("json")
126527	if res != nil && res.StatusCode == http.StatusNotModified {
126528		if res.Body != nil {
126529			res.Body.Close()
126530		}
126531		return nil, &googleapi.Error{
126532			Code:   res.StatusCode,
126533			Header: res.Header,
126534		}
126535	}
126536	if err != nil {
126537		return nil, err
126538	}
126539	defer googleapi.CloseBody(res)
126540	if err := googleapi.CheckResponse(res); err != nil {
126541		return nil, err
126542	}
126543	ret := &Operation{
126544		ServerResponse: googleapi.ServerResponse{
126545			Header:         res.Header,
126546			HTTPStatusCode: res.StatusCode,
126547		},
126548	}
126549	target := &ret
126550	if err := gensupport.DecodeResponse(target, res); err != nil {
126551		return nil, err
126552	}
126553	return ret, nil
126554	// {
126555	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
126556	//   "httpMethod": "POST",
126557	//   "id": "compute.regionSslCertificates.insert",
126558	//   "parameterOrder": [
126559	//     "project",
126560	//     "region"
126561	//   ],
126562	//   "parameters": {
126563	//     "project": {
126564	//       "description": "Project ID for this request.",
126565	//       "location": "path",
126566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126567	//       "required": true,
126568	//       "type": "string"
126569	//     },
126570	//     "region": {
126571	//       "description": "Name of the region scoping this request.",
126572	//       "location": "path",
126573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126574	//       "required": true,
126575	//       "type": "string"
126576	//     },
126577	//     "requestId": {
126578	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126579	//       "location": "query",
126580	//       "type": "string"
126581	//     }
126582	//   },
126583	//   "path": "{project}/regions/{region}/sslCertificates",
126584	//   "request": {
126585	//     "$ref": "SslCertificate"
126586	//   },
126587	//   "response": {
126588	//     "$ref": "Operation"
126589	//   },
126590	//   "scopes": [
126591	//     "https://www.googleapis.com/auth/cloud-platform",
126592	//     "https://www.googleapis.com/auth/compute"
126593	//   ]
126594	// }
126595
126596}
126597
126598// method id "compute.regionSslCertificates.list":
126599
126600type RegionSslCertificatesListCall struct {
126601	s            *Service
126602	project      string
126603	region       string
126604	urlParams_   gensupport.URLParams
126605	ifNoneMatch_ string
126606	ctx_         context.Context
126607	header_      http.Header
126608}
126609
126610// List: Retrieves the list of SslCertificate resources available to the
126611// specified project in the specified region.
126612func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
126613	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126614	c.project = project
126615	c.region = region
126616	return c
126617}
126618
126619// Filter sets the optional parameter "filter": A filter expression that
126620// filters resources listed in the response. The expression must specify
126621// the field name, a comparison operator, and the value that you want to
126622// use for filtering. The value must be a string, a number, or a
126623// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126624// `<`.
126625//
126626// For example, if you are filtering Compute Engine instances, you can
126627// exclude instances named `example-instance` by specifying `name !=
126628// example-instance`.
126629//
126630// You can also filter nested fields. For example, you could specify
126631// `scheduling.automaticRestart = false` to include instances only if
126632// they are not scheduled for automatic restarts. You can use filtering
126633// on nested fields to filter based on resource labels.
126634//
126635// To filter on multiple expressions, provide each separate expression
126636// within parentheses. For example: ``` (scheduling.automaticRestart =
126637// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
126638// is an `AND` expression. However, you can include `AND` and `OR`
126639// expressions explicitly. For example: ``` (cpuPlatform = "Intel
126640// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
126641// (scheduling.automaticRestart = true) ```
126642func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
126643	c.urlParams_.Set("filter", filter)
126644	return c
126645}
126646
126647// MaxResults sets the optional parameter "maxResults": The maximum
126648// number of results per page that should be returned. If the number of
126649// available results is larger than `maxResults`, Compute Engine returns
126650// a `nextPageToken` that can be used to get the next page of results in
126651// subsequent list requests. Acceptable values are `0` to `500`,
126652// inclusive. (Default: `500`)
126653func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
126654	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126655	return c
126656}
126657
126658// OrderBy sets the optional parameter "orderBy": Sorts list results by
126659// a certain order. By default, results are returned in alphanumerical
126660// order based on the resource name.
126661//
126662// You can also sort results in descending order based on the creation
126663// timestamp using `orderBy="creationTimestamp desc". This sorts
126664// results based on the `creationTimestamp` field in reverse
126665// chronological order (newest result first). Use this to sort resources
126666// like operations so that the newest operation is returned
126667// first.
126668//
126669// Currently, only sorting by `name` or `creationTimestamp desc` is
126670// supported.
126671func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
126672	c.urlParams_.Set("orderBy", orderBy)
126673	return c
126674}
126675
126676// PageToken sets the optional parameter "pageToken": Specifies a page
126677// token to use. Set `pageToken` to the `nextPageToken` returned by a
126678// previous list request to get the next page of results.
126679func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
126680	c.urlParams_.Set("pageToken", pageToken)
126681	return c
126682}
126683
126684// Fields allows partial responses to be retrieved. See
126685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126686// for more information.
126687func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
126688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126689	return c
126690}
126691
126692// IfNoneMatch sets the optional parameter which makes the operation
126693// fail if the object's ETag matches the given value. This is useful for
126694// getting updates only after the object has changed since the last
126695// request. Use googleapi.IsNotModified to check whether the response
126696// error from Do is the result of In-None-Match.
126697func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
126698	c.ifNoneMatch_ = entityTag
126699	return c
126700}
126701
126702// Context sets the context to be used in this call's Do method. Any
126703// pending HTTP request will be aborted if the provided context is
126704// canceled.
126705func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
126706	c.ctx_ = ctx
126707	return c
126708}
126709
126710// Header returns an http.Header that can be modified by the caller to
126711// add HTTP headers to the request.
126712func (c *RegionSslCertificatesListCall) Header() http.Header {
126713	if c.header_ == nil {
126714		c.header_ = make(http.Header)
126715	}
126716	return c.header_
126717}
126718
126719func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
126720	reqHeaders := make(http.Header)
126721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126722	for k, v := range c.header_ {
126723		reqHeaders[k] = v
126724	}
126725	reqHeaders.Set("User-Agent", c.s.userAgent())
126726	if c.ifNoneMatch_ != "" {
126727		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126728	}
126729	var body io.Reader = nil
126730	c.urlParams_.Set("alt", alt)
126731	c.urlParams_.Set("prettyPrint", "false")
126732	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
126733	urls += "?" + c.urlParams_.Encode()
126734	req, err := http.NewRequest("GET", urls, body)
126735	if err != nil {
126736		return nil, err
126737	}
126738	req.Header = reqHeaders
126739	googleapi.Expand(req.URL, map[string]string{
126740		"project": c.project,
126741		"region":  c.region,
126742	})
126743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126744}
126745
126746// Do executes the "compute.regionSslCertificates.list" call.
126747// Exactly one of *SslCertificateList or error will be non-nil. Any
126748// non-2xx status code is an error. Response headers are in either
126749// *SslCertificateList.ServerResponse.Header or (if a response was
126750// returned at all) in error.(*googleapi.Error).Header. Use
126751// googleapi.IsNotModified to check whether the returned error was
126752// because http.StatusNotModified was returned.
126753func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
126754	gensupport.SetOptions(c.urlParams_, opts...)
126755	res, err := c.doRequest("json")
126756	if res != nil && res.StatusCode == http.StatusNotModified {
126757		if res.Body != nil {
126758			res.Body.Close()
126759		}
126760		return nil, &googleapi.Error{
126761			Code:   res.StatusCode,
126762			Header: res.Header,
126763		}
126764	}
126765	if err != nil {
126766		return nil, err
126767	}
126768	defer googleapi.CloseBody(res)
126769	if err := googleapi.CheckResponse(res); err != nil {
126770		return nil, err
126771	}
126772	ret := &SslCertificateList{
126773		ServerResponse: googleapi.ServerResponse{
126774			Header:         res.Header,
126775			HTTPStatusCode: res.StatusCode,
126776		},
126777	}
126778	target := &ret
126779	if err := gensupport.DecodeResponse(target, res); err != nil {
126780		return nil, err
126781	}
126782	return ret, nil
126783	// {
126784	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
126785	//   "httpMethod": "GET",
126786	//   "id": "compute.regionSslCertificates.list",
126787	//   "parameterOrder": [
126788	//     "project",
126789	//     "region"
126790	//   ],
126791	//   "parameters": {
126792	//     "filter": {
126793	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126794	//       "location": "query",
126795	//       "type": "string"
126796	//     },
126797	//     "maxResults": {
126798	//       "default": "500",
126799	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126800	//       "format": "uint32",
126801	//       "location": "query",
126802	//       "minimum": "0",
126803	//       "type": "integer"
126804	//     },
126805	//     "orderBy": {
126806	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
126807	//       "location": "query",
126808	//       "type": "string"
126809	//     },
126810	//     "pageToken": {
126811	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126812	//       "location": "query",
126813	//       "type": "string"
126814	//     },
126815	//     "project": {
126816	//       "description": "Project ID for this request.",
126817	//       "location": "path",
126818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126819	//       "required": true,
126820	//       "type": "string"
126821	//     },
126822	//     "region": {
126823	//       "description": "Name of the region scoping this request.",
126824	//       "location": "path",
126825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126826	//       "required": true,
126827	//       "type": "string"
126828	//     }
126829	//   },
126830	//   "path": "{project}/regions/{region}/sslCertificates",
126831	//   "response": {
126832	//     "$ref": "SslCertificateList"
126833	//   },
126834	//   "scopes": [
126835	//     "https://www.googleapis.com/auth/cloud-platform",
126836	//     "https://www.googleapis.com/auth/compute",
126837	//     "https://www.googleapis.com/auth/compute.readonly"
126838	//   ]
126839	// }
126840
126841}
126842
126843// Pages invokes f for each page of results.
126844// A non-nil error returned from f will halt the iteration.
126845// The provided context supersedes any context provided to the Context method.
126846func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
126847	c.ctx_ = ctx
126848	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126849	for {
126850		x, err := c.Do()
126851		if err != nil {
126852			return err
126853		}
126854		if err := f(x); err != nil {
126855			return err
126856		}
126857		if x.NextPageToken == "" {
126858			return nil
126859		}
126860		c.PageToken(x.NextPageToken)
126861	}
126862}
126863
126864// method id "compute.regionTargetHttpProxies.delete":
126865
126866type RegionTargetHttpProxiesDeleteCall struct {
126867	s               *Service
126868	project         string
126869	region          string
126870	targetHttpProxy string
126871	urlParams_      gensupport.URLParams
126872	ctx_            context.Context
126873	header_         http.Header
126874}
126875
126876// Delete: Deletes the specified TargetHttpProxy resource.
126877func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
126878	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126879	c.project = project
126880	c.region = region
126881	c.targetHttpProxy = targetHttpProxy
126882	return c
126883}
126884
126885// RequestId sets the optional parameter "requestId": An optional
126886// request ID to identify requests. Specify a unique request ID so that
126887// if you must retry your request, the server will know to ignore the
126888// request if it has already been completed.
126889//
126890// For example, consider a situation where you make an initial request
126891// and the request times out. If you make the request again with the
126892// same request ID, the server can check if original operation with the
126893// same request ID was received, and if so, will ignore the second
126894// request. This prevents clients from accidentally creating duplicate
126895// commitments.
126896//
126897// The request ID must be a valid UUID with the exception that zero UUID
126898// is not supported (00000000-0000-0000-0000-000000000000).
126899func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
126900	c.urlParams_.Set("requestId", requestId)
126901	return c
126902}
126903
126904// Fields allows partial responses to be retrieved. See
126905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126906// for more information.
126907func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
126908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126909	return c
126910}
126911
126912// Context sets the context to be used in this call's Do method. Any
126913// pending HTTP request will be aborted if the provided context is
126914// canceled.
126915func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
126916	c.ctx_ = ctx
126917	return c
126918}
126919
126920// Header returns an http.Header that can be modified by the caller to
126921// add HTTP headers to the request.
126922func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
126923	if c.header_ == nil {
126924		c.header_ = make(http.Header)
126925	}
126926	return c.header_
126927}
126928
126929func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
126930	reqHeaders := make(http.Header)
126931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
126932	for k, v := range c.header_ {
126933		reqHeaders[k] = v
126934	}
126935	reqHeaders.Set("User-Agent", c.s.userAgent())
126936	var body io.Reader = nil
126937	c.urlParams_.Set("alt", alt)
126938	c.urlParams_.Set("prettyPrint", "false")
126939	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
126940	urls += "?" + c.urlParams_.Encode()
126941	req, err := http.NewRequest("DELETE", urls, body)
126942	if err != nil {
126943		return nil, err
126944	}
126945	req.Header = reqHeaders
126946	googleapi.Expand(req.URL, map[string]string{
126947		"project":         c.project,
126948		"region":          c.region,
126949		"targetHttpProxy": c.targetHttpProxy,
126950	})
126951	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126952}
126953
126954// Do executes the "compute.regionTargetHttpProxies.delete" call.
126955// Exactly one of *Operation or error will be non-nil. Any non-2xx
126956// status code is an error. Response headers are in either
126957// *Operation.ServerResponse.Header or (if a response was returned at
126958// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126959// to check whether the returned error was because
126960// http.StatusNotModified was returned.
126961func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126962	gensupport.SetOptions(c.urlParams_, opts...)
126963	res, err := c.doRequest("json")
126964	if res != nil && res.StatusCode == http.StatusNotModified {
126965		if res.Body != nil {
126966			res.Body.Close()
126967		}
126968		return nil, &googleapi.Error{
126969			Code:   res.StatusCode,
126970			Header: res.Header,
126971		}
126972	}
126973	if err != nil {
126974		return nil, err
126975	}
126976	defer googleapi.CloseBody(res)
126977	if err := googleapi.CheckResponse(res); err != nil {
126978		return nil, err
126979	}
126980	ret := &Operation{
126981		ServerResponse: googleapi.ServerResponse{
126982			Header:         res.Header,
126983			HTTPStatusCode: res.StatusCode,
126984		},
126985	}
126986	target := &ret
126987	if err := gensupport.DecodeResponse(target, res); err != nil {
126988		return nil, err
126989	}
126990	return ret, nil
126991	// {
126992	//   "description": "Deletes the specified TargetHttpProxy resource.",
126993	//   "httpMethod": "DELETE",
126994	//   "id": "compute.regionTargetHttpProxies.delete",
126995	//   "parameterOrder": [
126996	//     "project",
126997	//     "region",
126998	//     "targetHttpProxy"
126999	//   ],
127000	//   "parameters": {
127001	//     "project": {
127002	//       "description": "Project ID for this request.",
127003	//       "location": "path",
127004	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127005	//       "required": true,
127006	//       "type": "string"
127007	//     },
127008	//     "region": {
127009	//       "description": "Name of the region scoping this request.",
127010	//       "location": "path",
127011	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127012	//       "required": true,
127013	//       "type": "string"
127014	//     },
127015	//     "requestId": {
127016	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127017	//       "location": "query",
127018	//       "type": "string"
127019	//     },
127020	//     "targetHttpProxy": {
127021	//       "description": "Name of the TargetHttpProxy resource to delete.",
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}/targetHttpProxies/{targetHttpProxy}",
127029	//   "response": {
127030	//     "$ref": "Operation"
127031	//   },
127032	//   "scopes": [
127033	//     "https://www.googleapis.com/auth/cloud-platform",
127034	//     "https://www.googleapis.com/auth/compute"
127035	//   ]
127036	// }
127037
127038}
127039
127040// method id "compute.regionTargetHttpProxies.get":
127041
127042type RegionTargetHttpProxiesGetCall struct {
127043	s               *Service
127044	project         string
127045	region          string
127046	targetHttpProxy string
127047	urlParams_      gensupport.URLParams
127048	ifNoneMatch_    string
127049	ctx_            context.Context
127050	header_         http.Header
127051}
127052
127053// Get: Returns the specified TargetHttpProxy resource in the specified
127054// region. Gets a list of available target HTTP proxies by making a
127055// list() request.
127056func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
127057	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127058	c.project = project
127059	c.region = region
127060	c.targetHttpProxy = targetHttpProxy
127061	return c
127062}
127063
127064// Fields allows partial responses to be retrieved. See
127065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127066// for more information.
127067func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
127068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127069	return c
127070}
127071
127072// IfNoneMatch sets the optional parameter which makes the operation
127073// fail if the object's ETag matches the given value. This is useful for
127074// getting updates only after the object has changed since the last
127075// request. Use googleapi.IsNotModified to check whether the response
127076// error from Do is the result of In-None-Match.
127077func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
127078	c.ifNoneMatch_ = entityTag
127079	return c
127080}
127081
127082// Context sets the context to be used in this call's Do method. Any
127083// pending HTTP request will be aborted if the provided context is
127084// canceled.
127085func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
127086	c.ctx_ = ctx
127087	return c
127088}
127089
127090// Header returns an http.Header that can be modified by the caller to
127091// add HTTP headers to the request.
127092func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
127093	if c.header_ == nil {
127094		c.header_ = make(http.Header)
127095	}
127096	return c.header_
127097}
127098
127099func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
127100	reqHeaders := make(http.Header)
127101	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127102	for k, v := range c.header_ {
127103		reqHeaders[k] = v
127104	}
127105	reqHeaders.Set("User-Agent", c.s.userAgent())
127106	if c.ifNoneMatch_ != "" {
127107		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127108	}
127109	var body io.Reader = nil
127110	c.urlParams_.Set("alt", alt)
127111	c.urlParams_.Set("prettyPrint", "false")
127112	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
127113	urls += "?" + c.urlParams_.Encode()
127114	req, err := http.NewRequest("GET", urls, body)
127115	if err != nil {
127116		return nil, err
127117	}
127118	req.Header = reqHeaders
127119	googleapi.Expand(req.URL, map[string]string{
127120		"project":         c.project,
127121		"region":          c.region,
127122		"targetHttpProxy": c.targetHttpProxy,
127123	})
127124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127125}
127126
127127// Do executes the "compute.regionTargetHttpProxies.get" call.
127128// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
127129// status code is an error. Response headers are in either
127130// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
127131// at all) in error.(*googleapi.Error).Header. Use
127132// googleapi.IsNotModified to check whether the returned error was
127133// because http.StatusNotModified was returned.
127134func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
127135	gensupport.SetOptions(c.urlParams_, opts...)
127136	res, err := c.doRequest("json")
127137	if res != nil && res.StatusCode == http.StatusNotModified {
127138		if res.Body != nil {
127139			res.Body.Close()
127140		}
127141		return nil, &googleapi.Error{
127142			Code:   res.StatusCode,
127143			Header: res.Header,
127144		}
127145	}
127146	if err != nil {
127147		return nil, err
127148	}
127149	defer googleapi.CloseBody(res)
127150	if err := googleapi.CheckResponse(res); err != nil {
127151		return nil, err
127152	}
127153	ret := &TargetHttpProxy{
127154		ServerResponse: googleapi.ServerResponse{
127155			Header:         res.Header,
127156			HTTPStatusCode: res.StatusCode,
127157		},
127158	}
127159	target := &ret
127160	if err := gensupport.DecodeResponse(target, res); err != nil {
127161		return nil, err
127162	}
127163	return ret, nil
127164	// {
127165	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
127166	//   "httpMethod": "GET",
127167	//   "id": "compute.regionTargetHttpProxies.get",
127168	//   "parameterOrder": [
127169	//     "project",
127170	//     "region",
127171	//     "targetHttpProxy"
127172	//   ],
127173	//   "parameters": {
127174	//     "project": {
127175	//       "description": "Project ID for this request.",
127176	//       "location": "path",
127177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127178	//       "required": true,
127179	//       "type": "string"
127180	//     },
127181	//     "region": {
127182	//       "description": "Name of the region scoping this request.",
127183	//       "location": "path",
127184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127185	//       "required": true,
127186	//       "type": "string"
127187	//     },
127188	//     "targetHttpProxy": {
127189	//       "description": "Name of the TargetHttpProxy resource to return.",
127190	//       "location": "path",
127191	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127192	//       "required": true,
127193	//       "type": "string"
127194	//     }
127195	//   },
127196	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
127197	//   "response": {
127198	//     "$ref": "TargetHttpProxy"
127199	//   },
127200	//   "scopes": [
127201	//     "https://www.googleapis.com/auth/cloud-platform",
127202	//     "https://www.googleapis.com/auth/compute",
127203	//     "https://www.googleapis.com/auth/compute.readonly"
127204	//   ]
127205	// }
127206
127207}
127208
127209// method id "compute.regionTargetHttpProxies.insert":
127210
127211type RegionTargetHttpProxiesInsertCall struct {
127212	s               *Service
127213	project         string
127214	region          string
127215	targethttpproxy *TargetHttpProxy
127216	urlParams_      gensupport.URLParams
127217	ctx_            context.Context
127218	header_         http.Header
127219}
127220
127221// Insert: Creates a TargetHttpProxy resource in the specified project
127222// and region using the data included in the request.
127223func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
127224	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127225	c.project = project
127226	c.region = region
127227	c.targethttpproxy = targethttpproxy
127228	return c
127229}
127230
127231// RequestId sets the optional parameter "requestId": An optional
127232// request ID to identify requests. Specify a unique request ID so that
127233// if you must retry your request, the server will know to ignore the
127234// request if it has already been completed.
127235//
127236// For example, consider a situation where you make an initial request
127237// and the request times out. If you make the request again with the
127238// same request ID, the server can check if original operation with the
127239// same request ID was received, and if so, will ignore the second
127240// request. This prevents clients from accidentally creating duplicate
127241// commitments.
127242//
127243// The request ID must be a valid UUID with the exception that zero UUID
127244// is not supported (00000000-0000-0000-0000-000000000000).
127245func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
127246	c.urlParams_.Set("requestId", requestId)
127247	return c
127248}
127249
127250// Fields allows partial responses to be retrieved. See
127251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127252// for more information.
127253func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
127254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127255	return c
127256}
127257
127258// Context sets the context to be used in this call's Do method. Any
127259// pending HTTP request will be aborted if the provided context is
127260// canceled.
127261func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
127262	c.ctx_ = ctx
127263	return c
127264}
127265
127266// Header returns an http.Header that can be modified by the caller to
127267// add HTTP headers to the request.
127268func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
127269	if c.header_ == nil {
127270		c.header_ = make(http.Header)
127271	}
127272	return c.header_
127273}
127274
127275func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
127276	reqHeaders := make(http.Header)
127277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127278	for k, v := range c.header_ {
127279		reqHeaders[k] = v
127280	}
127281	reqHeaders.Set("User-Agent", c.s.userAgent())
127282	var body io.Reader = nil
127283	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
127284	if err != nil {
127285		return nil, err
127286	}
127287	reqHeaders.Set("Content-Type", "application/json")
127288	c.urlParams_.Set("alt", alt)
127289	c.urlParams_.Set("prettyPrint", "false")
127290	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
127291	urls += "?" + c.urlParams_.Encode()
127292	req, err := http.NewRequest("POST", urls, body)
127293	if err != nil {
127294		return nil, err
127295	}
127296	req.Header = reqHeaders
127297	googleapi.Expand(req.URL, map[string]string{
127298		"project": c.project,
127299		"region":  c.region,
127300	})
127301	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127302}
127303
127304// Do executes the "compute.regionTargetHttpProxies.insert" call.
127305// Exactly one of *Operation or error will be non-nil. Any non-2xx
127306// status code is an error. Response headers are in either
127307// *Operation.ServerResponse.Header or (if a response was returned at
127308// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127309// to check whether the returned error was because
127310// http.StatusNotModified was returned.
127311func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127312	gensupport.SetOptions(c.urlParams_, opts...)
127313	res, err := c.doRequest("json")
127314	if res != nil && res.StatusCode == http.StatusNotModified {
127315		if res.Body != nil {
127316			res.Body.Close()
127317		}
127318		return nil, &googleapi.Error{
127319			Code:   res.StatusCode,
127320			Header: res.Header,
127321		}
127322	}
127323	if err != nil {
127324		return nil, err
127325	}
127326	defer googleapi.CloseBody(res)
127327	if err := googleapi.CheckResponse(res); err != nil {
127328		return nil, err
127329	}
127330	ret := &Operation{
127331		ServerResponse: googleapi.ServerResponse{
127332			Header:         res.Header,
127333			HTTPStatusCode: res.StatusCode,
127334		},
127335	}
127336	target := &ret
127337	if err := gensupport.DecodeResponse(target, res); err != nil {
127338		return nil, err
127339	}
127340	return ret, nil
127341	// {
127342	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
127343	//   "httpMethod": "POST",
127344	//   "id": "compute.regionTargetHttpProxies.insert",
127345	//   "parameterOrder": [
127346	//     "project",
127347	//     "region"
127348	//   ],
127349	//   "parameters": {
127350	//     "project": {
127351	//       "description": "Project ID for this request.",
127352	//       "location": "path",
127353	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127354	//       "required": true,
127355	//       "type": "string"
127356	//     },
127357	//     "region": {
127358	//       "description": "Name of the region scoping this request.",
127359	//       "location": "path",
127360	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127361	//       "required": true,
127362	//       "type": "string"
127363	//     },
127364	//     "requestId": {
127365	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127366	//       "location": "query",
127367	//       "type": "string"
127368	//     }
127369	//   },
127370	//   "path": "{project}/regions/{region}/targetHttpProxies",
127371	//   "request": {
127372	//     "$ref": "TargetHttpProxy"
127373	//   },
127374	//   "response": {
127375	//     "$ref": "Operation"
127376	//   },
127377	//   "scopes": [
127378	//     "https://www.googleapis.com/auth/cloud-platform",
127379	//     "https://www.googleapis.com/auth/compute"
127380	//   ]
127381	// }
127382
127383}
127384
127385// method id "compute.regionTargetHttpProxies.list":
127386
127387type RegionTargetHttpProxiesListCall struct {
127388	s            *Service
127389	project      string
127390	region       string
127391	urlParams_   gensupport.URLParams
127392	ifNoneMatch_ string
127393	ctx_         context.Context
127394	header_      http.Header
127395}
127396
127397// List: Retrieves the list of TargetHttpProxy resources available to
127398// the specified project in the specified region.
127399func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
127400	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127401	c.project = project
127402	c.region = region
127403	return c
127404}
127405
127406// Filter sets the optional parameter "filter": A filter expression that
127407// filters resources listed in the response. The expression must specify
127408// the field name, a comparison operator, and the value that you want to
127409// use for filtering. The value must be a string, a number, or a
127410// boolean. The comparison operator must be either `=`, `!=`, `>`, or
127411// `<`.
127412//
127413// For example, if you are filtering Compute Engine instances, you can
127414// exclude instances named `example-instance` by specifying `name !=
127415// example-instance`.
127416//
127417// You can also filter nested fields. For example, you could specify
127418// `scheduling.automaticRestart = false` to include instances only if
127419// they are not scheduled for automatic restarts. You can use filtering
127420// on nested fields to filter based on resource labels.
127421//
127422// To filter on multiple expressions, provide each separate expression
127423// within parentheses. For example: ``` (scheduling.automaticRestart =
127424// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
127425// is an `AND` expression. However, you can include `AND` and `OR`
127426// expressions explicitly. For example: ``` (cpuPlatform = "Intel
127427// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
127428// (scheduling.automaticRestart = true) ```
127429func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
127430	c.urlParams_.Set("filter", filter)
127431	return c
127432}
127433
127434// MaxResults sets the optional parameter "maxResults": The maximum
127435// number of results per page that should be returned. If the number of
127436// available results is larger than `maxResults`, Compute Engine returns
127437// a `nextPageToken` that can be used to get the next page of results in
127438// subsequent list requests. Acceptable values are `0` to `500`,
127439// inclusive. (Default: `500`)
127440func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
127441	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127442	return c
127443}
127444
127445// OrderBy sets the optional parameter "orderBy": Sorts list results by
127446// a certain order. By default, results are returned in alphanumerical
127447// order based on the resource name.
127448//
127449// You can also sort results in descending order based on the creation
127450// timestamp using `orderBy="creationTimestamp desc". This sorts
127451// results based on the `creationTimestamp` field in reverse
127452// chronological order (newest result first). Use this to sort resources
127453// like operations so that the newest operation is returned
127454// first.
127455//
127456// Currently, only sorting by `name` or `creationTimestamp desc` is
127457// supported.
127458func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
127459	c.urlParams_.Set("orderBy", orderBy)
127460	return c
127461}
127462
127463// PageToken sets the optional parameter "pageToken": Specifies a page
127464// token to use. Set `pageToken` to the `nextPageToken` returned by a
127465// previous list request to get the next page of results.
127466func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
127467	c.urlParams_.Set("pageToken", pageToken)
127468	return c
127469}
127470
127471// Fields allows partial responses to be retrieved. See
127472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127473// for more information.
127474func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
127475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127476	return c
127477}
127478
127479// IfNoneMatch sets the optional parameter which makes the operation
127480// fail if the object's ETag matches the given value. This is useful for
127481// getting updates only after the object has changed since the last
127482// request. Use googleapi.IsNotModified to check whether the response
127483// error from Do is the result of In-None-Match.
127484func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
127485	c.ifNoneMatch_ = entityTag
127486	return c
127487}
127488
127489// Context sets the context to be used in this call's Do method. Any
127490// pending HTTP request will be aborted if the provided context is
127491// canceled.
127492func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
127493	c.ctx_ = ctx
127494	return c
127495}
127496
127497// Header returns an http.Header that can be modified by the caller to
127498// add HTTP headers to the request.
127499func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
127500	if c.header_ == nil {
127501		c.header_ = make(http.Header)
127502	}
127503	return c.header_
127504}
127505
127506func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
127507	reqHeaders := make(http.Header)
127508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127509	for k, v := range c.header_ {
127510		reqHeaders[k] = v
127511	}
127512	reqHeaders.Set("User-Agent", c.s.userAgent())
127513	if c.ifNoneMatch_ != "" {
127514		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127515	}
127516	var body io.Reader = nil
127517	c.urlParams_.Set("alt", alt)
127518	c.urlParams_.Set("prettyPrint", "false")
127519	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
127520	urls += "?" + c.urlParams_.Encode()
127521	req, err := http.NewRequest("GET", urls, body)
127522	if err != nil {
127523		return nil, err
127524	}
127525	req.Header = reqHeaders
127526	googleapi.Expand(req.URL, map[string]string{
127527		"project": c.project,
127528		"region":  c.region,
127529	})
127530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127531}
127532
127533// Do executes the "compute.regionTargetHttpProxies.list" call.
127534// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
127535// non-2xx status code is an error. Response headers are in either
127536// *TargetHttpProxyList.ServerResponse.Header or (if a response was
127537// returned at all) in error.(*googleapi.Error).Header. Use
127538// googleapi.IsNotModified to check whether the returned error was
127539// because http.StatusNotModified was returned.
127540func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
127541	gensupport.SetOptions(c.urlParams_, opts...)
127542	res, err := c.doRequest("json")
127543	if res != nil && res.StatusCode == http.StatusNotModified {
127544		if res.Body != nil {
127545			res.Body.Close()
127546		}
127547		return nil, &googleapi.Error{
127548			Code:   res.StatusCode,
127549			Header: res.Header,
127550		}
127551	}
127552	if err != nil {
127553		return nil, err
127554	}
127555	defer googleapi.CloseBody(res)
127556	if err := googleapi.CheckResponse(res); err != nil {
127557		return nil, err
127558	}
127559	ret := &TargetHttpProxyList{
127560		ServerResponse: googleapi.ServerResponse{
127561			Header:         res.Header,
127562			HTTPStatusCode: res.StatusCode,
127563		},
127564	}
127565	target := &ret
127566	if err := gensupport.DecodeResponse(target, res); err != nil {
127567		return nil, err
127568	}
127569	return ret, nil
127570	// {
127571	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
127572	//   "httpMethod": "GET",
127573	//   "id": "compute.regionTargetHttpProxies.list",
127574	//   "parameterOrder": [
127575	//     "project",
127576	//     "region"
127577	//   ],
127578	//   "parameters": {
127579	//     "filter": {
127580	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
127581	//       "location": "query",
127582	//       "type": "string"
127583	//     },
127584	//     "maxResults": {
127585	//       "default": "500",
127586	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
127587	//       "format": "uint32",
127588	//       "location": "query",
127589	//       "minimum": "0",
127590	//       "type": "integer"
127591	//     },
127592	//     "orderBy": {
127593	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
127594	//       "location": "query",
127595	//       "type": "string"
127596	//     },
127597	//     "pageToken": {
127598	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
127599	//       "location": "query",
127600	//       "type": "string"
127601	//     },
127602	//     "project": {
127603	//       "description": "Project ID for this request.",
127604	//       "location": "path",
127605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127606	//       "required": true,
127607	//       "type": "string"
127608	//     },
127609	//     "region": {
127610	//       "description": "Name of the region scoping this request.",
127611	//       "location": "path",
127612	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127613	//       "required": true,
127614	//       "type": "string"
127615	//     }
127616	//   },
127617	//   "path": "{project}/regions/{region}/targetHttpProxies",
127618	//   "response": {
127619	//     "$ref": "TargetHttpProxyList"
127620	//   },
127621	//   "scopes": [
127622	//     "https://www.googleapis.com/auth/cloud-platform",
127623	//     "https://www.googleapis.com/auth/compute",
127624	//     "https://www.googleapis.com/auth/compute.readonly"
127625	//   ]
127626	// }
127627
127628}
127629
127630// Pages invokes f for each page of results.
127631// A non-nil error returned from f will halt the iteration.
127632// The provided context supersedes any context provided to the Context method.
127633func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
127634	c.ctx_ = ctx
127635	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127636	for {
127637		x, err := c.Do()
127638		if err != nil {
127639			return err
127640		}
127641		if err := f(x); err != nil {
127642			return err
127643		}
127644		if x.NextPageToken == "" {
127645			return nil
127646		}
127647		c.PageToken(x.NextPageToken)
127648	}
127649}
127650
127651// method id "compute.regionTargetHttpProxies.setUrlMap":
127652
127653type RegionTargetHttpProxiesSetUrlMapCall struct {
127654	s               *Service
127655	project         string
127656	region          string
127657	targetHttpProxy string
127658	urlmapreference *UrlMapReference
127659	urlParams_      gensupport.URLParams
127660	ctx_            context.Context
127661	header_         http.Header
127662}
127663
127664// SetUrlMap: Changes the URL map for TargetHttpProxy.
127665func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
127666	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127667	c.project = project
127668	c.region = region
127669	c.targetHttpProxy = targetHttpProxy
127670	c.urlmapreference = urlmapreference
127671	return c
127672}
127673
127674// RequestId sets the optional parameter "requestId": An optional
127675// request ID to identify requests. Specify a unique request ID so that
127676// if you must retry your request, the server will know to ignore the
127677// request if it has already been completed.
127678//
127679// For example, consider a situation where you make an initial request
127680// and the request times out. If you make the request again with the
127681// same request ID, the server can check if original operation with the
127682// same request ID was received, and if so, will ignore the second
127683// request. This prevents clients from accidentally creating duplicate
127684// commitments.
127685//
127686// The request ID must be a valid UUID with the exception that zero UUID
127687// is not supported (00000000-0000-0000-0000-000000000000).
127688func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
127689	c.urlParams_.Set("requestId", requestId)
127690	return c
127691}
127692
127693// Fields allows partial responses to be retrieved. See
127694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127695// for more information.
127696func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
127697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127698	return c
127699}
127700
127701// Context sets the context to be used in this call's Do method. Any
127702// pending HTTP request will be aborted if the provided context is
127703// canceled.
127704func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
127705	c.ctx_ = ctx
127706	return c
127707}
127708
127709// Header returns an http.Header that can be modified by the caller to
127710// add HTTP headers to the request.
127711func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
127712	if c.header_ == nil {
127713		c.header_ = make(http.Header)
127714	}
127715	return c.header_
127716}
127717
127718func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
127719	reqHeaders := make(http.Header)
127720	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127721	for k, v := range c.header_ {
127722		reqHeaders[k] = v
127723	}
127724	reqHeaders.Set("User-Agent", c.s.userAgent())
127725	var body io.Reader = nil
127726	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
127727	if err != nil {
127728		return nil, err
127729	}
127730	reqHeaders.Set("Content-Type", "application/json")
127731	c.urlParams_.Set("alt", alt)
127732	c.urlParams_.Set("prettyPrint", "false")
127733	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
127734	urls += "?" + c.urlParams_.Encode()
127735	req, err := http.NewRequest("POST", urls, body)
127736	if err != nil {
127737		return nil, err
127738	}
127739	req.Header = reqHeaders
127740	googleapi.Expand(req.URL, map[string]string{
127741		"project":         c.project,
127742		"region":          c.region,
127743		"targetHttpProxy": c.targetHttpProxy,
127744	})
127745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127746}
127747
127748// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
127749// Exactly one of *Operation or error will be non-nil. Any non-2xx
127750// status code is an error. Response headers are in either
127751// *Operation.ServerResponse.Header or (if a response was returned at
127752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127753// to check whether the returned error was because
127754// http.StatusNotModified was returned.
127755func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127756	gensupport.SetOptions(c.urlParams_, opts...)
127757	res, err := c.doRequest("json")
127758	if res != nil && res.StatusCode == http.StatusNotModified {
127759		if res.Body != nil {
127760			res.Body.Close()
127761		}
127762		return nil, &googleapi.Error{
127763			Code:   res.StatusCode,
127764			Header: res.Header,
127765		}
127766	}
127767	if err != nil {
127768		return nil, err
127769	}
127770	defer googleapi.CloseBody(res)
127771	if err := googleapi.CheckResponse(res); err != nil {
127772		return nil, err
127773	}
127774	ret := &Operation{
127775		ServerResponse: googleapi.ServerResponse{
127776			Header:         res.Header,
127777			HTTPStatusCode: res.StatusCode,
127778		},
127779	}
127780	target := &ret
127781	if err := gensupport.DecodeResponse(target, res); err != nil {
127782		return nil, err
127783	}
127784	return ret, nil
127785	// {
127786	//   "description": "Changes the URL map for TargetHttpProxy.",
127787	//   "httpMethod": "POST",
127788	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
127789	//   "parameterOrder": [
127790	//     "project",
127791	//     "region",
127792	//     "targetHttpProxy"
127793	//   ],
127794	//   "parameters": {
127795	//     "project": {
127796	//       "description": "Project ID for this request.",
127797	//       "location": "path",
127798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127799	//       "required": true,
127800	//       "type": "string"
127801	//     },
127802	//     "region": {
127803	//       "description": "Name of the region scoping this request.",
127804	//       "location": "path",
127805	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127806	//       "required": true,
127807	//       "type": "string"
127808	//     },
127809	//     "requestId": {
127810	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127811	//       "location": "query",
127812	//       "type": "string"
127813	//     },
127814	//     "targetHttpProxy": {
127815	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
127816	//       "location": "path",
127817	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127818	//       "required": true,
127819	//       "type": "string"
127820	//     }
127821	//   },
127822	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
127823	//   "request": {
127824	//     "$ref": "UrlMapReference"
127825	//   },
127826	//   "response": {
127827	//     "$ref": "Operation"
127828	//   },
127829	//   "scopes": [
127830	//     "https://www.googleapis.com/auth/cloud-platform",
127831	//     "https://www.googleapis.com/auth/compute"
127832	//   ]
127833	// }
127834
127835}
127836
127837// method id "compute.regionTargetHttpsProxies.delete":
127838
127839type RegionTargetHttpsProxiesDeleteCall struct {
127840	s                *Service
127841	project          string
127842	region           string
127843	targetHttpsProxy string
127844	urlParams_       gensupport.URLParams
127845	ctx_             context.Context
127846	header_          http.Header
127847}
127848
127849// Delete: Deletes the specified TargetHttpsProxy resource.
127850func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
127851	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127852	c.project = project
127853	c.region = region
127854	c.targetHttpsProxy = targetHttpsProxy
127855	return c
127856}
127857
127858// RequestId sets the optional parameter "requestId": An optional
127859// request ID to identify requests. Specify a unique request ID so that
127860// if you must retry your request, the server will know to ignore the
127861// request if it has already been completed.
127862//
127863// For example, consider a situation where you make an initial request
127864// and the request times out. If you make the request again with the
127865// same request ID, the server can check if original operation with the
127866// same request ID was received, and if so, will ignore the second
127867// request. This prevents clients from accidentally creating duplicate
127868// commitments.
127869//
127870// The request ID must be a valid UUID with the exception that zero UUID
127871// is not supported (00000000-0000-0000-0000-000000000000).
127872func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
127873	c.urlParams_.Set("requestId", requestId)
127874	return c
127875}
127876
127877// Fields allows partial responses to be retrieved. See
127878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127879// for more information.
127880func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
127881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127882	return c
127883}
127884
127885// Context sets the context to be used in this call's Do method. Any
127886// pending HTTP request will be aborted if the provided context is
127887// canceled.
127888func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
127889	c.ctx_ = ctx
127890	return c
127891}
127892
127893// Header returns an http.Header that can be modified by the caller to
127894// add HTTP headers to the request.
127895func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
127896	if c.header_ == nil {
127897		c.header_ = make(http.Header)
127898	}
127899	return c.header_
127900}
127901
127902func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
127903	reqHeaders := make(http.Header)
127904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
127905	for k, v := range c.header_ {
127906		reqHeaders[k] = v
127907	}
127908	reqHeaders.Set("User-Agent", c.s.userAgent())
127909	var body io.Reader = nil
127910	c.urlParams_.Set("alt", alt)
127911	c.urlParams_.Set("prettyPrint", "false")
127912	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
127913	urls += "?" + c.urlParams_.Encode()
127914	req, err := http.NewRequest("DELETE", urls, body)
127915	if err != nil {
127916		return nil, err
127917	}
127918	req.Header = reqHeaders
127919	googleapi.Expand(req.URL, map[string]string{
127920		"project":          c.project,
127921		"region":           c.region,
127922		"targetHttpsProxy": c.targetHttpsProxy,
127923	})
127924	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127925}
127926
127927// Do executes the "compute.regionTargetHttpsProxies.delete" call.
127928// Exactly one of *Operation or error will be non-nil. Any non-2xx
127929// status code is an error. Response headers are in either
127930// *Operation.ServerResponse.Header or (if a response was returned at
127931// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127932// to check whether the returned error was because
127933// http.StatusNotModified was returned.
127934func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127935	gensupport.SetOptions(c.urlParams_, opts...)
127936	res, err := c.doRequest("json")
127937	if res != nil && res.StatusCode == http.StatusNotModified {
127938		if res.Body != nil {
127939			res.Body.Close()
127940		}
127941		return nil, &googleapi.Error{
127942			Code:   res.StatusCode,
127943			Header: res.Header,
127944		}
127945	}
127946	if err != nil {
127947		return nil, err
127948	}
127949	defer googleapi.CloseBody(res)
127950	if err := googleapi.CheckResponse(res); err != nil {
127951		return nil, err
127952	}
127953	ret := &Operation{
127954		ServerResponse: googleapi.ServerResponse{
127955			Header:         res.Header,
127956			HTTPStatusCode: res.StatusCode,
127957		},
127958	}
127959	target := &ret
127960	if err := gensupport.DecodeResponse(target, res); err != nil {
127961		return nil, err
127962	}
127963	return ret, nil
127964	// {
127965	//   "description": "Deletes the specified TargetHttpsProxy resource.",
127966	//   "httpMethod": "DELETE",
127967	//   "id": "compute.regionTargetHttpsProxies.delete",
127968	//   "parameterOrder": [
127969	//     "project",
127970	//     "region",
127971	//     "targetHttpsProxy"
127972	//   ],
127973	//   "parameters": {
127974	//     "project": {
127975	//       "description": "Project ID for this request.",
127976	//       "location": "path",
127977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127978	//       "required": true,
127979	//       "type": "string"
127980	//     },
127981	//     "region": {
127982	//       "description": "Name of the region scoping this request.",
127983	//       "location": "path",
127984	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127985	//       "required": true,
127986	//       "type": "string"
127987	//     },
127988	//     "requestId": {
127989	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127990	//       "location": "query",
127991	//       "type": "string"
127992	//     },
127993	//     "targetHttpsProxy": {
127994	//       "description": "Name of the TargetHttpsProxy resource to delete.",
127995	//       "location": "path",
127996	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127997	//       "required": true,
127998	//       "type": "string"
127999	//     }
128000	//   },
128001	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
128002	//   "response": {
128003	//     "$ref": "Operation"
128004	//   },
128005	//   "scopes": [
128006	//     "https://www.googleapis.com/auth/cloud-platform",
128007	//     "https://www.googleapis.com/auth/compute"
128008	//   ]
128009	// }
128010
128011}
128012
128013// method id "compute.regionTargetHttpsProxies.get":
128014
128015type RegionTargetHttpsProxiesGetCall struct {
128016	s                *Service
128017	project          string
128018	region           string
128019	targetHttpsProxy string
128020	urlParams_       gensupport.URLParams
128021	ifNoneMatch_     string
128022	ctx_             context.Context
128023	header_          http.Header
128024}
128025
128026// Get: Returns the specified TargetHttpsProxy resource in the specified
128027// region. Gets a list of available target HTTP proxies by making a
128028// list() request.
128029func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
128030	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128031	c.project = project
128032	c.region = region
128033	c.targetHttpsProxy = targetHttpsProxy
128034	return c
128035}
128036
128037// Fields allows partial responses to be retrieved. See
128038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128039// for more information.
128040func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
128041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128042	return c
128043}
128044
128045// IfNoneMatch sets the optional parameter which makes the operation
128046// fail if the object's ETag matches the given value. This is useful for
128047// getting updates only after the object has changed since the last
128048// request. Use googleapi.IsNotModified to check whether the response
128049// error from Do is the result of In-None-Match.
128050func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
128051	c.ifNoneMatch_ = entityTag
128052	return c
128053}
128054
128055// Context sets the context to be used in this call's Do method. Any
128056// pending HTTP request will be aborted if the provided context is
128057// canceled.
128058func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
128059	c.ctx_ = ctx
128060	return c
128061}
128062
128063// Header returns an http.Header that can be modified by the caller to
128064// add HTTP headers to the request.
128065func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
128066	if c.header_ == nil {
128067		c.header_ = make(http.Header)
128068	}
128069	return c.header_
128070}
128071
128072func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
128073	reqHeaders := make(http.Header)
128074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128075	for k, v := range c.header_ {
128076		reqHeaders[k] = v
128077	}
128078	reqHeaders.Set("User-Agent", c.s.userAgent())
128079	if c.ifNoneMatch_ != "" {
128080		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128081	}
128082	var body io.Reader = nil
128083	c.urlParams_.Set("alt", alt)
128084	c.urlParams_.Set("prettyPrint", "false")
128085	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
128086	urls += "?" + c.urlParams_.Encode()
128087	req, err := http.NewRequest("GET", urls, body)
128088	if err != nil {
128089		return nil, err
128090	}
128091	req.Header = reqHeaders
128092	googleapi.Expand(req.URL, map[string]string{
128093		"project":          c.project,
128094		"region":           c.region,
128095		"targetHttpsProxy": c.targetHttpsProxy,
128096	})
128097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128098}
128099
128100// Do executes the "compute.regionTargetHttpsProxies.get" call.
128101// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
128102// non-2xx status code is an error. Response headers are in either
128103// *TargetHttpsProxy.ServerResponse.Header or (if a response was
128104// returned at all) in error.(*googleapi.Error).Header. Use
128105// googleapi.IsNotModified to check whether the returned error was
128106// because http.StatusNotModified was returned.
128107func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
128108	gensupport.SetOptions(c.urlParams_, opts...)
128109	res, err := c.doRequest("json")
128110	if res != nil && res.StatusCode == http.StatusNotModified {
128111		if res.Body != nil {
128112			res.Body.Close()
128113		}
128114		return nil, &googleapi.Error{
128115			Code:   res.StatusCode,
128116			Header: res.Header,
128117		}
128118	}
128119	if err != nil {
128120		return nil, err
128121	}
128122	defer googleapi.CloseBody(res)
128123	if err := googleapi.CheckResponse(res); err != nil {
128124		return nil, err
128125	}
128126	ret := &TargetHttpsProxy{
128127		ServerResponse: googleapi.ServerResponse{
128128			Header:         res.Header,
128129			HTTPStatusCode: res.StatusCode,
128130		},
128131	}
128132	target := &ret
128133	if err := gensupport.DecodeResponse(target, res); err != nil {
128134		return nil, err
128135	}
128136	return ret, nil
128137	// {
128138	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
128139	//   "httpMethod": "GET",
128140	//   "id": "compute.regionTargetHttpsProxies.get",
128141	//   "parameterOrder": [
128142	//     "project",
128143	//     "region",
128144	//     "targetHttpsProxy"
128145	//   ],
128146	//   "parameters": {
128147	//     "project": {
128148	//       "description": "Project ID for this request.",
128149	//       "location": "path",
128150	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128151	//       "required": true,
128152	//       "type": "string"
128153	//     },
128154	//     "region": {
128155	//       "description": "Name of the region scoping this request.",
128156	//       "location": "path",
128157	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128158	//       "required": true,
128159	//       "type": "string"
128160	//     },
128161	//     "targetHttpsProxy": {
128162	//       "description": "Name of the TargetHttpsProxy resource to return.",
128163	//       "location": "path",
128164	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128165	//       "required": true,
128166	//       "type": "string"
128167	//     }
128168	//   },
128169	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
128170	//   "response": {
128171	//     "$ref": "TargetHttpsProxy"
128172	//   },
128173	//   "scopes": [
128174	//     "https://www.googleapis.com/auth/cloud-platform",
128175	//     "https://www.googleapis.com/auth/compute",
128176	//     "https://www.googleapis.com/auth/compute.readonly"
128177	//   ]
128178	// }
128179
128180}
128181
128182// method id "compute.regionTargetHttpsProxies.insert":
128183
128184type RegionTargetHttpsProxiesInsertCall struct {
128185	s                *Service
128186	project          string
128187	region           string
128188	targethttpsproxy *TargetHttpsProxy
128189	urlParams_       gensupport.URLParams
128190	ctx_             context.Context
128191	header_          http.Header
128192}
128193
128194// Insert: Creates a TargetHttpsProxy resource in the specified project
128195// and region using the data included in the request.
128196func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
128197	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128198	c.project = project
128199	c.region = region
128200	c.targethttpsproxy = targethttpsproxy
128201	return c
128202}
128203
128204// RequestId sets the optional parameter "requestId": An optional
128205// request ID to identify requests. Specify a unique request ID so that
128206// if you must retry your request, the server will know to ignore the
128207// request if it has already been completed.
128208//
128209// For example, consider a situation where you make an initial request
128210// and the request times out. If you make the request again with the
128211// same request ID, the server can check if original operation with the
128212// same request ID was received, and if so, will ignore the second
128213// request. This prevents clients from accidentally creating duplicate
128214// commitments.
128215//
128216// The request ID must be a valid UUID with the exception that zero UUID
128217// is not supported (00000000-0000-0000-0000-000000000000).
128218func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
128219	c.urlParams_.Set("requestId", requestId)
128220	return c
128221}
128222
128223// Fields allows partial responses to be retrieved. See
128224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128225// for more information.
128226func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
128227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128228	return c
128229}
128230
128231// Context sets the context to be used in this call's Do method. Any
128232// pending HTTP request will be aborted if the provided context is
128233// canceled.
128234func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
128235	c.ctx_ = ctx
128236	return c
128237}
128238
128239// Header returns an http.Header that can be modified by the caller to
128240// add HTTP headers to the request.
128241func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
128242	if c.header_ == nil {
128243		c.header_ = make(http.Header)
128244	}
128245	return c.header_
128246}
128247
128248func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
128249	reqHeaders := make(http.Header)
128250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128251	for k, v := range c.header_ {
128252		reqHeaders[k] = v
128253	}
128254	reqHeaders.Set("User-Agent", c.s.userAgent())
128255	var body io.Reader = nil
128256	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
128257	if err != nil {
128258		return nil, err
128259	}
128260	reqHeaders.Set("Content-Type", "application/json")
128261	c.urlParams_.Set("alt", alt)
128262	c.urlParams_.Set("prettyPrint", "false")
128263	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
128264	urls += "?" + c.urlParams_.Encode()
128265	req, err := http.NewRequest("POST", urls, body)
128266	if err != nil {
128267		return nil, err
128268	}
128269	req.Header = reqHeaders
128270	googleapi.Expand(req.URL, map[string]string{
128271		"project": c.project,
128272		"region":  c.region,
128273	})
128274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128275}
128276
128277// Do executes the "compute.regionTargetHttpsProxies.insert" call.
128278// Exactly one of *Operation or error will be non-nil. Any non-2xx
128279// status code is an error. Response headers are in either
128280// *Operation.ServerResponse.Header or (if a response was returned at
128281// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128282// to check whether the returned error was because
128283// http.StatusNotModified was returned.
128284func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128285	gensupport.SetOptions(c.urlParams_, opts...)
128286	res, err := c.doRequest("json")
128287	if res != nil && res.StatusCode == http.StatusNotModified {
128288		if res.Body != nil {
128289			res.Body.Close()
128290		}
128291		return nil, &googleapi.Error{
128292			Code:   res.StatusCode,
128293			Header: res.Header,
128294		}
128295	}
128296	if err != nil {
128297		return nil, err
128298	}
128299	defer googleapi.CloseBody(res)
128300	if err := googleapi.CheckResponse(res); err != nil {
128301		return nil, err
128302	}
128303	ret := &Operation{
128304		ServerResponse: googleapi.ServerResponse{
128305			Header:         res.Header,
128306			HTTPStatusCode: res.StatusCode,
128307		},
128308	}
128309	target := &ret
128310	if err := gensupport.DecodeResponse(target, res); err != nil {
128311		return nil, err
128312	}
128313	return ret, nil
128314	// {
128315	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
128316	//   "httpMethod": "POST",
128317	//   "id": "compute.regionTargetHttpsProxies.insert",
128318	//   "parameterOrder": [
128319	//     "project",
128320	//     "region"
128321	//   ],
128322	//   "parameters": {
128323	//     "project": {
128324	//       "description": "Project ID for this request.",
128325	//       "location": "path",
128326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128327	//       "required": true,
128328	//       "type": "string"
128329	//     },
128330	//     "region": {
128331	//       "description": "Name of the region scoping this request.",
128332	//       "location": "path",
128333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128334	//       "required": true,
128335	//       "type": "string"
128336	//     },
128337	//     "requestId": {
128338	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128339	//       "location": "query",
128340	//       "type": "string"
128341	//     }
128342	//   },
128343	//   "path": "{project}/regions/{region}/targetHttpsProxies",
128344	//   "request": {
128345	//     "$ref": "TargetHttpsProxy"
128346	//   },
128347	//   "response": {
128348	//     "$ref": "Operation"
128349	//   },
128350	//   "scopes": [
128351	//     "https://www.googleapis.com/auth/cloud-platform",
128352	//     "https://www.googleapis.com/auth/compute"
128353	//   ]
128354	// }
128355
128356}
128357
128358// method id "compute.regionTargetHttpsProxies.list":
128359
128360type RegionTargetHttpsProxiesListCall struct {
128361	s            *Service
128362	project      string
128363	region       string
128364	urlParams_   gensupport.URLParams
128365	ifNoneMatch_ string
128366	ctx_         context.Context
128367	header_      http.Header
128368}
128369
128370// List: Retrieves the list of TargetHttpsProxy resources available to
128371// the specified project in the specified region.
128372func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
128373	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128374	c.project = project
128375	c.region = region
128376	return c
128377}
128378
128379// Filter sets the optional parameter "filter": A filter expression that
128380// filters resources listed in the response. The expression must specify
128381// the field name, a comparison operator, and the value that you want to
128382// use for filtering. The value must be a string, a number, or a
128383// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128384// `<`.
128385//
128386// For example, if you are filtering Compute Engine instances, you can
128387// exclude instances named `example-instance` by specifying `name !=
128388// example-instance`.
128389//
128390// You can also filter nested fields. For example, you could specify
128391// `scheduling.automaticRestart = false` to include instances only if
128392// they are not scheduled for automatic restarts. You can use filtering
128393// on nested fields to filter based on resource labels.
128394//
128395// To filter on multiple expressions, provide each separate expression
128396// within parentheses. For example: ``` (scheduling.automaticRestart =
128397// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
128398// is an `AND` expression. However, you can include `AND` and `OR`
128399// expressions explicitly. For example: ``` (cpuPlatform = "Intel
128400// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
128401// (scheduling.automaticRestart = true) ```
128402func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
128403	c.urlParams_.Set("filter", filter)
128404	return c
128405}
128406
128407// MaxResults sets the optional parameter "maxResults": The maximum
128408// number of results per page that should be returned. If the number of
128409// available results is larger than `maxResults`, Compute Engine returns
128410// a `nextPageToken` that can be used to get the next page of results in
128411// subsequent list requests. Acceptable values are `0` to `500`,
128412// inclusive. (Default: `500`)
128413func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
128414	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128415	return c
128416}
128417
128418// OrderBy sets the optional parameter "orderBy": Sorts list results by
128419// a certain order. By default, results are returned in alphanumerical
128420// order based on the resource name.
128421//
128422// You can also sort results in descending order based on the creation
128423// timestamp using `orderBy="creationTimestamp desc". This sorts
128424// results based on the `creationTimestamp` field in reverse
128425// chronological order (newest result first). Use this to sort resources
128426// like operations so that the newest operation is returned
128427// first.
128428//
128429// Currently, only sorting by `name` or `creationTimestamp desc` is
128430// supported.
128431func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
128432	c.urlParams_.Set("orderBy", orderBy)
128433	return c
128434}
128435
128436// PageToken sets the optional parameter "pageToken": Specifies a page
128437// token to use. Set `pageToken` to the `nextPageToken` returned by a
128438// previous list request to get the next page of results.
128439func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
128440	c.urlParams_.Set("pageToken", pageToken)
128441	return c
128442}
128443
128444// Fields allows partial responses to be retrieved. See
128445// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128446// for more information.
128447func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
128448	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128449	return c
128450}
128451
128452// IfNoneMatch sets the optional parameter which makes the operation
128453// fail if the object's ETag matches the given value. This is useful for
128454// getting updates only after the object has changed since the last
128455// request. Use googleapi.IsNotModified to check whether the response
128456// error from Do is the result of In-None-Match.
128457func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
128458	c.ifNoneMatch_ = entityTag
128459	return c
128460}
128461
128462// Context sets the context to be used in this call's Do method. Any
128463// pending HTTP request will be aborted if the provided context is
128464// canceled.
128465func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
128466	c.ctx_ = ctx
128467	return c
128468}
128469
128470// Header returns an http.Header that can be modified by the caller to
128471// add HTTP headers to the request.
128472func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
128473	if c.header_ == nil {
128474		c.header_ = make(http.Header)
128475	}
128476	return c.header_
128477}
128478
128479func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
128480	reqHeaders := make(http.Header)
128481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128482	for k, v := range c.header_ {
128483		reqHeaders[k] = v
128484	}
128485	reqHeaders.Set("User-Agent", c.s.userAgent())
128486	if c.ifNoneMatch_ != "" {
128487		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128488	}
128489	var body io.Reader = nil
128490	c.urlParams_.Set("alt", alt)
128491	c.urlParams_.Set("prettyPrint", "false")
128492	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
128493	urls += "?" + c.urlParams_.Encode()
128494	req, err := http.NewRequest("GET", urls, body)
128495	if err != nil {
128496		return nil, err
128497	}
128498	req.Header = reqHeaders
128499	googleapi.Expand(req.URL, map[string]string{
128500		"project": c.project,
128501		"region":  c.region,
128502	})
128503	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128504}
128505
128506// Do executes the "compute.regionTargetHttpsProxies.list" call.
128507// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
128508// non-2xx status code is an error. Response headers are in either
128509// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
128510// returned at all) in error.(*googleapi.Error).Header. Use
128511// googleapi.IsNotModified to check whether the returned error was
128512// because http.StatusNotModified was returned.
128513func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
128514	gensupport.SetOptions(c.urlParams_, opts...)
128515	res, err := c.doRequest("json")
128516	if res != nil && res.StatusCode == http.StatusNotModified {
128517		if res.Body != nil {
128518			res.Body.Close()
128519		}
128520		return nil, &googleapi.Error{
128521			Code:   res.StatusCode,
128522			Header: res.Header,
128523		}
128524	}
128525	if err != nil {
128526		return nil, err
128527	}
128528	defer googleapi.CloseBody(res)
128529	if err := googleapi.CheckResponse(res); err != nil {
128530		return nil, err
128531	}
128532	ret := &TargetHttpsProxyList{
128533		ServerResponse: googleapi.ServerResponse{
128534			Header:         res.Header,
128535			HTTPStatusCode: res.StatusCode,
128536		},
128537	}
128538	target := &ret
128539	if err := gensupport.DecodeResponse(target, res); err != nil {
128540		return nil, err
128541	}
128542	return ret, nil
128543	// {
128544	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
128545	//   "httpMethod": "GET",
128546	//   "id": "compute.regionTargetHttpsProxies.list",
128547	//   "parameterOrder": [
128548	//     "project",
128549	//     "region"
128550	//   ],
128551	//   "parameters": {
128552	//     "filter": {
128553	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
128554	//       "location": "query",
128555	//       "type": "string"
128556	//     },
128557	//     "maxResults": {
128558	//       "default": "500",
128559	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128560	//       "format": "uint32",
128561	//       "location": "query",
128562	//       "minimum": "0",
128563	//       "type": "integer"
128564	//     },
128565	//     "orderBy": {
128566	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
128567	//       "location": "query",
128568	//       "type": "string"
128569	//     },
128570	//     "pageToken": {
128571	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128572	//       "location": "query",
128573	//       "type": "string"
128574	//     },
128575	//     "project": {
128576	//       "description": "Project ID for this request.",
128577	//       "location": "path",
128578	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128579	//       "required": true,
128580	//       "type": "string"
128581	//     },
128582	//     "region": {
128583	//       "description": "Name of the region scoping this request.",
128584	//       "location": "path",
128585	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128586	//       "required": true,
128587	//       "type": "string"
128588	//     }
128589	//   },
128590	//   "path": "{project}/regions/{region}/targetHttpsProxies",
128591	//   "response": {
128592	//     "$ref": "TargetHttpsProxyList"
128593	//   },
128594	//   "scopes": [
128595	//     "https://www.googleapis.com/auth/cloud-platform",
128596	//     "https://www.googleapis.com/auth/compute",
128597	//     "https://www.googleapis.com/auth/compute.readonly"
128598	//   ]
128599	// }
128600
128601}
128602
128603// Pages invokes f for each page of results.
128604// A non-nil error returned from f will halt the iteration.
128605// The provided context supersedes any context provided to the Context method.
128606func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
128607	c.ctx_ = ctx
128608	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128609	for {
128610		x, err := c.Do()
128611		if err != nil {
128612			return err
128613		}
128614		if err := f(x); err != nil {
128615			return err
128616		}
128617		if x.NextPageToken == "" {
128618			return nil
128619		}
128620		c.PageToken(x.NextPageToken)
128621	}
128622}
128623
128624// method id "compute.regionTargetHttpsProxies.setSslCertificates":
128625
128626type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
128627	s                                                 *Service
128628	project                                           string
128629	region                                            string
128630	targetHttpsProxy                                  string
128631	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
128632	urlParams_                                        gensupport.URLParams
128633	ctx_                                              context.Context
128634	header_                                           http.Header
128635}
128636
128637// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
128638func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
128639	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128640	c.project = project
128641	c.region = region
128642	c.targetHttpsProxy = targetHttpsProxy
128643	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
128644	return c
128645}
128646
128647// RequestId sets the optional parameter "requestId": An optional
128648// request ID to identify requests. Specify a unique request ID so that
128649// if you must retry your request, the server will know to ignore the
128650// request if it has already been completed.
128651//
128652// For example, consider a situation where you make an initial request
128653// and the request times out. If you make the request again with the
128654// same request ID, the server can check if original operation with the
128655// same request ID was received, and if so, will ignore the second
128656// request. This prevents clients from accidentally creating duplicate
128657// commitments.
128658//
128659// The request ID must be a valid UUID with the exception that zero UUID
128660// is not supported (00000000-0000-0000-0000-000000000000).
128661func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
128662	c.urlParams_.Set("requestId", requestId)
128663	return c
128664}
128665
128666// Fields allows partial responses to be retrieved. See
128667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128668// for more information.
128669func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
128670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128671	return c
128672}
128673
128674// Context sets the context to be used in this call's Do method. Any
128675// pending HTTP request will be aborted if the provided context is
128676// canceled.
128677func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
128678	c.ctx_ = ctx
128679	return c
128680}
128681
128682// Header returns an http.Header that can be modified by the caller to
128683// add HTTP headers to the request.
128684func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
128685	if c.header_ == nil {
128686		c.header_ = make(http.Header)
128687	}
128688	return c.header_
128689}
128690
128691func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
128692	reqHeaders := make(http.Header)
128693	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128694	for k, v := range c.header_ {
128695		reqHeaders[k] = v
128696	}
128697	reqHeaders.Set("User-Agent", c.s.userAgent())
128698	var body io.Reader = nil
128699	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
128700	if err != nil {
128701		return nil, err
128702	}
128703	reqHeaders.Set("Content-Type", "application/json")
128704	c.urlParams_.Set("alt", alt)
128705	c.urlParams_.Set("prettyPrint", "false")
128706	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
128707	urls += "?" + c.urlParams_.Encode()
128708	req, err := http.NewRequest("POST", urls, body)
128709	if err != nil {
128710		return nil, err
128711	}
128712	req.Header = reqHeaders
128713	googleapi.Expand(req.URL, map[string]string{
128714		"project":          c.project,
128715		"region":           c.region,
128716		"targetHttpsProxy": c.targetHttpsProxy,
128717	})
128718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128719}
128720
128721// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
128722// Exactly one of *Operation or error will be non-nil. Any non-2xx
128723// status code is an error. Response headers are in either
128724// *Operation.ServerResponse.Header or (if a response was returned at
128725// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128726// to check whether the returned error was because
128727// http.StatusNotModified was returned.
128728func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128729	gensupport.SetOptions(c.urlParams_, opts...)
128730	res, err := c.doRequest("json")
128731	if res != nil && res.StatusCode == http.StatusNotModified {
128732		if res.Body != nil {
128733			res.Body.Close()
128734		}
128735		return nil, &googleapi.Error{
128736			Code:   res.StatusCode,
128737			Header: res.Header,
128738		}
128739	}
128740	if err != nil {
128741		return nil, err
128742	}
128743	defer googleapi.CloseBody(res)
128744	if err := googleapi.CheckResponse(res); err != nil {
128745		return nil, err
128746	}
128747	ret := &Operation{
128748		ServerResponse: googleapi.ServerResponse{
128749			Header:         res.Header,
128750			HTTPStatusCode: res.StatusCode,
128751		},
128752	}
128753	target := &ret
128754	if err := gensupport.DecodeResponse(target, res); err != nil {
128755		return nil, err
128756	}
128757	return ret, nil
128758	// {
128759	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
128760	//   "httpMethod": "POST",
128761	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
128762	//   "parameterOrder": [
128763	//     "project",
128764	//     "region",
128765	//     "targetHttpsProxy"
128766	//   ],
128767	//   "parameters": {
128768	//     "project": {
128769	//       "description": "Project ID for this request.",
128770	//       "location": "path",
128771	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128772	//       "required": true,
128773	//       "type": "string"
128774	//     },
128775	//     "region": {
128776	//       "description": "Name of the region scoping this request.",
128777	//       "location": "path",
128778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128779	//       "required": true,
128780	//       "type": "string"
128781	//     },
128782	//     "requestId": {
128783	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128784	//       "location": "query",
128785	//       "type": "string"
128786	//     },
128787	//     "targetHttpsProxy": {
128788	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
128789	//       "location": "path",
128790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128791	//       "required": true,
128792	//       "type": "string"
128793	//     }
128794	//   },
128795	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
128796	//   "request": {
128797	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
128798	//   },
128799	//   "response": {
128800	//     "$ref": "Operation"
128801	//   },
128802	//   "scopes": [
128803	//     "https://www.googleapis.com/auth/cloud-platform",
128804	//     "https://www.googleapis.com/auth/compute"
128805	//   ]
128806	// }
128807
128808}
128809
128810// method id "compute.regionTargetHttpsProxies.setUrlMap":
128811
128812type RegionTargetHttpsProxiesSetUrlMapCall struct {
128813	s                *Service
128814	project          string
128815	region           string
128816	targetHttpsProxy string
128817	urlmapreference  *UrlMapReference
128818	urlParams_       gensupport.URLParams
128819	ctx_             context.Context
128820	header_          http.Header
128821}
128822
128823// SetUrlMap: Changes the URL map for TargetHttpsProxy.
128824func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
128825	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128826	c.project = project
128827	c.region = region
128828	c.targetHttpsProxy = targetHttpsProxy
128829	c.urlmapreference = urlmapreference
128830	return c
128831}
128832
128833// RequestId sets the optional parameter "requestId": An optional
128834// request ID to identify requests. Specify a unique request ID so that
128835// if you must retry your request, the server will know to ignore the
128836// request if it has already been completed.
128837//
128838// For example, consider a situation where you make an initial request
128839// and the request times out. If you make the request again with the
128840// same request ID, the server can check if original operation with the
128841// same request ID was received, and if so, will ignore the second
128842// request. This prevents clients from accidentally creating duplicate
128843// commitments.
128844//
128845// The request ID must be a valid UUID with the exception that zero UUID
128846// is not supported (00000000-0000-0000-0000-000000000000).
128847func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
128848	c.urlParams_.Set("requestId", requestId)
128849	return c
128850}
128851
128852// Fields allows partial responses to be retrieved. See
128853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128854// for more information.
128855func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
128856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128857	return c
128858}
128859
128860// Context sets the context to be used in this call's Do method. Any
128861// pending HTTP request will be aborted if the provided context is
128862// canceled.
128863func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
128864	c.ctx_ = ctx
128865	return c
128866}
128867
128868// Header returns an http.Header that can be modified by the caller to
128869// add HTTP headers to the request.
128870func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
128871	if c.header_ == nil {
128872		c.header_ = make(http.Header)
128873	}
128874	return c.header_
128875}
128876
128877func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
128878	reqHeaders := make(http.Header)
128879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
128880	for k, v := range c.header_ {
128881		reqHeaders[k] = v
128882	}
128883	reqHeaders.Set("User-Agent", c.s.userAgent())
128884	var body io.Reader = nil
128885	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
128886	if err != nil {
128887		return nil, err
128888	}
128889	reqHeaders.Set("Content-Type", "application/json")
128890	c.urlParams_.Set("alt", alt)
128891	c.urlParams_.Set("prettyPrint", "false")
128892	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
128893	urls += "?" + c.urlParams_.Encode()
128894	req, err := http.NewRequest("POST", urls, body)
128895	if err != nil {
128896		return nil, err
128897	}
128898	req.Header = reqHeaders
128899	googleapi.Expand(req.URL, map[string]string{
128900		"project":          c.project,
128901		"region":           c.region,
128902		"targetHttpsProxy": c.targetHttpsProxy,
128903	})
128904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128905}
128906
128907// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
128908// Exactly one of *Operation or error will be non-nil. Any non-2xx
128909// status code is an error. Response headers are in either
128910// *Operation.ServerResponse.Header or (if a response was returned at
128911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128912// to check whether the returned error was because
128913// http.StatusNotModified was returned.
128914func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128915	gensupport.SetOptions(c.urlParams_, opts...)
128916	res, err := c.doRequest("json")
128917	if res != nil && res.StatusCode == http.StatusNotModified {
128918		if res.Body != nil {
128919			res.Body.Close()
128920		}
128921		return nil, &googleapi.Error{
128922			Code:   res.StatusCode,
128923			Header: res.Header,
128924		}
128925	}
128926	if err != nil {
128927		return nil, err
128928	}
128929	defer googleapi.CloseBody(res)
128930	if err := googleapi.CheckResponse(res); err != nil {
128931		return nil, err
128932	}
128933	ret := &Operation{
128934		ServerResponse: googleapi.ServerResponse{
128935			Header:         res.Header,
128936			HTTPStatusCode: res.StatusCode,
128937		},
128938	}
128939	target := &ret
128940	if err := gensupport.DecodeResponse(target, res); err != nil {
128941		return nil, err
128942	}
128943	return ret, nil
128944	// {
128945	//   "description": "Changes the URL map for TargetHttpsProxy.",
128946	//   "httpMethod": "POST",
128947	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
128948	//   "parameterOrder": [
128949	//     "project",
128950	//     "region",
128951	//     "targetHttpsProxy"
128952	//   ],
128953	//   "parameters": {
128954	//     "project": {
128955	//       "description": "Project ID for this request.",
128956	//       "location": "path",
128957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128958	//       "required": true,
128959	//       "type": "string"
128960	//     },
128961	//     "region": {
128962	//       "description": "Name of the region scoping this request.",
128963	//       "location": "path",
128964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128965	//       "required": true,
128966	//       "type": "string"
128967	//     },
128968	//     "requestId": {
128969	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128970	//       "location": "query",
128971	//       "type": "string"
128972	//     },
128973	//     "targetHttpsProxy": {
128974	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
128975	//       "location": "path",
128976	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128977	//       "required": true,
128978	//       "type": "string"
128979	//     }
128980	//   },
128981	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
128982	//   "request": {
128983	//     "$ref": "UrlMapReference"
128984	//   },
128985	//   "response": {
128986	//     "$ref": "Operation"
128987	//   },
128988	//   "scopes": [
128989	//     "https://www.googleapis.com/auth/cloud-platform",
128990	//     "https://www.googleapis.com/auth/compute"
128991	//   ]
128992	// }
128993
128994}
128995
128996// method id "compute.regionUrlMaps.delete":
128997
128998type RegionUrlMapsDeleteCall struct {
128999	s          *Service
129000	project    string
129001	region     string
129002	urlMap     string
129003	urlParams_ gensupport.URLParams
129004	ctx_       context.Context
129005	header_    http.Header
129006}
129007
129008// Delete: Deletes the specified UrlMap resource.
129009func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
129010	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129011	c.project = project
129012	c.region = region
129013	c.urlMap = urlMap
129014	return c
129015}
129016
129017// RequestId sets the optional parameter "requestId": begin_interface:
129018// MixerMutationRequestBuilder Request ID to support idempotency.
129019func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
129020	c.urlParams_.Set("requestId", requestId)
129021	return c
129022}
129023
129024// Fields allows partial responses to be retrieved. See
129025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129026// for more information.
129027func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
129028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129029	return c
129030}
129031
129032// Context sets the context to be used in this call's Do method. Any
129033// pending HTTP request will be aborted if the provided context is
129034// canceled.
129035func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
129036	c.ctx_ = ctx
129037	return c
129038}
129039
129040// Header returns an http.Header that can be modified by the caller to
129041// add HTTP headers to the request.
129042func (c *RegionUrlMapsDeleteCall) Header() http.Header {
129043	if c.header_ == nil {
129044		c.header_ = make(http.Header)
129045	}
129046	return c.header_
129047}
129048
129049func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
129050	reqHeaders := make(http.Header)
129051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129052	for k, v := range c.header_ {
129053		reqHeaders[k] = v
129054	}
129055	reqHeaders.Set("User-Agent", c.s.userAgent())
129056	var body io.Reader = nil
129057	c.urlParams_.Set("alt", alt)
129058	c.urlParams_.Set("prettyPrint", "false")
129059	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
129060	urls += "?" + c.urlParams_.Encode()
129061	req, err := http.NewRequest("DELETE", urls, body)
129062	if err != nil {
129063		return nil, err
129064	}
129065	req.Header = reqHeaders
129066	googleapi.Expand(req.URL, map[string]string{
129067		"project": c.project,
129068		"region":  c.region,
129069		"urlMap":  c.urlMap,
129070	})
129071	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129072}
129073
129074// Do executes the "compute.regionUrlMaps.delete" call.
129075// Exactly one of *Operation or error will be non-nil. Any non-2xx
129076// status code is an error. Response headers are in either
129077// *Operation.ServerResponse.Header or (if a response was returned at
129078// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129079// to check whether the returned error was because
129080// http.StatusNotModified was returned.
129081func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129082	gensupport.SetOptions(c.urlParams_, opts...)
129083	res, err := c.doRequest("json")
129084	if res != nil && res.StatusCode == http.StatusNotModified {
129085		if res.Body != nil {
129086			res.Body.Close()
129087		}
129088		return nil, &googleapi.Error{
129089			Code:   res.StatusCode,
129090			Header: res.Header,
129091		}
129092	}
129093	if err != nil {
129094		return nil, err
129095	}
129096	defer googleapi.CloseBody(res)
129097	if err := googleapi.CheckResponse(res); err != nil {
129098		return nil, err
129099	}
129100	ret := &Operation{
129101		ServerResponse: googleapi.ServerResponse{
129102			Header:         res.Header,
129103			HTTPStatusCode: res.StatusCode,
129104		},
129105	}
129106	target := &ret
129107	if err := gensupport.DecodeResponse(target, res); err != nil {
129108		return nil, err
129109	}
129110	return ret, nil
129111	// {
129112	//   "description": "Deletes the specified UrlMap resource.",
129113	//   "httpMethod": "DELETE",
129114	//   "id": "compute.regionUrlMaps.delete",
129115	//   "parameterOrder": [
129116	//     "project",
129117	//     "region",
129118	//     "urlMap"
129119	//   ],
129120	//   "parameters": {
129121	//     "project": {
129122	//       "description": "Project ID for this request.",
129123	//       "location": "path",
129124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129125	//       "required": true,
129126	//       "type": "string"
129127	//     },
129128	//     "region": {
129129	//       "description": "Name of the region scoping this request.",
129130	//       "location": "path",
129131	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129132	//       "required": true,
129133	//       "type": "string"
129134	//     },
129135	//     "requestId": {
129136	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
129137	//       "location": "query",
129138	//       "type": "string"
129139	//     },
129140	//     "urlMap": {
129141	//       "description": "Name of the UrlMap resource to delete.",
129142	//       "location": "path",
129143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129144	//       "required": true,
129145	//       "type": "string"
129146	//     }
129147	//   },
129148	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
129149	//   "response": {
129150	//     "$ref": "Operation"
129151	//   },
129152	//   "scopes": [
129153	//     "https://www.googleapis.com/auth/cloud-platform",
129154	//     "https://www.googleapis.com/auth/compute"
129155	//   ]
129156	// }
129157
129158}
129159
129160// method id "compute.regionUrlMaps.get":
129161
129162type RegionUrlMapsGetCall struct {
129163	s            *Service
129164	project      string
129165	region       string
129166	urlMap       string
129167	urlParams_   gensupport.URLParams
129168	ifNoneMatch_ string
129169	ctx_         context.Context
129170	header_      http.Header
129171}
129172
129173// Get: Returns the specified UrlMap resource. Gets a list of available
129174// URL maps by making a list() request.
129175func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
129176	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129177	c.project = project
129178	c.region = region
129179	c.urlMap = urlMap
129180	return c
129181}
129182
129183// Fields allows partial responses to be retrieved. See
129184// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129185// for more information.
129186func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
129187	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129188	return c
129189}
129190
129191// IfNoneMatch sets the optional parameter which makes the operation
129192// fail if the object's ETag matches the given value. This is useful for
129193// getting updates only after the object has changed since the last
129194// request. Use googleapi.IsNotModified to check whether the response
129195// error from Do is the result of In-None-Match.
129196func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
129197	c.ifNoneMatch_ = entityTag
129198	return c
129199}
129200
129201// Context sets the context to be used in this call's Do method. Any
129202// pending HTTP request will be aborted if the provided context is
129203// canceled.
129204func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
129205	c.ctx_ = ctx
129206	return c
129207}
129208
129209// Header returns an http.Header that can be modified by the caller to
129210// add HTTP headers to the request.
129211func (c *RegionUrlMapsGetCall) Header() http.Header {
129212	if c.header_ == nil {
129213		c.header_ = make(http.Header)
129214	}
129215	return c.header_
129216}
129217
129218func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
129219	reqHeaders := make(http.Header)
129220	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129221	for k, v := range c.header_ {
129222		reqHeaders[k] = v
129223	}
129224	reqHeaders.Set("User-Agent", c.s.userAgent())
129225	if c.ifNoneMatch_ != "" {
129226		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129227	}
129228	var body io.Reader = nil
129229	c.urlParams_.Set("alt", alt)
129230	c.urlParams_.Set("prettyPrint", "false")
129231	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
129232	urls += "?" + c.urlParams_.Encode()
129233	req, err := http.NewRequest("GET", urls, body)
129234	if err != nil {
129235		return nil, err
129236	}
129237	req.Header = reqHeaders
129238	googleapi.Expand(req.URL, map[string]string{
129239		"project": c.project,
129240		"region":  c.region,
129241		"urlMap":  c.urlMap,
129242	})
129243	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129244}
129245
129246// Do executes the "compute.regionUrlMaps.get" call.
129247// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
129248// code is an error. Response headers are in either
129249// *UrlMap.ServerResponse.Header or (if a response was returned at all)
129250// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
129251// check whether the returned error was because http.StatusNotModified
129252// was returned.
129253func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
129254	gensupport.SetOptions(c.urlParams_, opts...)
129255	res, err := c.doRequest("json")
129256	if res != nil && res.StatusCode == http.StatusNotModified {
129257		if res.Body != nil {
129258			res.Body.Close()
129259		}
129260		return nil, &googleapi.Error{
129261			Code:   res.StatusCode,
129262			Header: res.Header,
129263		}
129264	}
129265	if err != nil {
129266		return nil, err
129267	}
129268	defer googleapi.CloseBody(res)
129269	if err := googleapi.CheckResponse(res); err != nil {
129270		return nil, err
129271	}
129272	ret := &UrlMap{
129273		ServerResponse: googleapi.ServerResponse{
129274			Header:         res.Header,
129275			HTTPStatusCode: res.StatusCode,
129276		},
129277	}
129278	target := &ret
129279	if err := gensupport.DecodeResponse(target, res); err != nil {
129280		return nil, err
129281	}
129282	return ret, nil
129283	// {
129284	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
129285	//   "httpMethod": "GET",
129286	//   "id": "compute.regionUrlMaps.get",
129287	//   "parameterOrder": [
129288	//     "project",
129289	//     "region",
129290	//     "urlMap"
129291	//   ],
129292	//   "parameters": {
129293	//     "project": {
129294	//       "description": "Project ID for this request.",
129295	//       "location": "path",
129296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129297	//       "required": true,
129298	//       "type": "string"
129299	//     },
129300	//     "region": {
129301	//       "description": "Name of the region scoping this request.",
129302	//       "location": "path",
129303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129304	//       "required": true,
129305	//       "type": "string"
129306	//     },
129307	//     "urlMap": {
129308	//       "description": "Name of the UrlMap resource to return.",
129309	//       "location": "path",
129310	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129311	//       "required": true,
129312	//       "type": "string"
129313	//     }
129314	//   },
129315	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
129316	//   "response": {
129317	//     "$ref": "UrlMap"
129318	//   },
129319	//   "scopes": [
129320	//     "https://www.googleapis.com/auth/cloud-platform",
129321	//     "https://www.googleapis.com/auth/compute",
129322	//     "https://www.googleapis.com/auth/compute.readonly"
129323	//   ]
129324	// }
129325
129326}
129327
129328// method id "compute.regionUrlMaps.insert":
129329
129330type RegionUrlMapsInsertCall struct {
129331	s          *Service
129332	project    string
129333	region     string
129334	urlmap     *UrlMap
129335	urlParams_ gensupport.URLParams
129336	ctx_       context.Context
129337	header_    http.Header
129338}
129339
129340// Insert: Creates a UrlMap resource in the specified project using the
129341// data included in the request.
129342func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
129343	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129344	c.project = project
129345	c.region = region
129346	c.urlmap = urlmap
129347	return c
129348}
129349
129350// RequestId sets the optional parameter "requestId": begin_interface:
129351// MixerMutationRequestBuilder Request ID to support idempotency.
129352func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
129353	c.urlParams_.Set("requestId", requestId)
129354	return c
129355}
129356
129357// Fields allows partial responses to be retrieved. See
129358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129359// for more information.
129360func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
129361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129362	return c
129363}
129364
129365// Context sets the context to be used in this call's Do method. Any
129366// pending HTTP request will be aborted if the provided context is
129367// canceled.
129368func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
129369	c.ctx_ = ctx
129370	return c
129371}
129372
129373// Header returns an http.Header that can be modified by the caller to
129374// add HTTP headers to the request.
129375func (c *RegionUrlMapsInsertCall) Header() http.Header {
129376	if c.header_ == nil {
129377		c.header_ = make(http.Header)
129378	}
129379	return c.header_
129380}
129381
129382func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
129383	reqHeaders := make(http.Header)
129384	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129385	for k, v := range c.header_ {
129386		reqHeaders[k] = v
129387	}
129388	reqHeaders.Set("User-Agent", c.s.userAgent())
129389	var body io.Reader = nil
129390	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
129391	if err != nil {
129392		return nil, err
129393	}
129394	reqHeaders.Set("Content-Type", "application/json")
129395	c.urlParams_.Set("alt", alt)
129396	c.urlParams_.Set("prettyPrint", "false")
129397	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
129398	urls += "?" + c.urlParams_.Encode()
129399	req, err := http.NewRequest("POST", urls, body)
129400	if err != nil {
129401		return nil, err
129402	}
129403	req.Header = reqHeaders
129404	googleapi.Expand(req.URL, map[string]string{
129405		"project": c.project,
129406		"region":  c.region,
129407	})
129408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129409}
129410
129411// Do executes the "compute.regionUrlMaps.insert" call.
129412// Exactly one of *Operation or error will be non-nil. Any non-2xx
129413// status code is an error. Response headers are in either
129414// *Operation.ServerResponse.Header or (if a response was returned at
129415// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129416// to check whether the returned error was because
129417// http.StatusNotModified was returned.
129418func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129419	gensupport.SetOptions(c.urlParams_, opts...)
129420	res, err := c.doRequest("json")
129421	if res != nil && res.StatusCode == http.StatusNotModified {
129422		if res.Body != nil {
129423			res.Body.Close()
129424		}
129425		return nil, &googleapi.Error{
129426			Code:   res.StatusCode,
129427			Header: res.Header,
129428		}
129429	}
129430	if err != nil {
129431		return nil, err
129432	}
129433	defer googleapi.CloseBody(res)
129434	if err := googleapi.CheckResponse(res); err != nil {
129435		return nil, err
129436	}
129437	ret := &Operation{
129438		ServerResponse: googleapi.ServerResponse{
129439			Header:         res.Header,
129440			HTTPStatusCode: res.StatusCode,
129441		},
129442	}
129443	target := &ret
129444	if err := gensupport.DecodeResponse(target, res); err != nil {
129445		return nil, err
129446	}
129447	return ret, nil
129448	// {
129449	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
129450	//   "httpMethod": "POST",
129451	//   "id": "compute.regionUrlMaps.insert",
129452	//   "parameterOrder": [
129453	//     "project",
129454	//     "region"
129455	//   ],
129456	//   "parameters": {
129457	//     "project": {
129458	//       "description": "Project ID for this request.",
129459	//       "location": "path",
129460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129461	//       "required": true,
129462	//       "type": "string"
129463	//     },
129464	//     "region": {
129465	//       "description": "Name of the region scoping this request.",
129466	//       "location": "path",
129467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129468	//       "required": true,
129469	//       "type": "string"
129470	//     },
129471	//     "requestId": {
129472	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
129473	//       "location": "query",
129474	//       "type": "string"
129475	//     }
129476	//   },
129477	//   "path": "{project}/regions/{region}/urlMaps",
129478	//   "request": {
129479	//     "$ref": "UrlMap"
129480	//   },
129481	//   "response": {
129482	//     "$ref": "Operation"
129483	//   },
129484	//   "scopes": [
129485	//     "https://www.googleapis.com/auth/cloud-platform",
129486	//     "https://www.googleapis.com/auth/compute"
129487	//   ]
129488	// }
129489
129490}
129491
129492// method id "compute.regionUrlMaps.invalidateCache":
129493
129494type RegionUrlMapsInvalidateCacheCall struct {
129495	s                     *Service
129496	project               string
129497	region                string
129498	urlMap                string
129499	cacheinvalidationrule *CacheInvalidationRule
129500	urlParams_            gensupport.URLParams
129501	ctx_                  context.Context
129502	header_               http.Header
129503}
129504
129505// InvalidateCache: Initiates a cache invalidation operation,
129506// invalidating the specified path, scoped to the specified UrlMap.
129507func (r *RegionUrlMapsService) InvalidateCache(project string, region string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *RegionUrlMapsInvalidateCacheCall {
129508	c := &RegionUrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129509	c.project = project
129510	c.region = region
129511	c.urlMap = urlMap
129512	c.cacheinvalidationrule = cacheinvalidationrule
129513	return c
129514}
129515
129516// RequestId sets the optional parameter "requestId": begin_interface:
129517// MixerMutationRequestBuilder Request ID to support idempotency.
129518func (c *RegionUrlMapsInvalidateCacheCall) RequestId(requestId string) *RegionUrlMapsInvalidateCacheCall {
129519	c.urlParams_.Set("requestId", requestId)
129520	return c
129521}
129522
129523// Fields allows partial responses to be retrieved. See
129524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129525// for more information.
129526func (c *RegionUrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *RegionUrlMapsInvalidateCacheCall {
129527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129528	return c
129529}
129530
129531// Context sets the context to be used in this call's Do method. Any
129532// pending HTTP request will be aborted if the provided context is
129533// canceled.
129534func (c *RegionUrlMapsInvalidateCacheCall) Context(ctx context.Context) *RegionUrlMapsInvalidateCacheCall {
129535	c.ctx_ = ctx
129536	return c
129537}
129538
129539// Header returns an http.Header that can be modified by the caller to
129540// add HTTP headers to the request.
129541func (c *RegionUrlMapsInvalidateCacheCall) Header() http.Header {
129542	if c.header_ == nil {
129543		c.header_ = make(http.Header)
129544	}
129545	return c.header_
129546}
129547
129548func (c *RegionUrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
129549	reqHeaders := make(http.Header)
129550	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129551	for k, v := range c.header_ {
129552		reqHeaders[k] = v
129553	}
129554	reqHeaders.Set("User-Agent", c.s.userAgent())
129555	var body io.Reader = nil
129556	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
129557	if err != nil {
129558		return nil, err
129559	}
129560	reqHeaders.Set("Content-Type", "application/json")
129561	c.urlParams_.Set("alt", alt)
129562	c.urlParams_.Set("prettyPrint", "false")
129563	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache")
129564	urls += "?" + c.urlParams_.Encode()
129565	req, err := http.NewRequest("POST", urls, body)
129566	if err != nil {
129567		return nil, err
129568	}
129569	req.Header = reqHeaders
129570	googleapi.Expand(req.URL, map[string]string{
129571		"project": c.project,
129572		"region":  c.region,
129573		"urlMap":  c.urlMap,
129574	})
129575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129576}
129577
129578// Do executes the "compute.regionUrlMaps.invalidateCache" call.
129579// Exactly one of *Operation or error will be non-nil. Any non-2xx
129580// status code is an error. Response headers are in either
129581// *Operation.ServerResponse.Header or (if a response was returned at
129582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129583// to check whether the returned error was because
129584// http.StatusNotModified was returned.
129585func (c *RegionUrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129586	gensupport.SetOptions(c.urlParams_, opts...)
129587	res, err := c.doRequest("json")
129588	if res != nil && res.StatusCode == http.StatusNotModified {
129589		if res.Body != nil {
129590			res.Body.Close()
129591		}
129592		return nil, &googleapi.Error{
129593			Code:   res.StatusCode,
129594			Header: res.Header,
129595		}
129596	}
129597	if err != nil {
129598		return nil, err
129599	}
129600	defer googleapi.CloseBody(res)
129601	if err := googleapi.CheckResponse(res); err != nil {
129602		return nil, err
129603	}
129604	ret := &Operation{
129605		ServerResponse: googleapi.ServerResponse{
129606			Header:         res.Header,
129607			HTTPStatusCode: res.StatusCode,
129608		},
129609	}
129610	target := &ret
129611	if err := gensupport.DecodeResponse(target, res); err != nil {
129612		return nil, err
129613	}
129614	return ret, nil
129615	// {
129616	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
129617	//   "httpMethod": "POST",
129618	//   "id": "compute.regionUrlMaps.invalidateCache",
129619	//   "parameterOrder": [
129620	//     "project",
129621	//     "region",
129622	//     "urlMap"
129623	//   ],
129624	//   "parameters": {
129625	//     "project": {
129626	//       "description": "Project ID for this request.",
129627	//       "location": "path",
129628	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129629	//       "required": true,
129630	//       "type": "string"
129631	//     },
129632	//     "region": {
129633	//       "description": "Name of the region scoping this request.",
129634	//       "location": "path",
129635	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129636	//       "required": true,
129637	//       "type": "string"
129638	//     },
129639	//     "requestId": {
129640	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
129641	//       "location": "query",
129642	//       "type": "string"
129643	//     },
129644	//     "urlMap": {
129645	//       "description": "Name of the UrlMap scoping this request.",
129646	//       "location": "path",
129647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129648	//       "required": true,
129649	//       "type": "string"
129650	//     }
129651	//   },
129652	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache",
129653	//   "request": {
129654	//     "$ref": "CacheInvalidationRule"
129655	//   },
129656	//   "response": {
129657	//     "$ref": "Operation"
129658	//   },
129659	//   "scopes": [
129660	//     "https://www.googleapis.com/auth/cloud-platform",
129661	//     "https://www.googleapis.com/auth/compute"
129662	//   ]
129663	// }
129664
129665}
129666
129667// method id "compute.regionUrlMaps.list":
129668
129669type RegionUrlMapsListCall struct {
129670	s            *Service
129671	project      string
129672	region       string
129673	urlParams_   gensupport.URLParams
129674	ifNoneMatch_ string
129675	ctx_         context.Context
129676	header_      http.Header
129677}
129678
129679// List: Retrieves the list of UrlMap resources available to the
129680// specified project in the specified region.
129681func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
129682	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129683	c.project = project
129684	c.region = region
129685	return c
129686}
129687
129688// Filter sets the optional parameter "filter": A filter expression that
129689// filters resources listed in the response. The expression must specify
129690// the field name, a comparison operator, and the value that you want to
129691// use for filtering. The value must be a string, a number, or a
129692// boolean. The comparison operator must be either `=`, `!=`, `>`, or
129693// `<`.
129694//
129695// For example, if you are filtering Compute Engine instances, you can
129696// exclude instances named `example-instance` by specifying `name !=
129697// example-instance`.
129698//
129699// You can also filter nested fields. For example, you could specify
129700// `scheduling.automaticRestart = false` to include instances only if
129701// they are not scheduled for automatic restarts. You can use filtering
129702// on nested fields to filter based on resource labels.
129703//
129704// To filter on multiple expressions, provide each separate expression
129705// within parentheses. For example: ``` (scheduling.automaticRestart =
129706// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
129707// is an `AND` expression. However, you can include `AND` and `OR`
129708// expressions explicitly. For example: ``` (cpuPlatform = "Intel
129709// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
129710// (scheduling.automaticRestart = true) ```
129711func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
129712	c.urlParams_.Set("filter", filter)
129713	return c
129714}
129715
129716// MaxResults sets the optional parameter "maxResults": The maximum
129717// number of results per page that should be returned. If the number of
129718// available results is larger than `maxResults`, Compute Engine returns
129719// a `nextPageToken` that can be used to get the next page of results in
129720// subsequent list requests. Acceptable values are `0` to `500`,
129721// inclusive. (Default: `500`)
129722func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
129723	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129724	return c
129725}
129726
129727// OrderBy sets the optional parameter "orderBy": Sorts list results by
129728// a certain order. By default, results are returned in alphanumerical
129729// order based on the resource name.
129730//
129731// You can also sort results in descending order based on the creation
129732// timestamp using `orderBy="creationTimestamp desc". This sorts
129733// results based on the `creationTimestamp` field in reverse
129734// chronological order (newest result first). Use this to sort resources
129735// like operations so that the newest operation is returned
129736// first.
129737//
129738// Currently, only sorting by `name` or `creationTimestamp desc` is
129739// supported.
129740func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
129741	c.urlParams_.Set("orderBy", orderBy)
129742	return c
129743}
129744
129745// PageToken sets the optional parameter "pageToken": Specifies a page
129746// token to use. Set `pageToken` to the `nextPageToken` returned by a
129747// previous list request to get the next page of results.
129748func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
129749	c.urlParams_.Set("pageToken", pageToken)
129750	return c
129751}
129752
129753// Fields allows partial responses to be retrieved. See
129754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129755// for more information.
129756func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
129757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129758	return c
129759}
129760
129761// IfNoneMatch sets the optional parameter which makes the operation
129762// fail if the object's ETag matches the given value. This is useful for
129763// getting updates only after the object has changed since the last
129764// request. Use googleapi.IsNotModified to check whether the response
129765// error from Do is the result of In-None-Match.
129766func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
129767	c.ifNoneMatch_ = entityTag
129768	return c
129769}
129770
129771// Context sets the context to be used in this call's Do method. Any
129772// pending HTTP request will be aborted if the provided context is
129773// canceled.
129774func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
129775	c.ctx_ = ctx
129776	return c
129777}
129778
129779// Header returns an http.Header that can be modified by the caller to
129780// add HTTP headers to the request.
129781func (c *RegionUrlMapsListCall) Header() http.Header {
129782	if c.header_ == nil {
129783		c.header_ = make(http.Header)
129784	}
129785	return c.header_
129786}
129787
129788func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
129789	reqHeaders := make(http.Header)
129790	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129791	for k, v := range c.header_ {
129792		reqHeaders[k] = v
129793	}
129794	reqHeaders.Set("User-Agent", c.s.userAgent())
129795	if c.ifNoneMatch_ != "" {
129796		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129797	}
129798	var body io.Reader = nil
129799	c.urlParams_.Set("alt", alt)
129800	c.urlParams_.Set("prettyPrint", "false")
129801	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
129802	urls += "?" + c.urlParams_.Encode()
129803	req, err := http.NewRequest("GET", urls, body)
129804	if err != nil {
129805		return nil, err
129806	}
129807	req.Header = reqHeaders
129808	googleapi.Expand(req.URL, map[string]string{
129809		"project": c.project,
129810		"region":  c.region,
129811	})
129812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129813}
129814
129815// Do executes the "compute.regionUrlMaps.list" call.
129816// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
129817// status code is an error. Response headers are in either
129818// *UrlMapList.ServerResponse.Header or (if a response was returned at
129819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129820// to check whether the returned error was because
129821// http.StatusNotModified was returned.
129822func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
129823	gensupport.SetOptions(c.urlParams_, opts...)
129824	res, err := c.doRequest("json")
129825	if res != nil && res.StatusCode == http.StatusNotModified {
129826		if res.Body != nil {
129827			res.Body.Close()
129828		}
129829		return nil, &googleapi.Error{
129830			Code:   res.StatusCode,
129831			Header: res.Header,
129832		}
129833	}
129834	if err != nil {
129835		return nil, err
129836	}
129837	defer googleapi.CloseBody(res)
129838	if err := googleapi.CheckResponse(res); err != nil {
129839		return nil, err
129840	}
129841	ret := &UrlMapList{
129842		ServerResponse: googleapi.ServerResponse{
129843			Header:         res.Header,
129844			HTTPStatusCode: res.StatusCode,
129845		},
129846	}
129847	target := &ret
129848	if err := gensupport.DecodeResponse(target, res); err != nil {
129849		return nil, err
129850	}
129851	return ret, nil
129852	// {
129853	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
129854	//   "httpMethod": "GET",
129855	//   "id": "compute.regionUrlMaps.list",
129856	//   "parameterOrder": [
129857	//     "project",
129858	//     "region"
129859	//   ],
129860	//   "parameters": {
129861	//     "filter": {
129862	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
129863	//       "location": "query",
129864	//       "type": "string"
129865	//     },
129866	//     "maxResults": {
129867	//       "default": "500",
129868	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
129869	//       "format": "uint32",
129870	//       "location": "query",
129871	//       "minimum": "0",
129872	//       "type": "integer"
129873	//     },
129874	//     "orderBy": {
129875	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
129876	//       "location": "query",
129877	//       "type": "string"
129878	//     },
129879	//     "pageToken": {
129880	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
129881	//       "location": "query",
129882	//       "type": "string"
129883	//     },
129884	//     "project": {
129885	//       "description": "Project ID for this request.",
129886	//       "location": "path",
129887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129888	//       "required": true,
129889	//       "type": "string"
129890	//     },
129891	//     "region": {
129892	//       "description": "Name of the region scoping this request.",
129893	//       "location": "path",
129894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129895	//       "required": true,
129896	//       "type": "string"
129897	//     }
129898	//   },
129899	//   "path": "{project}/regions/{region}/urlMaps",
129900	//   "response": {
129901	//     "$ref": "UrlMapList"
129902	//   },
129903	//   "scopes": [
129904	//     "https://www.googleapis.com/auth/cloud-platform",
129905	//     "https://www.googleapis.com/auth/compute",
129906	//     "https://www.googleapis.com/auth/compute.readonly"
129907	//   ]
129908	// }
129909
129910}
129911
129912// Pages invokes f for each page of results.
129913// A non-nil error returned from f will halt the iteration.
129914// The provided context supersedes any context provided to the Context method.
129915func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
129916	c.ctx_ = ctx
129917	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129918	for {
129919		x, err := c.Do()
129920		if err != nil {
129921			return err
129922		}
129923		if err := f(x); err != nil {
129924			return err
129925		}
129926		if x.NextPageToken == "" {
129927			return nil
129928		}
129929		c.PageToken(x.NextPageToken)
129930	}
129931}
129932
129933// method id "compute.regionUrlMaps.patch":
129934
129935type RegionUrlMapsPatchCall struct {
129936	s          *Service
129937	project    string
129938	region     string
129939	urlMap     string
129940	urlmap     *UrlMap
129941	urlParams_ gensupport.URLParams
129942	ctx_       context.Context
129943	header_    http.Header
129944}
129945
129946// Patch: Patches the specified UrlMap resource with the data included
129947// in the request. This method supports PATCH semantics and uses JSON
129948// merge patch format and processing rules.
129949func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
129950	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129951	c.project = project
129952	c.region = region
129953	c.urlMap = urlMap
129954	c.urlmap = urlmap
129955	return c
129956}
129957
129958// RequestId sets the optional parameter "requestId": begin_interface:
129959// MixerMutationRequestBuilder Request ID to support idempotency.
129960func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
129961	c.urlParams_.Set("requestId", requestId)
129962	return c
129963}
129964
129965// Fields allows partial responses to be retrieved. See
129966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129967// for more information.
129968func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
129969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129970	return c
129971}
129972
129973// Context sets the context to be used in this call's Do method. Any
129974// pending HTTP request will be aborted if the provided context is
129975// canceled.
129976func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
129977	c.ctx_ = ctx
129978	return c
129979}
129980
129981// Header returns an http.Header that can be modified by the caller to
129982// add HTTP headers to the request.
129983func (c *RegionUrlMapsPatchCall) Header() http.Header {
129984	if c.header_ == nil {
129985		c.header_ = make(http.Header)
129986	}
129987	return c.header_
129988}
129989
129990func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
129991	reqHeaders := make(http.Header)
129992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
129993	for k, v := range c.header_ {
129994		reqHeaders[k] = v
129995	}
129996	reqHeaders.Set("User-Agent", c.s.userAgent())
129997	var body io.Reader = nil
129998	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
129999	if err != nil {
130000		return nil, err
130001	}
130002	reqHeaders.Set("Content-Type", "application/json")
130003	c.urlParams_.Set("alt", alt)
130004	c.urlParams_.Set("prettyPrint", "false")
130005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
130006	urls += "?" + c.urlParams_.Encode()
130007	req, err := http.NewRequest("PATCH", urls, body)
130008	if err != nil {
130009		return nil, err
130010	}
130011	req.Header = reqHeaders
130012	googleapi.Expand(req.URL, map[string]string{
130013		"project": c.project,
130014		"region":  c.region,
130015		"urlMap":  c.urlMap,
130016	})
130017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130018}
130019
130020// Do executes the "compute.regionUrlMaps.patch" call.
130021// Exactly one of *Operation or error will be non-nil. Any non-2xx
130022// status code is an error. Response headers are in either
130023// *Operation.ServerResponse.Header or (if a response was returned at
130024// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130025// to check whether the returned error was because
130026// http.StatusNotModified was returned.
130027func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130028	gensupport.SetOptions(c.urlParams_, opts...)
130029	res, err := c.doRequest("json")
130030	if res != nil && res.StatusCode == http.StatusNotModified {
130031		if res.Body != nil {
130032			res.Body.Close()
130033		}
130034		return nil, &googleapi.Error{
130035			Code:   res.StatusCode,
130036			Header: res.Header,
130037		}
130038	}
130039	if err != nil {
130040		return nil, err
130041	}
130042	defer googleapi.CloseBody(res)
130043	if err := googleapi.CheckResponse(res); err != nil {
130044		return nil, err
130045	}
130046	ret := &Operation{
130047		ServerResponse: googleapi.ServerResponse{
130048			Header:         res.Header,
130049			HTTPStatusCode: res.StatusCode,
130050		},
130051	}
130052	target := &ret
130053	if err := gensupport.DecodeResponse(target, res); err != nil {
130054		return nil, err
130055	}
130056	return ret, nil
130057	// {
130058	//   "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.",
130059	//   "httpMethod": "PATCH",
130060	//   "id": "compute.regionUrlMaps.patch",
130061	//   "parameterOrder": [
130062	//     "project",
130063	//     "region",
130064	//     "urlMap"
130065	//   ],
130066	//   "parameters": {
130067	//     "project": {
130068	//       "description": "Project ID for this request.",
130069	//       "location": "path",
130070	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130071	//       "required": true,
130072	//       "type": "string"
130073	//     },
130074	//     "region": {
130075	//       "description": "Name of the region scoping this request.",
130076	//       "location": "path",
130077	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130078	//       "required": true,
130079	//       "type": "string"
130080	//     },
130081	//     "requestId": {
130082	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
130083	//       "location": "query",
130084	//       "type": "string"
130085	//     },
130086	//     "urlMap": {
130087	//       "description": "Name of the UrlMap resource to patch.",
130088	//       "location": "path",
130089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130090	//       "required": true,
130091	//       "type": "string"
130092	//     }
130093	//   },
130094	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
130095	//   "request": {
130096	//     "$ref": "UrlMap"
130097	//   },
130098	//   "response": {
130099	//     "$ref": "Operation"
130100	//   },
130101	//   "scopes": [
130102	//     "https://www.googleapis.com/auth/cloud-platform",
130103	//     "https://www.googleapis.com/auth/compute"
130104	//   ]
130105	// }
130106
130107}
130108
130109// method id "compute.regionUrlMaps.update":
130110
130111type RegionUrlMapsUpdateCall struct {
130112	s          *Service
130113	project    string
130114	region     string
130115	urlMap     string
130116	urlmap     *UrlMap
130117	urlParams_ gensupport.URLParams
130118	ctx_       context.Context
130119	header_    http.Header
130120}
130121
130122// Update: Updates the specified UrlMap resource with the data included
130123// in the request.
130124func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
130125	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130126	c.project = project
130127	c.region = region
130128	c.urlMap = urlMap
130129	c.urlmap = urlmap
130130	return c
130131}
130132
130133// RequestId sets the optional parameter "requestId": begin_interface:
130134// MixerMutationRequestBuilder Request ID to support idempotency.
130135func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
130136	c.urlParams_.Set("requestId", requestId)
130137	return c
130138}
130139
130140// Fields allows partial responses to be retrieved. See
130141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130142// for more information.
130143func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
130144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130145	return c
130146}
130147
130148// Context sets the context to be used in this call's Do method. Any
130149// pending HTTP request will be aborted if the provided context is
130150// canceled.
130151func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
130152	c.ctx_ = ctx
130153	return c
130154}
130155
130156// Header returns an http.Header that can be modified by the caller to
130157// add HTTP headers to the request.
130158func (c *RegionUrlMapsUpdateCall) Header() http.Header {
130159	if c.header_ == nil {
130160		c.header_ = make(http.Header)
130161	}
130162	return c.header_
130163}
130164
130165func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
130166	reqHeaders := make(http.Header)
130167	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130168	for k, v := range c.header_ {
130169		reqHeaders[k] = v
130170	}
130171	reqHeaders.Set("User-Agent", c.s.userAgent())
130172	var body io.Reader = nil
130173	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
130174	if err != nil {
130175		return nil, err
130176	}
130177	reqHeaders.Set("Content-Type", "application/json")
130178	c.urlParams_.Set("alt", alt)
130179	c.urlParams_.Set("prettyPrint", "false")
130180	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
130181	urls += "?" + c.urlParams_.Encode()
130182	req, err := http.NewRequest("PUT", urls, body)
130183	if err != nil {
130184		return nil, err
130185	}
130186	req.Header = reqHeaders
130187	googleapi.Expand(req.URL, map[string]string{
130188		"project": c.project,
130189		"region":  c.region,
130190		"urlMap":  c.urlMap,
130191	})
130192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130193}
130194
130195// Do executes the "compute.regionUrlMaps.update" call.
130196// Exactly one of *Operation or error will be non-nil. Any non-2xx
130197// status code is an error. Response headers are in either
130198// *Operation.ServerResponse.Header or (if a response was returned at
130199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130200// to check whether the returned error was because
130201// http.StatusNotModified was returned.
130202func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130203	gensupport.SetOptions(c.urlParams_, opts...)
130204	res, err := c.doRequest("json")
130205	if res != nil && res.StatusCode == http.StatusNotModified {
130206		if res.Body != nil {
130207			res.Body.Close()
130208		}
130209		return nil, &googleapi.Error{
130210			Code:   res.StatusCode,
130211			Header: res.Header,
130212		}
130213	}
130214	if err != nil {
130215		return nil, err
130216	}
130217	defer googleapi.CloseBody(res)
130218	if err := googleapi.CheckResponse(res); err != nil {
130219		return nil, err
130220	}
130221	ret := &Operation{
130222		ServerResponse: googleapi.ServerResponse{
130223			Header:         res.Header,
130224			HTTPStatusCode: res.StatusCode,
130225		},
130226	}
130227	target := &ret
130228	if err := gensupport.DecodeResponse(target, res); err != nil {
130229		return nil, err
130230	}
130231	return ret, nil
130232	// {
130233	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
130234	//   "httpMethod": "PUT",
130235	//   "id": "compute.regionUrlMaps.update",
130236	//   "parameterOrder": [
130237	//     "project",
130238	//     "region",
130239	//     "urlMap"
130240	//   ],
130241	//   "parameters": {
130242	//     "project": {
130243	//       "description": "Project ID for this request.",
130244	//       "location": "path",
130245	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130246	//       "required": true,
130247	//       "type": "string"
130248	//     },
130249	//     "region": {
130250	//       "description": "Name of the region scoping this request.",
130251	//       "location": "path",
130252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130253	//       "required": true,
130254	//       "type": "string"
130255	//     },
130256	//     "requestId": {
130257	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
130258	//       "location": "query",
130259	//       "type": "string"
130260	//     },
130261	//     "urlMap": {
130262	//       "description": "Name of the UrlMap resource to update.",
130263	//       "location": "path",
130264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130265	//       "required": true,
130266	//       "type": "string"
130267	//     }
130268	//   },
130269	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
130270	//   "request": {
130271	//     "$ref": "UrlMap"
130272	//   },
130273	//   "response": {
130274	//     "$ref": "Operation"
130275	//   },
130276	//   "scopes": [
130277	//     "https://www.googleapis.com/auth/cloud-platform",
130278	//     "https://www.googleapis.com/auth/compute"
130279	//   ]
130280	// }
130281
130282}
130283
130284// method id "compute.regionUrlMaps.validate":
130285
130286type RegionUrlMapsValidateCall struct {
130287	s                            *Service
130288	project                      string
130289	region                       string
130290	urlMap                       string
130291	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
130292	urlParams_                   gensupport.URLParams
130293	ctx_                         context.Context
130294	header_                      http.Header
130295}
130296
130297// Validate: Runs static validation for the UrlMap. In particular, the
130298// tests of the provided UrlMap will be run. Calling this method does
130299// NOT create the UrlMap.
130300func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
130301	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130302	c.project = project
130303	c.region = region
130304	c.urlMap = urlMap
130305	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
130306	return c
130307}
130308
130309// Fields allows partial responses to be retrieved. See
130310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130311// for more information.
130312func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
130313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130314	return c
130315}
130316
130317// Context sets the context to be used in this call's Do method. Any
130318// pending HTTP request will be aborted if the provided context is
130319// canceled.
130320func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
130321	c.ctx_ = ctx
130322	return c
130323}
130324
130325// Header returns an http.Header that can be modified by the caller to
130326// add HTTP headers to the request.
130327func (c *RegionUrlMapsValidateCall) Header() http.Header {
130328	if c.header_ == nil {
130329		c.header_ = make(http.Header)
130330	}
130331	return c.header_
130332}
130333
130334func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
130335	reqHeaders := make(http.Header)
130336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130337	for k, v := range c.header_ {
130338		reqHeaders[k] = v
130339	}
130340	reqHeaders.Set("User-Agent", c.s.userAgent())
130341	var body io.Reader = nil
130342	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
130343	if err != nil {
130344		return nil, err
130345	}
130346	reqHeaders.Set("Content-Type", "application/json")
130347	c.urlParams_.Set("alt", alt)
130348	c.urlParams_.Set("prettyPrint", "false")
130349	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/validate")
130350	urls += "?" + c.urlParams_.Encode()
130351	req, err := http.NewRequest("POST", urls, body)
130352	if err != nil {
130353		return nil, err
130354	}
130355	req.Header = reqHeaders
130356	googleapi.Expand(req.URL, map[string]string{
130357		"project": c.project,
130358		"region":  c.region,
130359		"urlMap":  c.urlMap,
130360	})
130361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130362}
130363
130364// Do executes the "compute.regionUrlMaps.validate" call.
130365// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
130366// non-2xx status code is an error. Response headers are in either
130367// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
130368// returned at all) in error.(*googleapi.Error).Header. Use
130369// googleapi.IsNotModified to check whether the returned error was
130370// because http.StatusNotModified was returned.
130371func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
130372	gensupport.SetOptions(c.urlParams_, opts...)
130373	res, err := c.doRequest("json")
130374	if res != nil && res.StatusCode == http.StatusNotModified {
130375		if res.Body != nil {
130376			res.Body.Close()
130377		}
130378		return nil, &googleapi.Error{
130379			Code:   res.StatusCode,
130380			Header: res.Header,
130381		}
130382	}
130383	if err != nil {
130384		return nil, err
130385	}
130386	defer googleapi.CloseBody(res)
130387	if err := googleapi.CheckResponse(res); err != nil {
130388		return nil, err
130389	}
130390	ret := &UrlMapsValidateResponse{
130391		ServerResponse: googleapi.ServerResponse{
130392			Header:         res.Header,
130393			HTTPStatusCode: res.StatusCode,
130394		},
130395	}
130396	target := &ret
130397	if err := gensupport.DecodeResponse(target, res); err != nil {
130398		return nil, err
130399	}
130400	return ret, nil
130401	// {
130402	//   "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.",
130403	//   "httpMethod": "POST",
130404	//   "id": "compute.regionUrlMaps.validate",
130405	//   "parameterOrder": [
130406	//     "project",
130407	//     "region",
130408	//     "urlMap"
130409	//   ],
130410	//   "parameters": {
130411	//     "project": {
130412	//       "description": "Project ID for this request.",
130413	//       "location": "path",
130414	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130415	//       "required": true,
130416	//       "type": "string"
130417	//     },
130418	//     "region": {
130419	//       "description": "Name of the region scoping this request.",
130420	//       "location": "path",
130421	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130422	//       "required": true,
130423	//       "type": "string"
130424	//     },
130425	//     "urlMap": {
130426	//       "description": "Name of the UrlMap resource to be validated as.",
130427	//       "location": "path",
130428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130429	//       "required": true,
130430	//       "type": "string"
130431	//     }
130432	//   },
130433	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/validate",
130434	//   "request": {
130435	//     "$ref": "RegionUrlMapsValidateRequest"
130436	//   },
130437	//   "response": {
130438	//     "$ref": "UrlMapsValidateResponse"
130439	//   },
130440	//   "scopes": [
130441	//     "https://www.googleapis.com/auth/cloud-platform",
130442	//     "https://www.googleapis.com/auth/compute"
130443	//   ]
130444	// }
130445
130446}
130447
130448// method id "compute.regions.get":
130449
130450type RegionsGetCall struct {
130451	s            *Service
130452	project      string
130453	region       string
130454	urlParams_   gensupport.URLParams
130455	ifNoneMatch_ string
130456	ctx_         context.Context
130457	header_      http.Header
130458}
130459
130460// Get: Returns the specified Region resource. Gets a list of available
130461// regions by making a list() request.
130462// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
130463func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
130464	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130465	c.project = project
130466	c.region = region
130467	return c
130468}
130469
130470// Fields allows partial responses to be retrieved. See
130471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130472// for more information.
130473func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
130474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130475	return c
130476}
130477
130478// IfNoneMatch sets the optional parameter which makes the operation
130479// fail if the object's ETag matches the given value. This is useful for
130480// getting updates only after the object has changed since the last
130481// request. Use googleapi.IsNotModified to check whether the response
130482// error from Do is the result of In-None-Match.
130483func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
130484	c.ifNoneMatch_ = entityTag
130485	return c
130486}
130487
130488// Context sets the context to be used in this call's Do method. Any
130489// pending HTTP request will be aborted if the provided context is
130490// canceled.
130491func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
130492	c.ctx_ = ctx
130493	return c
130494}
130495
130496// Header returns an http.Header that can be modified by the caller to
130497// add HTTP headers to the request.
130498func (c *RegionsGetCall) Header() http.Header {
130499	if c.header_ == nil {
130500		c.header_ = make(http.Header)
130501	}
130502	return c.header_
130503}
130504
130505func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
130506	reqHeaders := make(http.Header)
130507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130508	for k, v := range c.header_ {
130509		reqHeaders[k] = v
130510	}
130511	reqHeaders.Set("User-Agent", c.s.userAgent())
130512	if c.ifNoneMatch_ != "" {
130513		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130514	}
130515	var body io.Reader = nil
130516	c.urlParams_.Set("alt", alt)
130517	c.urlParams_.Set("prettyPrint", "false")
130518	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
130519	urls += "?" + c.urlParams_.Encode()
130520	req, err := http.NewRequest("GET", urls, body)
130521	if err != nil {
130522		return nil, err
130523	}
130524	req.Header = reqHeaders
130525	googleapi.Expand(req.URL, map[string]string{
130526		"project": c.project,
130527		"region":  c.region,
130528	})
130529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130530}
130531
130532// Do executes the "compute.regions.get" call.
130533// Exactly one of *Region or error will be non-nil. Any non-2xx status
130534// code is an error. Response headers are in either
130535// *Region.ServerResponse.Header or (if a response was returned at all)
130536// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
130537// check whether the returned error was because http.StatusNotModified
130538// was returned.
130539func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
130540	gensupport.SetOptions(c.urlParams_, opts...)
130541	res, err := c.doRequest("json")
130542	if res != nil && res.StatusCode == http.StatusNotModified {
130543		if res.Body != nil {
130544			res.Body.Close()
130545		}
130546		return nil, &googleapi.Error{
130547			Code:   res.StatusCode,
130548			Header: res.Header,
130549		}
130550	}
130551	if err != nil {
130552		return nil, err
130553	}
130554	defer googleapi.CloseBody(res)
130555	if err := googleapi.CheckResponse(res); err != nil {
130556		return nil, err
130557	}
130558	ret := &Region{
130559		ServerResponse: googleapi.ServerResponse{
130560			Header:         res.Header,
130561			HTTPStatusCode: res.StatusCode,
130562		},
130563	}
130564	target := &ret
130565	if err := gensupport.DecodeResponse(target, res); err != nil {
130566		return nil, err
130567	}
130568	return ret, nil
130569	// {
130570	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
130571	//   "httpMethod": "GET",
130572	//   "id": "compute.regions.get",
130573	//   "parameterOrder": [
130574	//     "project",
130575	//     "region"
130576	//   ],
130577	//   "parameters": {
130578	//     "project": {
130579	//       "description": "Project ID for this request.",
130580	//       "location": "path",
130581	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130582	//       "required": true,
130583	//       "type": "string"
130584	//     },
130585	//     "region": {
130586	//       "description": "Name of the region resource to return.",
130587	//       "location": "path",
130588	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130589	//       "required": true,
130590	//       "type": "string"
130591	//     }
130592	//   },
130593	//   "path": "{project}/regions/{region}",
130594	//   "response": {
130595	//     "$ref": "Region"
130596	//   },
130597	//   "scopes": [
130598	//     "https://www.googleapis.com/auth/cloud-platform",
130599	//     "https://www.googleapis.com/auth/compute",
130600	//     "https://www.googleapis.com/auth/compute.readonly"
130601	//   ]
130602	// }
130603
130604}
130605
130606// method id "compute.regions.list":
130607
130608type RegionsListCall struct {
130609	s            *Service
130610	project      string
130611	urlParams_   gensupport.URLParams
130612	ifNoneMatch_ string
130613	ctx_         context.Context
130614	header_      http.Header
130615}
130616
130617// List: Retrieves the list of region resources available to the
130618// specified project.
130619// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
130620func (r *RegionsService) List(project string) *RegionsListCall {
130621	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130622	c.project = project
130623	return c
130624}
130625
130626// Filter sets the optional parameter "filter": A filter expression that
130627// filters resources listed in the response. The expression must specify
130628// the field name, a comparison operator, and the value that you want to
130629// use for filtering. The value must be a string, a number, or a
130630// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130631// `<`.
130632//
130633// For example, if you are filtering Compute Engine instances, you can
130634// exclude instances named `example-instance` by specifying `name !=
130635// example-instance`.
130636//
130637// You can also filter nested fields. For example, you could specify
130638// `scheduling.automaticRestart = false` to include instances only if
130639// they are not scheduled for automatic restarts. You can use filtering
130640// on nested fields to filter based on resource labels.
130641//
130642// To filter on multiple expressions, provide each separate expression
130643// within parentheses. For example: ``` (scheduling.automaticRestart =
130644// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
130645// is an `AND` expression. However, you can include `AND` and `OR`
130646// expressions explicitly. For example: ``` (cpuPlatform = "Intel
130647// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
130648// (scheduling.automaticRestart = true) ```
130649func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
130650	c.urlParams_.Set("filter", filter)
130651	return c
130652}
130653
130654// MaxResults sets the optional parameter "maxResults": The maximum
130655// number of results per page that should be returned. If the number of
130656// available results is larger than `maxResults`, Compute Engine returns
130657// a `nextPageToken` that can be used to get the next page of results in
130658// subsequent list requests. Acceptable values are `0` to `500`,
130659// inclusive. (Default: `500`)
130660func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
130661	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130662	return c
130663}
130664
130665// OrderBy sets the optional parameter "orderBy": Sorts list results by
130666// a certain order. By default, results are returned in alphanumerical
130667// order based on the resource name.
130668//
130669// You can also sort results in descending order based on the creation
130670// timestamp using `orderBy="creationTimestamp desc". This sorts
130671// results based on the `creationTimestamp` field in reverse
130672// chronological order (newest result first). Use this to sort resources
130673// like operations so that the newest operation is returned
130674// first.
130675//
130676// Currently, only sorting by `name` or `creationTimestamp desc` is
130677// supported.
130678func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
130679	c.urlParams_.Set("orderBy", orderBy)
130680	return c
130681}
130682
130683// PageToken sets the optional parameter "pageToken": Specifies a page
130684// token to use. Set `pageToken` to the `nextPageToken` returned by a
130685// previous list request to get the next page of results.
130686func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
130687	c.urlParams_.Set("pageToken", pageToken)
130688	return c
130689}
130690
130691// Fields allows partial responses to be retrieved. See
130692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130693// for more information.
130694func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
130695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130696	return c
130697}
130698
130699// IfNoneMatch sets the optional parameter which makes the operation
130700// fail if the object's ETag matches the given value. This is useful for
130701// getting updates only after the object has changed since the last
130702// request. Use googleapi.IsNotModified to check whether the response
130703// error from Do is the result of In-None-Match.
130704func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
130705	c.ifNoneMatch_ = entityTag
130706	return c
130707}
130708
130709// Context sets the context to be used in this call's Do method. Any
130710// pending HTTP request will be aborted if the provided context is
130711// canceled.
130712func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
130713	c.ctx_ = ctx
130714	return c
130715}
130716
130717// Header returns an http.Header that can be modified by the caller to
130718// add HTTP headers to the request.
130719func (c *RegionsListCall) Header() http.Header {
130720	if c.header_ == nil {
130721		c.header_ = make(http.Header)
130722	}
130723	return c.header_
130724}
130725
130726func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
130727	reqHeaders := make(http.Header)
130728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130729	for k, v := range c.header_ {
130730		reqHeaders[k] = v
130731	}
130732	reqHeaders.Set("User-Agent", c.s.userAgent())
130733	if c.ifNoneMatch_ != "" {
130734		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130735	}
130736	var body io.Reader = nil
130737	c.urlParams_.Set("alt", alt)
130738	c.urlParams_.Set("prettyPrint", "false")
130739	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
130740	urls += "?" + c.urlParams_.Encode()
130741	req, err := http.NewRequest("GET", urls, body)
130742	if err != nil {
130743		return nil, err
130744	}
130745	req.Header = reqHeaders
130746	googleapi.Expand(req.URL, map[string]string{
130747		"project": c.project,
130748	})
130749	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130750}
130751
130752// Do executes the "compute.regions.list" call.
130753// Exactly one of *RegionList or error will be non-nil. Any non-2xx
130754// status code is an error. Response headers are in either
130755// *RegionList.ServerResponse.Header or (if a response was returned at
130756// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130757// to check whether the returned error was because
130758// http.StatusNotModified was returned.
130759func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
130760	gensupport.SetOptions(c.urlParams_, opts...)
130761	res, err := c.doRequest("json")
130762	if res != nil && res.StatusCode == http.StatusNotModified {
130763		if res.Body != nil {
130764			res.Body.Close()
130765		}
130766		return nil, &googleapi.Error{
130767			Code:   res.StatusCode,
130768			Header: res.Header,
130769		}
130770	}
130771	if err != nil {
130772		return nil, err
130773	}
130774	defer googleapi.CloseBody(res)
130775	if err := googleapi.CheckResponse(res); err != nil {
130776		return nil, err
130777	}
130778	ret := &RegionList{
130779		ServerResponse: googleapi.ServerResponse{
130780			Header:         res.Header,
130781			HTTPStatusCode: res.StatusCode,
130782		},
130783	}
130784	target := &ret
130785	if err := gensupport.DecodeResponse(target, res); err != nil {
130786		return nil, err
130787	}
130788	return ret, nil
130789	// {
130790	//   "description": "Retrieves the list of region resources available to the specified project.",
130791	//   "httpMethod": "GET",
130792	//   "id": "compute.regions.list",
130793	//   "parameterOrder": [
130794	//     "project"
130795	//   ],
130796	//   "parameters": {
130797	//     "filter": {
130798	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
130799	//       "location": "query",
130800	//       "type": "string"
130801	//     },
130802	//     "maxResults": {
130803	//       "default": "500",
130804	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130805	//       "format": "uint32",
130806	//       "location": "query",
130807	//       "minimum": "0",
130808	//       "type": "integer"
130809	//     },
130810	//     "orderBy": {
130811	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
130812	//       "location": "query",
130813	//       "type": "string"
130814	//     },
130815	//     "pageToken": {
130816	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130817	//       "location": "query",
130818	//       "type": "string"
130819	//     },
130820	//     "project": {
130821	//       "description": "Project ID for this request.",
130822	//       "location": "path",
130823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130824	//       "required": true,
130825	//       "type": "string"
130826	//     }
130827	//   },
130828	//   "path": "{project}/regions",
130829	//   "response": {
130830	//     "$ref": "RegionList"
130831	//   },
130832	//   "scopes": [
130833	//     "https://www.googleapis.com/auth/cloud-platform",
130834	//     "https://www.googleapis.com/auth/compute",
130835	//     "https://www.googleapis.com/auth/compute.readonly"
130836	//   ]
130837	// }
130838
130839}
130840
130841// Pages invokes f for each page of results.
130842// A non-nil error returned from f will halt the iteration.
130843// The provided context supersedes any context provided to the Context method.
130844func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
130845	c.ctx_ = ctx
130846	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130847	for {
130848		x, err := c.Do()
130849		if err != nil {
130850			return err
130851		}
130852		if err := f(x); err != nil {
130853			return err
130854		}
130855		if x.NextPageToken == "" {
130856			return nil
130857		}
130858		c.PageToken(x.NextPageToken)
130859	}
130860}
130861
130862// method id "compute.reservations.aggregatedList":
130863
130864type ReservationsAggregatedListCall struct {
130865	s            *Service
130866	project      string
130867	urlParams_   gensupport.URLParams
130868	ifNoneMatch_ string
130869	ctx_         context.Context
130870	header_      http.Header
130871}
130872
130873// AggregatedList: Retrieves an aggregated list of reservations.
130874func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
130875	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130876	c.project = project
130877	return c
130878}
130879
130880// Filter sets the optional parameter "filter": A filter expression that
130881// filters resources listed in the response. The expression must specify
130882// the field name, a comparison operator, and the value that you want to
130883// use for filtering. The value must be a string, a number, or a
130884// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130885// `<`.
130886//
130887// For example, if you are filtering Compute Engine instances, you can
130888// exclude instances named `example-instance` by specifying `name !=
130889// example-instance`.
130890//
130891// You can also filter nested fields. For example, you could specify
130892// `scheduling.automaticRestart = false` to include instances only if
130893// they are not scheduled for automatic restarts. You can use filtering
130894// on nested fields to filter based on resource labels.
130895//
130896// To filter on multiple expressions, provide each separate expression
130897// within parentheses. For example: ``` (scheduling.automaticRestart =
130898// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
130899// is an `AND` expression. However, you can include `AND` and `OR`
130900// expressions explicitly. For example: ``` (cpuPlatform = "Intel
130901// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
130902// (scheduling.automaticRestart = true) ```
130903func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
130904	c.urlParams_.Set("filter", filter)
130905	return c
130906}
130907
130908// IncludeAllScopes sets the optional parameter "includeAllScopes":
130909// Indicates whether every visible scope for each scope type (zone,
130910// region, global) should be included in the response. For new resource
130911// types added after this field, the flag has no effect as new resource
130912// types will always include every visible scope for each scope type in
130913// response. For resource types which predate this field, if this flag
130914// is omitted or false, only scopes of the scope types where the
130915// resource type is expected to be found will be included.
130916func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
130917	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
130918	return c
130919}
130920
130921// MaxResults sets the optional parameter "maxResults": The maximum
130922// number of results per page that should be returned. If the number of
130923// available results is larger than `maxResults`, Compute Engine returns
130924// a `nextPageToken` that can be used to get the next page of results in
130925// subsequent list requests. Acceptable values are `0` to `500`,
130926// inclusive. (Default: `500`)
130927func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
130928	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130929	return c
130930}
130931
130932// OrderBy sets the optional parameter "orderBy": Sorts list results by
130933// a certain order. By default, results are returned in alphanumerical
130934// order based on the resource name.
130935//
130936// You can also sort results in descending order based on the creation
130937// timestamp using `orderBy="creationTimestamp desc". This sorts
130938// results based on the `creationTimestamp` field in reverse
130939// chronological order (newest result first). Use this to sort resources
130940// like operations so that the newest operation is returned
130941// first.
130942//
130943// Currently, only sorting by `name` or `creationTimestamp desc` is
130944// supported.
130945func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
130946	c.urlParams_.Set("orderBy", orderBy)
130947	return c
130948}
130949
130950// PageToken sets the optional parameter "pageToken": Specifies a page
130951// token to use. Set `pageToken` to the `nextPageToken` returned by a
130952// previous list request to get the next page of results.
130953func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
130954	c.urlParams_.Set("pageToken", pageToken)
130955	return c
130956}
130957
130958// Fields allows partial responses to be retrieved. See
130959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130960// for more information.
130961func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
130962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130963	return c
130964}
130965
130966// IfNoneMatch sets the optional parameter which makes the operation
130967// fail if the object's ETag matches the given value. This is useful for
130968// getting updates only after the object has changed since the last
130969// request. Use googleapi.IsNotModified to check whether the response
130970// error from Do is the result of In-None-Match.
130971func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
130972	c.ifNoneMatch_ = entityTag
130973	return c
130974}
130975
130976// Context sets the context to be used in this call's Do method. Any
130977// pending HTTP request will be aborted if the provided context is
130978// canceled.
130979func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
130980	c.ctx_ = ctx
130981	return c
130982}
130983
130984// Header returns an http.Header that can be modified by the caller to
130985// add HTTP headers to the request.
130986func (c *ReservationsAggregatedListCall) Header() http.Header {
130987	if c.header_ == nil {
130988		c.header_ = make(http.Header)
130989	}
130990	return c.header_
130991}
130992
130993func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
130994	reqHeaders := make(http.Header)
130995	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
130996	for k, v := range c.header_ {
130997		reqHeaders[k] = v
130998	}
130999	reqHeaders.Set("User-Agent", c.s.userAgent())
131000	if c.ifNoneMatch_ != "" {
131001		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131002	}
131003	var body io.Reader = nil
131004	c.urlParams_.Set("alt", alt)
131005	c.urlParams_.Set("prettyPrint", "false")
131006	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/reservations")
131007	urls += "?" + c.urlParams_.Encode()
131008	req, err := http.NewRequest("GET", urls, body)
131009	if err != nil {
131010		return nil, err
131011	}
131012	req.Header = reqHeaders
131013	googleapi.Expand(req.URL, map[string]string{
131014		"project": c.project,
131015	})
131016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131017}
131018
131019// Do executes the "compute.reservations.aggregatedList" call.
131020// Exactly one of *ReservationAggregatedList or error will be non-nil.
131021// Any non-2xx status code is an error. Response headers are in either
131022// *ReservationAggregatedList.ServerResponse.Header or (if a response
131023// was returned at all) in error.(*googleapi.Error).Header. Use
131024// googleapi.IsNotModified to check whether the returned error was
131025// because http.StatusNotModified was returned.
131026func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
131027	gensupport.SetOptions(c.urlParams_, opts...)
131028	res, err := c.doRequest("json")
131029	if res != nil && res.StatusCode == http.StatusNotModified {
131030		if res.Body != nil {
131031			res.Body.Close()
131032		}
131033		return nil, &googleapi.Error{
131034			Code:   res.StatusCode,
131035			Header: res.Header,
131036		}
131037	}
131038	if err != nil {
131039		return nil, err
131040	}
131041	defer googleapi.CloseBody(res)
131042	if err := googleapi.CheckResponse(res); err != nil {
131043		return nil, err
131044	}
131045	ret := &ReservationAggregatedList{
131046		ServerResponse: googleapi.ServerResponse{
131047			Header:         res.Header,
131048			HTTPStatusCode: res.StatusCode,
131049		},
131050	}
131051	target := &ret
131052	if err := gensupport.DecodeResponse(target, res); err != nil {
131053		return nil, err
131054	}
131055	return ret, nil
131056	// {
131057	//   "description": "Retrieves an aggregated list of reservations.",
131058	//   "httpMethod": "GET",
131059	//   "id": "compute.reservations.aggregatedList",
131060	//   "parameterOrder": [
131061	//     "project"
131062	//   ],
131063	//   "parameters": {
131064	//     "filter": {
131065	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
131066	//       "location": "query",
131067	//       "type": "string"
131068	//     },
131069	//     "includeAllScopes": {
131070	//       "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.",
131071	//       "location": "query",
131072	//       "type": "boolean"
131073	//     },
131074	//     "maxResults": {
131075	//       "default": "500",
131076	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
131077	//       "format": "uint32",
131078	//       "location": "query",
131079	//       "minimum": "0",
131080	//       "type": "integer"
131081	//     },
131082	//     "orderBy": {
131083	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
131084	//       "location": "query",
131085	//       "type": "string"
131086	//     },
131087	//     "pageToken": {
131088	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
131089	//       "location": "query",
131090	//       "type": "string"
131091	//     },
131092	//     "project": {
131093	//       "description": "Project ID for this request.",
131094	//       "location": "path",
131095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131096	//       "required": true,
131097	//       "type": "string"
131098	//     }
131099	//   },
131100	//   "path": "{project}/aggregated/reservations",
131101	//   "response": {
131102	//     "$ref": "ReservationAggregatedList"
131103	//   },
131104	//   "scopes": [
131105	//     "https://www.googleapis.com/auth/cloud-platform",
131106	//     "https://www.googleapis.com/auth/compute",
131107	//     "https://www.googleapis.com/auth/compute.readonly"
131108	//   ]
131109	// }
131110
131111}
131112
131113// Pages invokes f for each page of results.
131114// A non-nil error returned from f will halt the iteration.
131115// The provided context supersedes any context provided to the Context method.
131116func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
131117	c.ctx_ = ctx
131118	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131119	for {
131120		x, err := c.Do()
131121		if err != nil {
131122			return err
131123		}
131124		if err := f(x); err != nil {
131125			return err
131126		}
131127		if x.NextPageToken == "" {
131128			return nil
131129		}
131130		c.PageToken(x.NextPageToken)
131131	}
131132}
131133
131134// method id "compute.reservations.delete":
131135
131136type ReservationsDeleteCall struct {
131137	s           *Service
131138	project     string
131139	zone        string
131140	reservation string
131141	urlParams_  gensupport.URLParams
131142	ctx_        context.Context
131143	header_     http.Header
131144}
131145
131146// Delete: Deletes the specified reservation.
131147func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
131148	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131149	c.project = project
131150	c.zone = zone
131151	c.reservation = reservation
131152	return c
131153}
131154
131155// RequestId sets the optional parameter "requestId": An optional
131156// request ID to identify requests. Specify a unique request ID so that
131157// if you must retry your request, the server will know to ignore the
131158// request if it has already been completed.
131159//
131160// For example, consider a situation where you make an initial request
131161// and the request times out. If you make the request again with the
131162// same request ID, the server can check if original operation with the
131163// same request ID was received, and if so, will ignore the second
131164// request. This prevents clients from accidentally creating duplicate
131165// commitments.
131166//
131167// The request ID must be a valid UUID with the exception that zero UUID
131168// is not supported (00000000-0000-0000-0000-000000000000).
131169func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
131170	c.urlParams_.Set("requestId", requestId)
131171	return c
131172}
131173
131174// Fields allows partial responses to be retrieved. See
131175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131176// for more information.
131177func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
131178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131179	return c
131180}
131181
131182// Context sets the context to be used in this call's Do method. Any
131183// pending HTTP request will be aborted if the provided context is
131184// canceled.
131185func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
131186	c.ctx_ = ctx
131187	return c
131188}
131189
131190// Header returns an http.Header that can be modified by the caller to
131191// add HTTP headers to the request.
131192func (c *ReservationsDeleteCall) Header() http.Header {
131193	if c.header_ == nil {
131194		c.header_ = make(http.Header)
131195	}
131196	return c.header_
131197}
131198
131199func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
131200	reqHeaders := make(http.Header)
131201	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131202	for k, v := range c.header_ {
131203		reqHeaders[k] = v
131204	}
131205	reqHeaders.Set("User-Agent", c.s.userAgent())
131206	var body io.Reader = nil
131207	c.urlParams_.Set("alt", alt)
131208	c.urlParams_.Set("prettyPrint", "false")
131209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
131210	urls += "?" + c.urlParams_.Encode()
131211	req, err := http.NewRequest("DELETE", urls, body)
131212	if err != nil {
131213		return nil, err
131214	}
131215	req.Header = reqHeaders
131216	googleapi.Expand(req.URL, map[string]string{
131217		"project":     c.project,
131218		"zone":        c.zone,
131219		"reservation": c.reservation,
131220	})
131221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131222}
131223
131224// Do executes the "compute.reservations.delete" call.
131225// Exactly one of *Operation or error will be non-nil. Any non-2xx
131226// status code is an error. Response headers are in either
131227// *Operation.ServerResponse.Header or (if a response was returned at
131228// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131229// to check whether the returned error was because
131230// http.StatusNotModified was returned.
131231func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131232	gensupport.SetOptions(c.urlParams_, opts...)
131233	res, err := c.doRequest("json")
131234	if res != nil && res.StatusCode == http.StatusNotModified {
131235		if res.Body != nil {
131236			res.Body.Close()
131237		}
131238		return nil, &googleapi.Error{
131239			Code:   res.StatusCode,
131240			Header: res.Header,
131241		}
131242	}
131243	if err != nil {
131244		return nil, err
131245	}
131246	defer googleapi.CloseBody(res)
131247	if err := googleapi.CheckResponse(res); err != nil {
131248		return nil, err
131249	}
131250	ret := &Operation{
131251		ServerResponse: googleapi.ServerResponse{
131252			Header:         res.Header,
131253			HTTPStatusCode: res.StatusCode,
131254		},
131255	}
131256	target := &ret
131257	if err := gensupport.DecodeResponse(target, res); err != nil {
131258		return nil, err
131259	}
131260	return ret, nil
131261	// {
131262	//   "description": "Deletes the specified reservation.",
131263	//   "httpMethod": "DELETE",
131264	//   "id": "compute.reservations.delete",
131265	//   "parameterOrder": [
131266	//     "project",
131267	//     "zone",
131268	//     "reservation"
131269	//   ],
131270	//   "parameters": {
131271	//     "project": {
131272	//       "description": "Project ID for this request.",
131273	//       "location": "path",
131274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131275	//       "required": true,
131276	//       "type": "string"
131277	//     },
131278	//     "requestId": {
131279	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131280	//       "location": "query",
131281	//       "type": "string"
131282	//     },
131283	//     "reservation": {
131284	//       "description": "Name of the reservation to delete.",
131285	//       "location": "path",
131286	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131287	//       "required": true,
131288	//       "type": "string"
131289	//     },
131290	//     "zone": {
131291	//       "description": "Name of the zone for this request.",
131292	//       "location": "path",
131293	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131294	//       "required": true,
131295	//       "type": "string"
131296	//     }
131297	//   },
131298	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
131299	//   "response": {
131300	//     "$ref": "Operation"
131301	//   },
131302	//   "scopes": [
131303	//     "https://www.googleapis.com/auth/cloud-platform",
131304	//     "https://www.googleapis.com/auth/compute"
131305	//   ]
131306	// }
131307
131308}
131309
131310// method id "compute.reservations.get":
131311
131312type ReservationsGetCall struct {
131313	s            *Service
131314	project      string
131315	zone         string
131316	reservation  string
131317	urlParams_   gensupport.URLParams
131318	ifNoneMatch_ string
131319	ctx_         context.Context
131320	header_      http.Header
131321}
131322
131323// Get: Retrieves information about the specified reservation.
131324func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
131325	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131326	c.project = project
131327	c.zone = zone
131328	c.reservation = reservation
131329	return c
131330}
131331
131332// Fields allows partial responses to be retrieved. See
131333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131334// for more information.
131335func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
131336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131337	return c
131338}
131339
131340// IfNoneMatch sets the optional parameter which makes the operation
131341// fail if the object's ETag matches the given value. This is useful for
131342// getting updates only after the object has changed since the last
131343// request. Use googleapi.IsNotModified to check whether the response
131344// error from Do is the result of In-None-Match.
131345func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
131346	c.ifNoneMatch_ = entityTag
131347	return c
131348}
131349
131350// Context sets the context to be used in this call's Do method. Any
131351// pending HTTP request will be aborted if the provided context is
131352// canceled.
131353func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
131354	c.ctx_ = ctx
131355	return c
131356}
131357
131358// Header returns an http.Header that can be modified by the caller to
131359// add HTTP headers to the request.
131360func (c *ReservationsGetCall) Header() http.Header {
131361	if c.header_ == nil {
131362		c.header_ = make(http.Header)
131363	}
131364	return c.header_
131365}
131366
131367func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
131368	reqHeaders := make(http.Header)
131369	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131370	for k, v := range c.header_ {
131371		reqHeaders[k] = v
131372	}
131373	reqHeaders.Set("User-Agent", c.s.userAgent())
131374	if c.ifNoneMatch_ != "" {
131375		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131376	}
131377	var body io.Reader = nil
131378	c.urlParams_.Set("alt", alt)
131379	c.urlParams_.Set("prettyPrint", "false")
131380	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
131381	urls += "?" + c.urlParams_.Encode()
131382	req, err := http.NewRequest("GET", urls, body)
131383	if err != nil {
131384		return nil, err
131385	}
131386	req.Header = reqHeaders
131387	googleapi.Expand(req.URL, map[string]string{
131388		"project":     c.project,
131389		"zone":        c.zone,
131390		"reservation": c.reservation,
131391	})
131392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131393}
131394
131395// Do executes the "compute.reservations.get" call.
131396// Exactly one of *Reservation or error will be non-nil. Any non-2xx
131397// status code is an error. Response headers are in either
131398// *Reservation.ServerResponse.Header or (if a response was returned at
131399// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131400// to check whether the returned error was because
131401// http.StatusNotModified was returned.
131402func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
131403	gensupport.SetOptions(c.urlParams_, opts...)
131404	res, err := c.doRequest("json")
131405	if res != nil && res.StatusCode == http.StatusNotModified {
131406		if res.Body != nil {
131407			res.Body.Close()
131408		}
131409		return nil, &googleapi.Error{
131410			Code:   res.StatusCode,
131411			Header: res.Header,
131412		}
131413	}
131414	if err != nil {
131415		return nil, err
131416	}
131417	defer googleapi.CloseBody(res)
131418	if err := googleapi.CheckResponse(res); err != nil {
131419		return nil, err
131420	}
131421	ret := &Reservation{
131422		ServerResponse: googleapi.ServerResponse{
131423			Header:         res.Header,
131424			HTTPStatusCode: res.StatusCode,
131425		},
131426	}
131427	target := &ret
131428	if err := gensupport.DecodeResponse(target, res); err != nil {
131429		return nil, err
131430	}
131431	return ret, nil
131432	// {
131433	//   "description": "Retrieves information about the specified reservation.",
131434	//   "httpMethod": "GET",
131435	//   "id": "compute.reservations.get",
131436	//   "parameterOrder": [
131437	//     "project",
131438	//     "zone",
131439	//     "reservation"
131440	//   ],
131441	//   "parameters": {
131442	//     "project": {
131443	//       "description": "Project ID for this request.",
131444	//       "location": "path",
131445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131446	//       "required": true,
131447	//       "type": "string"
131448	//     },
131449	//     "reservation": {
131450	//       "description": "Name of the reservation to retrieve.",
131451	//       "location": "path",
131452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131453	//       "required": true,
131454	//       "type": "string"
131455	//     },
131456	//     "zone": {
131457	//       "description": "Name of the zone for this request.",
131458	//       "location": "path",
131459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131460	//       "required": true,
131461	//       "type": "string"
131462	//     }
131463	//   },
131464	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
131465	//   "response": {
131466	//     "$ref": "Reservation"
131467	//   },
131468	//   "scopes": [
131469	//     "https://www.googleapis.com/auth/cloud-platform",
131470	//     "https://www.googleapis.com/auth/compute",
131471	//     "https://www.googleapis.com/auth/compute.readonly"
131472	//   ]
131473	// }
131474
131475}
131476
131477// method id "compute.reservations.getIamPolicy":
131478
131479type ReservationsGetIamPolicyCall struct {
131480	s            *Service
131481	project      string
131482	zone         string
131483	resource     string
131484	urlParams_   gensupport.URLParams
131485	ifNoneMatch_ string
131486	ctx_         context.Context
131487	header_      http.Header
131488}
131489
131490// GetIamPolicy: Gets the access control policy for a resource. May be
131491// empty if no such policy or resource exists.
131492func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
131493	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131494	c.project = project
131495	c.zone = zone
131496	c.resource = resource
131497	return c
131498}
131499
131500// OptionsRequestedPolicyVersion sets the optional parameter
131501// "optionsRequestedPolicyVersion": Requested IAM Policy version.
131502func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
131503	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
131504	return c
131505}
131506
131507// Fields allows partial responses to be retrieved. See
131508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131509// for more information.
131510func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
131511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131512	return c
131513}
131514
131515// IfNoneMatch sets the optional parameter which makes the operation
131516// fail if the object's ETag matches the given value. This is useful for
131517// getting updates only after the object has changed since the last
131518// request. Use googleapi.IsNotModified to check whether the response
131519// error from Do is the result of In-None-Match.
131520func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
131521	c.ifNoneMatch_ = entityTag
131522	return c
131523}
131524
131525// Context sets the context to be used in this call's Do method. Any
131526// pending HTTP request will be aborted if the provided context is
131527// canceled.
131528func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
131529	c.ctx_ = ctx
131530	return c
131531}
131532
131533// Header returns an http.Header that can be modified by the caller to
131534// add HTTP headers to the request.
131535func (c *ReservationsGetIamPolicyCall) Header() http.Header {
131536	if c.header_ == nil {
131537		c.header_ = make(http.Header)
131538	}
131539	return c.header_
131540}
131541
131542func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
131543	reqHeaders := make(http.Header)
131544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131545	for k, v := range c.header_ {
131546		reqHeaders[k] = v
131547	}
131548	reqHeaders.Set("User-Agent", c.s.userAgent())
131549	if c.ifNoneMatch_ != "" {
131550		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131551	}
131552	var body io.Reader = nil
131553	c.urlParams_.Set("alt", alt)
131554	c.urlParams_.Set("prettyPrint", "false")
131555	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
131556	urls += "?" + c.urlParams_.Encode()
131557	req, err := http.NewRequest("GET", urls, body)
131558	if err != nil {
131559		return nil, err
131560	}
131561	req.Header = reqHeaders
131562	googleapi.Expand(req.URL, map[string]string{
131563		"project":  c.project,
131564		"zone":     c.zone,
131565		"resource": c.resource,
131566	})
131567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131568}
131569
131570// Do executes the "compute.reservations.getIamPolicy" call.
131571// Exactly one of *Policy or error will be non-nil. Any non-2xx status
131572// code is an error. Response headers are in either
131573// *Policy.ServerResponse.Header or (if a response was returned at all)
131574// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
131575// check whether the returned error was because http.StatusNotModified
131576// was returned.
131577func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
131578	gensupport.SetOptions(c.urlParams_, opts...)
131579	res, err := c.doRequest("json")
131580	if res != nil && res.StatusCode == http.StatusNotModified {
131581		if res.Body != nil {
131582			res.Body.Close()
131583		}
131584		return nil, &googleapi.Error{
131585			Code:   res.StatusCode,
131586			Header: res.Header,
131587		}
131588	}
131589	if err != nil {
131590		return nil, err
131591	}
131592	defer googleapi.CloseBody(res)
131593	if err := googleapi.CheckResponse(res); err != nil {
131594		return nil, err
131595	}
131596	ret := &Policy{
131597		ServerResponse: googleapi.ServerResponse{
131598			Header:         res.Header,
131599			HTTPStatusCode: res.StatusCode,
131600		},
131601	}
131602	target := &ret
131603	if err := gensupport.DecodeResponse(target, res); err != nil {
131604		return nil, err
131605	}
131606	return ret, nil
131607	// {
131608	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
131609	//   "httpMethod": "GET",
131610	//   "id": "compute.reservations.getIamPolicy",
131611	//   "parameterOrder": [
131612	//     "project",
131613	//     "zone",
131614	//     "resource"
131615	//   ],
131616	//   "parameters": {
131617	//     "optionsRequestedPolicyVersion": {
131618	//       "description": "Requested IAM Policy version.",
131619	//       "format": "int32",
131620	//       "location": "query",
131621	//       "type": "integer"
131622	//     },
131623	//     "project": {
131624	//       "description": "Project ID for this request.",
131625	//       "location": "path",
131626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131627	//       "required": true,
131628	//       "type": "string"
131629	//     },
131630	//     "resource": {
131631	//       "description": "Name or id of the resource for this request.",
131632	//       "location": "path",
131633	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131634	//       "required": true,
131635	//       "type": "string"
131636	//     },
131637	//     "zone": {
131638	//       "description": "The name of the zone for this request.",
131639	//       "location": "path",
131640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131641	//       "required": true,
131642	//       "type": "string"
131643	//     }
131644	//   },
131645	//   "path": "{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
131646	//   "response": {
131647	//     "$ref": "Policy"
131648	//   },
131649	//   "scopes": [
131650	//     "https://www.googleapis.com/auth/cloud-platform",
131651	//     "https://www.googleapis.com/auth/compute",
131652	//     "https://www.googleapis.com/auth/compute.readonly"
131653	//   ]
131654	// }
131655
131656}
131657
131658// method id "compute.reservations.insert":
131659
131660type ReservationsInsertCall struct {
131661	s           *Service
131662	project     string
131663	zone        string
131664	reservation *Reservation
131665	urlParams_  gensupport.URLParams
131666	ctx_        context.Context
131667	header_     http.Header
131668}
131669
131670// Insert: Creates a new reservation. For more information, read
131671// Reserving zonal resources.
131672func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
131673	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131674	c.project = project
131675	c.zone = zone
131676	c.reservation = reservation
131677	return c
131678}
131679
131680// RequestId sets the optional parameter "requestId": An optional
131681// request ID to identify requests. Specify a unique request ID so that
131682// if you must retry your request, the server will know to ignore the
131683// request if it has already been completed.
131684//
131685// For example, consider a situation where you make an initial request
131686// and the request times out. If you make the request again with the
131687// same request ID, the server can check if original operation with the
131688// same request ID was received, and if so, will ignore the second
131689// request. This prevents clients from accidentally creating duplicate
131690// commitments.
131691//
131692// The request ID must be a valid UUID with the exception that zero UUID
131693// is not supported (00000000-0000-0000-0000-000000000000).
131694func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
131695	c.urlParams_.Set("requestId", requestId)
131696	return c
131697}
131698
131699// Fields allows partial responses to be retrieved. See
131700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131701// for more information.
131702func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
131703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131704	return c
131705}
131706
131707// Context sets the context to be used in this call's Do method. Any
131708// pending HTTP request will be aborted if the provided context is
131709// canceled.
131710func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
131711	c.ctx_ = ctx
131712	return c
131713}
131714
131715// Header returns an http.Header that can be modified by the caller to
131716// add HTTP headers to the request.
131717func (c *ReservationsInsertCall) Header() http.Header {
131718	if c.header_ == nil {
131719		c.header_ = make(http.Header)
131720	}
131721	return c.header_
131722}
131723
131724func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
131725	reqHeaders := make(http.Header)
131726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131727	for k, v := range c.header_ {
131728		reqHeaders[k] = v
131729	}
131730	reqHeaders.Set("User-Agent", c.s.userAgent())
131731	var body io.Reader = nil
131732	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
131733	if err != nil {
131734		return nil, err
131735	}
131736	reqHeaders.Set("Content-Type", "application/json")
131737	c.urlParams_.Set("alt", alt)
131738	c.urlParams_.Set("prettyPrint", "false")
131739	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
131740	urls += "?" + c.urlParams_.Encode()
131741	req, err := http.NewRequest("POST", urls, body)
131742	if err != nil {
131743		return nil, err
131744	}
131745	req.Header = reqHeaders
131746	googleapi.Expand(req.URL, map[string]string{
131747		"project": c.project,
131748		"zone":    c.zone,
131749	})
131750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131751}
131752
131753// Do executes the "compute.reservations.insert" call.
131754// Exactly one of *Operation or error will be non-nil. Any non-2xx
131755// status code is an error. Response headers are in either
131756// *Operation.ServerResponse.Header or (if a response was returned at
131757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131758// to check whether the returned error was because
131759// http.StatusNotModified was returned.
131760func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131761	gensupport.SetOptions(c.urlParams_, opts...)
131762	res, err := c.doRequest("json")
131763	if res != nil && res.StatusCode == http.StatusNotModified {
131764		if res.Body != nil {
131765			res.Body.Close()
131766		}
131767		return nil, &googleapi.Error{
131768			Code:   res.StatusCode,
131769			Header: res.Header,
131770		}
131771	}
131772	if err != nil {
131773		return nil, err
131774	}
131775	defer googleapi.CloseBody(res)
131776	if err := googleapi.CheckResponse(res); err != nil {
131777		return nil, err
131778	}
131779	ret := &Operation{
131780		ServerResponse: googleapi.ServerResponse{
131781			Header:         res.Header,
131782			HTTPStatusCode: res.StatusCode,
131783		},
131784	}
131785	target := &ret
131786	if err := gensupport.DecodeResponse(target, res); err != nil {
131787		return nil, err
131788	}
131789	return ret, nil
131790	// {
131791	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
131792	//   "httpMethod": "POST",
131793	//   "id": "compute.reservations.insert",
131794	//   "parameterOrder": [
131795	//     "project",
131796	//     "zone"
131797	//   ],
131798	//   "parameters": {
131799	//     "project": {
131800	//       "description": "Project ID for this request.",
131801	//       "location": "path",
131802	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131803	//       "required": true,
131804	//       "type": "string"
131805	//     },
131806	//     "requestId": {
131807	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131808	//       "location": "query",
131809	//       "type": "string"
131810	//     },
131811	//     "zone": {
131812	//       "description": "Name of the zone for this request.",
131813	//       "location": "path",
131814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131815	//       "required": true,
131816	//       "type": "string"
131817	//     }
131818	//   },
131819	//   "path": "{project}/zones/{zone}/reservations",
131820	//   "request": {
131821	//     "$ref": "Reservation"
131822	//   },
131823	//   "response": {
131824	//     "$ref": "Operation"
131825	//   },
131826	//   "scopes": [
131827	//     "https://www.googleapis.com/auth/cloud-platform",
131828	//     "https://www.googleapis.com/auth/compute"
131829	//   ]
131830	// }
131831
131832}
131833
131834// method id "compute.reservations.list":
131835
131836type ReservationsListCall struct {
131837	s            *Service
131838	project      string
131839	zone         string
131840	urlParams_   gensupport.URLParams
131841	ifNoneMatch_ string
131842	ctx_         context.Context
131843	header_      http.Header
131844}
131845
131846// List: A list of all the reservations that have been configured for
131847// the specified project in specified zone.
131848func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
131849	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131850	c.project = project
131851	c.zone = zone
131852	return c
131853}
131854
131855// Filter sets the optional parameter "filter": A filter expression that
131856// filters resources listed in the response. The expression must specify
131857// the field name, a comparison operator, and the value that you want to
131858// use for filtering. The value must be a string, a number, or a
131859// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131860// `<`.
131861//
131862// For example, if you are filtering Compute Engine instances, you can
131863// exclude instances named `example-instance` by specifying `name !=
131864// example-instance`.
131865//
131866// You can also filter nested fields. For example, you could specify
131867// `scheduling.automaticRestart = false` to include instances only if
131868// they are not scheduled for automatic restarts. You can use filtering
131869// on nested fields to filter based on resource labels.
131870//
131871// To filter on multiple expressions, provide each separate expression
131872// within parentheses. For example: ``` (scheduling.automaticRestart =
131873// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
131874// is an `AND` expression. However, you can include `AND` and `OR`
131875// expressions explicitly. For example: ``` (cpuPlatform = "Intel
131876// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
131877// (scheduling.automaticRestart = true) ```
131878func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
131879	c.urlParams_.Set("filter", filter)
131880	return c
131881}
131882
131883// MaxResults sets the optional parameter "maxResults": The maximum
131884// number of results per page that should be returned. If the number of
131885// available results is larger than `maxResults`, Compute Engine returns
131886// a `nextPageToken` that can be used to get the next page of results in
131887// subsequent list requests. Acceptable values are `0` to `500`,
131888// inclusive. (Default: `500`)
131889func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
131890	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131891	return c
131892}
131893
131894// OrderBy sets the optional parameter "orderBy": Sorts list results by
131895// a certain order. By default, results are returned in alphanumerical
131896// order based on the resource name.
131897//
131898// You can also sort results in descending order based on the creation
131899// timestamp using `orderBy="creationTimestamp desc". This sorts
131900// results based on the `creationTimestamp` field in reverse
131901// chronological order (newest result first). Use this to sort resources
131902// like operations so that the newest operation is returned
131903// first.
131904//
131905// Currently, only sorting by `name` or `creationTimestamp desc` is
131906// supported.
131907func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
131908	c.urlParams_.Set("orderBy", orderBy)
131909	return c
131910}
131911
131912// PageToken sets the optional parameter "pageToken": Specifies a page
131913// token to use. Set `pageToken` to the `nextPageToken` returned by a
131914// previous list request to get the next page of results.
131915func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
131916	c.urlParams_.Set("pageToken", pageToken)
131917	return c
131918}
131919
131920// Fields allows partial responses to be retrieved. See
131921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131922// for more information.
131923func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
131924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131925	return c
131926}
131927
131928// IfNoneMatch sets the optional parameter which makes the operation
131929// fail if the object's ETag matches the given value. This is useful for
131930// getting updates only after the object has changed since the last
131931// request. Use googleapi.IsNotModified to check whether the response
131932// error from Do is the result of In-None-Match.
131933func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
131934	c.ifNoneMatch_ = entityTag
131935	return c
131936}
131937
131938// Context sets the context to be used in this call's Do method. Any
131939// pending HTTP request will be aborted if the provided context is
131940// canceled.
131941func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
131942	c.ctx_ = ctx
131943	return c
131944}
131945
131946// Header returns an http.Header that can be modified by the caller to
131947// add HTTP headers to the request.
131948func (c *ReservationsListCall) Header() http.Header {
131949	if c.header_ == nil {
131950		c.header_ = make(http.Header)
131951	}
131952	return c.header_
131953}
131954
131955func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
131956	reqHeaders := make(http.Header)
131957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
131958	for k, v := range c.header_ {
131959		reqHeaders[k] = v
131960	}
131961	reqHeaders.Set("User-Agent", c.s.userAgent())
131962	if c.ifNoneMatch_ != "" {
131963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131964	}
131965	var body io.Reader = nil
131966	c.urlParams_.Set("alt", alt)
131967	c.urlParams_.Set("prettyPrint", "false")
131968	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
131969	urls += "?" + c.urlParams_.Encode()
131970	req, err := http.NewRequest("GET", urls, body)
131971	if err != nil {
131972		return nil, err
131973	}
131974	req.Header = reqHeaders
131975	googleapi.Expand(req.URL, map[string]string{
131976		"project": c.project,
131977		"zone":    c.zone,
131978	})
131979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131980}
131981
131982// Do executes the "compute.reservations.list" call.
131983// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
131984// status code is an error. Response headers are in either
131985// *ReservationList.ServerResponse.Header or (if a response was returned
131986// at all) in error.(*googleapi.Error).Header. Use
131987// googleapi.IsNotModified to check whether the returned error was
131988// because http.StatusNotModified was returned.
131989func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
131990	gensupport.SetOptions(c.urlParams_, opts...)
131991	res, err := c.doRequest("json")
131992	if res != nil && res.StatusCode == http.StatusNotModified {
131993		if res.Body != nil {
131994			res.Body.Close()
131995		}
131996		return nil, &googleapi.Error{
131997			Code:   res.StatusCode,
131998			Header: res.Header,
131999		}
132000	}
132001	if err != nil {
132002		return nil, err
132003	}
132004	defer googleapi.CloseBody(res)
132005	if err := googleapi.CheckResponse(res); err != nil {
132006		return nil, err
132007	}
132008	ret := &ReservationList{
132009		ServerResponse: googleapi.ServerResponse{
132010			Header:         res.Header,
132011			HTTPStatusCode: res.StatusCode,
132012		},
132013	}
132014	target := &ret
132015	if err := gensupport.DecodeResponse(target, res); err != nil {
132016		return nil, err
132017	}
132018	return ret, nil
132019	// {
132020	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
132021	//   "httpMethod": "GET",
132022	//   "id": "compute.reservations.list",
132023	//   "parameterOrder": [
132024	//     "project",
132025	//     "zone"
132026	//   ],
132027	//   "parameters": {
132028	//     "filter": {
132029	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
132030	//       "location": "query",
132031	//       "type": "string"
132032	//     },
132033	//     "maxResults": {
132034	//       "default": "500",
132035	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132036	//       "format": "uint32",
132037	//       "location": "query",
132038	//       "minimum": "0",
132039	//       "type": "integer"
132040	//     },
132041	//     "orderBy": {
132042	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
132043	//       "location": "query",
132044	//       "type": "string"
132045	//     },
132046	//     "pageToken": {
132047	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132048	//       "location": "query",
132049	//       "type": "string"
132050	//     },
132051	//     "project": {
132052	//       "description": "Project ID for this request.",
132053	//       "location": "path",
132054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132055	//       "required": true,
132056	//       "type": "string"
132057	//     },
132058	//     "zone": {
132059	//       "description": "Name of the zone for this request.",
132060	//       "location": "path",
132061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132062	//       "required": true,
132063	//       "type": "string"
132064	//     }
132065	//   },
132066	//   "path": "{project}/zones/{zone}/reservations",
132067	//   "response": {
132068	//     "$ref": "ReservationList"
132069	//   },
132070	//   "scopes": [
132071	//     "https://www.googleapis.com/auth/cloud-platform",
132072	//     "https://www.googleapis.com/auth/compute",
132073	//     "https://www.googleapis.com/auth/compute.readonly"
132074	//   ]
132075	// }
132076
132077}
132078
132079// Pages invokes f for each page of results.
132080// A non-nil error returned from f will halt the iteration.
132081// The provided context supersedes any context provided to the Context method.
132082func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
132083	c.ctx_ = ctx
132084	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132085	for {
132086		x, err := c.Do()
132087		if err != nil {
132088			return err
132089		}
132090		if err := f(x); err != nil {
132091			return err
132092		}
132093		if x.NextPageToken == "" {
132094			return nil
132095		}
132096		c.PageToken(x.NextPageToken)
132097	}
132098}
132099
132100// method id "compute.reservations.resize":
132101
132102type ReservationsResizeCall struct {
132103	s                         *Service
132104	project                   string
132105	zone                      string
132106	reservation               string
132107	reservationsresizerequest *ReservationsResizeRequest
132108	urlParams_                gensupport.URLParams
132109	ctx_                      context.Context
132110	header_                   http.Header
132111}
132112
132113// Resize: Resizes the reservation (applicable to standalone
132114// reservations only). For more information, read Modifying
132115// reservations.
132116func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
132117	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132118	c.project = project
132119	c.zone = zone
132120	c.reservation = reservation
132121	c.reservationsresizerequest = reservationsresizerequest
132122	return c
132123}
132124
132125// RequestId sets the optional parameter "requestId": An optional
132126// request ID to identify requests. Specify a unique request ID so that
132127// if you must retry your request, the server will know to ignore the
132128// request if it has already been completed.
132129//
132130// For example, consider a situation where you make an initial request
132131// and the request times out. If you make the request again with the
132132// same request ID, the server can check if original operation with the
132133// same request ID was received, and if so, will ignore the second
132134// request. This prevents clients from accidentally creating duplicate
132135// commitments.
132136//
132137// The request ID must be a valid UUID with the exception that zero UUID
132138// is not supported (00000000-0000-0000-0000-000000000000).
132139func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
132140	c.urlParams_.Set("requestId", requestId)
132141	return c
132142}
132143
132144// Fields allows partial responses to be retrieved. See
132145// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132146// for more information.
132147func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
132148	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132149	return c
132150}
132151
132152// Context sets the context to be used in this call's Do method. Any
132153// pending HTTP request will be aborted if the provided context is
132154// canceled.
132155func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
132156	c.ctx_ = ctx
132157	return c
132158}
132159
132160// Header returns an http.Header that can be modified by the caller to
132161// add HTTP headers to the request.
132162func (c *ReservationsResizeCall) Header() http.Header {
132163	if c.header_ == nil {
132164		c.header_ = make(http.Header)
132165	}
132166	return c.header_
132167}
132168
132169func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
132170	reqHeaders := make(http.Header)
132171	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132172	for k, v := range c.header_ {
132173		reqHeaders[k] = v
132174	}
132175	reqHeaders.Set("User-Agent", c.s.userAgent())
132176	var body io.Reader = nil
132177	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
132178	if err != nil {
132179		return nil, err
132180	}
132181	reqHeaders.Set("Content-Type", "application/json")
132182	c.urlParams_.Set("alt", alt)
132183	c.urlParams_.Set("prettyPrint", "false")
132184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}/resize")
132185	urls += "?" + c.urlParams_.Encode()
132186	req, err := http.NewRequest("POST", urls, body)
132187	if err != nil {
132188		return nil, err
132189	}
132190	req.Header = reqHeaders
132191	googleapi.Expand(req.URL, map[string]string{
132192		"project":     c.project,
132193		"zone":        c.zone,
132194		"reservation": c.reservation,
132195	})
132196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132197}
132198
132199// Do executes the "compute.reservations.resize" call.
132200// Exactly one of *Operation or error will be non-nil. Any non-2xx
132201// status code is an error. Response headers are in either
132202// *Operation.ServerResponse.Header or (if a response was returned at
132203// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132204// to check whether the returned error was because
132205// http.StatusNotModified was returned.
132206func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132207	gensupport.SetOptions(c.urlParams_, opts...)
132208	res, err := c.doRequest("json")
132209	if res != nil && res.StatusCode == http.StatusNotModified {
132210		if res.Body != nil {
132211			res.Body.Close()
132212		}
132213		return nil, &googleapi.Error{
132214			Code:   res.StatusCode,
132215			Header: res.Header,
132216		}
132217	}
132218	if err != nil {
132219		return nil, err
132220	}
132221	defer googleapi.CloseBody(res)
132222	if err := googleapi.CheckResponse(res); err != nil {
132223		return nil, err
132224	}
132225	ret := &Operation{
132226		ServerResponse: googleapi.ServerResponse{
132227			Header:         res.Header,
132228			HTTPStatusCode: res.StatusCode,
132229		},
132230	}
132231	target := &ret
132232	if err := gensupport.DecodeResponse(target, res); err != nil {
132233		return nil, err
132234	}
132235	return ret, nil
132236	// {
132237	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
132238	//   "httpMethod": "POST",
132239	//   "id": "compute.reservations.resize",
132240	//   "parameterOrder": [
132241	//     "project",
132242	//     "zone",
132243	//     "reservation"
132244	//   ],
132245	//   "parameters": {
132246	//     "project": {
132247	//       "description": "Project ID for this request.",
132248	//       "location": "path",
132249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132250	//       "required": true,
132251	//       "type": "string"
132252	//     },
132253	//     "requestId": {
132254	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132255	//       "location": "query",
132256	//       "type": "string"
132257	//     },
132258	//     "reservation": {
132259	//       "description": "Name of the reservation to update.",
132260	//       "location": "path",
132261	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132262	//       "required": true,
132263	//       "type": "string"
132264	//     },
132265	//     "zone": {
132266	//       "description": "Name of the zone for this request.",
132267	//       "location": "path",
132268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132269	//       "required": true,
132270	//       "type": "string"
132271	//     }
132272	//   },
132273	//   "path": "{project}/zones/{zone}/reservations/{reservation}/resize",
132274	//   "request": {
132275	//     "$ref": "ReservationsResizeRequest"
132276	//   },
132277	//   "response": {
132278	//     "$ref": "Operation"
132279	//   },
132280	//   "scopes": [
132281	//     "https://www.googleapis.com/auth/cloud-platform",
132282	//     "https://www.googleapis.com/auth/compute"
132283	//   ]
132284	// }
132285
132286}
132287
132288// method id "compute.reservations.setIamPolicy":
132289
132290type ReservationsSetIamPolicyCall struct {
132291	s                    *Service
132292	project              string
132293	zone                 string
132294	resource             string
132295	zonesetpolicyrequest *ZoneSetPolicyRequest
132296	urlParams_           gensupport.URLParams
132297	ctx_                 context.Context
132298	header_              http.Header
132299}
132300
132301// SetIamPolicy: Sets the access control policy on the specified
132302// resource. Replaces any existing policy.
132303func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
132304	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132305	c.project = project
132306	c.zone = zone
132307	c.resource = resource
132308	c.zonesetpolicyrequest = zonesetpolicyrequest
132309	return c
132310}
132311
132312// Fields allows partial responses to be retrieved. See
132313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132314// for more information.
132315func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
132316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132317	return c
132318}
132319
132320// Context sets the context to be used in this call's Do method. Any
132321// pending HTTP request will be aborted if the provided context is
132322// canceled.
132323func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
132324	c.ctx_ = ctx
132325	return c
132326}
132327
132328// Header returns an http.Header that can be modified by the caller to
132329// add HTTP headers to the request.
132330func (c *ReservationsSetIamPolicyCall) Header() http.Header {
132331	if c.header_ == nil {
132332		c.header_ = make(http.Header)
132333	}
132334	return c.header_
132335}
132336
132337func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
132338	reqHeaders := make(http.Header)
132339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132340	for k, v := range c.header_ {
132341		reqHeaders[k] = v
132342	}
132343	reqHeaders.Set("User-Agent", c.s.userAgent())
132344	var body io.Reader = nil
132345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
132346	if err != nil {
132347		return nil, err
132348	}
132349	reqHeaders.Set("Content-Type", "application/json")
132350	c.urlParams_.Set("alt", alt)
132351	c.urlParams_.Set("prettyPrint", "false")
132352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
132353	urls += "?" + c.urlParams_.Encode()
132354	req, err := http.NewRequest("POST", urls, body)
132355	if err != nil {
132356		return nil, err
132357	}
132358	req.Header = reqHeaders
132359	googleapi.Expand(req.URL, map[string]string{
132360		"project":  c.project,
132361		"zone":     c.zone,
132362		"resource": c.resource,
132363	})
132364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132365}
132366
132367// Do executes the "compute.reservations.setIamPolicy" call.
132368// Exactly one of *Policy or error will be non-nil. Any non-2xx status
132369// code is an error. Response headers are in either
132370// *Policy.ServerResponse.Header or (if a response was returned at all)
132371// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
132372// check whether the returned error was because http.StatusNotModified
132373// was returned.
132374func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
132375	gensupport.SetOptions(c.urlParams_, opts...)
132376	res, err := c.doRequest("json")
132377	if res != nil && res.StatusCode == http.StatusNotModified {
132378		if res.Body != nil {
132379			res.Body.Close()
132380		}
132381		return nil, &googleapi.Error{
132382			Code:   res.StatusCode,
132383			Header: res.Header,
132384		}
132385	}
132386	if err != nil {
132387		return nil, err
132388	}
132389	defer googleapi.CloseBody(res)
132390	if err := googleapi.CheckResponse(res); err != nil {
132391		return nil, err
132392	}
132393	ret := &Policy{
132394		ServerResponse: googleapi.ServerResponse{
132395			Header:         res.Header,
132396			HTTPStatusCode: res.StatusCode,
132397		},
132398	}
132399	target := &ret
132400	if err := gensupport.DecodeResponse(target, res); err != nil {
132401		return nil, err
132402	}
132403	return ret, nil
132404	// {
132405	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
132406	//   "httpMethod": "POST",
132407	//   "id": "compute.reservations.setIamPolicy",
132408	//   "parameterOrder": [
132409	//     "project",
132410	//     "zone",
132411	//     "resource"
132412	//   ],
132413	//   "parameters": {
132414	//     "project": {
132415	//       "description": "Project ID for this request.",
132416	//       "location": "path",
132417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132418	//       "required": true,
132419	//       "type": "string"
132420	//     },
132421	//     "resource": {
132422	//       "description": "Name or id of the resource for this request.",
132423	//       "location": "path",
132424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132425	//       "required": true,
132426	//       "type": "string"
132427	//     },
132428	//     "zone": {
132429	//       "description": "The name of the zone for this request.",
132430	//       "location": "path",
132431	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132432	//       "required": true,
132433	//       "type": "string"
132434	//     }
132435	//   },
132436	//   "path": "{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
132437	//   "request": {
132438	//     "$ref": "ZoneSetPolicyRequest"
132439	//   },
132440	//   "response": {
132441	//     "$ref": "Policy"
132442	//   },
132443	//   "scopes": [
132444	//     "https://www.googleapis.com/auth/cloud-platform",
132445	//     "https://www.googleapis.com/auth/compute"
132446	//   ]
132447	// }
132448
132449}
132450
132451// method id "compute.reservations.testIamPermissions":
132452
132453type ReservationsTestIamPermissionsCall struct {
132454	s                      *Service
132455	project                string
132456	zone                   string
132457	resource               string
132458	testpermissionsrequest *TestPermissionsRequest
132459	urlParams_             gensupport.URLParams
132460	ctx_                   context.Context
132461	header_                http.Header
132462}
132463
132464// TestIamPermissions: Returns permissions that a caller has on the
132465// specified resource.
132466func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
132467	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132468	c.project = project
132469	c.zone = zone
132470	c.resource = resource
132471	c.testpermissionsrequest = testpermissionsrequest
132472	return c
132473}
132474
132475// Fields allows partial responses to be retrieved. See
132476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132477// for more information.
132478func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
132479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132480	return c
132481}
132482
132483// Context sets the context to be used in this call's Do method. Any
132484// pending HTTP request will be aborted if the provided context is
132485// canceled.
132486func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
132487	c.ctx_ = ctx
132488	return c
132489}
132490
132491// Header returns an http.Header that can be modified by the caller to
132492// add HTTP headers to the request.
132493func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
132494	if c.header_ == nil {
132495		c.header_ = make(http.Header)
132496	}
132497	return c.header_
132498}
132499
132500func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
132501	reqHeaders := make(http.Header)
132502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132503	for k, v := range c.header_ {
132504		reqHeaders[k] = v
132505	}
132506	reqHeaders.Set("User-Agent", c.s.userAgent())
132507	var body io.Reader = nil
132508	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
132509	if err != nil {
132510		return nil, err
132511	}
132512	reqHeaders.Set("Content-Type", "application/json")
132513	c.urlParams_.Set("alt", alt)
132514	c.urlParams_.Set("prettyPrint", "false")
132515	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
132516	urls += "?" + c.urlParams_.Encode()
132517	req, err := http.NewRequest("POST", urls, body)
132518	if err != nil {
132519		return nil, err
132520	}
132521	req.Header = reqHeaders
132522	googleapi.Expand(req.URL, map[string]string{
132523		"project":  c.project,
132524		"zone":     c.zone,
132525		"resource": c.resource,
132526	})
132527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132528}
132529
132530// Do executes the "compute.reservations.testIamPermissions" call.
132531// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
132532// non-2xx status code is an error. Response headers are in either
132533// *TestPermissionsResponse.ServerResponse.Header or (if a response was
132534// returned at all) in error.(*googleapi.Error).Header. Use
132535// googleapi.IsNotModified to check whether the returned error was
132536// because http.StatusNotModified was returned.
132537func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
132538	gensupport.SetOptions(c.urlParams_, opts...)
132539	res, err := c.doRequest("json")
132540	if res != nil && res.StatusCode == http.StatusNotModified {
132541		if res.Body != nil {
132542			res.Body.Close()
132543		}
132544		return nil, &googleapi.Error{
132545			Code:   res.StatusCode,
132546			Header: res.Header,
132547		}
132548	}
132549	if err != nil {
132550		return nil, err
132551	}
132552	defer googleapi.CloseBody(res)
132553	if err := googleapi.CheckResponse(res); err != nil {
132554		return nil, err
132555	}
132556	ret := &TestPermissionsResponse{
132557		ServerResponse: googleapi.ServerResponse{
132558			Header:         res.Header,
132559			HTTPStatusCode: res.StatusCode,
132560		},
132561	}
132562	target := &ret
132563	if err := gensupport.DecodeResponse(target, res); err != nil {
132564		return nil, err
132565	}
132566	return ret, nil
132567	// {
132568	//   "description": "Returns permissions that a caller has on the specified resource.",
132569	//   "httpMethod": "POST",
132570	//   "id": "compute.reservations.testIamPermissions",
132571	//   "parameterOrder": [
132572	//     "project",
132573	//     "zone",
132574	//     "resource"
132575	//   ],
132576	//   "parameters": {
132577	//     "project": {
132578	//       "description": "Project ID for this request.",
132579	//       "location": "path",
132580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132581	//       "required": true,
132582	//       "type": "string"
132583	//     },
132584	//     "resource": {
132585	//       "description": "Name or id of the resource for this request.",
132586	//       "location": "path",
132587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132588	//       "required": true,
132589	//       "type": "string"
132590	//     },
132591	//     "zone": {
132592	//       "description": "The name of the zone for this request.",
132593	//       "location": "path",
132594	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132595	//       "required": true,
132596	//       "type": "string"
132597	//     }
132598	//   },
132599	//   "path": "{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
132600	//   "request": {
132601	//     "$ref": "TestPermissionsRequest"
132602	//   },
132603	//   "response": {
132604	//     "$ref": "TestPermissionsResponse"
132605	//   },
132606	//   "scopes": [
132607	//     "https://www.googleapis.com/auth/cloud-platform",
132608	//     "https://www.googleapis.com/auth/compute",
132609	//     "https://www.googleapis.com/auth/compute.readonly"
132610	//   ]
132611	// }
132612
132613}
132614
132615// method id "compute.resourcePolicies.aggregatedList":
132616
132617type ResourcePoliciesAggregatedListCall struct {
132618	s            *Service
132619	project      string
132620	urlParams_   gensupport.URLParams
132621	ifNoneMatch_ string
132622	ctx_         context.Context
132623	header_      http.Header
132624}
132625
132626// AggregatedList: Retrieves an aggregated list of resource policies.
132627func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
132628	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132629	c.project = project
132630	return c
132631}
132632
132633// Filter sets the optional parameter "filter": A filter expression that
132634// filters resources listed in the response. The expression must specify
132635// the field name, a comparison operator, and the value that you want to
132636// use for filtering. The value must be a string, a number, or a
132637// boolean. The comparison operator must be either `=`, `!=`, `>`, or
132638// `<`.
132639//
132640// For example, if you are filtering Compute Engine instances, you can
132641// exclude instances named `example-instance` by specifying `name !=
132642// example-instance`.
132643//
132644// You can also filter nested fields. For example, you could specify
132645// `scheduling.automaticRestart = false` to include instances only if
132646// they are not scheduled for automatic restarts. You can use filtering
132647// on nested fields to filter based on resource labels.
132648//
132649// To filter on multiple expressions, provide each separate expression
132650// within parentheses. For example: ``` (scheduling.automaticRestart =
132651// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
132652// is an `AND` expression. However, you can include `AND` and `OR`
132653// expressions explicitly. For example: ``` (cpuPlatform = "Intel
132654// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
132655// (scheduling.automaticRestart = true) ```
132656func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
132657	c.urlParams_.Set("filter", filter)
132658	return c
132659}
132660
132661// IncludeAllScopes sets the optional parameter "includeAllScopes":
132662// Indicates whether every visible scope for each scope type (zone,
132663// region, global) should be included in the response. For new resource
132664// types added after this field, the flag has no effect as new resource
132665// types will always include every visible scope for each scope type in
132666// response. For resource types which predate this field, if this flag
132667// is omitted or false, only scopes of the scope types where the
132668// resource type is expected to be found will be included.
132669func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
132670	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
132671	return c
132672}
132673
132674// MaxResults sets the optional parameter "maxResults": The maximum
132675// number of results per page that should be returned. If the number of
132676// available results is larger than `maxResults`, Compute Engine returns
132677// a `nextPageToken` that can be used to get the next page of results in
132678// subsequent list requests. Acceptable values are `0` to `500`,
132679// inclusive. (Default: `500`)
132680func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
132681	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132682	return c
132683}
132684
132685// OrderBy sets the optional parameter "orderBy": Sorts list results by
132686// a certain order. By default, results are returned in alphanumerical
132687// order based on the resource name.
132688//
132689// You can also sort results in descending order based on the creation
132690// timestamp using `orderBy="creationTimestamp desc". This sorts
132691// results based on the `creationTimestamp` field in reverse
132692// chronological order (newest result first). Use this to sort resources
132693// like operations so that the newest operation is returned
132694// first.
132695//
132696// Currently, only sorting by `name` or `creationTimestamp desc` is
132697// supported.
132698func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
132699	c.urlParams_.Set("orderBy", orderBy)
132700	return c
132701}
132702
132703// PageToken sets the optional parameter "pageToken": Specifies a page
132704// token to use. Set `pageToken` to the `nextPageToken` returned by a
132705// previous list request to get the next page of results.
132706func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
132707	c.urlParams_.Set("pageToken", pageToken)
132708	return c
132709}
132710
132711// Fields allows partial responses to be retrieved. See
132712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132713// for more information.
132714func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
132715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132716	return c
132717}
132718
132719// IfNoneMatch sets the optional parameter which makes the operation
132720// fail if the object's ETag matches the given value. This is useful for
132721// getting updates only after the object has changed since the last
132722// request. Use googleapi.IsNotModified to check whether the response
132723// error from Do is the result of In-None-Match.
132724func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
132725	c.ifNoneMatch_ = entityTag
132726	return c
132727}
132728
132729// Context sets the context to be used in this call's Do method. Any
132730// pending HTTP request will be aborted if the provided context is
132731// canceled.
132732func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
132733	c.ctx_ = ctx
132734	return c
132735}
132736
132737// Header returns an http.Header that can be modified by the caller to
132738// add HTTP headers to the request.
132739func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
132740	if c.header_ == nil {
132741		c.header_ = make(http.Header)
132742	}
132743	return c.header_
132744}
132745
132746func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
132747	reqHeaders := make(http.Header)
132748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132749	for k, v := range c.header_ {
132750		reqHeaders[k] = v
132751	}
132752	reqHeaders.Set("User-Agent", c.s.userAgent())
132753	if c.ifNoneMatch_ != "" {
132754		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132755	}
132756	var body io.Reader = nil
132757	c.urlParams_.Set("alt", alt)
132758	c.urlParams_.Set("prettyPrint", "false")
132759	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/resourcePolicies")
132760	urls += "?" + c.urlParams_.Encode()
132761	req, err := http.NewRequest("GET", urls, body)
132762	if err != nil {
132763		return nil, err
132764	}
132765	req.Header = reqHeaders
132766	googleapi.Expand(req.URL, map[string]string{
132767		"project": c.project,
132768	})
132769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132770}
132771
132772// Do executes the "compute.resourcePolicies.aggregatedList" call.
132773// Exactly one of *ResourcePolicyAggregatedList or error will be
132774// non-nil. Any non-2xx status code is an error. Response headers are in
132775// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
132776// response was returned at all) in error.(*googleapi.Error).Header. Use
132777// googleapi.IsNotModified to check whether the returned error was
132778// because http.StatusNotModified was returned.
132779func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
132780	gensupport.SetOptions(c.urlParams_, opts...)
132781	res, err := c.doRequest("json")
132782	if res != nil && res.StatusCode == http.StatusNotModified {
132783		if res.Body != nil {
132784			res.Body.Close()
132785		}
132786		return nil, &googleapi.Error{
132787			Code:   res.StatusCode,
132788			Header: res.Header,
132789		}
132790	}
132791	if err != nil {
132792		return nil, err
132793	}
132794	defer googleapi.CloseBody(res)
132795	if err := googleapi.CheckResponse(res); err != nil {
132796		return nil, err
132797	}
132798	ret := &ResourcePolicyAggregatedList{
132799		ServerResponse: googleapi.ServerResponse{
132800			Header:         res.Header,
132801			HTTPStatusCode: res.StatusCode,
132802		},
132803	}
132804	target := &ret
132805	if err := gensupport.DecodeResponse(target, res); err != nil {
132806		return nil, err
132807	}
132808	return ret, nil
132809	// {
132810	//   "description": "Retrieves an aggregated list of resource policies.",
132811	//   "httpMethod": "GET",
132812	//   "id": "compute.resourcePolicies.aggregatedList",
132813	//   "parameterOrder": [
132814	//     "project"
132815	//   ],
132816	//   "parameters": {
132817	//     "filter": {
132818	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
132819	//       "location": "query",
132820	//       "type": "string"
132821	//     },
132822	//     "includeAllScopes": {
132823	//       "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.",
132824	//       "location": "query",
132825	//       "type": "boolean"
132826	//     },
132827	//     "maxResults": {
132828	//       "default": "500",
132829	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132830	//       "format": "uint32",
132831	//       "location": "query",
132832	//       "minimum": "0",
132833	//       "type": "integer"
132834	//     },
132835	//     "orderBy": {
132836	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
132837	//       "location": "query",
132838	//       "type": "string"
132839	//     },
132840	//     "pageToken": {
132841	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132842	//       "location": "query",
132843	//       "type": "string"
132844	//     },
132845	//     "project": {
132846	//       "description": "Project ID for this request.",
132847	//       "location": "path",
132848	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132849	//       "required": true,
132850	//       "type": "string"
132851	//     }
132852	//   },
132853	//   "path": "{project}/aggregated/resourcePolicies",
132854	//   "response": {
132855	//     "$ref": "ResourcePolicyAggregatedList"
132856	//   },
132857	//   "scopes": [
132858	//     "https://www.googleapis.com/auth/cloud-platform",
132859	//     "https://www.googleapis.com/auth/compute",
132860	//     "https://www.googleapis.com/auth/compute.readonly"
132861	//   ]
132862	// }
132863
132864}
132865
132866// Pages invokes f for each page of results.
132867// A non-nil error returned from f will halt the iteration.
132868// The provided context supersedes any context provided to the Context method.
132869func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
132870	c.ctx_ = ctx
132871	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132872	for {
132873		x, err := c.Do()
132874		if err != nil {
132875			return err
132876		}
132877		if err := f(x); err != nil {
132878			return err
132879		}
132880		if x.NextPageToken == "" {
132881			return nil
132882		}
132883		c.PageToken(x.NextPageToken)
132884	}
132885}
132886
132887// method id "compute.resourcePolicies.delete":
132888
132889type ResourcePoliciesDeleteCall struct {
132890	s              *Service
132891	project        string
132892	region         string
132893	resourcePolicy string
132894	urlParams_     gensupport.URLParams
132895	ctx_           context.Context
132896	header_        http.Header
132897}
132898
132899// Delete: Deletes the specified resource policy.
132900func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
132901	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132902	c.project = project
132903	c.region = region
132904	c.resourcePolicy = resourcePolicy
132905	return c
132906}
132907
132908// RequestId sets the optional parameter "requestId": An optional
132909// request ID to identify requests. Specify a unique request ID so that
132910// if you must retry your request, the server will know to ignore the
132911// request if it has already been completed.
132912//
132913// For example, consider a situation where you make an initial request
132914// and the request times out. If you make the request again with the
132915// same request ID, the server can check if original operation with the
132916// same request ID was received, and if so, will ignore the second
132917// request. This prevents clients from accidentally creating duplicate
132918// commitments.
132919//
132920// The request ID must be a valid UUID with the exception that zero UUID
132921// is not supported (00000000-0000-0000-0000-000000000000).
132922func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
132923	c.urlParams_.Set("requestId", requestId)
132924	return c
132925}
132926
132927// Fields allows partial responses to be retrieved. See
132928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132929// for more information.
132930func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
132931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132932	return c
132933}
132934
132935// Context sets the context to be used in this call's Do method. Any
132936// pending HTTP request will be aborted if the provided context is
132937// canceled.
132938func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
132939	c.ctx_ = ctx
132940	return c
132941}
132942
132943// Header returns an http.Header that can be modified by the caller to
132944// add HTTP headers to the request.
132945func (c *ResourcePoliciesDeleteCall) Header() http.Header {
132946	if c.header_ == nil {
132947		c.header_ = make(http.Header)
132948	}
132949	return c.header_
132950}
132951
132952func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
132953	reqHeaders := make(http.Header)
132954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
132955	for k, v := range c.header_ {
132956		reqHeaders[k] = v
132957	}
132958	reqHeaders.Set("User-Agent", c.s.userAgent())
132959	var body io.Reader = nil
132960	c.urlParams_.Set("alt", alt)
132961	c.urlParams_.Set("prettyPrint", "false")
132962	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
132963	urls += "?" + c.urlParams_.Encode()
132964	req, err := http.NewRequest("DELETE", urls, body)
132965	if err != nil {
132966		return nil, err
132967	}
132968	req.Header = reqHeaders
132969	googleapi.Expand(req.URL, map[string]string{
132970		"project":        c.project,
132971		"region":         c.region,
132972		"resourcePolicy": c.resourcePolicy,
132973	})
132974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132975}
132976
132977// Do executes the "compute.resourcePolicies.delete" call.
132978// Exactly one of *Operation or error will be non-nil. Any non-2xx
132979// status code is an error. Response headers are in either
132980// *Operation.ServerResponse.Header or (if a response was returned at
132981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132982// to check whether the returned error was because
132983// http.StatusNotModified was returned.
132984func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132985	gensupport.SetOptions(c.urlParams_, opts...)
132986	res, err := c.doRequest("json")
132987	if res != nil && res.StatusCode == http.StatusNotModified {
132988		if res.Body != nil {
132989			res.Body.Close()
132990		}
132991		return nil, &googleapi.Error{
132992			Code:   res.StatusCode,
132993			Header: res.Header,
132994		}
132995	}
132996	if err != nil {
132997		return nil, err
132998	}
132999	defer googleapi.CloseBody(res)
133000	if err := googleapi.CheckResponse(res); err != nil {
133001		return nil, err
133002	}
133003	ret := &Operation{
133004		ServerResponse: googleapi.ServerResponse{
133005			Header:         res.Header,
133006			HTTPStatusCode: res.StatusCode,
133007		},
133008	}
133009	target := &ret
133010	if err := gensupport.DecodeResponse(target, res); err != nil {
133011		return nil, err
133012	}
133013	return ret, nil
133014	// {
133015	//   "description": "Deletes the specified resource policy.",
133016	//   "httpMethod": "DELETE",
133017	//   "id": "compute.resourcePolicies.delete",
133018	//   "parameterOrder": [
133019	//     "project",
133020	//     "region",
133021	//     "resourcePolicy"
133022	//   ],
133023	//   "parameters": {
133024	//     "project": {
133025	//       "description": "Project ID for this request.",
133026	//       "location": "path",
133027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133028	//       "required": true,
133029	//       "type": "string"
133030	//     },
133031	//     "region": {
133032	//       "description": "Name of the region for this request.",
133033	//       "location": "path",
133034	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133035	//       "required": true,
133036	//       "type": "string"
133037	//     },
133038	//     "requestId": {
133039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133040	//       "location": "query",
133041	//       "type": "string"
133042	//     },
133043	//     "resourcePolicy": {
133044	//       "description": "Name of the resource policy to delete.",
133045	//       "location": "path",
133046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133047	//       "required": true,
133048	//       "type": "string"
133049	//     }
133050	//   },
133051	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
133052	//   "response": {
133053	//     "$ref": "Operation"
133054	//   },
133055	//   "scopes": [
133056	//     "https://www.googleapis.com/auth/cloud-platform",
133057	//     "https://www.googleapis.com/auth/compute"
133058	//   ]
133059	// }
133060
133061}
133062
133063// method id "compute.resourcePolicies.get":
133064
133065type ResourcePoliciesGetCall struct {
133066	s              *Service
133067	project        string
133068	region         string
133069	resourcePolicy string
133070	urlParams_     gensupport.URLParams
133071	ifNoneMatch_   string
133072	ctx_           context.Context
133073	header_        http.Header
133074}
133075
133076// Get: Retrieves all information of the specified resource policy.
133077func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
133078	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133079	c.project = project
133080	c.region = region
133081	c.resourcePolicy = resourcePolicy
133082	return c
133083}
133084
133085// Fields allows partial responses to be retrieved. See
133086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133087// for more information.
133088func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
133089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133090	return c
133091}
133092
133093// IfNoneMatch sets the optional parameter which makes the operation
133094// fail if the object's ETag matches the given value. This is useful for
133095// getting updates only after the object has changed since the last
133096// request. Use googleapi.IsNotModified to check whether the response
133097// error from Do is the result of In-None-Match.
133098func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
133099	c.ifNoneMatch_ = entityTag
133100	return c
133101}
133102
133103// Context sets the context to be used in this call's Do method. Any
133104// pending HTTP request will be aborted if the provided context is
133105// canceled.
133106func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
133107	c.ctx_ = ctx
133108	return c
133109}
133110
133111// Header returns an http.Header that can be modified by the caller to
133112// add HTTP headers to the request.
133113func (c *ResourcePoliciesGetCall) Header() http.Header {
133114	if c.header_ == nil {
133115		c.header_ = make(http.Header)
133116	}
133117	return c.header_
133118}
133119
133120func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
133121	reqHeaders := make(http.Header)
133122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133123	for k, v := range c.header_ {
133124		reqHeaders[k] = v
133125	}
133126	reqHeaders.Set("User-Agent", c.s.userAgent())
133127	if c.ifNoneMatch_ != "" {
133128		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133129	}
133130	var body io.Reader = nil
133131	c.urlParams_.Set("alt", alt)
133132	c.urlParams_.Set("prettyPrint", "false")
133133	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
133134	urls += "?" + c.urlParams_.Encode()
133135	req, err := http.NewRequest("GET", urls, body)
133136	if err != nil {
133137		return nil, err
133138	}
133139	req.Header = reqHeaders
133140	googleapi.Expand(req.URL, map[string]string{
133141		"project":        c.project,
133142		"region":         c.region,
133143		"resourcePolicy": c.resourcePolicy,
133144	})
133145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133146}
133147
133148// Do executes the "compute.resourcePolicies.get" call.
133149// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
133150// status code is an error. Response headers are in either
133151// *ResourcePolicy.ServerResponse.Header or (if a response was returned
133152// at all) in error.(*googleapi.Error).Header. Use
133153// googleapi.IsNotModified to check whether the returned error was
133154// because http.StatusNotModified was returned.
133155func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
133156	gensupport.SetOptions(c.urlParams_, opts...)
133157	res, err := c.doRequest("json")
133158	if res != nil && res.StatusCode == http.StatusNotModified {
133159		if res.Body != nil {
133160			res.Body.Close()
133161		}
133162		return nil, &googleapi.Error{
133163			Code:   res.StatusCode,
133164			Header: res.Header,
133165		}
133166	}
133167	if err != nil {
133168		return nil, err
133169	}
133170	defer googleapi.CloseBody(res)
133171	if err := googleapi.CheckResponse(res); err != nil {
133172		return nil, err
133173	}
133174	ret := &ResourcePolicy{
133175		ServerResponse: googleapi.ServerResponse{
133176			Header:         res.Header,
133177			HTTPStatusCode: res.StatusCode,
133178		},
133179	}
133180	target := &ret
133181	if err := gensupport.DecodeResponse(target, res); err != nil {
133182		return nil, err
133183	}
133184	return ret, nil
133185	// {
133186	//   "description": "Retrieves all information of the specified resource policy.",
133187	//   "httpMethod": "GET",
133188	//   "id": "compute.resourcePolicies.get",
133189	//   "parameterOrder": [
133190	//     "project",
133191	//     "region",
133192	//     "resourcePolicy"
133193	//   ],
133194	//   "parameters": {
133195	//     "project": {
133196	//       "description": "Project ID for this request.",
133197	//       "location": "path",
133198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133199	//       "required": true,
133200	//       "type": "string"
133201	//     },
133202	//     "region": {
133203	//       "description": "Name of the region for this request.",
133204	//       "location": "path",
133205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133206	//       "required": true,
133207	//       "type": "string"
133208	//     },
133209	//     "resourcePolicy": {
133210	//       "description": "Name of the resource policy to retrieve.",
133211	//       "location": "path",
133212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133213	//       "required": true,
133214	//       "type": "string"
133215	//     }
133216	//   },
133217	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
133218	//   "response": {
133219	//     "$ref": "ResourcePolicy"
133220	//   },
133221	//   "scopes": [
133222	//     "https://www.googleapis.com/auth/cloud-platform",
133223	//     "https://www.googleapis.com/auth/compute",
133224	//     "https://www.googleapis.com/auth/compute.readonly"
133225	//   ]
133226	// }
133227
133228}
133229
133230// method id "compute.resourcePolicies.getIamPolicy":
133231
133232type ResourcePoliciesGetIamPolicyCall struct {
133233	s            *Service
133234	project      string
133235	region       string
133236	resource     string
133237	urlParams_   gensupport.URLParams
133238	ifNoneMatch_ string
133239	ctx_         context.Context
133240	header_      http.Header
133241}
133242
133243// GetIamPolicy: Gets the access control policy for a resource. May be
133244// empty if no such policy or resource exists.
133245func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
133246	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133247	c.project = project
133248	c.region = region
133249	c.resource = resource
133250	return c
133251}
133252
133253// OptionsRequestedPolicyVersion sets the optional parameter
133254// "optionsRequestedPolicyVersion": Requested IAM Policy version.
133255func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
133256	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
133257	return c
133258}
133259
133260// Fields allows partial responses to be retrieved. See
133261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133262// for more information.
133263func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
133264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133265	return c
133266}
133267
133268// IfNoneMatch sets the optional parameter which makes the operation
133269// fail if the object's ETag matches the given value. This is useful for
133270// getting updates only after the object has changed since the last
133271// request. Use googleapi.IsNotModified to check whether the response
133272// error from Do is the result of In-None-Match.
133273func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
133274	c.ifNoneMatch_ = entityTag
133275	return c
133276}
133277
133278// Context sets the context to be used in this call's Do method. Any
133279// pending HTTP request will be aborted if the provided context is
133280// canceled.
133281func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
133282	c.ctx_ = ctx
133283	return c
133284}
133285
133286// Header returns an http.Header that can be modified by the caller to
133287// add HTTP headers to the request.
133288func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
133289	if c.header_ == nil {
133290		c.header_ = make(http.Header)
133291	}
133292	return c.header_
133293}
133294
133295func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
133296	reqHeaders := make(http.Header)
133297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133298	for k, v := range c.header_ {
133299		reqHeaders[k] = v
133300	}
133301	reqHeaders.Set("User-Agent", c.s.userAgent())
133302	if c.ifNoneMatch_ != "" {
133303		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133304	}
133305	var body io.Reader = nil
133306	c.urlParams_.Set("alt", alt)
133307	c.urlParams_.Set("prettyPrint", "false")
133308	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
133309	urls += "?" + c.urlParams_.Encode()
133310	req, err := http.NewRequest("GET", urls, body)
133311	if err != nil {
133312		return nil, err
133313	}
133314	req.Header = reqHeaders
133315	googleapi.Expand(req.URL, map[string]string{
133316		"project":  c.project,
133317		"region":   c.region,
133318		"resource": c.resource,
133319	})
133320	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133321}
133322
133323// Do executes the "compute.resourcePolicies.getIamPolicy" call.
133324// Exactly one of *Policy or error will be non-nil. Any non-2xx status
133325// code is an error. Response headers are in either
133326// *Policy.ServerResponse.Header or (if a response was returned at all)
133327// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
133328// check whether the returned error was because http.StatusNotModified
133329// was returned.
133330func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
133331	gensupport.SetOptions(c.urlParams_, opts...)
133332	res, err := c.doRequest("json")
133333	if res != nil && res.StatusCode == http.StatusNotModified {
133334		if res.Body != nil {
133335			res.Body.Close()
133336		}
133337		return nil, &googleapi.Error{
133338			Code:   res.StatusCode,
133339			Header: res.Header,
133340		}
133341	}
133342	if err != nil {
133343		return nil, err
133344	}
133345	defer googleapi.CloseBody(res)
133346	if err := googleapi.CheckResponse(res); err != nil {
133347		return nil, err
133348	}
133349	ret := &Policy{
133350		ServerResponse: googleapi.ServerResponse{
133351			Header:         res.Header,
133352			HTTPStatusCode: res.StatusCode,
133353		},
133354	}
133355	target := &ret
133356	if err := gensupport.DecodeResponse(target, res); err != nil {
133357		return nil, err
133358	}
133359	return ret, nil
133360	// {
133361	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
133362	//   "httpMethod": "GET",
133363	//   "id": "compute.resourcePolicies.getIamPolicy",
133364	//   "parameterOrder": [
133365	//     "project",
133366	//     "region",
133367	//     "resource"
133368	//   ],
133369	//   "parameters": {
133370	//     "optionsRequestedPolicyVersion": {
133371	//       "description": "Requested IAM Policy version.",
133372	//       "format": "int32",
133373	//       "location": "query",
133374	//       "type": "integer"
133375	//     },
133376	//     "project": {
133377	//       "description": "Project ID for this request.",
133378	//       "location": "path",
133379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133380	//       "required": true,
133381	//       "type": "string"
133382	//     },
133383	//     "region": {
133384	//       "description": "The name of the region for this request.",
133385	//       "location": "path",
133386	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133387	//       "required": true,
133388	//       "type": "string"
133389	//     },
133390	//     "resource": {
133391	//       "description": "Name or id of the resource for this request.",
133392	//       "location": "path",
133393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133394	//       "required": true,
133395	//       "type": "string"
133396	//     }
133397	//   },
133398	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
133399	//   "response": {
133400	//     "$ref": "Policy"
133401	//   },
133402	//   "scopes": [
133403	//     "https://www.googleapis.com/auth/cloud-platform",
133404	//     "https://www.googleapis.com/auth/compute",
133405	//     "https://www.googleapis.com/auth/compute.readonly"
133406	//   ]
133407	// }
133408
133409}
133410
133411// method id "compute.resourcePolicies.insert":
133412
133413type ResourcePoliciesInsertCall struct {
133414	s              *Service
133415	project        string
133416	region         string
133417	resourcepolicy *ResourcePolicy
133418	urlParams_     gensupport.URLParams
133419	ctx_           context.Context
133420	header_        http.Header
133421}
133422
133423// Insert: Creates a new resource policy.
133424func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
133425	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133426	c.project = project
133427	c.region = region
133428	c.resourcepolicy = resourcepolicy
133429	return c
133430}
133431
133432// RequestId sets the optional parameter "requestId": An optional
133433// request ID to identify requests. Specify a unique request ID so that
133434// if you must retry your request, the server will know to ignore the
133435// request if it has already been completed.
133436//
133437// For example, consider a situation where you make an initial request
133438// and the request times out. If you make the request again with the
133439// same request ID, the server can check if original operation with the
133440// same request ID was received, and if so, will ignore the second
133441// request. This prevents clients from accidentally creating duplicate
133442// commitments.
133443//
133444// The request ID must be a valid UUID with the exception that zero UUID
133445// is not supported (00000000-0000-0000-0000-000000000000).
133446func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
133447	c.urlParams_.Set("requestId", requestId)
133448	return c
133449}
133450
133451// Fields allows partial responses to be retrieved. See
133452// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133453// for more information.
133454func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
133455	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133456	return c
133457}
133458
133459// Context sets the context to be used in this call's Do method. Any
133460// pending HTTP request will be aborted if the provided context is
133461// canceled.
133462func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
133463	c.ctx_ = ctx
133464	return c
133465}
133466
133467// Header returns an http.Header that can be modified by the caller to
133468// add HTTP headers to the request.
133469func (c *ResourcePoliciesInsertCall) Header() http.Header {
133470	if c.header_ == nil {
133471		c.header_ = make(http.Header)
133472	}
133473	return c.header_
133474}
133475
133476func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
133477	reqHeaders := make(http.Header)
133478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133479	for k, v := range c.header_ {
133480		reqHeaders[k] = v
133481	}
133482	reqHeaders.Set("User-Agent", c.s.userAgent())
133483	var body io.Reader = nil
133484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
133485	if err != nil {
133486		return nil, err
133487	}
133488	reqHeaders.Set("Content-Type", "application/json")
133489	c.urlParams_.Set("alt", alt)
133490	c.urlParams_.Set("prettyPrint", "false")
133491	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
133492	urls += "?" + c.urlParams_.Encode()
133493	req, err := http.NewRequest("POST", urls, body)
133494	if err != nil {
133495		return nil, err
133496	}
133497	req.Header = reqHeaders
133498	googleapi.Expand(req.URL, map[string]string{
133499		"project": c.project,
133500		"region":  c.region,
133501	})
133502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133503}
133504
133505// Do executes the "compute.resourcePolicies.insert" call.
133506// Exactly one of *Operation or error will be non-nil. Any non-2xx
133507// status code is an error. Response headers are in either
133508// *Operation.ServerResponse.Header or (if a response was returned at
133509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133510// to check whether the returned error was because
133511// http.StatusNotModified was returned.
133512func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133513	gensupport.SetOptions(c.urlParams_, opts...)
133514	res, err := c.doRequest("json")
133515	if res != nil && res.StatusCode == http.StatusNotModified {
133516		if res.Body != nil {
133517			res.Body.Close()
133518		}
133519		return nil, &googleapi.Error{
133520			Code:   res.StatusCode,
133521			Header: res.Header,
133522		}
133523	}
133524	if err != nil {
133525		return nil, err
133526	}
133527	defer googleapi.CloseBody(res)
133528	if err := googleapi.CheckResponse(res); err != nil {
133529		return nil, err
133530	}
133531	ret := &Operation{
133532		ServerResponse: googleapi.ServerResponse{
133533			Header:         res.Header,
133534			HTTPStatusCode: res.StatusCode,
133535		},
133536	}
133537	target := &ret
133538	if err := gensupport.DecodeResponse(target, res); err != nil {
133539		return nil, err
133540	}
133541	return ret, nil
133542	// {
133543	//   "description": "Creates a new resource policy.",
133544	//   "httpMethod": "POST",
133545	//   "id": "compute.resourcePolicies.insert",
133546	//   "parameterOrder": [
133547	//     "project",
133548	//     "region"
133549	//   ],
133550	//   "parameters": {
133551	//     "project": {
133552	//       "description": "Project ID for this request.",
133553	//       "location": "path",
133554	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133555	//       "required": true,
133556	//       "type": "string"
133557	//     },
133558	//     "region": {
133559	//       "description": "Name of the region for this request.",
133560	//       "location": "path",
133561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133562	//       "required": true,
133563	//       "type": "string"
133564	//     },
133565	//     "requestId": {
133566	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133567	//       "location": "query",
133568	//       "type": "string"
133569	//     }
133570	//   },
133571	//   "path": "{project}/regions/{region}/resourcePolicies",
133572	//   "request": {
133573	//     "$ref": "ResourcePolicy"
133574	//   },
133575	//   "response": {
133576	//     "$ref": "Operation"
133577	//   },
133578	//   "scopes": [
133579	//     "https://www.googleapis.com/auth/cloud-platform",
133580	//     "https://www.googleapis.com/auth/compute"
133581	//   ]
133582	// }
133583
133584}
133585
133586// method id "compute.resourcePolicies.list":
133587
133588type ResourcePoliciesListCall struct {
133589	s            *Service
133590	project      string
133591	region       string
133592	urlParams_   gensupport.URLParams
133593	ifNoneMatch_ string
133594	ctx_         context.Context
133595	header_      http.Header
133596}
133597
133598// List: A list all the resource policies that have been configured for
133599// the specified project in specified region.
133600func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
133601	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133602	c.project = project
133603	c.region = region
133604	return c
133605}
133606
133607// Filter sets the optional parameter "filter": A filter expression that
133608// filters resources listed in the response. The expression must specify
133609// the field name, a comparison operator, and the value that you want to
133610// use for filtering. The value must be a string, a number, or a
133611// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133612// `<`.
133613//
133614// For example, if you are filtering Compute Engine instances, you can
133615// exclude instances named `example-instance` by specifying `name !=
133616// example-instance`.
133617//
133618// You can also filter nested fields. For example, you could specify
133619// `scheduling.automaticRestart = false` to include instances only if
133620// they are not scheduled for automatic restarts. You can use filtering
133621// on nested fields to filter based on resource labels.
133622//
133623// To filter on multiple expressions, provide each separate expression
133624// within parentheses. For example: ``` (scheduling.automaticRestart =
133625// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
133626// is an `AND` expression. However, you can include `AND` and `OR`
133627// expressions explicitly. For example: ``` (cpuPlatform = "Intel
133628// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
133629// (scheduling.automaticRestart = true) ```
133630func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
133631	c.urlParams_.Set("filter", filter)
133632	return c
133633}
133634
133635// MaxResults sets the optional parameter "maxResults": The maximum
133636// number of results per page that should be returned. If the number of
133637// available results is larger than `maxResults`, Compute Engine returns
133638// a `nextPageToken` that can be used to get the next page of results in
133639// subsequent list requests. Acceptable values are `0` to `500`,
133640// inclusive. (Default: `500`)
133641func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
133642	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133643	return c
133644}
133645
133646// OrderBy sets the optional parameter "orderBy": Sorts list results by
133647// a certain order. By default, results are returned in alphanumerical
133648// order based on the resource name.
133649//
133650// You can also sort results in descending order based on the creation
133651// timestamp using `orderBy="creationTimestamp desc". This sorts
133652// results based on the `creationTimestamp` field in reverse
133653// chronological order (newest result first). Use this to sort resources
133654// like operations so that the newest operation is returned
133655// first.
133656//
133657// Currently, only sorting by `name` or `creationTimestamp desc` is
133658// supported.
133659func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
133660	c.urlParams_.Set("orderBy", orderBy)
133661	return c
133662}
133663
133664// PageToken sets the optional parameter "pageToken": Specifies a page
133665// token to use. Set `pageToken` to the `nextPageToken` returned by a
133666// previous list request to get the next page of results.
133667func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
133668	c.urlParams_.Set("pageToken", pageToken)
133669	return c
133670}
133671
133672// Fields allows partial responses to be retrieved. See
133673// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133674// for more information.
133675func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
133676	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133677	return c
133678}
133679
133680// IfNoneMatch sets the optional parameter which makes the operation
133681// fail if the object's ETag matches the given value. This is useful for
133682// getting updates only after the object has changed since the last
133683// request. Use googleapi.IsNotModified to check whether the response
133684// error from Do is the result of In-None-Match.
133685func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
133686	c.ifNoneMatch_ = entityTag
133687	return c
133688}
133689
133690// Context sets the context to be used in this call's Do method. Any
133691// pending HTTP request will be aborted if the provided context is
133692// canceled.
133693func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
133694	c.ctx_ = ctx
133695	return c
133696}
133697
133698// Header returns an http.Header that can be modified by the caller to
133699// add HTTP headers to the request.
133700func (c *ResourcePoliciesListCall) Header() http.Header {
133701	if c.header_ == nil {
133702		c.header_ = make(http.Header)
133703	}
133704	return c.header_
133705}
133706
133707func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
133708	reqHeaders := make(http.Header)
133709	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133710	for k, v := range c.header_ {
133711		reqHeaders[k] = v
133712	}
133713	reqHeaders.Set("User-Agent", c.s.userAgent())
133714	if c.ifNoneMatch_ != "" {
133715		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133716	}
133717	var body io.Reader = nil
133718	c.urlParams_.Set("alt", alt)
133719	c.urlParams_.Set("prettyPrint", "false")
133720	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
133721	urls += "?" + c.urlParams_.Encode()
133722	req, err := http.NewRequest("GET", urls, body)
133723	if err != nil {
133724		return nil, err
133725	}
133726	req.Header = reqHeaders
133727	googleapi.Expand(req.URL, map[string]string{
133728		"project": c.project,
133729		"region":  c.region,
133730	})
133731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133732}
133733
133734// Do executes the "compute.resourcePolicies.list" call.
133735// Exactly one of *ResourcePolicyList or error will be non-nil. Any
133736// non-2xx status code is an error. Response headers are in either
133737// *ResourcePolicyList.ServerResponse.Header or (if a response was
133738// returned at all) in error.(*googleapi.Error).Header. Use
133739// googleapi.IsNotModified to check whether the returned error was
133740// because http.StatusNotModified was returned.
133741func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
133742	gensupport.SetOptions(c.urlParams_, opts...)
133743	res, err := c.doRequest("json")
133744	if res != nil && res.StatusCode == http.StatusNotModified {
133745		if res.Body != nil {
133746			res.Body.Close()
133747		}
133748		return nil, &googleapi.Error{
133749			Code:   res.StatusCode,
133750			Header: res.Header,
133751		}
133752	}
133753	if err != nil {
133754		return nil, err
133755	}
133756	defer googleapi.CloseBody(res)
133757	if err := googleapi.CheckResponse(res); err != nil {
133758		return nil, err
133759	}
133760	ret := &ResourcePolicyList{
133761		ServerResponse: googleapi.ServerResponse{
133762			Header:         res.Header,
133763			HTTPStatusCode: res.StatusCode,
133764		},
133765	}
133766	target := &ret
133767	if err := gensupport.DecodeResponse(target, res); err != nil {
133768		return nil, err
133769	}
133770	return ret, nil
133771	// {
133772	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
133773	//   "httpMethod": "GET",
133774	//   "id": "compute.resourcePolicies.list",
133775	//   "parameterOrder": [
133776	//     "project",
133777	//     "region"
133778	//   ],
133779	//   "parameters": {
133780	//     "filter": {
133781	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
133782	//       "location": "query",
133783	//       "type": "string"
133784	//     },
133785	//     "maxResults": {
133786	//       "default": "500",
133787	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
133788	//       "format": "uint32",
133789	//       "location": "query",
133790	//       "minimum": "0",
133791	//       "type": "integer"
133792	//     },
133793	//     "orderBy": {
133794	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
133795	//       "location": "query",
133796	//       "type": "string"
133797	//     },
133798	//     "pageToken": {
133799	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
133800	//       "location": "query",
133801	//       "type": "string"
133802	//     },
133803	//     "project": {
133804	//       "description": "Project ID for this request.",
133805	//       "location": "path",
133806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133807	//       "required": true,
133808	//       "type": "string"
133809	//     },
133810	//     "region": {
133811	//       "description": "Name of the region for this request.",
133812	//       "location": "path",
133813	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133814	//       "required": true,
133815	//       "type": "string"
133816	//     }
133817	//   },
133818	//   "path": "{project}/regions/{region}/resourcePolicies",
133819	//   "response": {
133820	//     "$ref": "ResourcePolicyList"
133821	//   },
133822	//   "scopes": [
133823	//     "https://www.googleapis.com/auth/cloud-platform",
133824	//     "https://www.googleapis.com/auth/compute",
133825	//     "https://www.googleapis.com/auth/compute.readonly"
133826	//   ]
133827	// }
133828
133829}
133830
133831// Pages invokes f for each page of results.
133832// A non-nil error returned from f will halt the iteration.
133833// The provided context supersedes any context provided to the Context method.
133834func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
133835	c.ctx_ = ctx
133836	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133837	for {
133838		x, err := c.Do()
133839		if err != nil {
133840			return err
133841		}
133842		if err := f(x); err != nil {
133843			return err
133844		}
133845		if x.NextPageToken == "" {
133846			return nil
133847		}
133848		c.PageToken(x.NextPageToken)
133849	}
133850}
133851
133852// method id "compute.resourcePolicies.setIamPolicy":
133853
133854type ResourcePoliciesSetIamPolicyCall struct {
133855	s                      *Service
133856	project                string
133857	region                 string
133858	resource               string
133859	regionsetpolicyrequest *RegionSetPolicyRequest
133860	urlParams_             gensupport.URLParams
133861	ctx_                   context.Context
133862	header_                http.Header
133863}
133864
133865// SetIamPolicy: Sets the access control policy on the specified
133866// resource. Replaces any existing policy.
133867func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
133868	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133869	c.project = project
133870	c.region = region
133871	c.resource = resource
133872	c.regionsetpolicyrequest = regionsetpolicyrequest
133873	return c
133874}
133875
133876// Fields allows partial responses to be retrieved. See
133877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133878// for more information.
133879func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
133880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133881	return c
133882}
133883
133884// Context sets the context to be used in this call's Do method. Any
133885// pending HTTP request will be aborted if the provided context is
133886// canceled.
133887func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
133888	c.ctx_ = ctx
133889	return c
133890}
133891
133892// Header returns an http.Header that can be modified by the caller to
133893// add HTTP headers to the request.
133894func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
133895	if c.header_ == nil {
133896		c.header_ = make(http.Header)
133897	}
133898	return c.header_
133899}
133900
133901func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
133902	reqHeaders := make(http.Header)
133903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
133904	for k, v := range c.header_ {
133905		reqHeaders[k] = v
133906	}
133907	reqHeaders.Set("User-Agent", c.s.userAgent())
133908	var body io.Reader = nil
133909	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
133910	if err != nil {
133911		return nil, err
133912	}
133913	reqHeaders.Set("Content-Type", "application/json")
133914	c.urlParams_.Set("alt", alt)
133915	c.urlParams_.Set("prettyPrint", "false")
133916	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
133917	urls += "?" + c.urlParams_.Encode()
133918	req, err := http.NewRequest("POST", urls, body)
133919	if err != nil {
133920		return nil, err
133921	}
133922	req.Header = reqHeaders
133923	googleapi.Expand(req.URL, map[string]string{
133924		"project":  c.project,
133925		"region":   c.region,
133926		"resource": c.resource,
133927	})
133928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133929}
133930
133931// Do executes the "compute.resourcePolicies.setIamPolicy" call.
133932// Exactly one of *Policy or error will be non-nil. Any non-2xx status
133933// code is an error. Response headers are in either
133934// *Policy.ServerResponse.Header or (if a response was returned at all)
133935// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
133936// check whether the returned error was because http.StatusNotModified
133937// was returned.
133938func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
133939	gensupport.SetOptions(c.urlParams_, opts...)
133940	res, err := c.doRequest("json")
133941	if res != nil && res.StatusCode == http.StatusNotModified {
133942		if res.Body != nil {
133943			res.Body.Close()
133944		}
133945		return nil, &googleapi.Error{
133946			Code:   res.StatusCode,
133947			Header: res.Header,
133948		}
133949	}
133950	if err != nil {
133951		return nil, err
133952	}
133953	defer googleapi.CloseBody(res)
133954	if err := googleapi.CheckResponse(res); err != nil {
133955		return nil, err
133956	}
133957	ret := &Policy{
133958		ServerResponse: googleapi.ServerResponse{
133959			Header:         res.Header,
133960			HTTPStatusCode: res.StatusCode,
133961		},
133962	}
133963	target := &ret
133964	if err := gensupport.DecodeResponse(target, res); err != nil {
133965		return nil, err
133966	}
133967	return ret, nil
133968	// {
133969	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
133970	//   "httpMethod": "POST",
133971	//   "id": "compute.resourcePolicies.setIamPolicy",
133972	//   "parameterOrder": [
133973	//     "project",
133974	//     "region",
133975	//     "resource"
133976	//   ],
133977	//   "parameters": {
133978	//     "project": {
133979	//       "description": "Project ID for this request.",
133980	//       "location": "path",
133981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133982	//       "required": true,
133983	//       "type": "string"
133984	//     },
133985	//     "region": {
133986	//       "description": "The name of the region for this request.",
133987	//       "location": "path",
133988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133989	//       "required": true,
133990	//       "type": "string"
133991	//     },
133992	//     "resource": {
133993	//       "description": "Name or id of the resource for this request.",
133994	//       "location": "path",
133995	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133996	//       "required": true,
133997	//       "type": "string"
133998	//     }
133999	//   },
134000	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
134001	//   "request": {
134002	//     "$ref": "RegionSetPolicyRequest"
134003	//   },
134004	//   "response": {
134005	//     "$ref": "Policy"
134006	//   },
134007	//   "scopes": [
134008	//     "https://www.googleapis.com/auth/cloud-platform",
134009	//     "https://www.googleapis.com/auth/compute"
134010	//   ]
134011	// }
134012
134013}
134014
134015// method id "compute.resourcePolicies.testIamPermissions":
134016
134017type ResourcePoliciesTestIamPermissionsCall struct {
134018	s                      *Service
134019	project                string
134020	region                 string
134021	resource               string
134022	testpermissionsrequest *TestPermissionsRequest
134023	urlParams_             gensupport.URLParams
134024	ctx_                   context.Context
134025	header_                http.Header
134026}
134027
134028// TestIamPermissions: Returns permissions that a caller has on the
134029// specified resource.
134030func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
134031	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134032	c.project = project
134033	c.region = region
134034	c.resource = resource
134035	c.testpermissionsrequest = testpermissionsrequest
134036	return c
134037}
134038
134039// Fields allows partial responses to be retrieved. See
134040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134041// for more information.
134042func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
134043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134044	return c
134045}
134046
134047// Context sets the context to be used in this call's Do method. Any
134048// pending HTTP request will be aborted if the provided context is
134049// canceled.
134050func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
134051	c.ctx_ = ctx
134052	return c
134053}
134054
134055// Header returns an http.Header that can be modified by the caller to
134056// add HTTP headers to the request.
134057func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
134058	if c.header_ == nil {
134059		c.header_ = make(http.Header)
134060	}
134061	return c.header_
134062}
134063
134064func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
134065	reqHeaders := make(http.Header)
134066	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134067	for k, v := range c.header_ {
134068		reqHeaders[k] = v
134069	}
134070	reqHeaders.Set("User-Agent", c.s.userAgent())
134071	var body io.Reader = nil
134072	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
134073	if err != nil {
134074		return nil, err
134075	}
134076	reqHeaders.Set("Content-Type", "application/json")
134077	c.urlParams_.Set("alt", alt)
134078	c.urlParams_.Set("prettyPrint", "false")
134079	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
134080	urls += "?" + c.urlParams_.Encode()
134081	req, err := http.NewRequest("POST", urls, body)
134082	if err != nil {
134083		return nil, err
134084	}
134085	req.Header = reqHeaders
134086	googleapi.Expand(req.URL, map[string]string{
134087		"project":  c.project,
134088		"region":   c.region,
134089		"resource": c.resource,
134090	})
134091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134092}
134093
134094// Do executes the "compute.resourcePolicies.testIamPermissions" call.
134095// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
134096// non-2xx status code is an error. Response headers are in either
134097// *TestPermissionsResponse.ServerResponse.Header or (if a response was
134098// returned at all) in error.(*googleapi.Error).Header. Use
134099// googleapi.IsNotModified to check whether the returned error was
134100// because http.StatusNotModified was returned.
134101func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
134102	gensupport.SetOptions(c.urlParams_, opts...)
134103	res, err := c.doRequest("json")
134104	if res != nil && res.StatusCode == http.StatusNotModified {
134105		if res.Body != nil {
134106			res.Body.Close()
134107		}
134108		return nil, &googleapi.Error{
134109			Code:   res.StatusCode,
134110			Header: res.Header,
134111		}
134112	}
134113	if err != nil {
134114		return nil, err
134115	}
134116	defer googleapi.CloseBody(res)
134117	if err := googleapi.CheckResponse(res); err != nil {
134118		return nil, err
134119	}
134120	ret := &TestPermissionsResponse{
134121		ServerResponse: googleapi.ServerResponse{
134122			Header:         res.Header,
134123			HTTPStatusCode: res.StatusCode,
134124		},
134125	}
134126	target := &ret
134127	if err := gensupport.DecodeResponse(target, res); err != nil {
134128		return nil, err
134129	}
134130	return ret, nil
134131	// {
134132	//   "description": "Returns permissions that a caller has on the specified resource.",
134133	//   "httpMethod": "POST",
134134	//   "id": "compute.resourcePolicies.testIamPermissions",
134135	//   "parameterOrder": [
134136	//     "project",
134137	//     "region",
134138	//     "resource"
134139	//   ],
134140	//   "parameters": {
134141	//     "project": {
134142	//       "description": "Project ID for this request.",
134143	//       "location": "path",
134144	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134145	//       "required": true,
134146	//       "type": "string"
134147	//     },
134148	//     "region": {
134149	//       "description": "The name of the region for this request.",
134150	//       "location": "path",
134151	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134152	//       "required": true,
134153	//       "type": "string"
134154	//     },
134155	//     "resource": {
134156	//       "description": "Name or id of the resource for this request.",
134157	//       "location": "path",
134158	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134159	//       "required": true,
134160	//       "type": "string"
134161	//     }
134162	//   },
134163	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
134164	//   "request": {
134165	//     "$ref": "TestPermissionsRequest"
134166	//   },
134167	//   "response": {
134168	//     "$ref": "TestPermissionsResponse"
134169	//   },
134170	//   "scopes": [
134171	//     "https://www.googleapis.com/auth/cloud-platform",
134172	//     "https://www.googleapis.com/auth/compute",
134173	//     "https://www.googleapis.com/auth/compute.readonly"
134174	//   ]
134175	// }
134176
134177}
134178
134179// method id "compute.routers.aggregatedList":
134180
134181type RoutersAggregatedListCall struct {
134182	s            *Service
134183	project      string
134184	urlParams_   gensupport.URLParams
134185	ifNoneMatch_ string
134186	ctx_         context.Context
134187	header_      http.Header
134188}
134189
134190// AggregatedList: Retrieves an aggregated list of routers.
134191func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
134192	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134193	c.project = project
134194	return c
134195}
134196
134197// Filter sets the optional parameter "filter": A filter expression that
134198// filters resources listed in the response. The expression must specify
134199// the field name, a comparison operator, and the value that you want to
134200// use for filtering. The value must be a string, a number, or a
134201// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134202// `<`.
134203//
134204// For example, if you are filtering Compute Engine instances, you can
134205// exclude instances named `example-instance` by specifying `name !=
134206// example-instance`.
134207//
134208// You can also filter nested fields. For example, you could specify
134209// `scheduling.automaticRestart = false` to include instances only if
134210// they are not scheduled for automatic restarts. You can use filtering
134211// on nested fields to filter based on resource labels.
134212//
134213// To filter on multiple expressions, provide each separate expression
134214// within parentheses. For example: ``` (scheduling.automaticRestart =
134215// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134216// is an `AND` expression. However, you can include `AND` and `OR`
134217// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134218// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134219// (scheduling.automaticRestart = true) ```
134220func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
134221	c.urlParams_.Set("filter", filter)
134222	return c
134223}
134224
134225// IncludeAllScopes sets the optional parameter "includeAllScopes":
134226// Indicates whether every visible scope for each scope type (zone,
134227// region, global) should be included in the response. For new resource
134228// types added after this field, the flag has no effect as new resource
134229// types will always include every visible scope for each scope type in
134230// response. For resource types which predate this field, if this flag
134231// is omitted or false, only scopes of the scope types where the
134232// resource type is expected to be found will be included.
134233func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
134234	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
134235	return c
134236}
134237
134238// MaxResults sets the optional parameter "maxResults": The maximum
134239// number of results per page that should be returned. If the number of
134240// available results is larger than `maxResults`, Compute Engine returns
134241// a `nextPageToken` that can be used to get the next page of results in
134242// subsequent list requests. Acceptable values are `0` to `500`,
134243// inclusive. (Default: `500`)
134244func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
134245	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134246	return c
134247}
134248
134249// OrderBy sets the optional parameter "orderBy": Sorts list results by
134250// a certain order. By default, results are returned in alphanumerical
134251// order based on the resource name.
134252//
134253// You can also sort results in descending order based on the creation
134254// timestamp using `orderBy="creationTimestamp desc". This sorts
134255// results based on the `creationTimestamp` field in reverse
134256// chronological order (newest result first). Use this to sort resources
134257// like operations so that the newest operation is returned
134258// first.
134259//
134260// Currently, only sorting by `name` or `creationTimestamp desc` is
134261// supported.
134262func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
134263	c.urlParams_.Set("orderBy", orderBy)
134264	return c
134265}
134266
134267// PageToken sets the optional parameter "pageToken": Specifies a page
134268// token to use. Set `pageToken` to the `nextPageToken` returned by a
134269// previous list request to get the next page of results.
134270func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
134271	c.urlParams_.Set("pageToken", pageToken)
134272	return c
134273}
134274
134275// Fields allows partial responses to be retrieved. See
134276// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134277// for more information.
134278func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
134279	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134280	return c
134281}
134282
134283// IfNoneMatch sets the optional parameter which makes the operation
134284// fail if the object's ETag matches the given value. This is useful for
134285// getting updates only after the object has changed since the last
134286// request. Use googleapi.IsNotModified to check whether the response
134287// error from Do is the result of In-None-Match.
134288func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
134289	c.ifNoneMatch_ = entityTag
134290	return c
134291}
134292
134293// Context sets the context to be used in this call's Do method. Any
134294// pending HTTP request will be aborted if the provided context is
134295// canceled.
134296func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
134297	c.ctx_ = ctx
134298	return c
134299}
134300
134301// Header returns an http.Header that can be modified by the caller to
134302// add HTTP headers to the request.
134303func (c *RoutersAggregatedListCall) Header() http.Header {
134304	if c.header_ == nil {
134305		c.header_ = make(http.Header)
134306	}
134307	return c.header_
134308}
134309
134310func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
134311	reqHeaders := make(http.Header)
134312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134313	for k, v := range c.header_ {
134314		reqHeaders[k] = v
134315	}
134316	reqHeaders.Set("User-Agent", c.s.userAgent())
134317	if c.ifNoneMatch_ != "" {
134318		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134319	}
134320	var body io.Reader = nil
134321	c.urlParams_.Set("alt", alt)
134322	c.urlParams_.Set("prettyPrint", "false")
134323	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
134324	urls += "?" + c.urlParams_.Encode()
134325	req, err := http.NewRequest("GET", urls, body)
134326	if err != nil {
134327		return nil, err
134328	}
134329	req.Header = reqHeaders
134330	googleapi.Expand(req.URL, map[string]string{
134331		"project": c.project,
134332	})
134333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134334}
134335
134336// Do executes the "compute.routers.aggregatedList" call.
134337// Exactly one of *RouterAggregatedList or error will be non-nil. Any
134338// non-2xx status code is an error. Response headers are in either
134339// *RouterAggregatedList.ServerResponse.Header or (if a response was
134340// returned at all) in error.(*googleapi.Error).Header. Use
134341// googleapi.IsNotModified to check whether the returned error was
134342// because http.StatusNotModified was returned.
134343func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
134344	gensupport.SetOptions(c.urlParams_, opts...)
134345	res, err := c.doRequest("json")
134346	if res != nil && res.StatusCode == http.StatusNotModified {
134347		if res.Body != nil {
134348			res.Body.Close()
134349		}
134350		return nil, &googleapi.Error{
134351			Code:   res.StatusCode,
134352			Header: res.Header,
134353		}
134354	}
134355	if err != nil {
134356		return nil, err
134357	}
134358	defer googleapi.CloseBody(res)
134359	if err := googleapi.CheckResponse(res); err != nil {
134360		return nil, err
134361	}
134362	ret := &RouterAggregatedList{
134363		ServerResponse: googleapi.ServerResponse{
134364			Header:         res.Header,
134365			HTTPStatusCode: res.StatusCode,
134366		},
134367	}
134368	target := &ret
134369	if err := gensupport.DecodeResponse(target, res); err != nil {
134370		return nil, err
134371	}
134372	return ret, nil
134373	// {
134374	//   "description": "Retrieves an aggregated list of routers.",
134375	//   "httpMethod": "GET",
134376	//   "id": "compute.routers.aggregatedList",
134377	//   "parameterOrder": [
134378	//     "project"
134379	//   ],
134380	//   "parameters": {
134381	//     "filter": {
134382	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134383	//       "location": "query",
134384	//       "type": "string"
134385	//     },
134386	//     "includeAllScopes": {
134387	//       "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.",
134388	//       "location": "query",
134389	//       "type": "boolean"
134390	//     },
134391	//     "maxResults": {
134392	//       "default": "500",
134393	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134394	//       "format": "uint32",
134395	//       "location": "query",
134396	//       "minimum": "0",
134397	//       "type": "integer"
134398	//     },
134399	//     "orderBy": {
134400	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134401	//       "location": "query",
134402	//       "type": "string"
134403	//     },
134404	//     "pageToken": {
134405	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134406	//       "location": "query",
134407	//       "type": "string"
134408	//     },
134409	//     "project": {
134410	//       "description": "Project ID for this request.",
134411	//       "location": "path",
134412	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134413	//       "required": true,
134414	//       "type": "string"
134415	//     }
134416	//   },
134417	//   "path": "{project}/aggregated/routers",
134418	//   "response": {
134419	//     "$ref": "RouterAggregatedList"
134420	//   },
134421	//   "scopes": [
134422	//     "https://www.googleapis.com/auth/cloud-platform",
134423	//     "https://www.googleapis.com/auth/compute",
134424	//     "https://www.googleapis.com/auth/compute.readonly"
134425	//   ]
134426	// }
134427
134428}
134429
134430// Pages invokes f for each page of results.
134431// A non-nil error returned from f will halt the iteration.
134432// The provided context supersedes any context provided to the Context method.
134433func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
134434	c.ctx_ = ctx
134435	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134436	for {
134437		x, err := c.Do()
134438		if err != nil {
134439			return err
134440		}
134441		if err := f(x); err != nil {
134442			return err
134443		}
134444		if x.NextPageToken == "" {
134445			return nil
134446		}
134447		c.PageToken(x.NextPageToken)
134448	}
134449}
134450
134451// method id "compute.routers.delete":
134452
134453type RoutersDeleteCall struct {
134454	s          *Service
134455	project    string
134456	region     string
134457	router     string
134458	urlParams_ gensupport.URLParams
134459	ctx_       context.Context
134460	header_    http.Header
134461}
134462
134463// Delete: Deletes the specified Router resource.
134464func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
134465	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134466	c.project = project
134467	c.region = region
134468	c.router = router
134469	return c
134470}
134471
134472// RequestId sets the optional parameter "requestId": An optional
134473// request ID to identify requests. Specify a unique request ID so that
134474// if you must retry your request, the server will know to ignore the
134475// request if it has already been completed.
134476//
134477// For example, consider a situation where you make an initial request
134478// and the request times out. If you make the request again with the
134479// same request ID, the server can check if original operation with the
134480// same request ID was received, and if so, will ignore the second
134481// request. This prevents clients from accidentally creating duplicate
134482// commitments.
134483//
134484// The request ID must be a valid UUID with the exception that zero UUID
134485// is not supported (00000000-0000-0000-0000-000000000000).
134486func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
134487	c.urlParams_.Set("requestId", requestId)
134488	return c
134489}
134490
134491// Fields allows partial responses to be retrieved. See
134492// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134493// for more information.
134494func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
134495	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134496	return c
134497}
134498
134499// Context sets the context to be used in this call's Do method. Any
134500// pending HTTP request will be aborted if the provided context is
134501// canceled.
134502func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
134503	c.ctx_ = ctx
134504	return c
134505}
134506
134507// Header returns an http.Header that can be modified by the caller to
134508// add HTTP headers to the request.
134509func (c *RoutersDeleteCall) Header() http.Header {
134510	if c.header_ == nil {
134511		c.header_ = make(http.Header)
134512	}
134513	return c.header_
134514}
134515
134516func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
134517	reqHeaders := make(http.Header)
134518	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134519	for k, v := range c.header_ {
134520		reqHeaders[k] = v
134521	}
134522	reqHeaders.Set("User-Agent", c.s.userAgent())
134523	var body io.Reader = nil
134524	c.urlParams_.Set("alt", alt)
134525	c.urlParams_.Set("prettyPrint", "false")
134526	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
134527	urls += "?" + c.urlParams_.Encode()
134528	req, err := http.NewRequest("DELETE", urls, body)
134529	if err != nil {
134530		return nil, err
134531	}
134532	req.Header = reqHeaders
134533	googleapi.Expand(req.URL, map[string]string{
134534		"project": c.project,
134535		"region":  c.region,
134536		"router":  c.router,
134537	})
134538	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134539}
134540
134541// Do executes the "compute.routers.delete" call.
134542// Exactly one of *Operation or error will be non-nil. Any non-2xx
134543// status code is an error. Response headers are in either
134544// *Operation.ServerResponse.Header or (if a response was returned at
134545// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134546// to check whether the returned error was because
134547// http.StatusNotModified was returned.
134548func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134549	gensupport.SetOptions(c.urlParams_, opts...)
134550	res, err := c.doRequest("json")
134551	if res != nil && res.StatusCode == http.StatusNotModified {
134552		if res.Body != nil {
134553			res.Body.Close()
134554		}
134555		return nil, &googleapi.Error{
134556			Code:   res.StatusCode,
134557			Header: res.Header,
134558		}
134559	}
134560	if err != nil {
134561		return nil, err
134562	}
134563	defer googleapi.CloseBody(res)
134564	if err := googleapi.CheckResponse(res); err != nil {
134565		return nil, err
134566	}
134567	ret := &Operation{
134568		ServerResponse: googleapi.ServerResponse{
134569			Header:         res.Header,
134570			HTTPStatusCode: res.StatusCode,
134571		},
134572	}
134573	target := &ret
134574	if err := gensupport.DecodeResponse(target, res); err != nil {
134575		return nil, err
134576	}
134577	return ret, nil
134578	// {
134579	//   "description": "Deletes the specified Router resource.",
134580	//   "httpMethod": "DELETE",
134581	//   "id": "compute.routers.delete",
134582	//   "parameterOrder": [
134583	//     "project",
134584	//     "region",
134585	//     "router"
134586	//   ],
134587	//   "parameters": {
134588	//     "project": {
134589	//       "description": "Project ID for this request.",
134590	//       "location": "path",
134591	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134592	//       "required": true,
134593	//       "type": "string"
134594	//     },
134595	//     "region": {
134596	//       "description": "Name of the region for this request.",
134597	//       "location": "path",
134598	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134599	//       "required": true,
134600	//       "type": "string"
134601	//     },
134602	//     "requestId": {
134603	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134604	//       "location": "query",
134605	//       "type": "string"
134606	//     },
134607	//     "router": {
134608	//       "description": "Name of the Router resource to delete.",
134609	//       "location": "path",
134610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134611	//       "required": true,
134612	//       "type": "string"
134613	//     }
134614	//   },
134615	//   "path": "{project}/regions/{region}/routers/{router}",
134616	//   "response": {
134617	//     "$ref": "Operation"
134618	//   },
134619	//   "scopes": [
134620	//     "https://www.googleapis.com/auth/cloud-platform",
134621	//     "https://www.googleapis.com/auth/compute"
134622	//   ]
134623	// }
134624
134625}
134626
134627// method id "compute.routers.get":
134628
134629type RoutersGetCall struct {
134630	s            *Service
134631	project      string
134632	region       string
134633	router       string
134634	urlParams_   gensupport.URLParams
134635	ifNoneMatch_ string
134636	ctx_         context.Context
134637	header_      http.Header
134638}
134639
134640// Get: Returns the specified Router resource. Gets a list of available
134641// routers by making a list() request.
134642func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
134643	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134644	c.project = project
134645	c.region = region
134646	c.router = router
134647	return c
134648}
134649
134650// Fields allows partial responses to be retrieved. See
134651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134652// for more information.
134653func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
134654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134655	return c
134656}
134657
134658// IfNoneMatch sets the optional parameter which makes the operation
134659// fail if the object's ETag matches the given value. This is useful for
134660// getting updates only after the object has changed since the last
134661// request. Use googleapi.IsNotModified to check whether the response
134662// error from Do is the result of In-None-Match.
134663func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
134664	c.ifNoneMatch_ = entityTag
134665	return c
134666}
134667
134668// Context sets the context to be used in this call's Do method. Any
134669// pending HTTP request will be aborted if the provided context is
134670// canceled.
134671func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
134672	c.ctx_ = ctx
134673	return c
134674}
134675
134676// Header returns an http.Header that can be modified by the caller to
134677// add HTTP headers to the request.
134678func (c *RoutersGetCall) Header() http.Header {
134679	if c.header_ == nil {
134680		c.header_ = make(http.Header)
134681	}
134682	return c.header_
134683}
134684
134685func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
134686	reqHeaders := make(http.Header)
134687	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134688	for k, v := range c.header_ {
134689		reqHeaders[k] = v
134690	}
134691	reqHeaders.Set("User-Agent", c.s.userAgent())
134692	if c.ifNoneMatch_ != "" {
134693		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134694	}
134695	var body io.Reader = nil
134696	c.urlParams_.Set("alt", alt)
134697	c.urlParams_.Set("prettyPrint", "false")
134698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
134699	urls += "?" + c.urlParams_.Encode()
134700	req, err := http.NewRequest("GET", urls, body)
134701	if err != nil {
134702		return nil, err
134703	}
134704	req.Header = reqHeaders
134705	googleapi.Expand(req.URL, map[string]string{
134706		"project": c.project,
134707		"region":  c.region,
134708		"router":  c.router,
134709	})
134710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134711}
134712
134713// Do executes the "compute.routers.get" call.
134714// Exactly one of *Router or error will be non-nil. Any non-2xx status
134715// code is an error. Response headers are in either
134716// *Router.ServerResponse.Header or (if a response was returned at all)
134717// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
134718// check whether the returned error was because http.StatusNotModified
134719// was returned.
134720func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
134721	gensupport.SetOptions(c.urlParams_, opts...)
134722	res, err := c.doRequest("json")
134723	if res != nil && res.StatusCode == http.StatusNotModified {
134724		if res.Body != nil {
134725			res.Body.Close()
134726		}
134727		return nil, &googleapi.Error{
134728			Code:   res.StatusCode,
134729			Header: res.Header,
134730		}
134731	}
134732	if err != nil {
134733		return nil, err
134734	}
134735	defer googleapi.CloseBody(res)
134736	if err := googleapi.CheckResponse(res); err != nil {
134737		return nil, err
134738	}
134739	ret := &Router{
134740		ServerResponse: googleapi.ServerResponse{
134741			Header:         res.Header,
134742			HTTPStatusCode: res.StatusCode,
134743		},
134744	}
134745	target := &ret
134746	if err := gensupport.DecodeResponse(target, res); err != nil {
134747		return nil, err
134748	}
134749	return ret, nil
134750	// {
134751	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
134752	//   "httpMethod": "GET",
134753	//   "id": "compute.routers.get",
134754	//   "parameterOrder": [
134755	//     "project",
134756	//     "region",
134757	//     "router"
134758	//   ],
134759	//   "parameters": {
134760	//     "project": {
134761	//       "description": "Project ID for this request.",
134762	//       "location": "path",
134763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134764	//       "required": true,
134765	//       "type": "string"
134766	//     },
134767	//     "region": {
134768	//       "description": "Name of the region for this request.",
134769	//       "location": "path",
134770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134771	//       "required": true,
134772	//       "type": "string"
134773	//     },
134774	//     "router": {
134775	//       "description": "Name of the Router resource to return.",
134776	//       "location": "path",
134777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134778	//       "required": true,
134779	//       "type": "string"
134780	//     }
134781	//   },
134782	//   "path": "{project}/regions/{region}/routers/{router}",
134783	//   "response": {
134784	//     "$ref": "Router"
134785	//   },
134786	//   "scopes": [
134787	//     "https://www.googleapis.com/auth/cloud-platform",
134788	//     "https://www.googleapis.com/auth/compute",
134789	//     "https://www.googleapis.com/auth/compute.readonly"
134790	//   ]
134791	// }
134792
134793}
134794
134795// method id "compute.routers.getNatMappingInfo":
134796
134797type RoutersGetNatMappingInfoCall struct {
134798	s            *Service
134799	project      string
134800	region       string
134801	router       string
134802	urlParams_   gensupport.URLParams
134803	ifNoneMatch_ string
134804	ctx_         context.Context
134805	header_      http.Header
134806}
134807
134808// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
134809// endpoints.
134810func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
134811	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134812	c.project = project
134813	c.region = region
134814	c.router = router
134815	return c
134816}
134817
134818// Filter sets the optional parameter "filter": A filter expression that
134819// filters resources listed in the response. The expression must specify
134820// the field name, a comparison operator, and the value that you want to
134821// use for filtering. The value must be a string, a number, or a
134822// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134823// `<`.
134824//
134825// For example, if you are filtering Compute Engine instances, you can
134826// exclude instances named `example-instance` by specifying `name !=
134827// example-instance`.
134828//
134829// You can also filter nested fields. For example, you could specify
134830// `scheduling.automaticRestart = false` to include instances only if
134831// they are not scheduled for automatic restarts. You can use filtering
134832// on nested fields to filter based on resource labels.
134833//
134834// To filter on multiple expressions, provide each separate expression
134835// within parentheses. For example: ``` (scheduling.automaticRestart =
134836// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134837// is an `AND` expression. However, you can include `AND` and `OR`
134838// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134839// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134840// (scheduling.automaticRestart = true) ```
134841func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
134842	c.urlParams_.Set("filter", filter)
134843	return c
134844}
134845
134846// MaxResults sets the optional parameter "maxResults": The maximum
134847// number of results per page that should be returned. If the number of
134848// available results is larger than `maxResults`, Compute Engine returns
134849// a `nextPageToken` that can be used to get the next page of results in
134850// subsequent list requests. Acceptable values are `0` to `500`,
134851// inclusive. (Default: `500`)
134852func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
134853	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134854	return c
134855}
134856
134857// NatName sets the optional parameter "natName": Name of the nat
134858// service to filter the Nat Mapping information. If it is omitted, all
134859// nats for this router will be returned. Name should conform to
134860// RFC1035.
134861func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall {
134862	c.urlParams_.Set("natName", natName)
134863	return c
134864}
134865
134866// OrderBy sets the optional parameter "orderBy": Sorts list results by
134867// a certain order. By default, results are returned in alphanumerical
134868// order based on the resource name.
134869//
134870// You can also sort results in descending order based on the creation
134871// timestamp using `orderBy="creationTimestamp desc". This sorts
134872// results based on the `creationTimestamp` field in reverse
134873// chronological order (newest result first). Use this to sort resources
134874// like operations so that the newest operation is returned
134875// first.
134876//
134877// Currently, only sorting by `name` or `creationTimestamp desc` is
134878// supported.
134879func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
134880	c.urlParams_.Set("orderBy", orderBy)
134881	return c
134882}
134883
134884// PageToken sets the optional parameter "pageToken": Specifies a page
134885// token to use. Set `pageToken` to the `nextPageToken` returned by a
134886// previous list request to get the next page of results.
134887func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
134888	c.urlParams_.Set("pageToken", pageToken)
134889	return c
134890}
134891
134892// Fields allows partial responses to be retrieved. See
134893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134894// for more information.
134895func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
134896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134897	return c
134898}
134899
134900// IfNoneMatch sets the optional parameter which makes the operation
134901// fail if the object's ETag matches the given value. This is useful for
134902// getting updates only after the object has changed since the last
134903// request. Use googleapi.IsNotModified to check whether the response
134904// error from Do is the result of In-None-Match.
134905func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
134906	c.ifNoneMatch_ = entityTag
134907	return c
134908}
134909
134910// Context sets the context to be used in this call's Do method. Any
134911// pending HTTP request will be aborted if the provided context is
134912// canceled.
134913func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
134914	c.ctx_ = ctx
134915	return c
134916}
134917
134918// Header returns an http.Header that can be modified by the caller to
134919// add HTTP headers to the request.
134920func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
134921	if c.header_ == nil {
134922		c.header_ = make(http.Header)
134923	}
134924	return c.header_
134925}
134926
134927func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
134928	reqHeaders := make(http.Header)
134929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
134930	for k, v := range c.header_ {
134931		reqHeaders[k] = v
134932	}
134933	reqHeaders.Set("User-Agent", c.s.userAgent())
134934	if c.ifNoneMatch_ != "" {
134935		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134936	}
134937	var body io.Reader = nil
134938	c.urlParams_.Set("alt", alt)
134939	c.urlParams_.Set("prettyPrint", "false")
134940	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
134941	urls += "?" + c.urlParams_.Encode()
134942	req, err := http.NewRequest("GET", urls, body)
134943	if err != nil {
134944		return nil, err
134945	}
134946	req.Header = reqHeaders
134947	googleapi.Expand(req.URL, map[string]string{
134948		"project": c.project,
134949		"region":  c.region,
134950		"router":  c.router,
134951	})
134952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134953}
134954
134955// Do executes the "compute.routers.getNatMappingInfo" call.
134956// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
134957// Any non-2xx status code is an error. Response headers are in either
134958// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
134959// was returned at all) in error.(*googleapi.Error).Header. Use
134960// googleapi.IsNotModified to check whether the returned error was
134961// because http.StatusNotModified was returned.
134962func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
134963	gensupport.SetOptions(c.urlParams_, opts...)
134964	res, err := c.doRequest("json")
134965	if res != nil && res.StatusCode == http.StatusNotModified {
134966		if res.Body != nil {
134967			res.Body.Close()
134968		}
134969		return nil, &googleapi.Error{
134970			Code:   res.StatusCode,
134971			Header: res.Header,
134972		}
134973	}
134974	if err != nil {
134975		return nil, err
134976	}
134977	defer googleapi.CloseBody(res)
134978	if err := googleapi.CheckResponse(res); err != nil {
134979		return nil, err
134980	}
134981	ret := &VmEndpointNatMappingsList{
134982		ServerResponse: googleapi.ServerResponse{
134983			Header:         res.Header,
134984			HTTPStatusCode: res.StatusCode,
134985		},
134986	}
134987	target := &ret
134988	if err := gensupport.DecodeResponse(target, res); err != nil {
134989		return nil, err
134990	}
134991	return ret, nil
134992	// {
134993	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
134994	//   "httpMethod": "GET",
134995	//   "id": "compute.routers.getNatMappingInfo",
134996	//   "parameterOrder": [
134997	//     "project",
134998	//     "region",
134999	//     "router"
135000	//   ],
135001	//   "parameters": {
135002	//     "filter": {
135003	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
135004	//       "location": "query",
135005	//       "type": "string"
135006	//     },
135007	//     "maxResults": {
135008	//       "default": "500",
135009	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
135010	//       "format": "uint32",
135011	//       "location": "query",
135012	//       "minimum": "0",
135013	//       "type": "integer"
135014	//     },
135015	//     "natName": {
135016	//       "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.",
135017	//       "location": "query",
135018	//       "type": "string"
135019	//     },
135020	//     "orderBy": {
135021	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
135022	//       "location": "query",
135023	//       "type": "string"
135024	//     },
135025	//     "pageToken": {
135026	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
135027	//       "location": "query",
135028	//       "type": "string"
135029	//     },
135030	//     "project": {
135031	//       "description": "Project ID for this request.",
135032	//       "location": "path",
135033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135034	//       "required": true,
135035	//       "type": "string"
135036	//     },
135037	//     "region": {
135038	//       "description": "Name of the region for this request.",
135039	//       "location": "path",
135040	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135041	//       "required": true,
135042	//       "type": "string"
135043	//     },
135044	//     "router": {
135045	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
135046	//       "location": "path",
135047	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135048	//       "required": true,
135049	//       "type": "string"
135050	//     }
135051	//   },
135052	//   "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
135053	//   "response": {
135054	//     "$ref": "VmEndpointNatMappingsList"
135055	//   },
135056	//   "scopes": [
135057	//     "https://www.googleapis.com/auth/cloud-platform",
135058	//     "https://www.googleapis.com/auth/compute",
135059	//     "https://www.googleapis.com/auth/compute.readonly"
135060	//   ]
135061	// }
135062
135063}
135064
135065// Pages invokes f for each page of results.
135066// A non-nil error returned from f will halt the iteration.
135067// The provided context supersedes any context provided to the Context method.
135068func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
135069	c.ctx_ = ctx
135070	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135071	for {
135072		x, err := c.Do()
135073		if err != nil {
135074			return err
135075		}
135076		if err := f(x); err != nil {
135077			return err
135078		}
135079		if x.NextPageToken == "" {
135080			return nil
135081		}
135082		c.PageToken(x.NextPageToken)
135083	}
135084}
135085
135086// method id "compute.routers.getRouterStatus":
135087
135088type RoutersGetRouterStatusCall struct {
135089	s            *Service
135090	project      string
135091	region       string
135092	router       string
135093	urlParams_   gensupport.URLParams
135094	ifNoneMatch_ string
135095	ctx_         context.Context
135096	header_      http.Header
135097}
135098
135099// GetRouterStatus: Retrieves runtime information of the specified
135100// router.
135101func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
135102	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135103	c.project = project
135104	c.region = region
135105	c.router = router
135106	return c
135107}
135108
135109// Fields allows partial responses to be retrieved. See
135110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135111// for more information.
135112func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
135113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135114	return c
135115}
135116
135117// IfNoneMatch sets the optional parameter which makes the operation
135118// fail if the object's ETag matches the given value. This is useful for
135119// getting updates only after the object has changed since the last
135120// request. Use googleapi.IsNotModified to check whether the response
135121// error from Do is the result of In-None-Match.
135122func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
135123	c.ifNoneMatch_ = entityTag
135124	return c
135125}
135126
135127// Context sets the context to be used in this call's Do method. Any
135128// pending HTTP request will be aborted if the provided context is
135129// canceled.
135130func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
135131	c.ctx_ = ctx
135132	return c
135133}
135134
135135// Header returns an http.Header that can be modified by the caller to
135136// add HTTP headers to the request.
135137func (c *RoutersGetRouterStatusCall) Header() http.Header {
135138	if c.header_ == nil {
135139		c.header_ = make(http.Header)
135140	}
135141	return c.header_
135142}
135143
135144func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
135145	reqHeaders := make(http.Header)
135146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135147	for k, v := range c.header_ {
135148		reqHeaders[k] = v
135149	}
135150	reqHeaders.Set("User-Agent", c.s.userAgent())
135151	if c.ifNoneMatch_ != "" {
135152		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135153	}
135154	var body io.Reader = nil
135155	c.urlParams_.Set("alt", alt)
135156	c.urlParams_.Set("prettyPrint", "false")
135157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
135158	urls += "?" + c.urlParams_.Encode()
135159	req, err := http.NewRequest("GET", urls, body)
135160	if err != nil {
135161		return nil, err
135162	}
135163	req.Header = reqHeaders
135164	googleapi.Expand(req.URL, map[string]string{
135165		"project": c.project,
135166		"region":  c.region,
135167		"router":  c.router,
135168	})
135169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135170}
135171
135172// Do executes the "compute.routers.getRouterStatus" call.
135173// Exactly one of *RouterStatusResponse or error will be non-nil. Any
135174// non-2xx status code is an error. Response headers are in either
135175// *RouterStatusResponse.ServerResponse.Header or (if a response was
135176// returned at all) in error.(*googleapi.Error).Header. Use
135177// googleapi.IsNotModified to check whether the returned error was
135178// because http.StatusNotModified was returned.
135179func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
135180	gensupport.SetOptions(c.urlParams_, opts...)
135181	res, err := c.doRequest("json")
135182	if res != nil && res.StatusCode == http.StatusNotModified {
135183		if res.Body != nil {
135184			res.Body.Close()
135185		}
135186		return nil, &googleapi.Error{
135187			Code:   res.StatusCode,
135188			Header: res.Header,
135189		}
135190	}
135191	if err != nil {
135192		return nil, err
135193	}
135194	defer googleapi.CloseBody(res)
135195	if err := googleapi.CheckResponse(res); err != nil {
135196		return nil, err
135197	}
135198	ret := &RouterStatusResponse{
135199		ServerResponse: googleapi.ServerResponse{
135200			Header:         res.Header,
135201			HTTPStatusCode: res.StatusCode,
135202		},
135203	}
135204	target := &ret
135205	if err := gensupport.DecodeResponse(target, res); err != nil {
135206		return nil, err
135207	}
135208	return ret, nil
135209	// {
135210	//   "description": "Retrieves runtime information of the specified router.",
135211	//   "httpMethod": "GET",
135212	//   "id": "compute.routers.getRouterStatus",
135213	//   "parameterOrder": [
135214	//     "project",
135215	//     "region",
135216	//     "router"
135217	//   ],
135218	//   "parameters": {
135219	//     "project": {
135220	//       "description": "Project ID for this request.",
135221	//       "location": "path",
135222	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135223	//       "required": true,
135224	//       "type": "string"
135225	//     },
135226	//     "region": {
135227	//       "description": "Name of the region for this request.",
135228	//       "location": "path",
135229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135230	//       "required": true,
135231	//       "type": "string"
135232	//     },
135233	//     "router": {
135234	//       "description": "Name of the Router resource to query.",
135235	//       "location": "path",
135236	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135237	//       "required": true,
135238	//       "type": "string"
135239	//     }
135240	//   },
135241	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
135242	//   "response": {
135243	//     "$ref": "RouterStatusResponse"
135244	//   },
135245	//   "scopes": [
135246	//     "https://www.googleapis.com/auth/cloud-platform",
135247	//     "https://www.googleapis.com/auth/compute",
135248	//     "https://www.googleapis.com/auth/compute.readonly"
135249	//   ]
135250	// }
135251
135252}
135253
135254// method id "compute.routers.insert":
135255
135256type RoutersInsertCall struct {
135257	s          *Service
135258	project    string
135259	region     string
135260	router     *Router
135261	urlParams_ gensupport.URLParams
135262	ctx_       context.Context
135263	header_    http.Header
135264}
135265
135266// Insert: Creates a Router resource in the specified project and region
135267// using the data included in the request.
135268func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
135269	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135270	c.project = project
135271	c.region = region
135272	c.router = router
135273	return c
135274}
135275
135276// RequestId sets the optional parameter "requestId": An optional
135277// request ID to identify requests. Specify a unique request ID so that
135278// if you must retry your request, the server will know to ignore the
135279// request if it has already been completed.
135280//
135281// For example, consider a situation where you make an initial request
135282// and the request times out. If you make the request again with the
135283// same request ID, the server can check if original operation with the
135284// same request ID was received, and if so, will ignore the second
135285// request. This prevents clients from accidentally creating duplicate
135286// commitments.
135287//
135288// The request ID must be a valid UUID with the exception that zero UUID
135289// is not supported (00000000-0000-0000-0000-000000000000).
135290func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
135291	c.urlParams_.Set("requestId", requestId)
135292	return c
135293}
135294
135295// Fields allows partial responses to be retrieved. See
135296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135297// for more information.
135298func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
135299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135300	return c
135301}
135302
135303// Context sets the context to be used in this call's Do method. Any
135304// pending HTTP request will be aborted if the provided context is
135305// canceled.
135306func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
135307	c.ctx_ = ctx
135308	return c
135309}
135310
135311// Header returns an http.Header that can be modified by the caller to
135312// add HTTP headers to the request.
135313func (c *RoutersInsertCall) Header() http.Header {
135314	if c.header_ == nil {
135315		c.header_ = make(http.Header)
135316	}
135317	return c.header_
135318}
135319
135320func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
135321	reqHeaders := make(http.Header)
135322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135323	for k, v := range c.header_ {
135324		reqHeaders[k] = v
135325	}
135326	reqHeaders.Set("User-Agent", c.s.userAgent())
135327	var body io.Reader = nil
135328	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
135329	if err != nil {
135330		return nil, err
135331	}
135332	reqHeaders.Set("Content-Type", "application/json")
135333	c.urlParams_.Set("alt", alt)
135334	c.urlParams_.Set("prettyPrint", "false")
135335	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
135336	urls += "?" + c.urlParams_.Encode()
135337	req, err := http.NewRequest("POST", urls, body)
135338	if err != nil {
135339		return nil, err
135340	}
135341	req.Header = reqHeaders
135342	googleapi.Expand(req.URL, map[string]string{
135343		"project": c.project,
135344		"region":  c.region,
135345	})
135346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135347}
135348
135349// Do executes the "compute.routers.insert" call.
135350// Exactly one of *Operation or error will be non-nil. Any non-2xx
135351// status code is an error. Response headers are in either
135352// *Operation.ServerResponse.Header or (if a response was returned at
135353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135354// to check whether the returned error was because
135355// http.StatusNotModified was returned.
135356func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135357	gensupport.SetOptions(c.urlParams_, opts...)
135358	res, err := c.doRequest("json")
135359	if res != nil && res.StatusCode == http.StatusNotModified {
135360		if res.Body != nil {
135361			res.Body.Close()
135362		}
135363		return nil, &googleapi.Error{
135364			Code:   res.StatusCode,
135365			Header: res.Header,
135366		}
135367	}
135368	if err != nil {
135369		return nil, err
135370	}
135371	defer googleapi.CloseBody(res)
135372	if err := googleapi.CheckResponse(res); err != nil {
135373		return nil, err
135374	}
135375	ret := &Operation{
135376		ServerResponse: googleapi.ServerResponse{
135377			Header:         res.Header,
135378			HTTPStatusCode: res.StatusCode,
135379		},
135380	}
135381	target := &ret
135382	if err := gensupport.DecodeResponse(target, res); err != nil {
135383		return nil, err
135384	}
135385	return ret, nil
135386	// {
135387	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
135388	//   "httpMethod": "POST",
135389	//   "id": "compute.routers.insert",
135390	//   "parameterOrder": [
135391	//     "project",
135392	//     "region"
135393	//   ],
135394	//   "parameters": {
135395	//     "project": {
135396	//       "description": "Project ID for this request.",
135397	//       "location": "path",
135398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135399	//       "required": true,
135400	//       "type": "string"
135401	//     },
135402	//     "region": {
135403	//       "description": "Name of the region for this request.",
135404	//       "location": "path",
135405	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135406	//       "required": true,
135407	//       "type": "string"
135408	//     },
135409	//     "requestId": {
135410	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135411	//       "location": "query",
135412	//       "type": "string"
135413	//     }
135414	//   },
135415	//   "path": "{project}/regions/{region}/routers",
135416	//   "request": {
135417	//     "$ref": "Router"
135418	//   },
135419	//   "response": {
135420	//     "$ref": "Operation"
135421	//   },
135422	//   "scopes": [
135423	//     "https://www.googleapis.com/auth/cloud-platform",
135424	//     "https://www.googleapis.com/auth/compute"
135425	//   ]
135426	// }
135427
135428}
135429
135430// method id "compute.routers.list":
135431
135432type RoutersListCall struct {
135433	s            *Service
135434	project      string
135435	region       string
135436	urlParams_   gensupport.URLParams
135437	ifNoneMatch_ string
135438	ctx_         context.Context
135439	header_      http.Header
135440}
135441
135442// List: Retrieves a list of Router resources available to the specified
135443// project.
135444func (r *RoutersService) List(project string, region string) *RoutersListCall {
135445	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135446	c.project = project
135447	c.region = region
135448	return c
135449}
135450
135451// Filter sets the optional parameter "filter": A filter expression that
135452// filters resources listed in the response. The expression must specify
135453// the field name, a comparison operator, and the value that you want to
135454// use for filtering. The value must be a string, a number, or a
135455// boolean. The comparison operator must be either `=`, `!=`, `>`, or
135456// `<`.
135457//
135458// For example, if you are filtering Compute Engine instances, you can
135459// exclude instances named `example-instance` by specifying `name !=
135460// example-instance`.
135461//
135462// You can also filter nested fields. For example, you could specify
135463// `scheduling.automaticRestart = false` to include instances only if
135464// they are not scheduled for automatic restarts. You can use filtering
135465// on nested fields to filter based on resource labels.
135466//
135467// To filter on multiple expressions, provide each separate expression
135468// within parentheses. For example: ``` (scheduling.automaticRestart =
135469// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
135470// is an `AND` expression. However, you can include `AND` and `OR`
135471// expressions explicitly. For example: ``` (cpuPlatform = "Intel
135472// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
135473// (scheduling.automaticRestart = true) ```
135474func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
135475	c.urlParams_.Set("filter", filter)
135476	return c
135477}
135478
135479// MaxResults sets the optional parameter "maxResults": The maximum
135480// number of results per page that should be returned. If the number of
135481// available results is larger than `maxResults`, Compute Engine returns
135482// a `nextPageToken` that can be used to get the next page of results in
135483// subsequent list requests. Acceptable values are `0` to `500`,
135484// inclusive. (Default: `500`)
135485func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
135486	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135487	return c
135488}
135489
135490// OrderBy sets the optional parameter "orderBy": Sorts list results by
135491// a certain order. By default, results are returned in alphanumerical
135492// order based on the resource name.
135493//
135494// You can also sort results in descending order based on the creation
135495// timestamp using `orderBy="creationTimestamp desc". This sorts
135496// results based on the `creationTimestamp` field in reverse
135497// chronological order (newest result first). Use this to sort resources
135498// like operations so that the newest operation is returned
135499// first.
135500//
135501// Currently, only sorting by `name` or `creationTimestamp desc` is
135502// supported.
135503func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
135504	c.urlParams_.Set("orderBy", orderBy)
135505	return c
135506}
135507
135508// PageToken sets the optional parameter "pageToken": Specifies a page
135509// token to use. Set `pageToken` to the `nextPageToken` returned by a
135510// previous list request to get the next page of results.
135511func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
135512	c.urlParams_.Set("pageToken", pageToken)
135513	return c
135514}
135515
135516// Fields allows partial responses to be retrieved. See
135517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135518// for more information.
135519func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
135520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135521	return c
135522}
135523
135524// IfNoneMatch sets the optional parameter which makes the operation
135525// fail if the object's ETag matches the given value. This is useful for
135526// getting updates only after the object has changed since the last
135527// request. Use googleapi.IsNotModified to check whether the response
135528// error from Do is the result of In-None-Match.
135529func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
135530	c.ifNoneMatch_ = entityTag
135531	return c
135532}
135533
135534// Context sets the context to be used in this call's Do method. Any
135535// pending HTTP request will be aborted if the provided context is
135536// canceled.
135537func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
135538	c.ctx_ = ctx
135539	return c
135540}
135541
135542// Header returns an http.Header that can be modified by the caller to
135543// add HTTP headers to the request.
135544func (c *RoutersListCall) Header() http.Header {
135545	if c.header_ == nil {
135546		c.header_ = make(http.Header)
135547	}
135548	return c.header_
135549}
135550
135551func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
135552	reqHeaders := make(http.Header)
135553	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135554	for k, v := range c.header_ {
135555		reqHeaders[k] = v
135556	}
135557	reqHeaders.Set("User-Agent", c.s.userAgent())
135558	if c.ifNoneMatch_ != "" {
135559		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135560	}
135561	var body io.Reader = nil
135562	c.urlParams_.Set("alt", alt)
135563	c.urlParams_.Set("prettyPrint", "false")
135564	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
135565	urls += "?" + c.urlParams_.Encode()
135566	req, err := http.NewRequest("GET", urls, body)
135567	if err != nil {
135568		return nil, err
135569	}
135570	req.Header = reqHeaders
135571	googleapi.Expand(req.URL, map[string]string{
135572		"project": c.project,
135573		"region":  c.region,
135574	})
135575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135576}
135577
135578// Do executes the "compute.routers.list" call.
135579// Exactly one of *RouterList or error will be non-nil. Any non-2xx
135580// status code is an error. Response headers are in either
135581// *RouterList.ServerResponse.Header or (if a response was returned at
135582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135583// to check whether the returned error was because
135584// http.StatusNotModified was returned.
135585func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
135586	gensupport.SetOptions(c.urlParams_, opts...)
135587	res, err := c.doRequest("json")
135588	if res != nil && res.StatusCode == http.StatusNotModified {
135589		if res.Body != nil {
135590			res.Body.Close()
135591		}
135592		return nil, &googleapi.Error{
135593			Code:   res.StatusCode,
135594			Header: res.Header,
135595		}
135596	}
135597	if err != nil {
135598		return nil, err
135599	}
135600	defer googleapi.CloseBody(res)
135601	if err := googleapi.CheckResponse(res); err != nil {
135602		return nil, err
135603	}
135604	ret := &RouterList{
135605		ServerResponse: googleapi.ServerResponse{
135606			Header:         res.Header,
135607			HTTPStatusCode: res.StatusCode,
135608		},
135609	}
135610	target := &ret
135611	if err := gensupport.DecodeResponse(target, res); err != nil {
135612		return nil, err
135613	}
135614	return ret, nil
135615	// {
135616	//   "description": "Retrieves a list of Router resources available to the specified project.",
135617	//   "httpMethod": "GET",
135618	//   "id": "compute.routers.list",
135619	//   "parameterOrder": [
135620	//     "project",
135621	//     "region"
135622	//   ],
135623	//   "parameters": {
135624	//     "filter": {
135625	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
135626	//       "location": "query",
135627	//       "type": "string"
135628	//     },
135629	//     "maxResults": {
135630	//       "default": "500",
135631	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
135632	//       "format": "uint32",
135633	//       "location": "query",
135634	//       "minimum": "0",
135635	//       "type": "integer"
135636	//     },
135637	//     "orderBy": {
135638	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
135639	//       "location": "query",
135640	//       "type": "string"
135641	//     },
135642	//     "pageToken": {
135643	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
135644	//       "location": "query",
135645	//       "type": "string"
135646	//     },
135647	//     "project": {
135648	//       "description": "Project ID for this request.",
135649	//       "location": "path",
135650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135651	//       "required": true,
135652	//       "type": "string"
135653	//     },
135654	//     "region": {
135655	//       "description": "Name of the region for this request.",
135656	//       "location": "path",
135657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135658	//       "required": true,
135659	//       "type": "string"
135660	//     }
135661	//   },
135662	//   "path": "{project}/regions/{region}/routers",
135663	//   "response": {
135664	//     "$ref": "RouterList"
135665	//   },
135666	//   "scopes": [
135667	//     "https://www.googleapis.com/auth/cloud-platform",
135668	//     "https://www.googleapis.com/auth/compute",
135669	//     "https://www.googleapis.com/auth/compute.readonly"
135670	//   ]
135671	// }
135672
135673}
135674
135675// Pages invokes f for each page of results.
135676// A non-nil error returned from f will halt the iteration.
135677// The provided context supersedes any context provided to the Context method.
135678func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
135679	c.ctx_ = ctx
135680	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135681	for {
135682		x, err := c.Do()
135683		if err != nil {
135684			return err
135685		}
135686		if err := f(x); err != nil {
135687			return err
135688		}
135689		if x.NextPageToken == "" {
135690			return nil
135691		}
135692		c.PageToken(x.NextPageToken)
135693	}
135694}
135695
135696// method id "compute.routers.patch":
135697
135698type RoutersPatchCall struct {
135699	s          *Service
135700	project    string
135701	region     string
135702	router     string
135703	router2    *Router
135704	urlParams_ gensupport.URLParams
135705	ctx_       context.Context
135706	header_    http.Header
135707}
135708
135709// Patch: Patches the specified Router resource with the data included
135710// in the request. This method supports PATCH semantics and uses JSON
135711// merge patch format and processing rules.
135712func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
135713	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135714	c.project = project
135715	c.region = region
135716	c.router = router
135717	c.router2 = router2
135718	return c
135719}
135720
135721// RequestId sets the optional parameter "requestId": An optional
135722// request ID to identify requests. Specify a unique request ID so that
135723// if you must retry your request, the server will know to ignore the
135724// request if it has already been completed.
135725//
135726// For example, consider a situation where you make an initial request
135727// and the request times out. If you make the request again with the
135728// same request ID, the server can check if original operation with the
135729// same request ID was received, and if so, will ignore the second
135730// request. This prevents clients from accidentally creating duplicate
135731// commitments.
135732//
135733// The request ID must be a valid UUID with the exception that zero UUID
135734// is not supported (00000000-0000-0000-0000-000000000000).
135735func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
135736	c.urlParams_.Set("requestId", requestId)
135737	return c
135738}
135739
135740// Fields allows partial responses to be retrieved. See
135741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135742// for more information.
135743func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
135744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135745	return c
135746}
135747
135748// Context sets the context to be used in this call's Do method. Any
135749// pending HTTP request will be aborted if the provided context is
135750// canceled.
135751func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
135752	c.ctx_ = ctx
135753	return c
135754}
135755
135756// Header returns an http.Header that can be modified by the caller to
135757// add HTTP headers to the request.
135758func (c *RoutersPatchCall) Header() http.Header {
135759	if c.header_ == nil {
135760		c.header_ = make(http.Header)
135761	}
135762	return c.header_
135763}
135764
135765func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
135766	reqHeaders := make(http.Header)
135767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135768	for k, v := range c.header_ {
135769		reqHeaders[k] = v
135770	}
135771	reqHeaders.Set("User-Agent", c.s.userAgent())
135772	var body io.Reader = nil
135773	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
135774	if err != nil {
135775		return nil, err
135776	}
135777	reqHeaders.Set("Content-Type", "application/json")
135778	c.urlParams_.Set("alt", alt)
135779	c.urlParams_.Set("prettyPrint", "false")
135780	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
135781	urls += "?" + c.urlParams_.Encode()
135782	req, err := http.NewRequest("PATCH", urls, body)
135783	if err != nil {
135784		return nil, err
135785	}
135786	req.Header = reqHeaders
135787	googleapi.Expand(req.URL, map[string]string{
135788		"project": c.project,
135789		"region":  c.region,
135790		"router":  c.router,
135791	})
135792	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135793}
135794
135795// Do executes the "compute.routers.patch" call.
135796// Exactly one of *Operation or error will be non-nil. Any non-2xx
135797// status code is an error. Response headers are in either
135798// *Operation.ServerResponse.Header or (if a response was returned at
135799// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135800// to check whether the returned error was because
135801// http.StatusNotModified was returned.
135802func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135803	gensupport.SetOptions(c.urlParams_, opts...)
135804	res, err := c.doRequest("json")
135805	if res != nil && res.StatusCode == http.StatusNotModified {
135806		if res.Body != nil {
135807			res.Body.Close()
135808		}
135809		return nil, &googleapi.Error{
135810			Code:   res.StatusCode,
135811			Header: res.Header,
135812		}
135813	}
135814	if err != nil {
135815		return nil, err
135816	}
135817	defer googleapi.CloseBody(res)
135818	if err := googleapi.CheckResponse(res); err != nil {
135819		return nil, err
135820	}
135821	ret := &Operation{
135822		ServerResponse: googleapi.ServerResponse{
135823			Header:         res.Header,
135824			HTTPStatusCode: res.StatusCode,
135825		},
135826	}
135827	target := &ret
135828	if err := gensupport.DecodeResponse(target, res); err != nil {
135829		return nil, err
135830	}
135831	return ret, nil
135832	// {
135833	//   "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.",
135834	//   "httpMethod": "PATCH",
135835	//   "id": "compute.routers.patch",
135836	//   "parameterOrder": [
135837	//     "project",
135838	//     "region",
135839	//     "router"
135840	//   ],
135841	//   "parameters": {
135842	//     "project": {
135843	//       "description": "Project ID for this request.",
135844	//       "location": "path",
135845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135846	//       "required": true,
135847	//       "type": "string"
135848	//     },
135849	//     "region": {
135850	//       "description": "Name of the region for this request.",
135851	//       "location": "path",
135852	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135853	//       "required": true,
135854	//       "type": "string"
135855	//     },
135856	//     "requestId": {
135857	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135858	//       "location": "query",
135859	//       "type": "string"
135860	//     },
135861	//     "router": {
135862	//       "description": "Name of the Router resource to patch.",
135863	//       "location": "path",
135864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135865	//       "required": true,
135866	//       "type": "string"
135867	//     }
135868	//   },
135869	//   "path": "{project}/regions/{region}/routers/{router}",
135870	//   "request": {
135871	//     "$ref": "Router"
135872	//   },
135873	//   "response": {
135874	//     "$ref": "Operation"
135875	//   },
135876	//   "scopes": [
135877	//     "https://www.googleapis.com/auth/cloud-platform",
135878	//     "https://www.googleapis.com/auth/compute"
135879	//   ]
135880	// }
135881
135882}
135883
135884// method id "compute.routers.preview":
135885
135886type RoutersPreviewCall struct {
135887	s          *Service
135888	project    string
135889	region     string
135890	router     string
135891	router2    *Router
135892	urlParams_ gensupport.URLParams
135893	ctx_       context.Context
135894	header_    http.Header
135895}
135896
135897// Preview: Preview fields auto-generated during router create and
135898// update operations. Calling this method does NOT create or update the
135899// router.
135900func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
135901	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135902	c.project = project
135903	c.region = region
135904	c.router = router
135905	c.router2 = router2
135906	return c
135907}
135908
135909// Fields allows partial responses to be retrieved. See
135910// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135911// for more information.
135912func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
135913	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135914	return c
135915}
135916
135917// Context sets the context to be used in this call's Do method. Any
135918// pending HTTP request will be aborted if the provided context is
135919// canceled.
135920func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
135921	c.ctx_ = ctx
135922	return c
135923}
135924
135925// Header returns an http.Header that can be modified by the caller to
135926// add HTTP headers to the request.
135927func (c *RoutersPreviewCall) Header() http.Header {
135928	if c.header_ == nil {
135929		c.header_ = make(http.Header)
135930	}
135931	return c.header_
135932}
135933
135934func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
135935	reqHeaders := make(http.Header)
135936	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
135937	for k, v := range c.header_ {
135938		reqHeaders[k] = v
135939	}
135940	reqHeaders.Set("User-Agent", c.s.userAgent())
135941	var body io.Reader = nil
135942	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
135943	if err != nil {
135944		return nil, err
135945	}
135946	reqHeaders.Set("Content-Type", "application/json")
135947	c.urlParams_.Set("alt", alt)
135948	c.urlParams_.Set("prettyPrint", "false")
135949	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
135950	urls += "?" + c.urlParams_.Encode()
135951	req, err := http.NewRequest("POST", urls, body)
135952	if err != nil {
135953		return nil, err
135954	}
135955	req.Header = reqHeaders
135956	googleapi.Expand(req.URL, map[string]string{
135957		"project": c.project,
135958		"region":  c.region,
135959		"router":  c.router,
135960	})
135961	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135962}
135963
135964// Do executes the "compute.routers.preview" call.
135965// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
135966// non-2xx status code is an error. Response headers are in either
135967// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
135968// returned at all) in error.(*googleapi.Error).Header. Use
135969// googleapi.IsNotModified to check whether the returned error was
135970// because http.StatusNotModified was returned.
135971func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
135972	gensupport.SetOptions(c.urlParams_, opts...)
135973	res, err := c.doRequest("json")
135974	if res != nil && res.StatusCode == http.StatusNotModified {
135975		if res.Body != nil {
135976			res.Body.Close()
135977		}
135978		return nil, &googleapi.Error{
135979			Code:   res.StatusCode,
135980			Header: res.Header,
135981		}
135982	}
135983	if err != nil {
135984		return nil, err
135985	}
135986	defer googleapi.CloseBody(res)
135987	if err := googleapi.CheckResponse(res); err != nil {
135988		return nil, err
135989	}
135990	ret := &RoutersPreviewResponse{
135991		ServerResponse: googleapi.ServerResponse{
135992			Header:         res.Header,
135993			HTTPStatusCode: res.StatusCode,
135994		},
135995	}
135996	target := &ret
135997	if err := gensupport.DecodeResponse(target, res); err != nil {
135998		return nil, err
135999	}
136000	return ret, nil
136001	// {
136002	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
136003	//   "httpMethod": "POST",
136004	//   "id": "compute.routers.preview",
136005	//   "parameterOrder": [
136006	//     "project",
136007	//     "region",
136008	//     "router"
136009	//   ],
136010	//   "parameters": {
136011	//     "project": {
136012	//       "description": "Project ID for this request.",
136013	//       "location": "path",
136014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136015	//       "required": true,
136016	//       "type": "string"
136017	//     },
136018	//     "region": {
136019	//       "description": "Name of the region for this request.",
136020	//       "location": "path",
136021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136022	//       "required": true,
136023	//       "type": "string"
136024	//     },
136025	//     "router": {
136026	//       "description": "Name of the Router resource to query.",
136027	//       "location": "path",
136028	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136029	//       "required": true,
136030	//       "type": "string"
136031	//     }
136032	//   },
136033	//   "path": "{project}/regions/{region}/routers/{router}/preview",
136034	//   "request": {
136035	//     "$ref": "Router"
136036	//   },
136037	//   "response": {
136038	//     "$ref": "RoutersPreviewResponse"
136039	//   },
136040	//   "scopes": [
136041	//     "https://www.googleapis.com/auth/cloud-platform",
136042	//     "https://www.googleapis.com/auth/compute",
136043	//     "https://www.googleapis.com/auth/compute.readonly"
136044	//   ]
136045	// }
136046
136047}
136048
136049// method id "compute.routers.testIamPermissions":
136050
136051type RoutersTestIamPermissionsCall struct {
136052	s                      *Service
136053	project                string
136054	region                 string
136055	resource               string
136056	testpermissionsrequest *TestPermissionsRequest
136057	urlParams_             gensupport.URLParams
136058	ctx_                   context.Context
136059	header_                http.Header
136060}
136061
136062// TestIamPermissions: Returns permissions that a caller has on the
136063// specified resource.
136064func (r *RoutersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutersTestIamPermissionsCall {
136065	c := &RoutersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136066	c.project = project
136067	c.region = region
136068	c.resource = resource
136069	c.testpermissionsrequest = testpermissionsrequest
136070	return c
136071}
136072
136073// Fields allows partial responses to be retrieved. See
136074// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136075// for more information.
136076func (c *RoutersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutersTestIamPermissionsCall {
136077	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136078	return c
136079}
136080
136081// Context sets the context to be used in this call's Do method. Any
136082// pending HTTP request will be aborted if the provided context is
136083// canceled.
136084func (c *RoutersTestIamPermissionsCall) Context(ctx context.Context) *RoutersTestIamPermissionsCall {
136085	c.ctx_ = ctx
136086	return c
136087}
136088
136089// Header returns an http.Header that can be modified by the caller to
136090// add HTTP headers to the request.
136091func (c *RoutersTestIamPermissionsCall) Header() http.Header {
136092	if c.header_ == nil {
136093		c.header_ = make(http.Header)
136094	}
136095	return c.header_
136096}
136097
136098func (c *RoutersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
136099	reqHeaders := make(http.Header)
136100	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136101	for k, v := range c.header_ {
136102		reqHeaders[k] = v
136103	}
136104	reqHeaders.Set("User-Agent", c.s.userAgent())
136105	var body io.Reader = nil
136106	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
136107	if err != nil {
136108		return nil, err
136109	}
136110	reqHeaders.Set("Content-Type", "application/json")
136111	c.urlParams_.Set("alt", alt)
136112	c.urlParams_.Set("prettyPrint", "false")
136113	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{resource}/testIamPermissions")
136114	urls += "?" + c.urlParams_.Encode()
136115	req, err := http.NewRequest("POST", urls, body)
136116	if err != nil {
136117		return nil, err
136118	}
136119	req.Header = reqHeaders
136120	googleapi.Expand(req.URL, map[string]string{
136121		"project":  c.project,
136122		"region":   c.region,
136123		"resource": c.resource,
136124	})
136125	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136126}
136127
136128// Do executes the "compute.routers.testIamPermissions" call.
136129// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
136130// non-2xx status code is an error. Response headers are in either
136131// *TestPermissionsResponse.ServerResponse.Header or (if a response was
136132// returned at all) in error.(*googleapi.Error).Header. Use
136133// googleapi.IsNotModified to check whether the returned error was
136134// because http.StatusNotModified was returned.
136135func (c *RoutersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
136136	gensupport.SetOptions(c.urlParams_, opts...)
136137	res, err := c.doRequest("json")
136138	if res != nil && res.StatusCode == http.StatusNotModified {
136139		if res.Body != nil {
136140			res.Body.Close()
136141		}
136142		return nil, &googleapi.Error{
136143			Code:   res.StatusCode,
136144			Header: res.Header,
136145		}
136146	}
136147	if err != nil {
136148		return nil, err
136149	}
136150	defer googleapi.CloseBody(res)
136151	if err := googleapi.CheckResponse(res); err != nil {
136152		return nil, err
136153	}
136154	ret := &TestPermissionsResponse{
136155		ServerResponse: googleapi.ServerResponse{
136156			Header:         res.Header,
136157			HTTPStatusCode: res.StatusCode,
136158		},
136159	}
136160	target := &ret
136161	if err := gensupport.DecodeResponse(target, res); err != nil {
136162		return nil, err
136163	}
136164	return ret, nil
136165	// {
136166	//   "description": "Returns permissions that a caller has on the specified resource.",
136167	//   "httpMethod": "POST",
136168	//   "id": "compute.routers.testIamPermissions",
136169	//   "parameterOrder": [
136170	//     "project",
136171	//     "region",
136172	//     "resource"
136173	//   ],
136174	//   "parameters": {
136175	//     "project": {
136176	//       "description": "Project ID for this request.",
136177	//       "location": "path",
136178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136179	//       "required": true,
136180	//       "type": "string"
136181	//     },
136182	//     "region": {
136183	//       "description": "The name of the region for this request.",
136184	//       "location": "path",
136185	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136186	//       "required": true,
136187	//       "type": "string"
136188	//     },
136189	//     "resource": {
136190	//       "description": "Name or id of the resource for this request.",
136191	//       "location": "path",
136192	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136193	//       "required": true,
136194	//       "type": "string"
136195	//     }
136196	//   },
136197	//   "path": "{project}/regions/{region}/routers/{resource}/testIamPermissions",
136198	//   "request": {
136199	//     "$ref": "TestPermissionsRequest"
136200	//   },
136201	//   "response": {
136202	//     "$ref": "TestPermissionsResponse"
136203	//   },
136204	//   "scopes": [
136205	//     "https://www.googleapis.com/auth/cloud-platform",
136206	//     "https://www.googleapis.com/auth/compute",
136207	//     "https://www.googleapis.com/auth/compute.readonly"
136208	//   ]
136209	// }
136210
136211}
136212
136213// method id "compute.routers.update":
136214
136215type RoutersUpdateCall struct {
136216	s          *Service
136217	project    string
136218	region     string
136219	router     string
136220	router2    *Router
136221	urlParams_ gensupport.URLParams
136222	ctx_       context.Context
136223	header_    http.Header
136224}
136225
136226// Update: Updates the specified Router resource with the data included
136227// in the request. This method conforms to PUT semantics, which requests
136228// that the state of the target resource be created or replaced with the
136229// state defined by the representation enclosed in the request message
136230// payload.
136231func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
136232	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136233	c.project = project
136234	c.region = region
136235	c.router = router
136236	c.router2 = router2
136237	return c
136238}
136239
136240// RequestId sets the optional parameter "requestId": An optional
136241// request ID to identify requests. Specify a unique request ID so that
136242// if you must retry your request, the server will know to ignore the
136243// request if it has already been completed.
136244//
136245// For example, consider a situation where you make an initial request
136246// and the request times out. If you make the request again with the
136247// same request ID, the server can check if original operation with the
136248// same request ID was received, and if so, will ignore the second
136249// request. This prevents clients from accidentally creating duplicate
136250// commitments.
136251//
136252// The request ID must be a valid UUID with the exception that zero UUID
136253// is not supported (00000000-0000-0000-0000-000000000000).
136254func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
136255	c.urlParams_.Set("requestId", requestId)
136256	return c
136257}
136258
136259// Fields allows partial responses to be retrieved. See
136260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136261// for more information.
136262func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
136263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136264	return c
136265}
136266
136267// Context sets the context to be used in this call's Do method. Any
136268// pending HTTP request will be aborted if the provided context is
136269// canceled.
136270func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
136271	c.ctx_ = ctx
136272	return c
136273}
136274
136275// Header returns an http.Header that can be modified by the caller to
136276// add HTTP headers to the request.
136277func (c *RoutersUpdateCall) Header() http.Header {
136278	if c.header_ == nil {
136279		c.header_ = make(http.Header)
136280	}
136281	return c.header_
136282}
136283
136284func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
136285	reqHeaders := make(http.Header)
136286	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136287	for k, v := range c.header_ {
136288		reqHeaders[k] = v
136289	}
136290	reqHeaders.Set("User-Agent", c.s.userAgent())
136291	var body io.Reader = nil
136292	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
136293	if err != nil {
136294		return nil, err
136295	}
136296	reqHeaders.Set("Content-Type", "application/json")
136297	c.urlParams_.Set("alt", alt)
136298	c.urlParams_.Set("prettyPrint", "false")
136299	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
136300	urls += "?" + c.urlParams_.Encode()
136301	req, err := http.NewRequest("PUT", urls, body)
136302	if err != nil {
136303		return nil, err
136304	}
136305	req.Header = reqHeaders
136306	googleapi.Expand(req.URL, map[string]string{
136307		"project": c.project,
136308		"region":  c.region,
136309		"router":  c.router,
136310	})
136311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136312}
136313
136314// Do executes the "compute.routers.update" call.
136315// Exactly one of *Operation or error will be non-nil. Any non-2xx
136316// status code is an error. Response headers are in either
136317// *Operation.ServerResponse.Header or (if a response was returned at
136318// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136319// to check whether the returned error was because
136320// http.StatusNotModified was returned.
136321func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136322	gensupport.SetOptions(c.urlParams_, opts...)
136323	res, err := c.doRequest("json")
136324	if res != nil && res.StatusCode == http.StatusNotModified {
136325		if res.Body != nil {
136326			res.Body.Close()
136327		}
136328		return nil, &googleapi.Error{
136329			Code:   res.StatusCode,
136330			Header: res.Header,
136331		}
136332	}
136333	if err != nil {
136334		return nil, err
136335	}
136336	defer googleapi.CloseBody(res)
136337	if err := googleapi.CheckResponse(res); err != nil {
136338		return nil, err
136339	}
136340	ret := &Operation{
136341		ServerResponse: googleapi.ServerResponse{
136342			Header:         res.Header,
136343			HTTPStatusCode: res.StatusCode,
136344		},
136345	}
136346	target := &ret
136347	if err := gensupport.DecodeResponse(target, res); err != nil {
136348		return nil, err
136349	}
136350	return ret, nil
136351	// {
136352	//   "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.",
136353	//   "httpMethod": "PUT",
136354	//   "id": "compute.routers.update",
136355	//   "parameterOrder": [
136356	//     "project",
136357	//     "region",
136358	//     "router"
136359	//   ],
136360	//   "parameters": {
136361	//     "project": {
136362	//       "description": "Project ID for this request.",
136363	//       "location": "path",
136364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136365	//       "required": true,
136366	//       "type": "string"
136367	//     },
136368	//     "region": {
136369	//       "description": "Name of the region for this request.",
136370	//       "location": "path",
136371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136372	//       "required": true,
136373	//       "type": "string"
136374	//     },
136375	//     "requestId": {
136376	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136377	//       "location": "query",
136378	//       "type": "string"
136379	//     },
136380	//     "router": {
136381	//       "description": "Name of the Router resource to update.",
136382	//       "location": "path",
136383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136384	//       "required": true,
136385	//       "type": "string"
136386	//     }
136387	//   },
136388	//   "path": "{project}/regions/{region}/routers/{router}",
136389	//   "request": {
136390	//     "$ref": "Router"
136391	//   },
136392	//   "response": {
136393	//     "$ref": "Operation"
136394	//   },
136395	//   "scopes": [
136396	//     "https://www.googleapis.com/auth/cloud-platform",
136397	//     "https://www.googleapis.com/auth/compute"
136398	//   ]
136399	// }
136400
136401}
136402
136403// method id "compute.routes.delete":
136404
136405type RoutesDeleteCall struct {
136406	s          *Service
136407	project    string
136408	route      string
136409	urlParams_ gensupport.URLParams
136410	ctx_       context.Context
136411	header_    http.Header
136412}
136413
136414// Delete: Deletes the specified Route resource.
136415// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
136416func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
136417	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136418	c.project = project
136419	c.route = route
136420	return c
136421}
136422
136423// RequestId sets the optional parameter "requestId": An optional
136424// request ID to identify requests. Specify a unique request ID so that
136425// if you must retry your request, the server will know to ignore the
136426// request if it has already been completed.
136427//
136428// For example, consider a situation where you make an initial request
136429// and the request times out. If you make the request again with the
136430// same request ID, the server can check if original operation with the
136431// same request ID was received, and if so, will ignore the second
136432// request. This prevents clients from accidentally creating duplicate
136433// commitments.
136434//
136435// The request ID must be a valid UUID with the exception that zero UUID
136436// is not supported (00000000-0000-0000-0000-000000000000).
136437func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
136438	c.urlParams_.Set("requestId", requestId)
136439	return c
136440}
136441
136442// Fields allows partial responses to be retrieved. See
136443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136444// for more information.
136445func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
136446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136447	return c
136448}
136449
136450// Context sets the context to be used in this call's Do method. Any
136451// pending HTTP request will be aborted if the provided context is
136452// canceled.
136453func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
136454	c.ctx_ = ctx
136455	return c
136456}
136457
136458// Header returns an http.Header that can be modified by the caller to
136459// add HTTP headers to the request.
136460func (c *RoutesDeleteCall) Header() http.Header {
136461	if c.header_ == nil {
136462		c.header_ = make(http.Header)
136463	}
136464	return c.header_
136465}
136466
136467func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
136468	reqHeaders := make(http.Header)
136469	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136470	for k, v := range c.header_ {
136471		reqHeaders[k] = v
136472	}
136473	reqHeaders.Set("User-Agent", c.s.userAgent())
136474	var body io.Reader = nil
136475	c.urlParams_.Set("alt", alt)
136476	c.urlParams_.Set("prettyPrint", "false")
136477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
136478	urls += "?" + c.urlParams_.Encode()
136479	req, err := http.NewRequest("DELETE", urls, body)
136480	if err != nil {
136481		return nil, err
136482	}
136483	req.Header = reqHeaders
136484	googleapi.Expand(req.URL, map[string]string{
136485		"project": c.project,
136486		"route":   c.route,
136487	})
136488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136489}
136490
136491// Do executes the "compute.routes.delete" call.
136492// Exactly one of *Operation or error will be non-nil. Any non-2xx
136493// status code is an error. Response headers are in either
136494// *Operation.ServerResponse.Header or (if a response was returned at
136495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136496// to check whether the returned error was because
136497// http.StatusNotModified was returned.
136498func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136499	gensupport.SetOptions(c.urlParams_, opts...)
136500	res, err := c.doRequest("json")
136501	if res != nil && res.StatusCode == http.StatusNotModified {
136502		if res.Body != nil {
136503			res.Body.Close()
136504		}
136505		return nil, &googleapi.Error{
136506			Code:   res.StatusCode,
136507			Header: res.Header,
136508		}
136509	}
136510	if err != nil {
136511		return nil, err
136512	}
136513	defer googleapi.CloseBody(res)
136514	if err := googleapi.CheckResponse(res); err != nil {
136515		return nil, err
136516	}
136517	ret := &Operation{
136518		ServerResponse: googleapi.ServerResponse{
136519			Header:         res.Header,
136520			HTTPStatusCode: res.StatusCode,
136521		},
136522	}
136523	target := &ret
136524	if err := gensupport.DecodeResponse(target, res); err != nil {
136525		return nil, err
136526	}
136527	return ret, nil
136528	// {
136529	//   "description": "Deletes the specified Route resource.",
136530	//   "httpMethod": "DELETE",
136531	//   "id": "compute.routes.delete",
136532	//   "parameterOrder": [
136533	//     "project",
136534	//     "route"
136535	//   ],
136536	//   "parameters": {
136537	//     "project": {
136538	//       "description": "Project ID for this request.",
136539	//       "location": "path",
136540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136541	//       "required": true,
136542	//       "type": "string"
136543	//     },
136544	//     "requestId": {
136545	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136546	//       "location": "query",
136547	//       "type": "string"
136548	//     },
136549	//     "route": {
136550	//       "description": "Name of the Route resource to delete.",
136551	//       "location": "path",
136552	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136553	//       "required": true,
136554	//       "type": "string"
136555	//     }
136556	//   },
136557	//   "path": "{project}/global/routes/{route}",
136558	//   "response": {
136559	//     "$ref": "Operation"
136560	//   },
136561	//   "scopes": [
136562	//     "https://www.googleapis.com/auth/cloud-platform",
136563	//     "https://www.googleapis.com/auth/compute"
136564	//   ]
136565	// }
136566
136567}
136568
136569// method id "compute.routes.get":
136570
136571type RoutesGetCall struct {
136572	s            *Service
136573	project      string
136574	route        string
136575	urlParams_   gensupport.URLParams
136576	ifNoneMatch_ string
136577	ctx_         context.Context
136578	header_      http.Header
136579}
136580
136581// Get: Returns the specified Route resource. Gets a list of available
136582// routes by making a list() request.
136583// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
136584func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
136585	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136586	c.project = project
136587	c.route = route
136588	return c
136589}
136590
136591// Fields allows partial responses to be retrieved. See
136592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136593// for more information.
136594func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
136595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136596	return c
136597}
136598
136599// IfNoneMatch sets the optional parameter which makes the operation
136600// fail if the object's ETag matches the given value. This is useful for
136601// getting updates only after the object has changed since the last
136602// request. Use googleapi.IsNotModified to check whether the response
136603// error from Do is the result of In-None-Match.
136604func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
136605	c.ifNoneMatch_ = entityTag
136606	return c
136607}
136608
136609// Context sets the context to be used in this call's Do method. Any
136610// pending HTTP request will be aborted if the provided context is
136611// canceled.
136612func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
136613	c.ctx_ = ctx
136614	return c
136615}
136616
136617// Header returns an http.Header that can be modified by the caller to
136618// add HTTP headers to the request.
136619func (c *RoutesGetCall) Header() http.Header {
136620	if c.header_ == nil {
136621		c.header_ = make(http.Header)
136622	}
136623	return c.header_
136624}
136625
136626func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
136627	reqHeaders := make(http.Header)
136628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136629	for k, v := range c.header_ {
136630		reqHeaders[k] = v
136631	}
136632	reqHeaders.Set("User-Agent", c.s.userAgent())
136633	if c.ifNoneMatch_ != "" {
136634		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136635	}
136636	var body io.Reader = nil
136637	c.urlParams_.Set("alt", alt)
136638	c.urlParams_.Set("prettyPrint", "false")
136639	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
136640	urls += "?" + c.urlParams_.Encode()
136641	req, err := http.NewRequest("GET", urls, body)
136642	if err != nil {
136643		return nil, err
136644	}
136645	req.Header = reqHeaders
136646	googleapi.Expand(req.URL, map[string]string{
136647		"project": c.project,
136648		"route":   c.route,
136649	})
136650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136651}
136652
136653// Do executes the "compute.routes.get" call.
136654// Exactly one of *Route or error will be non-nil. Any non-2xx status
136655// code is an error. Response headers are in either
136656// *Route.ServerResponse.Header or (if a response was returned at all)
136657// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
136658// check whether the returned error was because http.StatusNotModified
136659// was returned.
136660func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
136661	gensupport.SetOptions(c.urlParams_, opts...)
136662	res, err := c.doRequest("json")
136663	if res != nil && res.StatusCode == http.StatusNotModified {
136664		if res.Body != nil {
136665			res.Body.Close()
136666		}
136667		return nil, &googleapi.Error{
136668			Code:   res.StatusCode,
136669			Header: res.Header,
136670		}
136671	}
136672	if err != nil {
136673		return nil, err
136674	}
136675	defer googleapi.CloseBody(res)
136676	if err := googleapi.CheckResponse(res); err != nil {
136677		return nil, err
136678	}
136679	ret := &Route{
136680		ServerResponse: googleapi.ServerResponse{
136681			Header:         res.Header,
136682			HTTPStatusCode: res.StatusCode,
136683		},
136684	}
136685	target := &ret
136686	if err := gensupport.DecodeResponse(target, res); err != nil {
136687		return nil, err
136688	}
136689	return ret, nil
136690	// {
136691	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
136692	//   "httpMethod": "GET",
136693	//   "id": "compute.routes.get",
136694	//   "parameterOrder": [
136695	//     "project",
136696	//     "route"
136697	//   ],
136698	//   "parameters": {
136699	//     "project": {
136700	//       "description": "Project ID for this request.",
136701	//       "location": "path",
136702	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136703	//       "required": true,
136704	//       "type": "string"
136705	//     },
136706	//     "route": {
136707	//       "description": "Name of the Route resource to return.",
136708	//       "location": "path",
136709	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136710	//       "required": true,
136711	//       "type": "string"
136712	//     }
136713	//   },
136714	//   "path": "{project}/global/routes/{route}",
136715	//   "response": {
136716	//     "$ref": "Route"
136717	//   },
136718	//   "scopes": [
136719	//     "https://www.googleapis.com/auth/cloud-platform",
136720	//     "https://www.googleapis.com/auth/compute",
136721	//     "https://www.googleapis.com/auth/compute.readonly"
136722	//   ]
136723	// }
136724
136725}
136726
136727// method id "compute.routes.insert":
136728
136729type RoutesInsertCall struct {
136730	s          *Service
136731	project    string
136732	route      *Route
136733	urlParams_ gensupport.URLParams
136734	ctx_       context.Context
136735	header_    http.Header
136736}
136737
136738// Insert: Creates a Route resource in the specified project using the
136739// data included in the request.
136740// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
136741func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
136742	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136743	c.project = project
136744	c.route = route
136745	return c
136746}
136747
136748// RequestId sets the optional parameter "requestId": An optional
136749// request ID to identify requests. Specify a unique request ID so that
136750// if you must retry your request, the server will know to ignore the
136751// request if it has already been completed.
136752//
136753// For example, consider a situation where you make an initial request
136754// and the request times out. If you make the request again with the
136755// same request ID, the server can check if original operation with the
136756// same request ID was received, and if so, will ignore the second
136757// request. This prevents clients from accidentally creating duplicate
136758// commitments.
136759//
136760// The request ID must be a valid UUID with the exception that zero UUID
136761// is not supported (00000000-0000-0000-0000-000000000000).
136762func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
136763	c.urlParams_.Set("requestId", requestId)
136764	return c
136765}
136766
136767// Fields allows partial responses to be retrieved. See
136768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136769// for more information.
136770func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
136771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136772	return c
136773}
136774
136775// Context sets the context to be used in this call's Do method. Any
136776// pending HTTP request will be aborted if the provided context is
136777// canceled.
136778func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
136779	c.ctx_ = ctx
136780	return c
136781}
136782
136783// Header returns an http.Header that can be modified by the caller to
136784// add HTTP headers to the request.
136785func (c *RoutesInsertCall) Header() http.Header {
136786	if c.header_ == nil {
136787		c.header_ = make(http.Header)
136788	}
136789	return c.header_
136790}
136791
136792func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
136793	reqHeaders := make(http.Header)
136794	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
136795	for k, v := range c.header_ {
136796		reqHeaders[k] = v
136797	}
136798	reqHeaders.Set("User-Agent", c.s.userAgent())
136799	var body io.Reader = nil
136800	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
136801	if err != nil {
136802		return nil, err
136803	}
136804	reqHeaders.Set("Content-Type", "application/json")
136805	c.urlParams_.Set("alt", alt)
136806	c.urlParams_.Set("prettyPrint", "false")
136807	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
136808	urls += "?" + c.urlParams_.Encode()
136809	req, err := http.NewRequest("POST", urls, body)
136810	if err != nil {
136811		return nil, err
136812	}
136813	req.Header = reqHeaders
136814	googleapi.Expand(req.URL, map[string]string{
136815		"project": c.project,
136816	})
136817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136818}
136819
136820// Do executes the "compute.routes.insert" call.
136821// Exactly one of *Operation or error will be non-nil. Any non-2xx
136822// status code is an error. Response headers are in either
136823// *Operation.ServerResponse.Header or (if a response was returned at
136824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136825// to check whether the returned error was because
136826// http.StatusNotModified was returned.
136827func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136828	gensupport.SetOptions(c.urlParams_, opts...)
136829	res, err := c.doRequest("json")
136830	if res != nil && res.StatusCode == http.StatusNotModified {
136831		if res.Body != nil {
136832			res.Body.Close()
136833		}
136834		return nil, &googleapi.Error{
136835			Code:   res.StatusCode,
136836			Header: res.Header,
136837		}
136838	}
136839	if err != nil {
136840		return nil, err
136841	}
136842	defer googleapi.CloseBody(res)
136843	if err := googleapi.CheckResponse(res); err != nil {
136844		return nil, err
136845	}
136846	ret := &Operation{
136847		ServerResponse: googleapi.ServerResponse{
136848			Header:         res.Header,
136849			HTTPStatusCode: res.StatusCode,
136850		},
136851	}
136852	target := &ret
136853	if err := gensupport.DecodeResponse(target, res); err != nil {
136854		return nil, err
136855	}
136856	return ret, nil
136857	// {
136858	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
136859	//   "httpMethod": "POST",
136860	//   "id": "compute.routes.insert",
136861	//   "parameterOrder": [
136862	//     "project"
136863	//   ],
136864	//   "parameters": {
136865	//     "project": {
136866	//       "description": "Project ID for this request.",
136867	//       "location": "path",
136868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136869	//       "required": true,
136870	//       "type": "string"
136871	//     },
136872	//     "requestId": {
136873	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136874	//       "location": "query",
136875	//       "type": "string"
136876	//     }
136877	//   },
136878	//   "path": "{project}/global/routes",
136879	//   "request": {
136880	//     "$ref": "Route"
136881	//   },
136882	//   "response": {
136883	//     "$ref": "Operation"
136884	//   },
136885	//   "scopes": [
136886	//     "https://www.googleapis.com/auth/cloud-platform",
136887	//     "https://www.googleapis.com/auth/compute"
136888	//   ]
136889	// }
136890
136891}
136892
136893// method id "compute.routes.list":
136894
136895type RoutesListCall struct {
136896	s            *Service
136897	project      string
136898	urlParams_   gensupport.URLParams
136899	ifNoneMatch_ string
136900	ctx_         context.Context
136901	header_      http.Header
136902}
136903
136904// List: Retrieves the list of Route resources available to the
136905// specified project.
136906// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
136907func (r *RoutesService) List(project string) *RoutesListCall {
136908	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136909	c.project = project
136910	return c
136911}
136912
136913// Filter sets the optional parameter "filter": A filter expression that
136914// filters resources listed in the response. The expression must specify
136915// the field name, a comparison operator, and the value that you want to
136916// use for filtering. The value must be a string, a number, or a
136917// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136918// `<`.
136919//
136920// For example, if you are filtering Compute Engine instances, you can
136921// exclude instances named `example-instance` by specifying `name !=
136922// example-instance`.
136923//
136924// You can also filter nested fields. For example, you could specify
136925// `scheduling.automaticRestart = false` to include instances only if
136926// they are not scheduled for automatic restarts. You can use filtering
136927// on nested fields to filter based on resource labels.
136928//
136929// To filter on multiple expressions, provide each separate expression
136930// within parentheses. For example: ``` (scheduling.automaticRestart =
136931// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
136932// is an `AND` expression. However, you can include `AND` and `OR`
136933// expressions explicitly. For example: ``` (cpuPlatform = "Intel
136934// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
136935// (scheduling.automaticRestart = true) ```
136936func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
136937	c.urlParams_.Set("filter", filter)
136938	return c
136939}
136940
136941// MaxResults sets the optional parameter "maxResults": The maximum
136942// number of results per page that should be returned. If the number of
136943// available results is larger than `maxResults`, Compute Engine returns
136944// a `nextPageToken` that can be used to get the next page of results in
136945// subsequent list requests. Acceptable values are `0` to `500`,
136946// inclusive. (Default: `500`)
136947func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
136948	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136949	return c
136950}
136951
136952// OrderBy sets the optional parameter "orderBy": Sorts list results by
136953// a certain order. By default, results are returned in alphanumerical
136954// order based on the resource name.
136955//
136956// You can also sort results in descending order based on the creation
136957// timestamp using `orderBy="creationTimestamp desc". This sorts
136958// results based on the `creationTimestamp` field in reverse
136959// chronological order (newest result first). Use this to sort resources
136960// like operations so that the newest operation is returned
136961// first.
136962//
136963// Currently, only sorting by `name` or `creationTimestamp desc` is
136964// supported.
136965func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
136966	c.urlParams_.Set("orderBy", orderBy)
136967	return c
136968}
136969
136970// PageToken sets the optional parameter "pageToken": Specifies a page
136971// token to use. Set `pageToken` to the `nextPageToken` returned by a
136972// previous list request to get the next page of results.
136973func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
136974	c.urlParams_.Set("pageToken", pageToken)
136975	return c
136976}
136977
136978// Fields allows partial responses to be retrieved. See
136979// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136980// for more information.
136981func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
136982	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136983	return c
136984}
136985
136986// IfNoneMatch sets the optional parameter which makes the operation
136987// fail if the object's ETag matches the given value. This is useful for
136988// getting updates only after the object has changed since the last
136989// request. Use googleapi.IsNotModified to check whether the response
136990// error from Do is the result of In-None-Match.
136991func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
136992	c.ifNoneMatch_ = entityTag
136993	return c
136994}
136995
136996// Context sets the context to be used in this call's Do method. Any
136997// pending HTTP request will be aborted if the provided context is
136998// canceled.
136999func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
137000	c.ctx_ = ctx
137001	return c
137002}
137003
137004// Header returns an http.Header that can be modified by the caller to
137005// add HTTP headers to the request.
137006func (c *RoutesListCall) Header() http.Header {
137007	if c.header_ == nil {
137008		c.header_ = make(http.Header)
137009	}
137010	return c.header_
137011}
137012
137013func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
137014	reqHeaders := make(http.Header)
137015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137016	for k, v := range c.header_ {
137017		reqHeaders[k] = v
137018	}
137019	reqHeaders.Set("User-Agent", c.s.userAgent())
137020	if c.ifNoneMatch_ != "" {
137021		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137022	}
137023	var body io.Reader = nil
137024	c.urlParams_.Set("alt", alt)
137025	c.urlParams_.Set("prettyPrint", "false")
137026	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
137027	urls += "?" + c.urlParams_.Encode()
137028	req, err := http.NewRequest("GET", urls, body)
137029	if err != nil {
137030		return nil, err
137031	}
137032	req.Header = reqHeaders
137033	googleapi.Expand(req.URL, map[string]string{
137034		"project": c.project,
137035	})
137036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137037}
137038
137039// Do executes the "compute.routes.list" call.
137040// Exactly one of *RouteList or error will be non-nil. Any non-2xx
137041// status code is an error. Response headers are in either
137042// *RouteList.ServerResponse.Header or (if a response was returned at
137043// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137044// to check whether the returned error was because
137045// http.StatusNotModified was returned.
137046func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
137047	gensupport.SetOptions(c.urlParams_, opts...)
137048	res, err := c.doRequest("json")
137049	if res != nil && res.StatusCode == http.StatusNotModified {
137050		if res.Body != nil {
137051			res.Body.Close()
137052		}
137053		return nil, &googleapi.Error{
137054			Code:   res.StatusCode,
137055			Header: res.Header,
137056		}
137057	}
137058	if err != nil {
137059		return nil, err
137060	}
137061	defer googleapi.CloseBody(res)
137062	if err := googleapi.CheckResponse(res); err != nil {
137063		return nil, err
137064	}
137065	ret := &RouteList{
137066		ServerResponse: googleapi.ServerResponse{
137067			Header:         res.Header,
137068			HTTPStatusCode: res.StatusCode,
137069		},
137070	}
137071	target := &ret
137072	if err := gensupport.DecodeResponse(target, res); err != nil {
137073		return nil, err
137074	}
137075	return ret, nil
137076	// {
137077	//   "description": "Retrieves the list of Route resources available to the specified project.",
137078	//   "httpMethod": "GET",
137079	//   "id": "compute.routes.list",
137080	//   "parameterOrder": [
137081	//     "project"
137082	//   ],
137083	//   "parameters": {
137084	//     "filter": {
137085	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137086	//       "location": "query",
137087	//       "type": "string"
137088	//     },
137089	//     "maxResults": {
137090	//       "default": "500",
137091	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137092	//       "format": "uint32",
137093	//       "location": "query",
137094	//       "minimum": "0",
137095	//       "type": "integer"
137096	//     },
137097	//     "orderBy": {
137098	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
137099	//       "location": "query",
137100	//       "type": "string"
137101	//     },
137102	//     "pageToken": {
137103	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137104	//       "location": "query",
137105	//       "type": "string"
137106	//     },
137107	//     "project": {
137108	//       "description": "Project ID for this request.",
137109	//       "location": "path",
137110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137111	//       "required": true,
137112	//       "type": "string"
137113	//     }
137114	//   },
137115	//   "path": "{project}/global/routes",
137116	//   "response": {
137117	//     "$ref": "RouteList"
137118	//   },
137119	//   "scopes": [
137120	//     "https://www.googleapis.com/auth/cloud-platform",
137121	//     "https://www.googleapis.com/auth/compute",
137122	//     "https://www.googleapis.com/auth/compute.readonly"
137123	//   ]
137124	// }
137125
137126}
137127
137128// Pages invokes f for each page of results.
137129// A non-nil error returned from f will halt the iteration.
137130// The provided context supersedes any context provided to the Context method.
137131func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
137132	c.ctx_ = ctx
137133	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137134	for {
137135		x, err := c.Do()
137136		if err != nil {
137137			return err
137138		}
137139		if err := f(x); err != nil {
137140			return err
137141		}
137142		if x.NextPageToken == "" {
137143			return nil
137144		}
137145		c.PageToken(x.NextPageToken)
137146	}
137147}
137148
137149// method id "compute.routes.testIamPermissions":
137150
137151type RoutesTestIamPermissionsCall struct {
137152	s                      *Service
137153	project                string
137154	resource               string
137155	testpermissionsrequest *TestPermissionsRequest
137156	urlParams_             gensupport.URLParams
137157	ctx_                   context.Context
137158	header_                http.Header
137159}
137160
137161// TestIamPermissions: Returns permissions that a caller has on the
137162// specified resource.
137163func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall {
137164	c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137165	c.project = project
137166	c.resource = resource
137167	c.testpermissionsrequest = testpermissionsrequest
137168	return c
137169}
137170
137171// Fields allows partial responses to be retrieved. See
137172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137173// for more information.
137174func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall {
137175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137176	return c
137177}
137178
137179// Context sets the context to be used in this call's Do method. Any
137180// pending HTTP request will be aborted if the provided context is
137181// canceled.
137182func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall {
137183	c.ctx_ = ctx
137184	return c
137185}
137186
137187// Header returns an http.Header that can be modified by the caller to
137188// add HTTP headers to the request.
137189func (c *RoutesTestIamPermissionsCall) Header() http.Header {
137190	if c.header_ == nil {
137191		c.header_ = make(http.Header)
137192	}
137193	return c.header_
137194}
137195
137196func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
137197	reqHeaders := make(http.Header)
137198	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137199	for k, v := range c.header_ {
137200		reqHeaders[k] = v
137201	}
137202	reqHeaders.Set("User-Agent", c.s.userAgent())
137203	var body io.Reader = nil
137204	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
137205	if err != nil {
137206		return nil, err
137207	}
137208	reqHeaders.Set("Content-Type", "application/json")
137209	c.urlParams_.Set("alt", alt)
137210	c.urlParams_.Set("prettyPrint", "false")
137211	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{resource}/testIamPermissions")
137212	urls += "?" + c.urlParams_.Encode()
137213	req, err := http.NewRequest("POST", urls, body)
137214	if err != nil {
137215		return nil, err
137216	}
137217	req.Header = reqHeaders
137218	googleapi.Expand(req.URL, map[string]string{
137219		"project":  c.project,
137220		"resource": c.resource,
137221	})
137222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137223}
137224
137225// Do executes the "compute.routes.testIamPermissions" call.
137226// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
137227// non-2xx status code is an error. Response headers are in either
137228// *TestPermissionsResponse.ServerResponse.Header or (if a response was
137229// returned at all) in error.(*googleapi.Error).Header. Use
137230// googleapi.IsNotModified to check whether the returned error was
137231// because http.StatusNotModified was returned.
137232func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
137233	gensupport.SetOptions(c.urlParams_, opts...)
137234	res, err := c.doRequest("json")
137235	if res != nil && res.StatusCode == http.StatusNotModified {
137236		if res.Body != nil {
137237			res.Body.Close()
137238		}
137239		return nil, &googleapi.Error{
137240			Code:   res.StatusCode,
137241			Header: res.Header,
137242		}
137243	}
137244	if err != nil {
137245		return nil, err
137246	}
137247	defer googleapi.CloseBody(res)
137248	if err := googleapi.CheckResponse(res); err != nil {
137249		return nil, err
137250	}
137251	ret := &TestPermissionsResponse{
137252		ServerResponse: googleapi.ServerResponse{
137253			Header:         res.Header,
137254			HTTPStatusCode: res.StatusCode,
137255		},
137256	}
137257	target := &ret
137258	if err := gensupport.DecodeResponse(target, res); err != nil {
137259		return nil, err
137260	}
137261	return ret, nil
137262	// {
137263	//   "description": "Returns permissions that a caller has on the specified resource.",
137264	//   "httpMethod": "POST",
137265	//   "id": "compute.routes.testIamPermissions",
137266	//   "parameterOrder": [
137267	//     "project",
137268	//     "resource"
137269	//   ],
137270	//   "parameters": {
137271	//     "project": {
137272	//       "description": "Project ID for this request.",
137273	//       "location": "path",
137274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137275	//       "required": true,
137276	//       "type": "string"
137277	//     },
137278	//     "resource": {
137279	//       "description": "Name or id of the resource for this request.",
137280	//       "location": "path",
137281	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137282	//       "required": true,
137283	//       "type": "string"
137284	//     }
137285	//   },
137286	//   "path": "{project}/global/routes/{resource}/testIamPermissions",
137287	//   "request": {
137288	//     "$ref": "TestPermissionsRequest"
137289	//   },
137290	//   "response": {
137291	//     "$ref": "TestPermissionsResponse"
137292	//   },
137293	//   "scopes": [
137294	//     "https://www.googleapis.com/auth/cloud-platform",
137295	//     "https://www.googleapis.com/auth/compute",
137296	//     "https://www.googleapis.com/auth/compute.readonly"
137297	//   ]
137298	// }
137299
137300}
137301
137302// method id "compute.securityPolicies.addRule":
137303
137304type SecurityPoliciesAddRuleCall struct {
137305	s                  *Service
137306	project            string
137307	securityPolicy     string
137308	securitypolicyrule *SecurityPolicyRule
137309	urlParams_         gensupport.URLParams
137310	ctx_               context.Context
137311	header_            http.Header
137312}
137313
137314// AddRule: Inserts a rule into a security policy.
137315func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
137316	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137317	c.project = project
137318	c.securityPolicy = securityPolicy
137319	c.securitypolicyrule = securitypolicyrule
137320	return c
137321}
137322
137323// ValidateOnly sets the optional parameter "validateOnly": If true, the
137324// request will not be committed.
137325func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall {
137326	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
137327	return c
137328}
137329
137330// Fields allows partial responses to be retrieved. See
137331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137332// for more information.
137333func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
137334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137335	return c
137336}
137337
137338// Context sets the context to be used in this call's Do method. Any
137339// pending HTTP request will be aborted if the provided context is
137340// canceled.
137341func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
137342	c.ctx_ = ctx
137343	return c
137344}
137345
137346// Header returns an http.Header that can be modified by the caller to
137347// add HTTP headers to the request.
137348func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
137349	if c.header_ == nil {
137350		c.header_ = make(http.Header)
137351	}
137352	return c.header_
137353}
137354
137355func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
137356	reqHeaders := make(http.Header)
137357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137358	for k, v := range c.header_ {
137359		reqHeaders[k] = v
137360	}
137361	reqHeaders.Set("User-Agent", c.s.userAgent())
137362	var body io.Reader = nil
137363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
137364	if err != nil {
137365		return nil, err
137366	}
137367	reqHeaders.Set("Content-Type", "application/json")
137368	c.urlParams_.Set("alt", alt)
137369	c.urlParams_.Set("prettyPrint", "false")
137370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule")
137371	urls += "?" + c.urlParams_.Encode()
137372	req, err := http.NewRequest("POST", urls, body)
137373	if err != nil {
137374		return nil, err
137375	}
137376	req.Header = reqHeaders
137377	googleapi.Expand(req.URL, map[string]string{
137378		"project":        c.project,
137379		"securityPolicy": c.securityPolicy,
137380	})
137381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137382}
137383
137384// Do executes the "compute.securityPolicies.addRule" call.
137385// Exactly one of *Operation or error will be non-nil. Any non-2xx
137386// status code is an error. Response headers are in either
137387// *Operation.ServerResponse.Header or (if a response was returned at
137388// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137389// to check whether the returned error was because
137390// http.StatusNotModified was returned.
137391func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137392	gensupport.SetOptions(c.urlParams_, opts...)
137393	res, err := c.doRequest("json")
137394	if res != nil && res.StatusCode == http.StatusNotModified {
137395		if res.Body != nil {
137396			res.Body.Close()
137397		}
137398		return nil, &googleapi.Error{
137399			Code:   res.StatusCode,
137400			Header: res.Header,
137401		}
137402	}
137403	if err != nil {
137404		return nil, err
137405	}
137406	defer googleapi.CloseBody(res)
137407	if err := googleapi.CheckResponse(res); err != nil {
137408		return nil, err
137409	}
137410	ret := &Operation{
137411		ServerResponse: googleapi.ServerResponse{
137412			Header:         res.Header,
137413			HTTPStatusCode: res.StatusCode,
137414		},
137415	}
137416	target := &ret
137417	if err := gensupport.DecodeResponse(target, res); err != nil {
137418		return nil, err
137419	}
137420	return ret, nil
137421	// {
137422	//   "description": "Inserts a rule into a security policy.",
137423	//   "httpMethod": "POST",
137424	//   "id": "compute.securityPolicies.addRule",
137425	//   "parameterOrder": [
137426	//     "project",
137427	//     "securityPolicy"
137428	//   ],
137429	//   "parameters": {
137430	//     "project": {
137431	//       "description": "Project ID for this request.",
137432	//       "location": "path",
137433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137434	//       "required": true,
137435	//       "type": "string"
137436	//     },
137437	//     "securityPolicy": {
137438	//       "description": "Name of the security policy to update.",
137439	//       "location": "path",
137440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137441	//       "required": true,
137442	//       "type": "string"
137443	//     },
137444	//     "validateOnly": {
137445	//       "description": "If true, the request will not be committed.",
137446	//       "location": "query",
137447	//       "type": "boolean"
137448	//     }
137449	//   },
137450	//   "path": "{project}/global/securityPolicies/{securityPolicy}/addRule",
137451	//   "request": {
137452	//     "$ref": "SecurityPolicyRule"
137453	//   },
137454	//   "response": {
137455	//     "$ref": "Operation"
137456	//   },
137457	//   "scopes": [
137458	//     "https://www.googleapis.com/auth/cloud-platform",
137459	//     "https://www.googleapis.com/auth/compute"
137460	//   ]
137461	// }
137462
137463}
137464
137465// method id "compute.securityPolicies.delete":
137466
137467type SecurityPoliciesDeleteCall struct {
137468	s              *Service
137469	project        string
137470	securityPolicy string
137471	urlParams_     gensupport.URLParams
137472	ctx_           context.Context
137473	header_        http.Header
137474}
137475
137476// Delete: Deletes the specified policy.
137477func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
137478	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137479	c.project = project
137480	c.securityPolicy = securityPolicy
137481	return c
137482}
137483
137484// RequestId sets the optional parameter "requestId": An optional
137485// request ID to identify requests. Specify a unique request ID so that
137486// if you must retry your request, the server will know to ignore the
137487// request if it has already been completed.
137488//
137489// For example, consider a situation where you make an initial request
137490// and the request times out. If you make the request again with the
137491// same request ID, the server can check if original operation with the
137492// same request ID was received, and if so, will ignore the second
137493// request. This prevents clients from accidentally creating duplicate
137494// commitments.
137495//
137496// The request ID must be a valid UUID with the exception that zero UUID
137497// is not supported (00000000-0000-0000-0000-000000000000).
137498func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
137499	c.urlParams_.Set("requestId", requestId)
137500	return c
137501}
137502
137503// Fields allows partial responses to be retrieved. See
137504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137505// for more information.
137506func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
137507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137508	return c
137509}
137510
137511// Context sets the context to be used in this call's Do method. Any
137512// pending HTTP request will be aborted if the provided context is
137513// canceled.
137514func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
137515	c.ctx_ = ctx
137516	return c
137517}
137518
137519// Header returns an http.Header that can be modified by the caller to
137520// add HTTP headers to the request.
137521func (c *SecurityPoliciesDeleteCall) Header() http.Header {
137522	if c.header_ == nil {
137523		c.header_ = make(http.Header)
137524	}
137525	return c.header_
137526}
137527
137528func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
137529	reqHeaders := make(http.Header)
137530	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137531	for k, v := range c.header_ {
137532		reqHeaders[k] = v
137533	}
137534	reqHeaders.Set("User-Agent", c.s.userAgent())
137535	var body io.Reader = nil
137536	c.urlParams_.Set("alt", alt)
137537	c.urlParams_.Set("prettyPrint", "false")
137538	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
137539	urls += "?" + c.urlParams_.Encode()
137540	req, err := http.NewRequest("DELETE", urls, body)
137541	if err != nil {
137542		return nil, err
137543	}
137544	req.Header = reqHeaders
137545	googleapi.Expand(req.URL, map[string]string{
137546		"project":        c.project,
137547		"securityPolicy": c.securityPolicy,
137548	})
137549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137550}
137551
137552// Do executes the "compute.securityPolicies.delete" call.
137553// Exactly one of *Operation or error will be non-nil. Any non-2xx
137554// status code is an error. Response headers are in either
137555// *Operation.ServerResponse.Header or (if a response was returned at
137556// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137557// to check whether the returned error was because
137558// http.StatusNotModified was returned.
137559func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137560	gensupport.SetOptions(c.urlParams_, opts...)
137561	res, err := c.doRequest("json")
137562	if res != nil && res.StatusCode == http.StatusNotModified {
137563		if res.Body != nil {
137564			res.Body.Close()
137565		}
137566		return nil, &googleapi.Error{
137567			Code:   res.StatusCode,
137568			Header: res.Header,
137569		}
137570	}
137571	if err != nil {
137572		return nil, err
137573	}
137574	defer googleapi.CloseBody(res)
137575	if err := googleapi.CheckResponse(res); err != nil {
137576		return nil, err
137577	}
137578	ret := &Operation{
137579		ServerResponse: googleapi.ServerResponse{
137580			Header:         res.Header,
137581			HTTPStatusCode: res.StatusCode,
137582		},
137583	}
137584	target := &ret
137585	if err := gensupport.DecodeResponse(target, res); err != nil {
137586		return nil, err
137587	}
137588	return ret, nil
137589	// {
137590	//   "description": "Deletes the specified policy.",
137591	//   "httpMethod": "DELETE",
137592	//   "id": "compute.securityPolicies.delete",
137593	//   "parameterOrder": [
137594	//     "project",
137595	//     "securityPolicy"
137596	//   ],
137597	//   "parameters": {
137598	//     "project": {
137599	//       "description": "Project ID for this request.",
137600	//       "location": "path",
137601	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137602	//       "required": true,
137603	//       "type": "string"
137604	//     },
137605	//     "requestId": {
137606	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137607	//       "location": "query",
137608	//       "type": "string"
137609	//     },
137610	//     "securityPolicy": {
137611	//       "description": "Name of the security policy to delete.",
137612	//       "location": "path",
137613	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137614	//       "required": true,
137615	//       "type": "string"
137616	//     }
137617	//   },
137618	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
137619	//   "response": {
137620	//     "$ref": "Operation"
137621	//   },
137622	//   "scopes": [
137623	//     "https://www.googleapis.com/auth/cloud-platform",
137624	//     "https://www.googleapis.com/auth/compute"
137625	//   ]
137626	// }
137627
137628}
137629
137630// method id "compute.securityPolicies.get":
137631
137632type SecurityPoliciesGetCall struct {
137633	s              *Service
137634	project        string
137635	securityPolicy string
137636	urlParams_     gensupport.URLParams
137637	ifNoneMatch_   string
137638	ctx_           context.Context
137639	header_        http.Header
137640}
137641
137642// Get: List all of the ordered rules present in a single specified
137643// policy.
137644func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
137645	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137646	c.project = project
137647	c.securityPolicy = securityPolicy
137648	return c
137649}
137650
137651// Fields allows partial responses to be retrieved. See
137652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137653// for more information.
137654func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
137655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137656	return c
137657}
137658
137659// IfNoneMatch sets the optional parameter which makes the operation
137660// fail if the object's ETag matches the given value. This is useful for
137661// getting updates only after the object has changed since the last
137662// request. Use googleapi.IsNotModified to check whether the response
137663// error from Do is the result of In-None-Match.
137664func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
137665	c.ifNoneMatch_ = entityTag
137666	return c
137667}
137668
137669// Context sets the context to be used in this call's Do method. Any
137670// pending HTTP request will be aborted if the provided context is
137671// canceled.
137672func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
137673	c.ctx_ = ctx
137674	return c
137675}
137676
137677// Header returns an http.Header that can be modified by the caller to
137678// add HTTP headers to the request.
137679func (c *SecurityPoliciesGetCall) Header() http.Header {
137680	if c.header_ == nil {
137681		c.header_ = make(http.Header)
137682	}
137683	return c.header_
137684}
137685
137686func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
137687	reqHeaders := make(http.Header)
137688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137689	for k, v := range c.header_ {
137690		reqHeaders[k] = v
137691	}
137692	reqHeaders.Set("User-Agent", c.s.userAgent())
137693	if c.ifNoneMatch_ != "" {
137694		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137695	}
137696	var body io.Reader = nil
137697	c.urlParams_.Set("alt", alt)
137698	c.urlParams_.Set("prettyPrint", "false")
137699	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
137700	urls += "?" + c.urlParams_.Encode()
137701	req, err := http.NewRequest("GET", urls, body)
137702	if err != nil {
137703		return nil, err
137704	}
137705	req.Header = reqHeaders
137706	googleapi.Expand(req.URL, map[string]string{
137707		"project":        c.project,
137708		"securityPolicy": c.securityPolicy,
137709	})
137710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137711}
137712
137713// Do executes the "compute.securityPolicies.get" call.
137714// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
137715// status code is an error. Response headers are in either
137716// *SecurityPolicy.ServerResponse.Header or (if a response was returned
137717// at all) in error.(*googleapi.Error).Header. Use
137718// googleapi.IsNotModified to check whether the returned error was
137719// because http.StatusNotModified was returned.
137720func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
137721	gensupport.SetOptions(c.urlParams_, opts...)
137722	res, err := c.doRequest("json")
137723	if res != nil && res.StatusCode == http.StatusNotModified {
137724		if res.Body != nil {
137725			res.Body.Close()
137726		}
137727		return nil, &googleapi.Error{
137728			Code:   res.StatusCode,
137729			Header: res.Header,
137730		}
137731	}
137732	if err != nil {
137733		return nil, err
137734	}
137735	defer googleapi.CloseBody(res)
137736	if err := googleapi.CheckResponse(res); err != nil {
137737		return nil, err
137738	}
137739	ret := &SecurityPolicy{
137740		ServerResponse: googleapi.ServerResponse{
137741			Header:         res.Header,
137742			HTTPStatusCode: res.StatusCode,
137743		},
137744	}
137745	target := &ret
137746	if err := gensupport.DecodeResponse(target, res); err != nil {
137747		return nil, err
137748	}
137749	return ret, nil
137750	// {
137751	//   "description": "List all of the ordered rules present in a single specified policy.",
137752	//   "httpMethod": "GET",
137753	//   "id": "compute.securityPolicies.get",
137754	//   "parameterOrder": [
137755	//     "project",
137756	//     "securityPolicy"
137757	//   ],
137758	//   "parameters": {
137759	//     "project": {
137760	//       "description": "Project ID for this request.",
137761	//       "location": "path",
137762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137763	//       "required": true,
137764	//       "type": "string"
137765	//     },
137766	//     "securityPolicy": {
137767	//       "description": "Name of the security policy to get.",
137768	//       "location": "path",
137769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137770	//       "required": true,
137771	//       "type": "string"
137772	//     }
137773	//   },
137774	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
137775	//   "response": {
137776	//     "$ref": "SecurityPolicy"
137777	//   },
137778	//   "scopes": [
137779	//     "https://www.googleapis.com/auth/cloud-platform",
137780	//     "https://www.googleapis.com/auth/compute",
137781	//     "https://www.googleapis.com/auth/compute.readonly"
137782	//   ]
137783	// }
137784
137785}
137786
137787// method id "compute.securityPolicies.getRule":
137788
137789type SecurityPoliciesGetRuleCall struct {
137790	s              *Service
137791	project        string
137792	securityPolicy string
137793	urlParams_     gensupport.URLParams
137794	ifNoneMatch_   string
137795	ctx_           context.Context
137796	header_        http.Header
137797}
137798
137799// GetRule: Gets a rule at the specified priority.
137800func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
137801	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137802	c.project = project
137803	c.securityPolicy = securityPolicy
137804	return c
137805}
137806
137807// Priority sets the optional parameter "priority": The priority of the
137808// rule to get from the security policy.
137809func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
137810	c.urlParams_.Set("priority", fmt.Sprint(priority))
137811	return c
137812}
137813
137814// Fields allows partial responses to be retrieved. See
137815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137816// for more information.
137817func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
137818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137819	return c
137820}
137821
137822// IfNoneMatch sets the optional parameter which makes the operation
137823// fail if the object's ETag matches the given value. This is useful for
137824// getting updates only after the object has changed since the last
137825// request. Use googleapi.IsNotModified to check whether the response
137826// error from Do is the result of In-None-Match.
137827func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
137828	c.ifNoneMatch_ = entityTag
137829	return c
137830}
137831
137832// Context sets the context to be used in this call's Do method. Any
137833// pending HTTP request will be aborted if the provided context is
137834// canceled.
137835func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
137836	c.ctx_ = ctx
137837	return c
137838}
137839
137840// Header returns an http.Header that can be modified by the caller to
137841// add HTTP headers to the request.
137842func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
137843	if c.header_ == nil {
137844		c.header_ = make(http.Header)
137845	}
137846	return c.header_
137847}
137848
137849func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
137850	reqHeaders := make(http.Header)
137851	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
137852	for k, v := range c.header_ {
137853		reqHeaders[k] = v
137854	}
137855	reqHeaders.Set("User-Agent", c.s.userAgent())
137856	if c.ifNoneMatch_ != "" {
137857		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137858	}
137859	var body io.Reader = nil
137860	c.urlParams_.Set("alt", alt)
137861	c.urlParams_.Set("prettyPrint", "false")
137862	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule")
137863	urls += "?" + c.urlParams_.Encode()
137864	req, err := http.NewRequest("GET", urls, body)
137865	if err != nil {
137866		return nil, err
137867	}
137868	req.Header = reqHeaders
137869	googleapi.Expand(req.URL, map[string]string{
137870		"project":        c.project,
137871		"securityPolicy": c.securityPolicy,
137872	})
137873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137874}
137875
137876// Do executes the "compute.securityPolicies.getRule" call.
137877// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
137878// non-2xx status code is an error. Response headers are in either
137879// *SecurityPolicyRule.ServerResponse.Header or (if a response was
137880// returned at all) in error.(*googleapi.Error).Header. Use
137881// googleapi.IsNotModified to check whether the returned error was
137882// because http.StatusNotModified was returned.
137883func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
137884	gensupport.SetOptions(c.urlParams_, opts...)
137885	res, err := c.doRequest("json")
137886	if res != nil && res.StatusCode == http.StatusNotModified {
137887		if res.Body != nil {
137888			res.Body.Close()
137889		}
137890		return nil, &googleapi.Error{
137891			Code:   res.StatusCode,
137892			Header: res.Header,
137893		}
137894	}
137895	if err != nil {
137896		return nil, err
137897	}
137898	defer googleapi.CloseBody(res)
137899	if err := googleapi.CheckResponse(res); err != nil {
137900		return nil, err
137901	}
137902	ret := &SecurityPolicyRule{
137903		ServerResponse: googleapi.ServerResponse{
137904			Header:         res.Header,
137905			HTTPStatusCode: res.StatusCode,
137906		},
137907	}
137908	target := &ret
137909	if err := gensupport.DecodeResponse(target, res); err != nil {
137910		return nil, err
137911	}
137912	return ret, nil
137913	// {
137914	//   "description": "Gets a rule at the specified priority.",
137915	//   "httpMethod": "GET",
137916	//   "id": "compute.securityPolicies.getRule",
137917	//   "parameterOrder": [
137918	//     "project",
137919	//     "securityPolicy"
137920	//   ],
137921	//   "parameters": {
137922	//     "priority": {
137923	//       "description": "The priority of the rule to get from the security policy.",
137924	//       "format": "int32",
137925	//       "location": "query",
137926	//       "type": "integer"
137927	//     },
137928	//     "project": {
137929	//       "description": "Project ID for this request.",
137930	//       "location": "path",
137931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137932	//       "required": true,
137933	//       "type": "string"
137934	//     },
137935	//     "securityPolicy": {
137936	//       "description": "Name of the security policy to which the queried rule belongs.",
137937	//       "location": "path",
137938	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137939	//       "required": true,
137940	//       "type": "string"
137941	//     }
137942	//   },
137943	//   "path": "{project}/global/securityPolicies/{securityPolicy}/getRule",
137944	//   "response": {
137945	//     "$ref": "SecurityPolicyRule"
137946	//   },
137947	//   "scopes": [
137948	//     "https://www.googleapis.com/auth/cloud-platform",
137949	//     "https://www.googleapis.com/auth/compute",
137950	//     "https://www.googleapis.com/auth/compute.readonly"
137951	//   ]
137952	// }
137953
137954}
137955
137956// method id "compute.securityPolicies.insert":
137957
137958type SecurityPoliciesInsertCall struct {
137959	s              *Service
137960	project        string
137961	securitypolicy *SecurityPolicy
137962	urlParams_     gensupport.URLParams
137963	ctx_           context.Context
137964	header_        http.Header
137965}
137966
137967// Insert: Creates a new policy in the specified project using the data
137968// included in the request.
137969func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
137970	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137971	c.project = project
137972	c.securitypolicy = securitypolicy
137973	return c
137974}
137975
137976// RequestId sets the optional parameter "requestId": An optional
137977// request ID to identify requests. Specify a unique request ID so that
137978// if you must retry your request, the server will know to ignore the
137979// request if it has already been completed.
137980//
137981// For example, consider a situation where you make an initial request
137982// and the request times out. If you make the request again with the
137983// same request ID, the server can check if original operation with the
137984// same request ID was received, and if so, will ignore the second
137985// request. This prevents clients from accidentally creating duplicate
137986// commitments.
137987//
137988// The request ID must be a valid UUID with the exception that zero UUID
137989// is not supported (00000000-0000-0000-0000-000000000000).
137990func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
137991	c.urlParams_.Set("requestId", requestId)
137992	return c
137993}
137994
137995// ValidateOnly sets the optional parameter "validateOnly": If true, the
137996// request will not be committed.
137997func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall {
137998	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
137999	return c
138000}
138001
138002// Fields allows partial responses to be retrieved. See
138003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138004// for more information.
138005func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
138006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138007	return c
138008}
138009
138010// Context sets the context to be used in this call's Do method. Any
138011// pending HTTP request will be aborted if the provided context is
138012// canceled.
138013func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
138014	c.ctx_ = ctx
138015	return c
138016}
138017
138018// Header returns an http.Header that can be modified by the caller to
138019// add HTTP headers to the request.
138020func (c *SecurityPoliciesInsertCall) Header() http.Header {
138021	if c.header_ == nil {
138022		c.header_ = make(http.Header)
138023	}
138024	return c.header_
138025}
138026
138027func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
138028	reqHeaders := make(http.Header)
138029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138030	for k, v := range c.header_ {
138031		reqHeaders[k] = v
138032	}
138033	reqHeaders.Set("User-Agent", c.s.userAgent())
138034	var body io.Reader = nil
138035	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
138036	if err != nil {
138037		return nil, err
138038	}
138039	reqHeaders.Set("Content-Type", "application/json")
138040	c.urlParams_.Set("alt", alt)
138041	c.urlParams_.Set("prettyPrint", "false")
138042	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
138043	urls += "?" + c.urlParams_.Encode()
138044	req, err := http.NewRequest("POST", urls, body)
138045	if err != nil {
138046		return nil, err
138047	}
138048	req.Header = reqHeaders
138049	googleapi.Expand(req.URL, map[string]string{
138050		"project": c.project,
138051	})
138052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138053}
138054
138055// Do executes the "compute.securityPolicies.insert" call.
138056// Exactly one of *Operation or error will be non-nil. Any non-2xx
138057// status code is an error. Response headers are in either
138058// *Operation.ServerResponse.Header or (if a response was returned at
138059// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138060// to check whether the returned error was because
138061// http.StatusNotModified was returned.
138062func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138063	gensupport.SetOptions(c.urlParams_, opts...)
138064	res, err := c.doRequest("json")
138065	if res != nil && res.StatusCode == http.StatusNotModified {
138066		if res.Body != nil {
138067			res.Body.Close()
138068		}
138069		return nil, &googleapi.Error{
138070			Code:   res.StatusCode,
138071			Header: res.Header,
138072		}
138073	}
138074	if err != nil {
138075		return nil, err
138076	}
138077	defer googleapi.CloseBody(res)
138078	if err := googleapi.CheckResponse(res); err != nil {
138079		return nil, err
138080	}
138081	ret := &Operation{
138082		ServerResponse: googleapi.ServerResponse{
138083			Header:         res.Header,
138084			HTTPStatusCode: res.StatusCode,
138085		},
138086	}
138087	target := &ret
138088	if err := gensupport.DecodeResponse(target, res); err != nil {
138089		return nil, err
138090	}
138091	return ret, nil
138092	// {
138093	//   "description": "Creates a new policy in the specified project using the data included in the request.",
138094	//   "httpMethod": "POST",
138095	//   "id": "compute.securityPolicies.insert",
138096	//   "parameterOrder": [
138097	//     "project"
138098	//   ],
138099	//   "parameters": {
138100	//     "project": {
138101	//       "description": "Project ID for this request.",
138102	//       "location": "path",
138103	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138104	//       "required": true,
138105	//       "type": "string"
138106	//     },
138107	//     "requestId": {
138108	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138109	//       "location": "query",
138110	//       "type": "string"
138111	//     },
138112	//     "validateOnly": {
138113	//       "description": "If true, the request will not be committed.",
138114	//       "location": "query",
138115	//       "type": "boolean"
138116	//     }
138117	//   },
138118	//   "path": "{project}/global/securityPolicies",
138119	//   "request": {
138120	//     "$ref": "SecurityPolicy"
138121	//   },
138122	//   "response": {
138123	//     "$ref": "Operation"
138124	//   },
138125	//   "scopes": [
138126	//     "https://www.googleapis.com/auth/cloud-platform",
138127	//     "https://www.googleapis.com/auth/compute"
138128	//   ]
138129	// }
138130
138131}
138132
138133// method id "compute.securityPolicies.list":
138134
138135type SecurityPoliciesListCall struct {
138136	s            *Service
138137	project      string
138138	urlParams_   gensupport.URLParams
138139	ifNoneMatch_ string
138140	ctx_         context.Context
138141	header_      http.Header
138142}
138143
138144// List: List all the policies that have been configured for the
138145// specified project.
138146func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
138147	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138148	c.project = project
138149	return c
138150}
138151
138152// Filter sets the optional parameter "filter": A filter expression that
138153// filters resources listed in the response. The expression must specify
138154// the field name, a comparison operator, and the value that you want to
138155// use for filtering. The value must be a string, a number, or a
138156// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138157// `<`.
138158//
138159// For example, if you are filtering Compute Engine instances, you can
138160// exclude instances named `example-instance` by specifying `name !=
138161// example-instance`.
138162//
138163// You can also filter nested fields. For example, you could specify
138164// `scheduling.automaticRestart = false` to include instances only if
138165// they are not scheduled for automatic restarts. You can use filtering
138166// on nested fields to filter based on resource labels.
138167//
138168// To filter on multiple expressions, provide each separate expression
138169// within parentheses. For example: ``` (scheduling.automaticRestart =
138170// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
138171// is an `AND` expression. However, you can include `AND` and `OR`
138172// expressions explicitly. For example: ``` (cpuPlatform = "Intel
138173// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
138174// (scheduling.automaticRestart = true) ```
138175func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
138176	c.urlParams_.Set("filter", filter)
138177	return c
138178}
138179
138180// MaxResults sets the optional parameter "maxResults": The maximum
138181// number of results per page that should be returned. If the number of
138182// available results is larger than `maxResults`, Compute Engine returns
138183// a `nextPageToken` that can be used to get the next page of results in
138184// subsequent list requests. Acceptable values are `0` to `500`,
138185// inclusive. (Default: `500`)
138186func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
138187	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138188	return c
138189}
138190
138191// OrderBy sets the optional parameter "orderBy": Sorts list results by
138192// a certain order. By default, results are returned in alphanumerical
138193// order based on the resource name.
138194//
138195// You can also sort results in descending order based on the creation
138196// timestamp using `orderBy="creationTimestamp desc". This sorts
138197// results based on the `creationTimestamp` field in reverse
138198// chronological order (newest result first). Use this to sort resources
138199// like operations so that the newest operation is returned
138200// first.
138201//
138202// Currently, only sorting by `name` or `creationTimestamp desc` is
138203// supported.
138204func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
138205	c.urlParams_.Set("orderBy", orderBy)
138206	return c
138207}
138208
138209// PageToken sets the optional parameter "pageToken": Specifies a page
138210// token to use. Set `pageToken` to the `nextPageToken` returned by a
138211// previous list request to get the next page of results.
138212func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
138213	c.urlParams_.Set("pageToken", pageToken)
138214	return c
138215}
138216
138217// Fields allows partial responses to be retrieved. See
138218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138219// for more information.
138220func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
138221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138222	return c
138223}
138224
138225// IfNoneMatch sets the optional parameter which makes the operation
138226// fail if the object's ETag matches the given value. This is useful for
138227// getting updates only after the object has changed since the last
138228// request. Use googleapi.IsNotModified to check whether the response
138229// error from Do is the result of In-None-Match.
138230func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
138231	c.ifNoneMatch_ = entityTag
138232	return c
138233}
138234
138235// Context sets the context to be used in this call's Do method. Any
138236// pending HTTP request will be aborted if the provided context is
138237// canceled.
138238func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
138239	c.ctx_ = ctx
138240	return c
138241}
138242
138243// Header returns an http.Header that can be modified by the caller to
138244// add HTTP headers to the request.
138245func (c *SecurityPoliciesListCall) Header() http.Header {
138246	if c.header_ == nil {
138247		c.header_ = make(http.Header)
138248	}
138249	return c.header_
138250}
138251
138252func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
138253	reqHeaders := make(http.Header)
138254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138255	for k, v := range c.header_ {
138256		reqHeaders[k] = v
138257	}
138258	reqHeaders.Set("User-Agent", c.s.userAgent())
138259	if c.ifNoneMatch_ != "" {
138260		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138261	}
138262	var body io.Reader = nil
138263	c.urlParams_.Set("alt", alt)
138264	c.urlParams_.Set("prettyPrint", "false")
138265	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
138266	urls += "?" + c.urlParams_.Encode()
138267	req, err := http.NewRequest("GET", urls, body)
138268	if err != nil {
138269		return nil, err
138270	}
138271	req.Header = reqHeaders
138272	googleapi.Expand(req.URL, map[string]string{
138273		"project": c.project,
138274	})
138275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138276}
138277
138278// Do executes the "compute.securityPolicies.list" call.
138279// Exactly one of *SecurityPolicyList or error will be non-nil. Any
138280// non-2xx status code is an error. Response headers are in either
138281// *SecurityPolicyList.ServerResponse.Header or (if a response was
138282// returned at all) in error.(*googleapi.Error).Header. Use
138283// googleapi.IsNotModified to check whether the returned error was
138284// because http.StatusNotModified was returned.
138285func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
138286	gensupport.SetOptions(c.urlParams_, opts...)
138287	res, err := c.doRequest("json")
138288	if res != nil && res.StatusCode == http.StatusNotModified {
138289		if res.Body != nil {
138290			res.Body.Close()
138291		}
138292		return nil, &googleapi.Error{
138293			Code:   res.StatusCode,
138294			Header: res.Header,
138295		}
138296	}
138297	if err != nil {
138298		return nil, err
138299	}
138300	defer googleapi.CloseBody(res)
138301	if err := googleapi.CheckResponse(res); err != nil {
138302		return nil, err
138303	}
138304	ret := &SecurityPolicyList{
138305		ServerResponse: googleapi.ServerResponse{
138306			Header:         res.Header,
138307			HTTPStatusCode: res.StatusCode,
138308		},
138309	}
138310	target := &ret
138311	if err := gensupport.DecodeResponse(target, res); err != nil {
138312		return nil, err
138313	}
138314	return ret, nil
138315	// {
138316	//   "description": "List all the policies that have been configured for the specified project.",
138317	//   "httpMethod": "GET",
138318	//   "id": "compute.securityPolicies.list",
138319	//   "parameterOrder": [
138320	//     "project"
138321	//   ],
138322	//   "parameters": {
138323	//     "filter": {
138324	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
138325	//       "location": "query",
138326	//       "type": "string"
138327	//     },
138328	//     "maxResults": {
138329	//       "default": "500",
138330	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138331	//       "format": "uint32",
138332	//       "location": "query",
138333	//       "minimum": "0",
138334	//       "type": "integer"
138335	//     },
138336	//     "orderBy": {
138337	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
138338	//       "location": "query",
138339	//       "type": "string"
138340	//     },
138341	//     "pageToken": {
138342	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138343	//       "location": "query",
138344	//       "type": "string"
138345	//     },
138346	//     "project": {
138347	//       "description": "Project ID for this request.",
138348	//       "location": "path",
138349	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138350	//       "required": true,
138351	//       "type": "string"
138352	//     }
138353	//   },
138354	//   "path": "{project}/global/securityPolicies",
138355	//   "response": {
138356	//     "$ref": "SecurityPolicyList"
138357	//   },
138358	//   "scopes": [
138359	//     "https://www.googleapis.com/auth/cloud-platform",
138360	//     "https://www.googleapis.com/auth/compute",
138361	//     "https://www.googleapis.com/auth/compute.readonly"
138362	//   ]
138363	// }
138364
138365}
138366
138367// Pages invokes f for each page of results.
138368// A non-nil error returned from f will halt the iteration.
138369// The provided context supersedes any context provided to the Context method.
138370func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
138371	c.ctx_ = ctx
138372	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138373	for {
138374		x, err := c.Do()
138375		if err != nil {
138376			return err
138377		}
138378		if err := f(x); err != nil {
138379			return err
138380		}
138381		if x.NextPageToken == "" {
138382			return nil
138383		}
138384		c.PageToken(x.NextPageToken)
138385	}
138386}
138387
138388// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
138389
138390type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
138391	s            *Service
138392	project      string
138393	urlParams_   gensupport.URLParams
138394	ifNoneMatch_ string
138395	ctx_         context.Context
138396	header_      http.Header
138397}
138398
138399// ListPreconfiguredExpressionSets: Gets the current list of
138400// preconfigured Web Application Firewall (WAF) expressions.
138401func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138402	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138403	c.project = project
138404	return c
138405}
138406
138407// Filter sets the optional parameter "filter": A filter expression that
138408// filters resources listed in the response. The expression must specify
138409// the field name, a comparison operator, and the value that you want to
138410// use for filtering. The value must be a string, a number, or a
138411// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138412// `<`.
138413//
138414// For example, if you are filtering Compute Engine instances, you can
138415// exclude instances named `example-instance` by specifying `name !=
138416// example-instance`.
138417//
138418// You can also filter nested fields. For example, you could specify
138419// `scheduling.automaticRestart = false` to include instances only if
138420// they are not scheduled for automatic restarts. You can use filtering
138421// on nested fields to filter based on resource labels.
138422//
138423// To filter on multiple expressions, provide each separate expression
138424// within parentheses. For example: ``` (scheduling.automaticRestart =
138425// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
138426// is an `AND` expression. However, you can include `AND` and `OR`
138427// expressions explicitly. For example: ``` (cpuPlatform = "Intel
138428// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
138429// (scheduling.automaticRestart = true) ```
138430func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138431	c.urlParams_.Set("filter", filter)
138432	return c
138433}
138434
138435// MaxResults sets the optional parameter "maxResults": The maximum
138436// number of results per page that should be returned. If the number of
138437// available results is larger than `maxResults`, Compute Engine returns
138438// a `nextPageToken` that can be used to get the next page of results in
138439// subsequent list requests. Acceptable values are `0` to `500`,
138440// inclusive. (Default: `500`)
138441func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138442	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138443	return c
138444}
138445
138446// OrderBy sets the optional parameter "orderBy": Sorts list results by
138447// a certain order. By default, results are returned in alphanumerical
138448// order based on the resource name.
138449//
138450// You can also sort results in descending order based on the creation
138451// timestamp using `orderBy="creationTimestamp desc". This sorts
138452// results based on the `creationTimestamp` field in reverse
138453// chronological order (newest result first). Use this to sort resources
138454// like operations so that the newest operation is returned
138455// first.
138456//
138457// Currently, only sorting by `name` or `creationTimestamp desc` is
138458// supported.
138459func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138460	c.urlParams_.Set("orderBy", orderBy)
138461	return c
138462}
138463
138464// PageToken sets the optional parameter "pageToken": Specifies a page
138465// token to use. Set `pageToken` to the `nextPageToken` returned by a
138466// previous list request to get the next page of results.
138467func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138468	c.urlParams_.Set("pageToken", pageToken)
138469	return c
138470}
138471
138472// Fields allows partial responses to be retrieved. See
138473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138474// for more information.
138475func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138477	return c
138478}
138479
138480// IfNoneMatch sets the optional parameter which makes the operation
138481// fail if the object's ETag matches the given value. This is useful for
138482// getting updates only after the object has changed since the last
138483// request. Use googleapi.IsNotModified to check whether the response
138484// error from Do is the result of In-None-Match.
138485func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138486	c.ifNoneMatch_ = entityTag
138487	return c
138488}
138489
138490// Context sets the context to be used in this call's Do method. Any
138491// pending HTTP request will be aborted if the provided context is
138492// canceled.
138493func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
138494	c.ctx_ = ctx
138495	return c
138496}
138497
138498// Header returns an http.Header that can be modified by the caller to
138499// add HTTP headers to the request.
138500func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
138501	if c.header_ == nil {
138502		c.header_ = make(http.Header)
138503	}
138504	return c.header_
138505}
138506
138507func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
138508	reqHeaders := make(http.Header)
138509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138510	for k, v := range c.header_ {
138511		reqHeaders[k] = v
138512	}
138513	reqHeaders.Set("User-Agent", c.s.userAgent())
138514	if c.ifNoneMatch_ != "" {
138515		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138516	}
138517	var body io.Reader = nil
138518	c.urlParams_.Set("alt", alt)
138519	c.urlParams_.Set("prettyPrint", "false")
138520	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/listPreconfiguredExpressionSets")
138521	urls += "?" + c.urlParams_.Encode()
138522	req, err := http.NewRequest("GET", urls, body)
138523	if err != nil {
138524		return nil, err
138525	}
138526	req.Header = reqHeaders
138527	googleapi.Expand(req.URL, map[string]string{
138528		"project": c.project,
138529	})
138530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138531}
138532
138533// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
138534// Exactly one of
138535// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
138536// will be non-nil. Any non-2xx status code is an error. Response
138537// headers are in either
138538// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
138539// e.Header or (if a response was returned at all) in
138540// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
138541// whether the returned error was because http.StatusNotModified was
138542// returned.
138543func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
138544	gensupport.SetOptions(c.urlParams_, opts...)
138545	res, err := c.doRequest("json")
138546	if res != nil && res.StatusCode == http.StatusNotModified {
138547		if res.Body != nil {
138548			res.Body.Close()
138549		}
138550		return nil, &googleapi.Error{
138551			Code:   res.StatusCode,
138552			Header: res.Header,
138553		}
138554	}
138555	if err != nil {
138556		return nil, err
138557	}
138558	defer googleapi.CloseBody(res)
138559	if err := googleapi.CheckResponse(res); err != nil {
138560		return nil, err
138561	}
138562	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
138563		ServerResponse: googleapi.ServerResponse{
138564			Header:         res.Header,
138565			HTTPStatusCode: res.StatusCode,
138566		},
138567	}
138568	target := &ret
138569	if err := gensupport.DecodeResponse(target, res); err != nil {
138570		return nil, err
138571	}
138572	return ret, nil
138573	// {
138574	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
138575	//   "httpMethod": "GET",
138576	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
138577	//   "parameterOrder": [
138578	//     "project"
138579	//   ],
138580	//   "parameters": {
138581	//     "filter": {
138582	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
138583	//       "location": "query",
138584	//       "type": "string"
138585	//     },
138586	//     "maxResults": {
138587	//       "default": "500",
138588	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138589	//       "format": "uint32",
138590	//       "location": "query",
138591	//       "minimum": "0",
138592	//       "type": "integer"
138593	//     },
138594	//     "orderBy": {
138595	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
138596	//       "location": "query",
138597	//       "type": "string"
138598	//     },
138599	//     "pageToken": {
138600	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138601	//       "location": "query",
138602	//       "type": "string"
138603	//     },
138604	//     "project": {
138605	//       "description": "Project ID for this request.",
138606	//       "location": "path",
138607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138608	//       "required": true,
138609	//       "type": "string"
138610	//     }
138611	//   },
138612	//   "path": "{project}/global/securityPolicies/listPreconfiguredExpressionSets",
138613	//   "response": {
138614	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
138615	//   },
138616	//   "scopes": [
138617	//     "https://www.googleapis.com/auth/cloud-platform",
138618	//     "https://www.googleapis.com/auth/compute"
138619	//   ]
138620	// }
138621
138622}
138623
138624// method id "compute.securityPolicies.patch":
138625
138626type SecurityPoliciesPatchCall struct {
138627	s              *Service
138628	project        string
138629	securityPolicy string
138630	securitypolicy *SecurityPolicy
138631	urlParams_     gensupport.URLParams
138632	ctx_           context.Context
138633	header_        http.Header
138634}
138635
138636// Patch: Patches the specified policy with the data included in the
138637// request.
138638func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
138639	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138640	c.project = project
138641	c.securityPolicy = securityPolicy
138642	c.securitypolicy = securitypolicy
138643	return c
138644}
138645
138646// RequestId sets the optional parameter "requestId": An optional
138647// request ID to identify requests. Specify a unique request ID so that
138648// if you must retry your request, the server will know to ignore the
138649// request if it has already been completed.
138650//
138651// For example, consider a situation where you make an initial request
138652// and the request times out. If you make the request again with the
138653// same request ID, the server can check if original operation with the
138654// same request ID was received, and if so, will ignore the second
138655// request. This prevents clients from accidentally creating duplicate
138656// commitments.
138657//
138658// The request ID must be a valid UUID with the exception that zero UUID
138659// is not supported (00000000-0000-0000-0000-000000000000).
138660func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
138661	c.urlParams_.Set("requestId", requestId)
138662	return c
138663}
138664
138665// Fields allows partial responses to be retrieved. See
138666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138667// for more information.
138668func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
138669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138670	return c
138671}
138672
138673// Context sets the context to be used in this call's Do method. Any
138674// pending HTTP request will be aborted if the provided context is
138675// canceled.
138676func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
138677	c.ctx_ = ctx
138678	return c
138679}
138680
138681// Header returns an http.Header that can be modified by the caller to
138682// add HTTP headers to the request.
138683func (c *SecurityPoliciesPatchCall) Header() http.Header {
138684	if c.header_ == nil {
138685		c.header_ = make(http.Header)
138686	}
138687	return c.header_
138688}
138689
138690func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
138691	reqHeaders := make(http.Header)
138692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138693	for k, v := range c.header_ {
138694		reqHeaders[k] = v
138695	}
138696	reqHeaders.Set("User-Agent", c.s.userAgent())
138697	var body io.Reader = nil
138698	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
138699	if err != nil {
138700		return nil, err
138701	}
138702	reqHeaders.Set("Content-Type", "application/json")
138703	c.urlParams_.Set("alt", alt)
138704	c.urlParams_.Set("prettyPrint", "false")
138705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
138706	urls += "?" + c.urlParams_.Encode()
138707	req, err := http.NewRequest("PATCH", urls, body)
138708	if err != nil {
138709		return nil, err
138710	}
138711	req.Header = reqHeaders
138712	googleapi.Expand(req.URL, map[string]string{
138713		"project":        c.project,
138714		"securityPolicy": c.securityPolicy,
138715	})
138716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138717}
138718
138719// Do executes the "compute.securityPolicies.patch" call.
138720// Exactly one of *Operation or error will be non-nil. Any non-2xx
138721// status code is an error. Response headers are in either
138722// *Operation.ServerResponse.Header or (if a response was returned at
138723// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138724// to check whether the returned error was because
138725// http.StatusNotModified was returned.
138726func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138727	gensupport.SetOptions(c.urlParams_, opts...)
138728	res, err := c.doRequest("json")
138729	if res != nil && res.StatusCode == http.StatusNotModified {
138730		if res.Body != nil {
138731			res.Body.Close()
138732		}
138733		return nil, &googleapi.Error{
138734			Code:   res.StatusCode,
138735			Header: res.Header,
138736		}
138737	}
138738	if err != nil {
138739		return nil, err
138740	}
138741	defer googleapi.CloseBody(res)
138742	if err := googleapi.CheckResponse(res); err != nil {
138743		return nil, err
138744	}
138745	ret := &Operation{
138746		ServerResponse: googleapi.ServerResponse{
138747			Header:         res.Header,
138748			HTTPStatusCode: res.StatusCode,
138749		},
138750	}
138751	target := &ret
138752	if err := gensupport.DecodeResponse(target, res); err != nil {
138753		return nil, err
138754	}
138755	return ret, nil
138756	// {
138757	//   "description": "Patches the specified policy with the data included in the request.",
138758	//   "httpMethod": "PATCH",
138759	//   "id": "compute.securityPolicies.patch",
138760	//   "parameterOrder": [
138761	//     "project",
138762	//     "securityPolicy"
138763	//   ],
138764	//   "parameters": {
138765	//     "project": {
138766	//       "description": "Project ID for this request.",
138767	//       "location": "path",
138768	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138769	//       "required": true,
138770	//       "type": "string"
138771	//     },
138772	//     "requestId": {
138773	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138774	//       "location": "query",
138775	//       "type": "string"
138776	//     },
138777	//     "securityPolicy": {
138778	//       "description": "Name of the security policy to update.",
138779	//       "location": "path",
138780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138781	//       "required": true,
138782	//       "type": "string"
138783	//     }
138784	//   },
138785	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
138786	//   "request": {
138787	//     "$ref": "SecurityPolicy"
138788	//   },
138789	//   "response": {
138790	//     "$ref": "Operation"
138791	//   },
138792	//   "scopes": [
138793	//     "https://www.googleapis.com/auth/cloud-platform",
138794	//     "https://www.googleapis.com/auth/compute"
138795	//   ]
138796	// }
138797
138798}
138799
138800// method id "compute.securityPolicies.patchRule":
138801
138802type SecurityPoliciesPatchRuleCall struct {
138803	s                  *Service
138804	project            string
138805	securityPolicy     string
138806	securitypolicyrule *SecurityPolicyRule
138807	urlParams_         gensupport.URLParams
138808	ctx_               context.Context
138809	header_            http.Header
138810}
138811
138812// PatchRule: Patches a rule at the specified priority.
138813func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
138814	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138815	c.project = project
138816	c.securityPolicy = securityPolicy
138817	c.securitypolicyrule = securitypolicyrule
138818	return c
138819}
138820
138821// Priority sets the optional parameter "priority": The priority of the
138822// rule to patch.
138823func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
138824	c.urlParams_.Set("priority", fmt.Sprint(priority))
138825	return c
138826}
138827
138828// ValidateOnly sets the optional parameter "validateOnly": If true, the
138829// request will not be committed.
138830func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall {
138831	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
138832	return c
138833}
138834
138835// Fields allows partial responses to be retrieved. See
138836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138837// for more information.
138838func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
138839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138840	return c
138841}
138842
138843// Context sets the context to be used in this call's Do method. Any
138844// pending HTTP request will be aborted if the provided context is
138845// canceled.
138846func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
138847	c.ctx_ = ctx
138848	return c
138849}
138850
138851// Header returns an http.Header that can be modified by the caller to
138852// add HTTP headers to the request.
138853func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
138854	if c.header_ == nil {
138855		c.header_ = make(http.Header)
138856	}
138857	return c.header_
138858}
138859
138860func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
138861	reqHeaders := make(http.Header)
138862	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
138863	for k, v := range c.header_ {
138864		reqHeaders[k] = v
138865	}
138866	reqHeaders.Set("User-Agent", c.s.userAgent())
138867	var body io.Reader = nil
138868	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
138869	if err != nil {
138870		return nil, err
138871	}
138872	reqHeaders.Set("Content-Type", "application/json")
138873	c.urlParams_.Set("alt", alt)
138874	c.urlParams_.Set("prettyPrint", "false")
138875	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule")
138876	urls += "?" + c.urlParams_.Encode()
138877	req, err := http.NewRequest("POST", urls, body)
138878	if err != nil {
138879		return nil, err
138880	}
138881	req.Header = reqHeaders
138882	googleapi.Expand(req.URL, map[string]string{
138883		"project":        c.project,
138884		"securityPolicy": c.securityPolicy,
138885	})
138886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138887}
138888
138889// Do executes the "compute.securityPolicies.patchRule" call.
138890// Exactly one of *Operation or error will be non-nil. Any non-2xx
138891// status code is an error. Response headers are in either
138892// *Operation.ServerResponse.Header or (if a response was returned at
138893// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138894// to check whether the returned error was because
138895// http.StatusNotModified was returned.
138896func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138897	gensupport.SetOptions(c.urlParams_, opts...)
138898	res, err := c.doRequest("json")
138899	if res != nil && res.StatusCode == http.StatusNotModified {
138900		if res.Body != nil {
138901			res.Body.Close()
138902		}
138903		return nil, &googleapi.Error{
138904			Code:   res.StatusCode,
138905			Header: res.Header,
138906		}
138907	}
138908	if err != nil {
138909		return nil, err
138910	}
138911	defer googleapi.CloseBody(res)
138912	if err := googleapi.CheckResponse(res); err != nil {
138913		return nil, err
138914	}
138915	ret := &Operation{
138916		ServerResponse: googleapi.ServerResponse{
138917			Header:         res.Header,
138918			HTTPStatusCode: res.StatusCode,
138919		},
138920	}
138921	target := &ret
138922	if err := gensupport.DecodeResponse(target, res); err != nil {
138923		return nil, err
138924	}
138925	return ret, nil
138926	// {
138927	//   "description": "Patches a rule at the specified priority.",
138928	//   "httpMethod": "POST",
138929	//   "id": "compute.securityPolicies.patchRule",
138930	//   "parameterOrder": [
138931	//     "project",
138932	//     "securityPolicy"
138933	//   ],
138934	//   "parameters": {
138935	//     "priority": {
138936	//       "description": "The priority of the rule to patch.",
138937	//       "format": "int32",
138938	//       "location": "query",
138939	//       "type": "integer"
138940	//     },
138941	//     "project": {
138942	//       "description": "Project ID for this request.",
138943	//       "location": "path",
138944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138945	//       "required": true,
138946	//       "type": "string"
138947	//     },
138948	//     "securityPolicy": {
138949	//       "description": "Name of the security policy to update.",
138950	//       "location": "path",
138951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138952	//       "required": true,
138953	//       "type": "string"
138954	//     },
138955	//     "validateOnly": {
138956	//       "description": "If true, the request will not be committed.",
138957	//       "location": "query",
138958	//       "type": "boolean"
138959	//     }
138960	//   },
138961	//   "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule",
138962	//   "request": {
138963	//     "$ref": "SecurityPolicyRule"
138964	//   },
138965	//   "response": {
138966	//     "$ref": "Operation"
138967	//   },
138968	//   "scopes": [
138969	//     "https://www.googleapis.com/auth/cloud-platform",
138970	//     "https://www.googleapis.com/auth/compute"
138971	//   ]
138972	// }
138973
138974}
138975
138976// method id "compute.securityPolicies.removeRule":
138977
138978type SecurityPoliciesRemoveRuleCall struct {
138979	s              *Service
138980	project        string
138981	securityPolicy string
138982	urlParams_     gensupport.URLParams
138983	ctx_           context.Context
138984	header_        http.Header
138985}
138986
138987// RemoveRule: Deletes a rule at the specified priority.
138988func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
138989	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138990	c.project = project
138991	c.securityPolicy = securityPolicy
138992	return c
138993}
138994
138995// Priority sets the optional parameter "priority": The priority of the
138996// rule to remove from the security policy.
138997func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
138998	c.urlParams_.Set("priority", fmt.Sprint(priority))
138999	return c
139000}
139001
139002// Fields allows partial responses to be retrieved. See
139003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139004// for more information.
139005func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
139006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139007	return c
139008}
139009
139010// Context sets the context to be used in this call's Do method. Any
139011// pending HTTP request will be aborted if the provided context is
139012// canceled.
139013func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
139014	c.ctx_ = ctx
139015	return c
139016}
139017
139018// Header returns an http.Header that can be modified by the caller to
139019// add HTTP headers to the request.
139020func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
139021	if c.header_ == nil {
139022		c.header_ = make(http.Header)
139023	}
139024	return c.header_
139025}
139026
139027func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
139028	reqHeaders := make(http.Header)
139029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139030	for k, v := range c.header_ {
139031		reqHeaders[k] = v
139032	}
139033	reqHeaders.Set("User-Agent", c.s.userAgent())
139034	var body io.Reader = nil
139035	c.urlParams_.Set("alt", alt)
139036	c.urlParams_.Set("prettyPrint", "false")
139037	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule")
139038	urls += "?" + c.urlParams_.Encode()
139039	req, err := http.NewRequest("POST", urls, body)
139040	if err != nil {
139041		return nil, err
139042	}
139043	req.Header = reqHeaders
139044	googleapi.Expand(req.URL, map[string]string{
139045		"project":        c.project,
139046		"securityPolicy": c.securityPolicy,
139047	})
139048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139049}
139050
139051// Do executes the "compute.securityPolicies.removeRule" call.
139052// Exactly one of *Operation or error will be non-nil. Any non-2xx
139053// status code is an error. Response headers are in either
139054// *Operation.ServerResponse.Header or (if a response was returned at
139055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139056// to check whether the returned error was because
139057// http.StatusNotModified was returned.
139058func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139059	gensupport.SetOptions(c.urlParams_, opts...)
139060	res, err := c.doRequest("json")
139061	if res != nil && res.StatusCode == http.StatusNotModified {
139062		if res.Body != nil {
139063			res.Body.Close()
139064		}
139065		return nil, &googleapi.Error{
139066			Code:   res.StatusCode,
139067			Header: res.Header,
139068		}
139069	}
139070	if err != nil {
139071		return nil, err
139072	}
139073	defer googleapi.CloseBody(res)
139074	if err := googleapi.CheckResponse(res); err != nil {
139075		return nil, err
139076	}
139077	ret := &Operation{
139078		ServerResponse: googleapi.ServerResponse{
139079			Header:         res.Header,
139080			HTTPStatusCode: res.StatusCode,
139081		},
139082	}
139083	target := &ret
139084	if err := gensupport.DecodeResponse(target, res); err != nil {
139085		return nil, err
139086	}
139087	return ret, nil
139088	// {
139089	//   "description": "Deletes a rule at the specified priority.",
139090	//   "httpMethod": "POST",
139091	//   "id": "compute.securityPolicies.removeRule",
139092	//   "parameterOrder": [
139093	//     "project",
139094	//     "securityPolicy"
139095	//   ],
139096	//   "parameters": {
139097	//     "priority": {
139098	//       "description": "The priority of the rule to remove from the security policy.",
139099	//       "format": "int32",
139100	//       "location": "query",
139101	//       "type": "integer"
139102	//     },
139103	//     "project": {
139104	//       "description": "Project ID for this request.",
139105	//       "location": "path",
139106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139107	//       "required": true,
139108	//       "type": "string"
139109	//     },
139110	//     "securityPolicy": {
139111	//       "description": "Name of the security policy to update.",
139112	//       "location": "path",
139113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139114	//       "required": true,
139115	//       "type": "string"
139116	//     }
139117	//   },
139118	//   "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule",
139119	//   "response": {
139120	//     "$ref": "Operation"
139121	//   },
139122	//   "scopes": [
139123	//     "https://www.googleapis.com/auth/cloud-platform",
139124	//     "https://www.googleapis.com/auth/compute"
139125	//   ]
139126	// }
139127
139128}
139129
139130// method id "compute.securityPolicies.setLabels":
139131
139132type SecurityPoliciesSetLabelsCall struct {
139133	s                      *Service
139134	project                string
139135	resource               string
139136	globalsetlabelsrequest *GlobalSetLabelsRequest
139137	urlParams_             gensupport.URLParams
139138	ctx_                   context.Context
139139	header_                http.Header
139140}
139141
139142// SetLabels: Sets the labels on a security policy. To learn more about
139143// labels, read the Labeling Resources documentation.
139144func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall {
139145	c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139146	c.project = project
139147	c.resource = resource
139148	c.globalsetlabelsrequest = globalsetlabelsrequest
139149	return c
139150}
139151
139152// Fields allows partial responses to be retrieved. See
139153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139154// for more information.
139155func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall {
139156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139157	return c
139158}
139159
139160// Context sets the context to be used in this call's Do method. Any
139161// pending HTTP request will be aborted if the provided context is
139162// canceled.
139163func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall {
139164	c.ctx_ = ctx
139165	return c
139166}
139167
139168// Header returns an http.Header that can be modified by the caller to
139169// add HTTP headers to the request.
139170func (c *SecurityPoliciesSetLabelsCall) Header() http.Header {
139171	if c.header_ == nil {
139172		c.header_ = make(http.Header)
139173	}
139174	return c.header_
139175}
139176
139177func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
139178	reqHeaders := make(http.Header)
139179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139180	for k, v := range c.header_ {
139181		reqHeaders[k] = v
139182	}
139183	reqHeaders.Set("User-Agent", c.s.userAgent())
139184	var body io.Reader = nil
139185	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
139186	if err != nil {
139187		return nil, err
139188	}
139189	reqHeaders.Set("Content-Type", "application/json")
139190	c.urlParams_.Set("alt", alt)
139191	c.urlParams_.Set("prettyPrint", "false")
139192	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/setLabels")
139193	urls += "?" + c.urlParams_.Encode()
139194	req, err := http.NewRequest("POST", urls, body)
139195	if err != nil {
139196		return nil, err
139197	}
139198	req.Header = reqHeaders
139199	googleapi.Expand(req.URL, map[string]string{
139200		"project":  c.project,
139201		"resource": c.resource,
139202	})
139203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139204}
139205
139206// Do executes the "compute.securityPolicies.setLabels" call.
139207// Exactly one of *Operation or error will be non-nil. Any non-2xx
139208// status code is an error. Response headers are in either
139209// *Operation.ServerResponse.Header or (if a response was returned at
139210// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139211// to check whether the returned error was because
139212// http.StatusNotModified was returned.
139213func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139214	gensupport.SetOptions(c.urlParams_, opts...)
139215	res, err := c.doRequest("json")
139216	if res != nil && res.StatusCode == http.StatusNotModified {
139217		if res.Body != nil {
139218			res.Body.Close()
139219		}
139220		return nil, &googleapi.Error{
139221			Code:   res.StatusCode,
139222			Header: res.Header,
139223		}
139224	}
139225	if err != nil {
139226		return nil, err
139227	}
139228	defer googleapi.CloseBody(res)
139229	if err := googleapi.CheckResponse(res); err != nil {
139230		return nil, err
139231	}
139232	ret := &Operation{
139233		ServerResponse: googleapi.ServerResponse{
139234			Header:         res.Header,
139235			HTTPStatusCode: res.StatusCode,
139236		},
139237	}
139238	target := &ret
139239	if err := gensupport.DecodeResponse(target, res); err != nil {
139240		return nil, err
139241	}
139242	return ret, nil
139243	// {
139244	//   "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.",
139245	//   "httpMethod": "POST",
139246	//   "id": "compute.securityPolicies.setLabels",
139247	//   "parameterOrder": [
139248	//     "project",
139249	//     "resource"
139250	//   ],
139251	//   "parameters": {
139252	//     "project": {
139253	//       "description": "Project ID for this request.",
139254	//       "location": "path",
139255	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139256	//       "required": true,
139257	//       "type": "string"
139258	//     },
139259	//     "resource": {
139260	//       "description": "Name or id of the resource for this request.",
139261	//       "location": "path",
139262	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139263	//       "required": true,
139264	//       "type": "string"
139265	//     }
139266	//   },
139267	//   "path": "{project}/global/securityPolicies/{resource}/setLabels",
139268	//   "request": {
139269	//     "$ref": "GlobalSetLabelsRequest"
139270	//   },
139271	//   "response": {
139272	//     "$ref": "Operation"
139273	//   },
139274	//   "scopes": [
139275	//     "https://www.googleapis.com/auth/cloud-platform",
139276	//     "https://www.googleapis.com/auth/compute"
139277	//   ]
139278	// }
139279
139280}
139281
139282// method id "compute.securityPolicies.testIamPermissions":
139283
139284type SecurityPoliciesTestIamPermissionsCall struct {
139285	s                      *Service
139286	project                string
139287	resource               string
139288	testpermissionsrequest *TestPermissionsRequest
139289	urlParams_             gensupport.URLParams
139290	ctx_                   context.Context
139291	header_                http.Header
139292}
139293
139294// TestIamPermissions: Returns permissions that a caller has on the
139295// specified resource.
139296func (r *SecurityPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SecurityPoliciesTestIamPermissionsCall {
139297	c := &SecurityPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139298	c.project = project
139299	c.resource = resource
139300	c.testpermissionsrequest = testpermissionsrequest
139301	return c
139302}
139303
139304// Fields allows partial responses to be retrieved. See
139305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139306// for more information.
139307func (c *SecurityPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SecurityPoliciesTestIamPermissionsCall {
139308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139309	return c
139310}
139311
139312// Context sets the context to be used in this call's Do method. Any
139313// pending HTTP request will be aborted if the provided context is
139314// canceled.
139315func (c *SecurityPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SecurityPoliciesTestIamPermissionsCall {
139316	c.ctx_ = ctx
139317	return c
139318}
139319
139320// Header returns an http.Header that can be modified by the caller to
139321// add HTTP headers to the request.
139322func (c *SecurityPoliciesTestIamPermissionsCall) Header() http.Header {
139323	if c.header_ == nil {
139324		c.header_ = make(http.Header)
139325	}
139326	return c.header_
139327}
139328
139329func (c *SecurityPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
139330	reqHeaders := make(http.Header)
139331	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139332	for k, v := range c.header_ {
139333		reqHeaders[k] = v
139334	}
139335	reqHeaders.Set("User-Agent", c.s.userAgent())
139336	var body io.Reader = nil
139337	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
139338	if err != nil {
139339		return nil, err
139340	}
139341	reqHeaders.Set("Content-Type", "application/json")
139342	c.urlParams_.Set("alt", alt)
139343	c.urlParams_.Set("prettyPrint", "false")
139344	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/testIamPermissions")
139345	urls += "?" + c.urlParams_.Encode()
139346	req, err := http.NewRequest("POST", urls, body)
139347	if err != nil {
139348		return nil, err
139349	}
139350	req.Header = reqHeaders
139351	googleapi.Expand(req.URL, map[string]string{
139352		"project":  c.project,
139353		"resource": c.resource,
139354	})
139355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139356}
139357
139358// Do executes the "compute.securityPolicies.testIamPermissions" call.
139359// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
139360// non-2xx status code is an error. Response headers are in either
139361// *TestPermissionsResponse.ServerResponse.Header or (if a response was
139362// returned at all) in error.(*googleapi.Error).Header. Use
139363// googleapi.IsNotModified to check whether the returned error was
139364// because http.StatusNotModified was returned.
139365func (c *SecurityPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
139366	gensupport.SetOptions(c.urlParams_, opts...)
139367	res, err := c.doRequest("json")
139368	if res != nil && res.StatusCode == http.StatusNotModified {
139369		if res.Body != nil {
139370			res.Body.Close()
139371		}
139372		return nil, &googleapi.Error{
139373			Code:   res.StatusCode,
139374			Header: res.Header,
139375		}
139376	}
139377	if err != nil {
139378		return nil, err
139379	}
139380	defer googleapi.CloseBody(res)
139381	if err := googleapi.CheckResponse(res); err != nil {
139382		return nil, err
139383	}
139384	ret := &TestPermissionsResponse{
139385		ServerResponse: googleapi.ServerResponse{
139386			Header:         res.Header,
139387			HTTPStatusCode: res.StatusCode,
139388		},
139389	}
139390	target := &ret
139391	if err := gensupport.DecodeResponse(target, res); err != nil {
139392		return nil, err
139393	}
139394	return ret, nil
139395	// {
139396	//   "description": "Returns permissions that a caller has on the specified resource.",
139397	//   "httpMethod": "POST",
139398	//   "id": "compute.securityPolicies.testIamPermissions",
139399	//   "parameterOrder": [
139400	//     "project",
139401	//     "resource"
139402	//   ],
139403	//   "parameters": {
139404	//     "project": {
139405	//       "description": "Project ID for this request.",
139406	//       "location": "path",
139407	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139408	//       "required": true,
139409	//       "type": "string"
139410	//     },
139411	//     "resource": {
139412	//       "description": "Name or id of the resource for this request.",
139413	//       "location": "path",
139414	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139415	//       "required": true,
139416	//       "type": "string"
139417	//     }
139418	//   },
139419	//   "path": "{project}/global/securityPolicies/{resource}/testIamPermissions",
139420	//   "request": {
139421	//     "$ref": "TestPermissionsRequest"
139422	//   },
139423	//   "response": {
139424	//     "$ref": "TestPermissionsResponse"
139425	//   },
139426	//   "scopes": [
139427	//     "https://www.googleapis.com/auth/cloud-platform",
139428	//     "https://www.googleapis.com/auth/compute",
139429	//     "https://www.googleapis.com/auth/compute.readonly"
139430	//   ]
139431	// }
139432
139433}
139434
139435// method id "compute.snapshots.delete":
139436
139437type SnapshotsDeleteCall struct {
139438	s          *Service
139439	project    string
139440	snapshot   string
139441	urlParams_ gensupport.URLParams
139442	ctx_       context.Context
139443	header_    http.Header
139444}
139445
139446// Delete: Deletes the specified Snapshot resource. Keep in mind that
139447// deleting a single snapshot might not necessarily delete all the data
139448// on that snapshot. If any data on the snapshot that is marked for
139449// deletion is needed for subsequent snapshots, the data will be moved
139450// to the next corresponding snapshot.
139451//
139452// For more information, see Deleting snapshots.
139453// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
139454func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
139455	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139456	c.project = project
139457	c.snapshot = snapshot
139458	return c
139459}
139460
139461// RequestId sets the optional parameter "requestId": An optional
139462// request ID to identify requests. Specify a unique request ID so that
139463// if you must retry your request, the server will know to ignore the
139464// request if it has already been completed.
139465//
139466// For example, consider a situation where you make an initial request
139467// and the request times out. If you make the request again with the
139468// same request ID, the server can check if original operation with the
139469// same request ID was received, and if so, will ignore the second
139470// request. This prevents clients from accidentally creating duplicate
139471// commitments.
139472//
139473// The request ID must be a valid UUID with the exception that zero UUID
139474// is not supported (00000000-0000-0000-0000-000000000000).
139475func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
139476	c.urlParams_.Set("requestId", requestId)
139477	return c
139478}
139479
139480// Fields allows partial responses to be retrieved. See
139481// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139482// for more information.
139483func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
139484	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139485	return c
139486}
139487
139488// Context sets the context to be used in this call's Do method. Any
139489// pending HTTP request will be aborted if the provided context is
139490// canceled.
139491func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
139492	c.ctx_ = ctx
139493	return c
139494}
139495
139496// Header returns an http.Header that can be modified by the caller to
139497// add HTTP headers to the request.
139498func (c *SnapshotsDeleteCall) Header() http.Header {
139499	if c.header_ == nil {
139500		c.header_ = make(http.Header)
139501	}
139502	return c.header_
139503}
139504
139505func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
139506	reqHeaders := make(http.Header)
139507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139508	for k, v := range c.header_ {
139509		reqHeaders[k] = v
139510	}
139511	reqHeaders.Set("User-Agent", c.s.userAgent())
139512	var body io.Reader = nil
139513	c.urlParams_.Set("alt", alt)
139514	c.urlParams_.Set("prettyPrint", "false")
139515	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
139516	urls += "?" + c.urlParams_.Encode()
139517	req, err := http.NewRequest("DELETE", urls, body)
139518	if err != nil {
139519		return nil, err
139520	}
139521	req.Header = reqHeaders
139522	googleapi.Expand(req.URL, map[string]string{
139523		"project":  c.project,
139524		"snapshot": c.snapshot,
139525	})
139526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139527}
139528
139529// Do executes the "compute.snapshots.delete" call.
139530// Exactly one of *Operation or error will be non-nil. Any non-2xx
139531// status code is an error. Response headers are in either
139532// *Operation.ServerResponse.Header or (if a response was returned at
139533// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139534// to check whether the returned error was because
139535// http.StatusNotModified was returned.
139536func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139537	gensupport.SetOptions(c.urlParams_, opts...)
139538	res, err := c.doRequest("json")
139539	if res != nil && res.StatusCode == http.StatusNotModified {
139540		if res.Body != nil {
139541			res.Body.Close()
139542		}
139543		return nil, &googleapi.Error{
139544			Code:   res.StatusCode,
139545			Header: res.Header,
139546		}
139547	}
139548	if err != nil {
139549		return nil, err
139550	}
139551	defer googleapi.CloseBody(res)
139552	if err := googleapi.CheckResponse(res); err != nil {
139553		return nil, err
139554	}
139555	ret := &Operation{
139556		ServerResponse: googleapi.ServerResponse{
139557			Header:         res.Header,
139558			HTTPStatusCode: res.StatusCode,
139559		},
139560	}
139561	target := &ret
139562	if err := gensupport.DecodeResponse(target, res); err != nil {
139563		return nil, err
139564	}
139565	return ret, nil
139566	// {
139567	//   "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.",
139568	//   "httpMethod": "DELETE",
139569	//   "id": "compute.snapshots.delete",
139570	//   "parameterOrder": [
139571	//     "project",
139572	//     "snapshot"
139573	//   ],
139574	//   "parameters": {
139575	//     "project": {
139576	//       "description": "Project ID for this request.",
139577	//       "location": "path",
139578	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139579	//       "required": true,
139580	//       "type": "string"
139581	//     },
139582	//     "requestId": {
139583	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139584	//       "location": "query",
139585	//       "type": "string"
139586	//     },
139587	//     "snapshot": {
139588	//       "description": "Name of the Snapshot resource to delete.",
139589	//       "location": "path",
139590	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139591	//       "required": true,
139592	//       "type": "string"
139593	//     }
139594	//   },
139595	//   "path": "{project}/global/snapshots/{snapshot}",
139596	//   "response": {
139597	//     "$ref": "Operation"
139598	//   },
139599	//   "scopes": [
139600	//     "https://www.googleapis.com/auth/cloud-platform",
139601	//     "https://www.googleapis.com/auth/compute"
139602	//   ]
139603	// }
139604
139605}
139606
139607// method id "compute.snapshots.get":
139608
139609type SnapshotsGetCall struct {
139610	s            *Service
139611	project      string
139612	snapshot     string
139613	urlParams_   gensupport.URLParams
139614	ifNoneMatch_ string
139615	ctx_         context.Context
139616	header_      http.Header
139617}
139618
139619// Get: Returns the specified Snapshot resource. Gets a list of
139620// available snapshots by making a list() request.
139621// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
139622func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
139623	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139624	c.project = project
139625	c.snapshot = snapshot
139626	return c
139627}
139628
139629// Fields allows partial responses to be retrieved. See
139630// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139631// for more information.
139632func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
139633	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139634	return c
139635}
139636
139637// IfNoneMatch sets the optional parameter which makes the operation
139638// fail if the object's ETag matches the given value. This is useful for
139639// getting updates only after the object has changed since the last
139640// request. Use googleapi.IsNotModified to check whether the response
139641// error from Do is the result of In-None-Match.
139642func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
139643	c.ifNoneMatch_ = entityTag
139644	return c
139645}
139646
139647// Context sets the context to be used in this call's Do method. Any
139648// pending HTTP request will be aborted if the provided context is
139649// canceled.
139650func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
139651	c.ctx_ = ctx
139652	return c
139653}
139654
139655// Header returns an http.Header that can be modified by the caller to
139656// add HTTP headers to the request.
139657func (c *SnapshotsGetCall) Header() http.Header {
139658	if c.header_ == nil {
139659		c.header_ = make(http.Header)
139660	}
139661	return c.header_
139662}
139663
139664func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
139665	reqHeaders := make(http.Header)
139666	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139667	for k, v := range c.header_ {
139668		reqHeaders[k] = v
139669	}
139670	reqHeaders.Set("User-Agent", c.s.userAgent())
139671	if c.ifNoneMatch_ != "" {
139672		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139673	}
139674	var body io.Reader = nil
139675	c.urlParams_.Set("alt", alt)
139676	c.urlParams_.Set("prettyPrint", "false")
139677	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
139678	urls += "?" + c.urlParams_.Encode()
139679	req, err := http.NewRequest("GET", urls, body)
139680	if err != nil {
139681		return nil, err
139682	}
139683	req.Header = reqHeaders
139684	googleapi.Expand(req.URL, map[string]string{
139685		"project":  c.project,
139686		"snapshot": c.snapshot,
139687	})
139688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139689}
139690
139691// Do executes the "compute.snapshots.get" call.
139692// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
139693// code is an error. Response headers are in either
139694// *Snapshot.ServerResponse.Header or (if a response was returned at
139695// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139696// to check whether the returned error was because
139697// http.StatusNotModified was returned.
139698func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
139699	gensupport.SetOptions(c.urlParams_, opts...)
139700	res, err := c.doRequest("json")
139701	if res != nil && res.StatusCode == http.StatusNotModified {
139702		if res.Body != nil {
139703			res.Body.Close()
139704		}
139705		return nil, &googleapi.Error{
139706			Code:   res.StatusCode,
139707			Header: res.Header,
139708		}
139709	}
139710	if err != nil {
139711		return nil, err
139712	}
139713	defer googleapi.CloseBody(res)
139714	if err := googleapi.CheckResponse(res); err != nil {
139715		return nil, err
139716	}
139717	ret := &Snapshot{
139718		ServerResponse: googleapi.ServerResponse{
139719			Header:         res.Header,
139720			HTTPStatusCode: res.StatusCode,
139721		},
139722	}
139723	target := &ret
139724	if err := gensupport.DecodeResponse(target, res); err != nil {
139725		return nil, err
139726	}
139727	return ret, nil
139728	// {
139729	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
139730	//   "httpMethod": "GET",
139731	//   "id": "compute.snapshots.get",
139732	//   "parameterOrder": [
139733	//     "project",
139734	//     "snapshot"
139735	//   ],
139736	//   "parameters": {
139737	//     "project": {
139738	//       "description": "Project ID for this request.",
139739	//       "location": "path",
139740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139741	//       "required": true,
139742	//       "type": "string"
139743	//     },
139744	//     "snapshot": {
139745	//       "description": "Name of the Snapshot resource to return.",
139746	//       "location": "path",
139747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139748	//       "required": true,
139749	//       "type": "string"
139750	//     }
139751	//   },
139752	//   "path": "{project}/global/snapshots/{snapshot}",
139753	//   "response": {
139754	//     "$ref": "Snapshot"
139755	//   },
139756	//   "scopes": [
139757	//     "https://www.googleapis.com/auth/cloud-platform",
139758	//     "https://www.googleapis.com/auth/compute",
139759	//     "https://www.googleapis.com/auth/compute.readonly"
139760	//   ]
139761	// }
139762
139763}
139764
139765// method id "compute.snapshots.getIamPolicy":
139766
139767type SnapshotsGetIamPolicyCall struct {
139768	s            *Service
139769	project      string
139770	resource     string
139771	urlParams_   gensupport.URLParams
139772	ifNoneMatch_ string
139773	ctx_         context.Context
139774	header_      http.Header
139775}
139776
139777// GetIamPolicy: Gets the access control policy for a resource. May be
139778// empty if no such policy or resource exists.
139779func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
139780	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139781	c.project = project
139782	c.resource = resource
139783	return c
139784}
139785
139786// OptionsRequestedPolicyVersion sets the optional parameter
139787// "optionsRequestedPolicyVersion": Requested IAM Policy version.
139788func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
139789	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
139790	return c
139791}
139792
139793// Fields allows partial responses to be retrieved. See
139794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139795// for more information.
139796func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
139797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139798	return c
139799}
139800
139801// IfNoneMatch sets the optional parameter which makes the operation
139802// fail if the object's ETag matches the given value. This is useful for
139803// getting updates only after the object has changed since the last
139804// request. Use googleapi.IsNotModified to check whether the response
139805// error from Do is the result of In-None-Match.
139806func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
139807	c.ifNoneMatch_ = entityTag
139808	return c
139809}
139810
139811// Context sets the context to be used in this call's Do method. Any
139812// pending HTTP request will be aborted if the provided context is
139813// canceled.
139814func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
139815	c.ctx_ = ctx
139816	return c
139817}
139818
139819// Header returns an http.Header that can be modified by the caller to
139820// add HTTP headers to the request.
139821func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
139822	if c.header_ == nil {
139823		c.header_ = make(http.Header)
139824	}
139825	return c.header_
139826}
139827
139828func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
139829	reqHeaders := make(http.Header)
139830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
139831	for k, v := range c.header_ {
139832		reqHeaders[k] = v
139833	}
139834	reqHeaders.Set("User-Agent", c.s.userAgent())
139835	if c.ifNoneMatch_ != "" {
139836		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139837	}
139838	var body io.Reader = nil
139839	c.urlParams_.Set("alt", alt)
139840	c.urlParams_.Set("prettyPrint", "false")
139841	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/getIamPolicy")
139842	urls += "?" + c.urlParams_.Encode()
139843	req, err := http.NewRequest("GET", urls, body)
139844	if err != nil {
139845		return nil, err
139846	}
139847	req.Header = reqHeaders
139848	googleapi.Expand(req.URL, map[string]string{
139849		"project":  c.project,
139850		"resource": c.resource,
139851	})
139852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139853}
139854
139855// Do executes the "compute.snapshots.getIamPolicy" call.
139856// Exactly one of *Policy or error will be non-nil. Any non-2xx status
139857// code is an error. Response headers are in either
139858// *Policy.ServerResponse.Header or (if a response was returned at all)
139859// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
139860// check whether the returned error was because http.StatusNotModified
139861// was returned.
139862func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
139863	gensupport.SetOptions(c.urlParams_, opts...)
139864	res, err := c.doRequest("json")
139865	if res != nil && res.StatusCode == http.StatusNotModified {
139866		if res.Body != nil {
139867			res.Body.Close()
139868		}
139869		return nil, &googleapi.Error{
139870			Code:   res.StatusCode,
139871			Header: res.Header,
139872		}
139873	}
139874	if err != nil {
139875		return nil, err
139876	}
139877	defer googleapi.CloseBody(res)
139878	if err := googleapi.CheckResponse(res); err != nil {
139879		return nil, err
139880	}
139881	ret := &Policy{
139882		ServerResponse: googleapi.ServerResponse{
139883			Header:         res.Header,
139884			HTTPStatusCode: res.StatusCode,
139885		},
139886	}
139887	target := &ret
139888	if err := gensupport.DecodeResponse(target, res); err != nil {
139889		return nil, err
139890	}
139891	return ret, nil
139892	// {
139893	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
139894	//   "httpMethod": "GET",
139895	//   "id": "compute.snapshots.getIamPolicy",
139896	//   "parameterOrder": [
139897	//     "project",
139898	//     "resource"
139899	//   ],
139900	//   "parameters": {
139901	//     "optionsRequestedPolicyVersion": {
139902	//       "description": "Requested IAM Policy version.",
139903	//       "format": "int32",
139904	//       "location": "query",
139905	//       "type": "integer"
139906	//     },
139907	//     "project": {
139908	//       "description": "Project ID for this request.",
139909	//       "location": "path",
139910	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139911	//       "required": true,
139912	//       "type": "string"
139913	//     },
139914	//     "resource": {
139915	//       "description": "Name or id of the resource for this request.",
139916	//       "location": "path",
139917	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139918	//       "required": true,
139919	//       "type": "string"
139920	//     }
139921	//   },
139922	//   "path": "{project}/global/snapshots/{resource}/getIamPolicy",
139923	//   "response": {
139924	//     "$ref": "Policy"
139925	//   },
139926	//   "scopes": [
139927	//     "https://www.googleapis.com/auth/cloud-platform",
139928	//     "https://www.googleapis.com/auth/compute",
139929	//     "https://www.googleapis.com/auth/compute.readonly"
139930	//   ]
139931	// }
139932
139933}
139934
139935// method id "compute.snapshots.list":
139936
139937type SnapshotsListCall struct {
139938	s            *Service
139939	project      string
139940	urlParams_   gensupport.URLParams
139941	ifNoneMatch_ string
139942	ctx_         context.Context
139943	header_      http.Header
139944}
139945
139946// List: Retrieves the list of Snapshot resources contained within the
139947// specified project.
139948// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
139949func (r *SnapshotsService) List(project string) *SnapshotsListCall {
139950	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139951	c.project = project
139952	return c
139953}
139954
139955// Filter sets the optional parameter "filter": A filter expression that
139956// filters resources listed in the response. The expression must specify
139957// the field name, a comparison operator, and the value that you want to
139958// use for filtering. The value must be a string, a number, or a
139959// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139960// `<`.
139961//
139962// For example, if you are filtering Compute Engine instances, you can
139963// exclude instances named `example-instance` by specifying `name !=
139964// example-instance`.
139965//
139966// You can also filter nested fields. For example, you could specify
139967// `scheduling.automaticRestart = false` to include instances only if
139968// they are not scheduled for automatic restarts. You can use filtering
139969// on nested fields to filter based on resource labels.
139970//
139971// To filter on multiple expressions, provide each separate expression
139972// within parentheses. For example: ``` (scheduling.automaticRestart =
139973// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
139974// is an `AND` expression. However, you can include `AND` and `OR`
139975// expressions explicitly. For example: ``` (cpuPlatform = "Intel
139976// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
139977// (scheduling.automaticRestart = true) ```
139978func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
139979	c.urlParams_.Set("filter", filter)
139980	return c
139981}
139982
139983// MaxResults sets the optional parameter "maxResults": The maximum
139984// number of results per page that should be returned. If the number of
139985// available results is larger than `maxResults`, Compute Engine returns
139986// a `nextPageToken` that can be used to get the next page of results in
139987// subsequent list requests. Acceptable values are `0` to `500`,
139988// inclusive. (Default: `500`)
139989func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
139990	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139991	return c
139992}
139993
139994// OrderBy sets the optional parameter "orderBy": Sorts list results by
139995// a certain order. By default, results are returned in alphanumerical
139996// order based on the resource name.
139997//
139998// You can also sort results in descending order based on the creation
139999// timestamp using `orderBy="creationTimestamp desc". This sorts
140000// results based on the `creationTimestamp` field in reverse
140001// chronological order (newest result first). Use this to sort resources
140002// like operations so that the newest operation is returned
140003// first.
140004//
140005// Currently, only sorting by `name` or `creationTimestamp desc` is
140006// supported.
140007func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
140008	c.urlParams_.Set("orderBy", orderBy)
140009	return c
140010}
140011
140012// PageToken sets the optional parameter "pageToken": Specifies a page
140013// token to use. Set `pageToken` to the `nextPageToken` returned by a
140014// previous list request to get the next page of results.
140015func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
140016	c.urlParams_.Set("pageToken", pageToken)
140017	return c
140018}
140019
140020// Fields allows partial responses to be retrieved. See
140021// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140022// for more information.
140023func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
140024	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140025	return c
140026}
140027
140028// IfNoneMatch sets the optional parameter which makes the operation
140029// fail if the object's ETag matches the given value. This is useful for
140030// getting updates only after the object has changed since the last
140031// request. Use googleapi.IsNotModified to check whether the response
140032// error from Do is the result of In-None-Match.
140033func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
140034	c.ifNoneMatch_ = entityTag
140035	return c
140036}
140037
140038// Context sets the context to be used in this call's Do method. Any
140039// pending HTTP request will be aborted if the provided context is
140040// canceled.
140041func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
140042	c.ctx_ = ctx
140043	return c
140044}
140045
140046// Header returns an http.Header that can be modified by the caller to
140047// add HTTP headers to the request.
140048func (c *SnapshotsListCall) Header() http.Header {
140049	if c.header_ == nil {
140050		c.header_ = make(http.Header)
140051	}
140052	return c.header_
140053}
140054
140055func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
140056	reqHeaders := make(http.Header)
140057	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140058	for k, v := range c.header_ {
140059		reqHeaders[k] = v
140060	}
140061	reqHeaders.Set("User-Agent", c.s.userAgent())
140062	if c.ifNoneMatch_ != "" {
140063		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140064	}
140065	var body io.Reader = nil
140066	c.urlParams_.Set("alt", alt)
140067	c.urlParams_.Set("prettyPrint", "false")
140068	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
140069	urls += "?" + c.urlParams_.Encode()
140070	req, err := http.NewRequest("GET", urls, body)
140071	if err != nil {
140072		return nil, err
140073	}
140074	req.Header = reqHeaders
140075	googleapi.Expand(req.URL, map[string]string{
140076		"project": c.project,
140077	})
140078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140079}
140080
140081// Do executes the "compute.snapshots.list" call.
140082// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
140083// status code is an error. Response headers are in either
140084// *SnapshotList.ServerResponse.Header or (if a response was returned at
140085// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140086// to check whether the returned error was because
140087// http.StatusNotModified was returned.
140088func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
140089	gensupport.SetOptions(c.urlParams_, opts...)
140090	res, err := c.doRequest("json")
140091	if res != nil && res.StatusCode == http.StatusNotModified {
140092		if res.Body != nil {
140093			res.Body.Close()
140094		}
140095		return nil, &googleapi.Error{
140096			Code:   res.StatusCode,
140097			Header: res.Header,
140098		}
140099	}
140100	if err != nil {
140101		return nil, err
140102	}
140103	defer googleapi.CloseBody(res)
140104	if err := googleapi.CheckResponse(res); err != nil {
140105		return nil, err
140106	}
140107	ret := &SnapshotList{
140108		ServerResponse: googleapi.ServerResponse{
140109			Header:         res.Header,
140110			HTTPStatusCode: res.StatusCode,
140111		},
140112	}
140113	target := &ret
140114	if err := gensupport.DecodeResponse(target, res); err != nil {
140115		return nil, err
140116	}
140117	return ret, nil
140118	// {
140119	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
140120	//   "httpMethod": "GET",
140121	//   "id": "compute.snapshots.list",
140122	//   "parameterOrder": [
140123	//     "project"
140124	//   ],
140125	//   "parameters": {
140126	//     "filter": {
140127	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140128	//       "location": "query",
140129	//       "type": "string"
140130	//     },
140131	//     "maxResults": {
140132	//       "default": "500",
140133	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140134	//       "format": "uint32",
140135	//       "location": "query",
140136	//       "minimum": "0",
140137	//       "type": "integer"
140138	//     },
140139	//     "orderBy": {
140140	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140141	//       "location": "query",
140142	//       "type": "string"
140143	//     },
140144	//     "pageToken": {
140145	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140146	//       "location": "query",
140147	//       "type": "string"
140148	//     },
140149	//     "project": {
140150	//       "description": "Project ID for this request.",
140151	//       "location": "path",
140152	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140153	//       "required": true,
140154	//       "type": "string"
140155	//     }
140156	//   },
140157	//   "path": "{project}/global/snapshots",
140158	//   "response": {
140159	//     "$ref": "SnapshotList"
140160	//   },
140161	//   "scopes": [
140162	//     "https://www.googleapis.com/auth/cloud-platform",
140163	//     "https://www.googleapis.com/auth/compute",
140164	//     "https://www.googleapis.com/auth/compute.readonly"
140165	//   ]
140166	// }
140167
140168}
140169
140170// Pages invokes f for each page of results.
140171// A non-nil error returned from f will halt the iteration.
140172// The provided context supersedes any context provided to the Context method.
140173func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
140174	c.ctx_ = ctx
140175	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140176	for {
140177		x, err := c.Do()
140178		if err != nil {
140179			return err
140180		}
140181		if err := f(x); err != nil {
140182			return err
140183		}
140184		if x.NextPageToken == "" {
140185			return nil
140186		}
140187		c.PageToken(x.NextPageToken)
140188	}
140189}
140190
140191// method id "compute.snapshots.setIamPolicy":
140192
140193type SnapshotsSetIamPolicyCall struct {
140194	s                      *Service
140195	project                string
140196	resource               string
140197	globalsetpolicyrequest *GlobalSetPolicyRequest
140198	urlParams_             gensupport.URLParams
140199	ctx_                   context.Context
140200	header_                http.Header
140201}
140202
140203// SetIamPolicy: Sets the access control policy on the specified
140204// resource. Replaces any existing policy.
140205func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
140206	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140207	c.project = project
140208	c.resource = resource
140209	c.globalsetpolicyrequest = globalsetpolicyrequest
140210	return c
140211}
140212
140213// Fields allows partial responses to be retrieved. See
140214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140215// for more information.
140216func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
140217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140218	return c
140219}
140220
140221// Context sets the context to be used in this call's Do method. Any
140222// pending HTTP request will be aborted if the provided context is
140223// canceled.
140224func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
140225	c.ctx_ = ctx
140226	return c
140227}
140228
140229// Header returns an http.Header that can be modified by the caller to
140230// add HTTP headers to the request.
140231func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
140232	if c.header_ == nil {
140233		c.header_ = make(http.Header)
140234	}
140235	return c.header_
140236}
140237
140238func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
140239	reqHeaders := make(http.Header)
140240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140241	for k, v := range c.header_ {
140242		reqHeaders[k] = v
140243	}
140244	reqHeaders.Set("User-Agent", c.s.userAgent())
140245	var body io.Reader = nil
140246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
140247	if err != nil {
140248		return nil, err
140249	}
140250	reqHeaders.Set("Content-Type", "application/json")
140251	c.urlParams_.Set("alt", alt)
140252	c.urlParams_.Set("prettyPrint", "false")
140253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setIamPolicy")
140254	urls += "?" + c.urlParams_.Encode()
140255	req, err := http.NewRequest("POST", urls, body)
140256	if err != nil {
140257		return nil, err
140258	}
140259	req.Header = reqHeaders
140260	googleapi.Expand(req.URL, map[string]string{
140261		"project":  c.project,
140262		"resource": c.resource,
140263	})
140264	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140265}
140266
140267// Do executes the "compute.snapshots.setIamPolicy" call.
140268// Exactly one of *Policy or error will be non-nil. Any non-2xx status
140269// code is an error. Response headers are in either
140270// *Policy.ServerResponse.Header or (if a response was returned at all)
140271// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
140272// check whether the returned error was because http.StatusNotModified
140273// was returned.
140274func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
140275	gensupport.SetOptions(c.urlParams_, opts...)
140276	res, err := c.doRequest("json")
140277	if res != nil && res.StatusCode == http.StatusNotModified {
140278		if res.Body != nil {
140279			res.Body.Close()
140280		}
140281		return nil, &googleapi.Error{
140282			Code:   res.StatusCode,
140283			Header: res.Header,
140284		}
140285	}
140286	if err != nil {
140287		return nil, err
140288	}
140289	defer googleapi.CloseBody(res)
140290	if err := googleapi.CheckResponse(res); err != nil {
140291		return nil, err
140292	}
140293	ret := &Policy{
140294		ServerResponse: googleapi.ServerResponse{
140295			Header:         res.Header,
140296			HTTPStatusCode: res.StatusCode,
140297		},
140298	}
140299	target := &ret
140300	if err := gensupport.DecodeResponse(target, res); err != nil {
140301		return nil, err
140302	}
140303	return ret, nil
140304	// {
140305	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
140306	//   "httpMethod": "POST",
140307	//   "id": "compute.snapshots.setIamPolicy",
140308	//   "parameterOrder": [
140309	//     "project",
140310	//     "resource"
140311	//   ],
140312	//   "parameters": {
140313	//     "project": {
140314	//       "description": "Project ID for this request.",
140315	//       "location": "path",
140316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140317	//       "required": true,
140318	//       "type": "string"
140319	//     },
140320	//     "resource": {
140321	//       "description": "Name or id of the resource for this request.",
140322	//       "location": "path",
140323	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140324	//       "required": true,
140325	//       "type": "string"
140326	//     }
140327	//   },
140328	//   "path": "{project}/global/snapshots/{resource}/setIamPolicy",
140329	//   "request": {
140330	//     "$ref": "GlobalSetPolicyRequest"
140331	//   },
140332	//   "response": {
140333	//     "$ref": "Policy"
140334	//   },
140335	//   "scopes": [
140336	//     "https://www.googleapis.com/auth/cloud-platform",
140337	//     "https://www.googleapis.com/auth/compute"
140338	//   ]
140339	// }
140340
140341}
140342
140343// method id "compute.snapshots.setLabels":
140344
140345type SnapshotsSetLabelsCall struct {
140346	s                      *Service
140347	project                string
140348	resource               string
140349	globalsetlabelsrequest *GlobalSetLabelsRequest
140350	urlParams_             gensupport.URLParams
140351	ctx_                   context.Context
140352	header_                http.Header
140353}
140354
140355// SetLabels: Sets the labels on a snapshot. To learn more about labels,
140356// read the Labeling Resources documentation.
140357func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
140358	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140359	c.project = project
140360	c.resource = resource
140361	c.globalsetlabelsrequest = globalsetlabelsrequest
140362	return c
140363}
140364
140365// Fields allows partial responses to be retrieved. See
140366// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140367// for more information.
140368func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
140369	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140370	return c
140371}
140372
140373// Context sets the context to be used in this call's Do method. Any
140374// pending HTTP request will be aborted if the provided context is
140375// canceled.
140376func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
140377	c.ctx_ = ctx
140378	return c
140379}
140380
140381// Header returns an http.Header that can be modified by the caller to
140382// add HTTP headers to the request.
140383func (c *SnapshotsSetLabelsCall) Header() http.Header {
140384	if c.header_ == nil {
140385		c.header_ = make(http.Header)
140386	}
140387	return c.header_
140388}
140389
140390func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
140391	reqHeaders := make(http.Header)
140392	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140393	for k, v := range c.header_ {
140394		reqHeaders[k] = v
140395	}
140396	reqHeaders.Set("User-Agent", c.s.userAgent())
140397	var body io.Reader = nil
140398	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
140399	if err != nil {
140400		return nil, err
140401	}
140402	reqHeaders.Set("Content-Type", "application/json")
140403	c.urlParams_.Set("alt", alt)
140404	c.urlParams_.Set("prettyPrint", "false")
140405	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
140406	urls += "?" + c.urlParams_.Encode()
140407	req, err := http.NewRequest("POST", urls, body)
140408	if err != nil {
140409		return nil, err
140410	}
140411	req.Header = reqHeaders
140412	googleapi.Expand(req.URL, map[string]string{
140413		"project":  c.project,
140414		"resource": c.resource,
140415	})
140416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140417}
140418
140419// Do executes the "compute.snapshots.setLabels" call.
140420// Exactly one of *Operation or error will be non-nil. Any non-2xx
140421// status code is an error. Response headers are in either
140422// *Operation.ServerResponse.Header or (if a response was returned at
140423// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140424// to check whether the returned error was because
140425// http.StatusNotModified was returned.
140426func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140427	gensupport.SetOptions(c.urlParams_, opts...)
140428	res, err := c.doRequest("json")
140429	if res != nil && res.StatusCode == http.StatusNotModified {
140430		if res.Body != nil {
140431			res.Body.Close()
140432		}
140433		return nil, &googleapi.Error{
140434			Code:   res.StatusCode,
140435			Header: res.Header,
140436		}
140437	}
140438	if err != nil {
140439		return nil, err
140440	}
140441	defer googleapi.CloseBody(res)
140442	if err := googleapi.CheckResponse(res); err != nil {
140443		return nil, err
140444	}
140445	ret := &Operation{
140446		ServerResponse: googleapi.ServerResponse{
140447			Header:         res.Header,
140448			HTTPStatusCode: res.StatusCode,
140449		},
140450	}
140451	target := &ret
140452	if err := gensupport.DecodeResponse(target, res); err != nil {
140453		return nil, err
140454	}
140455	return ret, nil
140456	// {
140457	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
140458	//   "httpMethod": "POST",
140459	//   "id": "compute.snapshots.setLabels",
140460	//   "parameterOrder": [
140461	//     "project",
140462	//     "resource"
140463	//   ],
140464	//   "parameters": {
140465	//     "project": {
140466	//       "description": "Project ID for this request.",
140467	//       "location": "path",
140468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140469	//       "required": true,
140470	//       "type": "string"
140471	//     },
140472	//     "resource": {
140473	//       "description": "Name or id of the resource for this request.",
140474	//       "location": "path",
140475	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140476	//       "required": true,
140477	//       "type": "string"
140478	//     }
140479	//   },
140480	//   "path": "{project}/global/snapshots/{resource}/setLabels",
140481	//   "request": {
140482	//     "$ref": "GlobalSetLabelsRequest"
140483	//   },
140484	//   "response": {
140485	//     "$ref": "Operation"
140486	//   },
140487	//   "scopes": [
140488	//     "https://www.googleapis.com/auth/cloud-platform",
140489	//     "https://www.googleapis.com/auth/compute"
140490	//   ]
140491	// }
140492
140493}
140494
140495// method id "compute.snapshots.testIamPermissions":
140496
140497type SnapshotsTestIamPermissionsCall struct {
140498	s                      *Service
140499	project                string
140500	resource               string
140501	testpermissionsrequest *TestPermissionsRequest
140502	urlParams_             gensupport.URLParams
140503	ctx_                   context.Context
140504	header_                http.Header
140505}
140506
140507// TestIamPermissions: Returns permissions that a caller has on the
140508// specified resource.
140509func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
140510	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140511	c.project = project
140512	c.resource = resource
140513	c.testpermissionsrequest = testpermissionsrequest
140514	return c
140515}
140516
140517// Fields allows partial responses to be retrieved. See
140518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140519// for more information.
140520func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
140521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140522	return c
140523}
140524
140525// Context sets the context to be used in this call's Do method. Any
140526// pending HTTP request will be aborted if the provided context is
140527// canceled.
140528func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
140529	c.ctx_ = ctx
140530	return c
140531}
140532
140533// Header returns an http.Header that can be modified by the caller to
140534// add HTTP headers to the request.
140535func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
140536	if c.header_ == nil {
140537		c.header_ = make(http.Header)
140538	}
140539	return c.header_
140540}
140541
140542func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
140543	reqHeaders := make(http.Header)
140544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140545	for k, v := range c.header_ {
140546		reqHeaders[k] = v
140547	}
140548	reqHeaders.Set("User-Agent", c.s.userAgent())
140549	var body io.Reader = nil
140550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
140551	if err != nil {
140552		return nil, err
140553	}
140554	reqHeaders.Set("Content-Type", "application/json")
140555	c.urlParams_.Set("alt", alt)
140556	c.urlParams_.Set("prettyPrint", "false")
140557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/testIamPermissions")
140558	urls += "?" + c.urlParams_.Encode()
140559	req, err := http.NewRequest("POST", urls, body)
140560	if err != nil {
140561		return nil, err
140562	}
140563	req.Header = reqHeaders
140564	googleapi.Expand(req.URL, map[string]string{
140565		"project":  c.project,
140566		"resource": c.resource,
140567	})
140568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140569}
140570
140571// Do executes the "compute.snapshots.testIamPermissions" call.
140572// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
140573// non-2xx status code is an error. Response headers are in either
140574// *TestPermissionsResponse.ServerResponse.Header or (if a response was
140575// returned at all) in error.(*googleapi.Error).Header. Use
140576// googleapi.IsNotModified to check whether the returned error was
140577// because http.StatusNotModified was returned.
140578func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
140579	gensupport.SetOptions(c.urlParams_, opts...)
140580	res, err := c.doRequest("json")
140581	if res != nil && res.StatusCode == http.StatusNotModified {
140582		if res.Body != nil {
140583			res.Body.Close()
140584		}
140585		return nil, &googleapi.Error{
140586			Code:   res.StatusCode,
140587			Header: res.Header,
140588		}
140589	}
140590	if err != nil {
140591		return nil, err
140592	}
140593	defer googleapi.CloseBody(res)
140594	if err := googleapi.CheckResponse(res); err != nil {
140595		return nil, err
140596	}
140597	ret := &TestPermissionsResponse{
140598		ServerResponse: googleapi.ServerResponse{
140599			Header:         res.Header,
140600			HTTPStatusCode: res.StatusCode,
140601		},
140602	}
140603	target := &ret
140604	if err := gensupport.DecodeResponse(target, res); err != nil {
140605		return nil, err
140606	}
140607	return ret, nil
140608	// {
140609	//   "description": "Returns permissions that a caller has on the specified resource.",
140610	//   "httpMethod": "POST",
140611	//   "id": "compute.snapshots.testIamPermissions",
140612	//   "parameterOrder": [
140613	//     "project",
140614	//     "resource"
140615	//   ],
140616	//   "parameters": {
140617	//     "project": {
140618	//       "description": "Project ID for this request.",
140619	//       "location": "path",
140620	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140621	//       "required": true,
140622	//       "type": "string"
140623	//     },
140624	//     "resource": {
140625	//       "description": "Name or id of the resource for this request.",
140626	//       "location": "path",
140627	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140628	//       "required": true,
140629	//       "type": "string"
140630	//     }
140631	//   },
140632	//   "path": "{project}/global/snapshots/{resource}/testIamPermissions",
140633	//   "request": {
140634	//     "$ref": "TestPermissionsRequest"
140635	//   },
140636	//   "response": {
140637	//     "$ref": "TestPermissionsResponse"
140638	//   },
140639	//   "scopes": [
140640	//     "https://www.googleapis.com/auth/cloud-platform",
140641	//     "https://www.googleapis.com/auth/compute",
140642	//     "https://www.googleapis.com/auth/compute.readonly"
140643	//   ]
140644	// }
140645
140646}
140647
140648// method id "compute.sslCertificates.aggregatedList":
140649
140650type SslCertificatesAggregatedListCall struct {
140651	s            *Service
140652	project      string
140653	urlParams_   gensupport.URLParams
140654	ifNoneMatch_ string
140655	ctx_         context.Context
140656	header_      http.Header
140657}
140658
140659// AggregatedList: Retrieves the list of all SslCertificate resources,
140660// regional and global, available to the specified project.
140661func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
140662	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140663	c.project = project
140664	return c
140665}
140666
140667// Filter sets the optional parameter "filter": A filter expression that
140668// filters resources listed in the response. The expression must specify
140669// the field name, a comparison operator, and the value that you want to
140670// use for filtering. The value must be a string, a number, or a
140671// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140672// `<`.
140673//
140674// For example, if you are filtering Compute Engine instances, you can
140675// exclude instances named `example-instance` by specifying `name !=
140676// example-instance`.
140677//
140678// You can also filter nested fields. For example, you could specify
140679// `scheduling.automaticRestart = false` to include instances only if
140680// they are not scheduled for automatic restarts. You can use filtering
140681// on nested fields to filter based on resource labels.
140682//
140683// To filter on multiple expressions, provide each separate expression
140684// within parentheses. For example: ``` (scheduling.automaticRestart =
140685// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
140686// is an `AND` expression. However, you can include `AND` and `OR`
140687// expressions explicitly. For example: ``` (cpuPlatform = "Intel
140688// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
140689// (scheduling.automaticRestart = true) ```
140690func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
140691	c.urlParams_.Set("filter", filter)
140692	return c
140693}
140694
140695// IncludeAllScopes sets the optional parameter "includeAllScopes":
140696// Indicates whether every visible scope for each scope type (zone,
140697// region, global) should be included in the response. For new resource
140698// types added after this field, the flag has no effect as new resource
140699// types will always include every visible scope for each scope type in
140700// response. For resource types which predate this field, if this flag
140701// is omitted or false, only scopes of the scope types where the
140702// resource type is expected to be found will be included.
140703func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
140704	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
140705	return c
140706}
140707
140708// MaxResults sets the optional parameter "maxResults": The maximum
140709// number of results per page that should be returned. If the number of
140710// available results is larger than `maxResults`, Compute Engine returns
140711// a `nextPageToken` that can be used to get the next page of results in
140712// subsequent list requests. Acceptable values are `0` to `500`,
140713// inclusive. (Default: `500`)
140714func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
140715	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140716	return c
140717}
140718
140719// OrderBy sets the optional parameter "orderBy": Sorts list results by
140720// a certain order. By default, results are returned in alphanumerical
140721// order based on the resource name.
140722//
140723// You can also sort results in descending order based on the creation
140724// timestamp using `orderBy="creationTimestamp desc". This sorts
140725// results based on the `creationTimestamp` field in reverse
140726// chronological order (newest result first). Use this to sort resources
140727// like operations so that the newest operation is returned
140728// first.
140729//
140730// Currently, only sorting by `name` or `creationTimestamp desc` is
140731// supported.
140732func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
140733	c.urlParams_.Set("orderBy", orderBy)
140734	return c
140735}
140736
140737// PageToken sets the optional parameter "pageToken": Specifies a page
140738// token to use. Set `pageToken` to the `nextPageToken` returned by a
140739// previous list request to get the next page of results.
140740func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
140741	c.urlParams_.Set("pageToken", pageToken)
140742	return c
140743}
140744
140745// Fields allows partial responses to be retrieved. See
140746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140747// for more information.
140748func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
140749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140750	return c
140751}
140752
140753// IfNoneMatch sets the optional parameter which makes the operation
140754// fail if the object's ETag matches the given value. This is useful for
140755// getting updates only after the object has changed since the last
140756// request. Use googleapi.IsNotModified to check whether the response
140757// error from Do is the result of In-None-Match.
140758func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
140759	c.ifNoneMatch_ = entityTag
140760	return c
140761}
140762
140763// Context sets the context to be used in this call's Do method. Any
140764// pending HTTP request will be aborted if the provided context is
140765// canceled.
140766func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
140767	c.ctx_ = ctx
140768	return c
140769}
140770
140771// Header returns an http.Header that can be modified by the caller to
140772// add HTTP headers to the request.
140773func (c *SslCertificatesAggregatedListCall) Header() http.Header {
140774	if c.header_ == nil {
140775		c.header_ = make(http.Header)
140776	}
140777	return c.header_
140778}
140779
140780func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
140781	reqHeaders := make(http.Header)
140782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140783	for k, v := range c.header_ {
140784		reqHeaders[k] = v
140785	}
140786	reqHeaders.Set("User-Agent", c.s.userAgent())
140787	if c.ifNoneMatch_ != "" {
140788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140789	}
140790	var body io.Reader = nil
140791	c.urlParams_.Set("alt", alt)
140792	c.urlParams_.Set("prettyPrint", "false")
140793	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/sslCertificates")
140794	urls += "?" + c.urlParams_.Encode()
140795	req, err := http.NewRequest("GET", urls, body)
140796	if err != nil {
140797		return nil, err
140798	}
140799	req.Header = reqHeaders
140800	googleapi.Expand(req.URL, map[string]string{
140801		"project": c.project,
140802	})
140803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140804}
140805
140806// Do executes the "compute.sslCertificates.aggregatedList" call.
140807// Exactly one of *SslCertificateAggregatedList or error will be
140808// non-nil. Any non-2xx status code is an error. Response headers are in
140809// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
140810// response was returned at all) in error.(*googleapi.Error).Header. Use
140811// googleapi.IsNotModified to check whether the returned error was
140812// because http.StatusNotModified was returned.
140813func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
140814	gensupport.SetOptions(c.urlParams_, opts...)
140815	res, err := c.doRequest("json")
140816	if res != nil && res.StatusCode == http.StatusNotModified {
140817		if res.Body != nil {
140818			res.Body.Close()
140819		}
140820		return nil, &googleapi.Error{
140821			Code:   res.StatusCode,
140822			Header: res.Header,
140823		}
140824	}
140825	if err != nil {
140826		return nil, err
140827	}
140828	defer googleapi.CloseBody(res)
140829	if err := googleapi.CheckResponse(res); err != nil {
140830		return nil, err
140831	}
140832	ret := &SslCertificateAggregatedList{
140833		ServerResponse: googleapi.ServerResponse{
140834			Header:         res.Header,
140835			HTTPStatusCode: res.StatusCode,
140836		},
140837	}
140838	target := &ret
140839	if err := gensupport.DecodeResponse(target, res); err != nil {
140840		return nil, err
140841	}
140842	return ret, nil
140843	// {
140844	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
140845	//   "httpMethod": "GET",
140846	//   "id": "compute.sslCertificates.aggregatedList",
140847	//   "parameterOrder": [
140848	//     "project"
140849	//   ],
140850	//   "parameters": {
140851	//     "filter": {
140852	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140853	//       "location": "query",
140854	//       "type": "string"
140855	//     },
140856	//     "includeAllScopes": {
140857	//       "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.",
140858	//       "location": "query",
140859	//       "type": "boolean"
140860	//     },
140861	//     "maxResults": {
140862	//       "default": "500",
140863	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140864	//       "format": "uint32",
140865	//       "location": "query",
140866	//       "minimum": "0",
140867	//       "type": "integer"
140868	//     },
140869	//     "orderBy": {
140870	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140871	//       "location": "query",
140872	//       "type": "string"
140873	//     },
140874	//     "pageToken": {
140875	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140876	//       "location": "query",
140877	//       "type": "string"
140878	//     },
140879	//     "project": {
140880	//       "description": "Name of the project scoping this request.",
140881	//       "location": "path",
140882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140883	//       "required": true,
140884	//       "type": "string"
140885	//     }
140886	//   },
140887	//   "path": "{project}/aggregated/sslCertificates",
140888	//   "response": {
140889	//     "$ref": "SslCertificateAggregatedList"
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// Pages invokes f for each page of results.
140901// A non-nil error returned from f will halt the iteration.
140902// The provided context supersedes any context provided to the Context method.
140903func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
140904	c.ctx_ = ctx
140905	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140906	for {
140907		x, err := c.Do()
140908		if err != nil {
140909			return err
140910		}
140911		if err := f(x); err != nil {
140912			return err
140913		}
140914		if x.NextPageToken == "" {
140915			return nil
140916		}
140917		c.PageToken(x.NextPageToken)
140918	}
140919}
140920
140921// method id "compute.sslCertificates.delete":
140922
140923type SslCertificatesDeleteCall struct {
140924	s              *Service
140925	project        string
140926	sslCertificate string
140927	urlParams_     gensupport.URLParams
140928	ctx_           context.Context
140929	header_        http.Header
140930}
140931
140932// Delete: Deletes the specified SslCertificate resource.
140933func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
140934	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140935	c.project = project
140936	c.sslCertificate = sslCertificate
140937	return c
140938}
140939
140940// RequestId sets the optional parameter "requestId": An optional
140941// request ID to identify requests. Specify a unique request ID so that
140942// if you must retry your request, the server will know to ignore the
140943// request if it has already been completed.
140944//
140945// For example, consider a situation where you make an initial request
140946// and the request times out. If you make the request again with the
140947// same request ID, the server can check if original operation with the
140948// same request ID was received, and if so, will ignore the second
140949// request. This prevents clients from accidentally creating duplicate
140950// commitments.
140951//
140952// The request ID must be a valid UUID with the exception that zero UUID
140953// is not supported (00000000-0000-0000-0000-000000000000).
140954func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
140955	c.urlParams_.Set("requestId", requestId)
140956	return c
140957}
140958
140959// Fields allows partial responses to be retrieved. See
140960// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140961// for more information.
140962func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
140963	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140964	return c
140965}
140966
140967// Context sets the context to be used in this call's Do method. Any
140968// pending HTTP request will be aborted if the provided context is
140969// canceled.
140970func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
140971	c.ctx_ = ctx
140972	return c
140973}
140974
140975// Header returns an http.Header that can be modified by the caller to
140976// add HTTP headers to the request.
140977func (c *SslCertificatesDeleteCall) Header() http.Header {
140978	if c.header_ == nil {
140979		c.header_ = make(http.Header)
140980	}
140981	return c.header_
140982}
140983
140984func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
140985	reqHeaders := make(http.Header)
140986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
140987	for k, v := range c.header_ {
140988		reqHeaders[k] = v
140989	}
140990	reqHeaders.Set("User-Agent", c.s.userAgent())
140991	var body io.Reader = nil
140992	c.urlParams_.Set("alt", alt)
140993	c.urlParams_.Set("prettyPrint", "false")
140994	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
140995	urls += "?" + c.urlParams_.Encode()
140996	req, err := http.NewRequest("DELETE", urls, body)
140997	if err != nil {
140998		return nil, err
140999	}
141000	req.Header = reqHeaders
141001	googleapi.Expand(req.URL, map[string]string{
141002		"project":        c.project,
141003		"sslCertificate": c.sslCertificate,
141004	})
141005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141006}
141007
141008// Do executes the "compute.sslCertificates.delete" call.
141009// Exactly one of *Operation or error will be non-nil. Any non-2xx
141010// status code is an error. Response headers are in either
141011// *Operation.ServerResponse.Header or (if a response was returned at
141012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141013// to check whether the returned error was because
141014// http.StatusNotModified was returned.
141015func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141016	gensupport.SetOptions(c.urlParams_, opts...)
141017	res, err := c.doRequest("json")
141018	if res != nil && res.StatusCode == http.StatusNotModified {
141019		if res.Body != nil {
141020			res.Body.Close()
141021		}
141022		return nil, &googleapi.Error{
141023			Code:   res.StatusCode,
141024			Header: res.Header,
141025		}
141026	}
141027	if err != nil {
141028		return nil, err
141029	}
141030	defer googleapi.CloseBody(res)
141031	if err := googleapi.CheckResponse(res); err != nil {
141032		return nil, err
141033	}
141034	ret := &Operation{
141035		ServerResponse: googleapi.ServerResponse{
141036			Header:         res.Header,
141037			HTTPStatusCode: res.StatusCode,
141038		},
141039	}
141040	target := &ret
141041	if err := gensupport.DecodeResponse(target, res); err != nil {
141042		return nil, err
141043	}
141044	return ret, nil
141045	// {
141046	//   "description": "Deletes the specified SslCertificate resource.",
141047	//   "httpMethod": "DELETE",
141048	//   "id": "compute.sslCertificates.delete",
141049	//   "parameterOrder": [
141050	//     "project",
141051	//     "sslCertificate"
141052	//   ],
141053	//   "parameters": {
141054	//     "project": {
141055	//       "description": "Project ID for this request.",
141056	//       "location": "path",
141057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141058	//       "required": true,
141059	//       "type": "string"
141060	//     },
141061	//     "requestId": {
141062	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141063	//       "location": "query",
141064	//       "type": "string"
141065	//     },
141066	//     "sslCertificate": {
141067	//       "description": "Name of the SslCertificate resource to delete.",
141068	//       "location": "path",
141069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141070	//       "required": true,
141071	//       "type": "string"
141072	//     }
141073	//   },
141074	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
141075	//   "response": {
141076	//     "$ref": "Operation"
141077	//   },
141078	//   "scopes": [
141079	//     "https://www.googleapis.com/auth/cloud-platform",
141080	//     "https://www.googleapis.com/auth/compute"
141081	//   ]
141082	// }
141083
141084}
141085
141086// method id "compute.sslCertificates.get":
141087
141088type SslCertificatesGetCall struct {
141089	s              *Service
141090	project        string
141091	sslCertificate string
141092	urlParams_     gensupport.URLParams
141093	ifNoneMatch_   string
141094	ctx_           context.Context
141095	header_        http.Header
141096}
141097
141098// Get: Returns the specified SslCertificate resource. Gets a list of
141099// available SSL certificates by making a list() request.
141100func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
141101	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141102	c.project = project
141103	c.sslCertificate = sslCertificate
141104	return c
141105}
141106
141107// Fields allows partial responses to be retrieved. See
141108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141109// for more information.
141110func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
141111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141112	return c
141113}
141114
141115// IfNoneMatch sets the optional parameter which makes the operation
141116// fail if the object's ETag matches the given value. This is useful for
141117// getting updates only after the object has changed since the last
141118// request. Use googleapi.IsNotModified to check whether the response
141119// error from Do is the result of In-None-Match.
141120func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
141121	c.ifNoneMatch_ = entityTag
141122	return c
141123}
141124
141125// Context sets the context to be used in this call's Do method. Any
141126// pending HTTP request will be aborted if the provided context is
141127// canceled.
141128func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
141129	c.ctx_ = ctx
141130	return c
141131}
141132
141133// Header returns an http.Header that can be modified by the caller to
141134// add HTTP headers to the request.
141135func (c *SslCertificatesGetCall) Header() http.Header {
141136	if c.header_ == nil {
141137		c.header_ = make(http.Header)
141138	}
141139	return c.header_
141140}
141141
141142func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
141143	reqHeaders := make(http.Header)
141144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141145	for k, v := range c.header_ {
141146		reqHeaders[k] = v
141147	}
141148	reqHeaders.Set("User-Agent", c.s.userAgent())
141149	if c.ifNoneMatch_ != "" {
141150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141151	}
141152	var body io.Reader = nil
141153	c.urlParams_.Set("alt", alt)
141154	c.urlParams_.Set("prettyPrint", "false")
141155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
141156	urls += "?" + c.urlParams_.Encode()
141157	req, err := http.NewRequest("GET", urls, body)
141158	if err != nil {
141159		return nil, err
141160	}
141161	req.Header = reqHeaders
141162	googleapi.Expand(req.URL, map[string]string{
141163		"project":        c.project,
141164		"sslCertificate": c.sslCertificate,
141165	})
141166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141167}
141168
141169// Do executes the "compute.sslCertificates.get" call.
141170// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
141171// status code is an error. Response headers are in either
141172// *SslCertificate.ServerResponse.Header or (if a response was returned
141173// at all) in error.(*googleapi.Error).Header. Use
141174// googleapi.IsNotModified to check whether the returned error was
141175// because http.StatusNotModified was returned.
141176func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
141177	gensupport.SetOptions(c.urlParams_, opts...)
141178	res, err := c.doRequest("json")
141179	if res != nil && res.StatusCode == http.StatusNotModified {
141180		if res.Body != nil {
141181			res.Body.Close()
141182		}
141183		return nil, &googleapi.Error{
141184			Code:   res.StatusCode,
141185			Header: res.Header,
141186		}
141187	}
141188	if err != nil {
141189		return nil, err
141190	}
141191	defer googleapi.CloseBody(res)
141192	if err := googleapi.CheckResponse(res); err != nil {
141193		return nil, err
141194	}
141195	ret := &SslCertificate{
141196		ServerResponse: googleapi.ServerResponse{
141197			Header:         res.Header,
141198			HTTPStatusCode: res.StatusCode,
141199		},
141200	}
141201	target := &ret
141202	if err := gensupport.DecodeResponse(target, res); err != nil {
141203		return nil, err
141204	}
141205	return ret, nil
141206	// {
141207	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
141208	//   "httpMethod": "GET",
141209	//   "id": "compute.sslCertificates.get",
141210	//   "parameterOrder": [
141211	//     "project",
141212	//     "sslCertificate"
141213	//   ],
141214	//   "parameters": {
141215	//     "project": {
141216	//       "description": "Project ID for this request.",
141217	//       "location": "path",
141218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141219	//       "required": true,
141220	//       "type": "string"
141221	//     },
141222	//     "sslCertificate": {
141223	//       "description": "Name of the SslCertificate resource to return.",
141224	//       "location": "path",
141225	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141226	//       "required": true,
141227	//       "type": "string"
141228	//     }
141229	//   },
141230	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
141231	//   "response": {
141232	//     "$ref": "SslCertificate"
141233	//   },
141234	//   "scopes": [
141235	//     "https://www.googleapis.com/auth/cloud-platform",
141236	//     "https://www.googleapis.com/auth/compute",
141237	//     "https://www.googleapis.com/auth/compute.readonly"
141238	//   ]
141239	// }
141240
141241}
141242
141243// method id "compute.sslCertificates.insert":
141244
141245type SslCertificatesInsertCall struct {
141246	s              *Service
141247	project        string
141248	sslcertificate *SslCertificate
141249	urlParams_     gensupport.URLParams
141250	ctx_           context.Context
141251	header_        http.Header
141252}
141253
141254// Insert: Creates a SslCertificate resource in the specified project
141255// using the data included in the request.
141256func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
141257	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141258	c.project = project
141259	c.sslcertificate = sslcertificate
141260	return c
141261}
141262
141263// RequestId sets the optional parameter "requestId": An optional
141264// request ID to identify requests. Specify a unique request ID so that
141265// if you must retry your request, the server will know to ignore the
141266// request if it has already been completed.
141267//
141268// For example, consider a situation where you make an initial request
141269// and the request times out. If you make the request again with the
141270// same request ID, the server can check if original operation with the
141271// same request ID was received, and if so, will ignore the second
141272// request. This prevents clients from accidentally creating duplicate
141273// commitments.
141274//
141275// The request ID must be a valid UUID with the exception that zero UUID
141276// is not supported (00000000-0000-0000-0000-000000000000).
141277func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
141278	c.urlParams_.Set("requestId", requestId)
141279	return c
141280}
141281
141282// Fields allows partial responses to be retrieved. See
141283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141284// for more information.
141285func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
141286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141287	return c
141288}
141289
141290// Context sets the context to be used in this call's Do method. Any
141291// pending HTTP request will be aborted if the provided context is
141292// canceled.
141293func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
141294	c.ctx_ = ctx
141295	return c
141296}
141297
141298// Header returns an http.Header that can be modified by the caller to
141299// add HTTP headers to the request.
141300func (c *SslCertificatesInsertCall) Header() http.Header {
141301	if c.header_ == nil {
141302		c.header_ = make(http.Header)
141303	}
141304	return c.header_
141305}
141306
141307func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
141308	reqHeaders := make(http.Header)
141309	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141310	for k, v := range c.header_ {
141311		reqHeaders[k] = v
141312	}
141313	reqHeaders.Set("User-Agent", c.s.userAgent())
141314	var body io.Reader = nil
141315	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
141316	if err != nil {
141317		return nil, err
141318	}
141319	reqHeaders.Set("Content-Type", "application/json")
141320	c.urlParams_.Set("alt", alt)
141321	c.urlParams_.Set("prettyPrint", "false")
141322	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
141323	urls += "?" + c.urlParams_.Encode()
141324	req, err := http.NewRequest("POST", urls, body)
141325	if err != nil {
141326		return nil, err
141327	}
141328	req.Header = reqHeaders
141329	googleapi.Expand(req.URL, map[string]string{
141330		"project": c.project,
141331	})
141332	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141333}
141334
141335// Do executes the "compute.sslCertificates.insert" call.
141336// Exactly one of *Operation or error will be non-nil. Any non-2xx
141337// status code is an error. Response headers are in either
141338// *Operation.ServerResponse.Header or (if a response was returned at
141339// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141340// to check whether the returned error was because
141341// http.StatusNotModified was returned.
141342func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141343	gensupport.SetOptions(c.urlParams_, opts...)
141344	res, err := c.doRequest("json")
141345	if res != nil && res.StatusCode == http.StatusNotModified {
141346		if res.Body != nil {
141347			res.Body.Close()
141348		}
141349		return nil, &googleapi.Error{
141350			Code:   res.StatusCode,
141351			Header: res.Header,
141352		}
141353	}
141354	if err != nil {
141355		return nil, err
141356	}
141357	defer googleapi.CloseBody(res)
141358	if err := googleapi.CheckResponse(res); err != nil {
141359		return nil, err
141360	}
141361	ret := &Operation{
141362		ServerResponse: googleapi.ServerResponse{
141363			Header:         res.Header,
141364			HTTPStatusCode: res.StatusCode,
141365		},
141366	}
141367	target := &ret
141368	if err := gensupport.DecodeResponse(target, res); err != nil {
141369		return nil, err
141370	}
141371	return ret, nil
141372	// {
141373	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
141374	//   "httpMethod": "POST",
141375	//   "id": "compute.sslCertificates.insert",
141376	//   "parameterOrder": [
141377	//     "project"
141378	//   ],
141379	//   "parameters": {
141380	//     "project": {
141381	//       "description": "Project ID for this request.",
141382	//       "location": "path",
141383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141384	//       "required": true,
141385	//       "type": "string"
141386	//     },
141387	//     "requestId": {
141388	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141389	//       "location": "query",
141390	//       "type": "string"
141391	//     }
141392	//   },
141393	//   "path": "{project}/global/sslCertificates",
141394	//   "request": {
141395	//     "$ref": "SslCertificate"
141396	//   },
141397	//   "response": {
141398	//     "$ref": "Operation"
141399	//   },
141400	//   "scopes": [
141401	//     "https://www.googleapis.com/auth/cloud-platform",
141402	//     "https://www.googleapis.com/auth/compute"
141403	//   ]
141404	// }
141405
141406}
141407
141408// method id "compute.sslCertificates.list":
141409
141410type SslCertificatesListCall struct {
141411	s            *Service
141412	project      string
141413	urlParams_   gensupport.URLParams
141414	ifNoneMatch_ string
141415	ctx_         context.Context
141416	header_      http.Header
141417}
141418
141419// List: Retrieves the list of SslCertificate resources available to the
141420// specified project.
141421func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
141422	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141423	c.project = project
141424	return c
141425}
141426
141427// Filter sets the optional parameter "filter": A filter expression that
141428// filters resources listed in the response. The expression must specify
141429// the field name, a comparison operator, and the value that you want to
141430// use for filtering. The value must be a string, a number, or a
141431// boolean. The comparison operator must be either `=`, `!=`, `>`, or
141432// `<`.
141433//
141434// For example, if you are filtering Compute Engine instances, you can
141435// exclude instances named `example-instance` by specifying `name !=
141436// example-instance`.
141437//
141438// You can also filter nested fields. For example, you could specify
141439// `scheduling.automaticRestart = false` to include instances only if
141440// they are not scheduled for automatic restarts. You can use filtering
141441// on nested fields to filter based on resource labels.
141442//
141443// To filter on multiple expressions, provide each separate expression
141444// within parentheses. For example: ``` (scheduling.automaticRestart =
141445// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
141446// is an `AND` expression. However, you can include `AND` and `OR`
141447// expressions explicitly. For example: ``` (cpuPlatform = "Intel
141448// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
141449// (scheduling.automaticRestart = true) ```
141450func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
141451	c.urlParams_.Set("filter", filter)
141452	return c
141453}
141454
141455// MaxResults sets the optional parameter "maxResults": The maximum
141456// number of results per page that should be returned. If the number of
141457// available results is larger than `maxResults`, Compute Engine returns
141458// a `nextPageToken` that can be used to get the next page of results in
141459// subsequent list requests. Acceptable values are `0` to `500`,
141460// inclusive. (Default: `500`)
141461func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
141462	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141463	return c
141464}
141465
141466// OrderBy sets the optional parameter "orderBy": Sorts list results by
141467// a certain order. By default, results are returned in alphanumerical
141468// order based on the resource name.
141469//
141470// You can also sort results in descending order based on the creation
141471// timestamp using `orderBy="creationTimestamp desc". This sorts
141472// results based on the `creationTimestamp` field in reverse
141473// chronological order (newest result first). Use this to sort resources
141474// like operations so that the newest operation is returned
141475// first.
141476//
141477// Currently, only sorting by `name` or `creationTimestamp desc` is
141478// supported.
141479func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
141480	c.urlParams_.Set("orderBy", orderBy)
141481	return c
141482}
141483
141484// PageToken sets the optional parameter "pageToken": Specifies a page
141485// token to use. Set `pageToken` to the `nextPageToken` returned by a
141486// previous list request to get the next page of results.
141487func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
141488	c.urlParams_.Set("pageToken", pageToken)
141489	return c
141490}
141491
141492// Fields allows partial responses to be retrieved. See
141493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141494// for more information.
141495func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
141496	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141497	return c
141498}
141499
141500// IfNoneMatch sets the optional parameter which makes the operation
141501// fail if the object's ETag matches the given value. This is useful for
141502// getting updates only after the object has changed since the last
141503// request. Use googleapi.IsNotModified to check whether the response
141504// error from Do is the result of In-None-Match.
141505func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
141506	c.ifNoneMatch_ = entityTag
141507	return c
141508}
141509
141510// Context sets the context to be used in this call's Do method. Any
141511// pending HTTP request will be aborted if the provided context is
141512// canceled.
141513func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
141514	c.ctx_ = ctx
141515	return c
141516}
141517
141518// Header returns an http.Header that can be modified by the caller to
141519// add HTTP headers to the request.
141520func (c *SslCertificatesListCall) Header() http.Header {
141521	if c.header_ == nil {
141522		c.header_ = make(http.Header)
141523	}
141524	return c.header_
141525}
141526
141527func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
141528	reqHeaders := make(http.Header)
141529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141530	for k, v := range c.header_ {
141531		reqHeaders[k] = v
141532	}
141533	reqHeaders.Set("User-Agent", c.s.userAgent())
141534	if c.ifNoneMatch_ != "" {
141535		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141536	}
141537	var body io.Reader = nil
141538	c.urlParams_.Set("alt", alt)
141539	c.urlParams_.Set("prettyPrint", "false")
141540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
141541	urls += "?" + c.urlParams_.Encode()
141542	req, err := http.NewRequest("GET", urls, body)
141543	if err != nil {
141544		return nil, err
141545	}
141546	req.Header = reqHeaders
141547	googleapi.Expand(req.URL, map[string]string{
141548		"project": c.project,
141549	})
141550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141551}
141552
141553// Do executes the "compute.sslCertificates.list" call.
141554// Exactly one of *SslCertificateList or error will be non-nil. Any
141555// non-2xx status code is an error. Response headers are in either
141556// *SslCertificateList.ServerResponse.Header or (if a response was
141557// returned at all) in error.(*googleapi.Error).Header. Use
141558// googleapi.IsNotModified to check whether the returned error was
141559// because http.StatusNotModified was returned.
141560func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
141561	gensupport.SetOptions(c.urlParams_, opts...)
141562	res, err := c.doRequest("json")
141563	if res != nil && res.StatusCode == http.StatusNotModified {
141564		if res.Body != nil {
141565			res.Body.Close()
141566		}
141567		return nil, &googleapi.Error{
141568			Code:   res.StatusCode,
141569			Header: res.Header,
141570		}
141571	}
141572	if err != nil {
141573		return nil, err
141574	}
141575	defer googleapi.CloseBody(res)
141576	if err := googleapi.CheckResponse(res); err != nil {
141577		return nil, err
141578	}
141579	ret := &SslCertificateList{
141580		ServerResponse: googleapi.ServerResponse{
141581			Header:         res.Header,
141582			HTTPStatusCode: res.StatusCode,
141583		},
141584	}
141585	target := &ret
141586	if err := gensupport.DecodeResponse(target, res); err != nil {
141587		return nil, err
141588	}
141589	return ret, nil
141590	// {
141591	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
141592	//   "httpMethod": "GET",
141593	//   "id": "compute.sslCertificates.list",
141594	//   "parameterOrder": [
141595	//     "project"
141596	//   ],
141597	//   "parameters": {
141598	//     "filter": {
141599	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
141600	//       "location": "query",
141601	//       "type": "string"
141602	//     },
141603	//     "maxResults": {
141604	//       "default": "500",
141605	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
141606	//       "format": "uint32",
141607	//       "location": "query",
141608	//       "minimum": "0",
141609	//       "type": "integer"
141610	//     },
141611	//     "orderBy": {
141612	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
141613	//       "location": "query",
141614	//       "type": "string"
141615	//     },
141616	//     "pageToken": {
141617	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
141618	//       "location": "query",
141619	//       "type": "string"
141620	//     },
141621	//     "project": {
141622	//       "description": "Project ID for this request.",
141623	//       "location": "path",
141624	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141625	//       "required": true,
141626	//       "type": "string"
141627	//     }
141628	//   },
141629	//   "path": "{project}/global/sslCertificates",
141630	//   "response": {
141631	//     "$ref": "SslCertificateList"
141632	//   },
141633	//   "scopes": [
141634	//     "https://www.googleapis.com/auth/cloud-platform",
141635	//     "https://www.googleapis.com/auth/compute",
141636	//     "https://www.googleapis.com/auth/compute.readonly"
141637	//   ]
141638	// }
141639
141640}
141641
141642// Pages invokes f for each page of results.
141643// A non-nil error returned from f will halt the iteration.
141644// The provided context supersedes any context provided to the Context method.
141645func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
141646	c.ctx_ = ctx
141647	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141648	for {
141649		x, err := c.Do()
141650		if err != nil {
141651			return err
141652		}
141653		if err := f(x); err != nil {
141654			return err
141655		}
141656		if x.NextPageToken == "" {
141657			return nil
141658		}
141659		c.PageToken(x.NextPageToken)
141660	}
141661}
141662
141663// method id "compute.sslCertificates.testIamPermissions":
141664
141665type SslCertificatesTestIamPermissionsCall struct {
141666	s                      *Service
141667	project                string
141668	resource               string
141669	testpermissionsrequest *TestPermissionsRequest
141670	urlParams_             gensupport.URLParams
141671	ctx_                   context.Context
141672	header_                http.Header
141673}
141674
141675// TestIamPermissions: Returns permissions that a caller has on the
141676// specified resource.
141677func (r *SslCertificatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslCertificatesTestIamPermissionsCall {
141678	c := &SslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141679	c.project = project
141680	c.resource = resource
141681	c.testpermissionsrequest = testpermissionsrequest
141682	return c
141683}
141684
141685// Fields allows partial responses to be retrieved. See
141686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141687// for more information.
141688func (c *SslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslCertificatesTestIamPermissionsCall {
141689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141690	return c
141691}
141692
141693// Context sets the context to be used in this call's Do method. Any
141694// pending HTTP request will be aborted if the provided context is
141695// canceled.
141696func (c *SslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *SslCertificatesTestIamPermissionsCall {
141697	c.ctx_ = ctx
141698	return c
141699}
141700
141701// Header returns an http.Header that can be modified by the caller to
141702// add HTTP headers to the request.
141703func (c *SslCertificatesTestIamPermissionsCall) Header() http.Header {
141704	if c.header_ == nil {
141705		c.header_ = make(http.Header)
141706	}
141707	return c.header_
141708}
141709
141710func (c *SslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
141711	reqHeaders := make(http.Header)
141712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141713	for k, v := range c.header_ {
141714		reqHeaders[k] = v
141715	}
141716	reqHeaders.Set("User-Agent", c.s.userAgent())
141717	var body io.Reader = nil
141718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
141719	if err != nil {
141720		return nil, err
141721	}
141722	reqHeaders.Set("Content-Type", "application/json")
141723	c.urlParams_.Set("alt", alt)
141724	c.urlParams_.Set("prettyPrint", "false")
141725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{resource}/testIamPermissions")
141726	urls += "?" + c.urlParams_.Encode()
141727	req, err := http.NewRequest("POST", urls, body)
141728	if err != nil {
141729		return nil, err
141730	}
141731	req.Header = reqHeaders
141732	googleapi.Expand(req.URL, map[string]string{
141733		"project":  c.project,
141734		"resource": c.resource,
141735	})
141736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141737}
141738
141739// Do executes the "compute.sslCertificates.testIamPermissions" call.
141740// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
141741// non-2xx status code is an error. Response headers are in either
141742// *TestPermissionsResponse.ServerResponse.Header or (if a response was
141743// returned at all) in error.(*googleapi.Error).Header. Use
141744// googleapi.IsNotModified to check whether the returned error was
141745// because http.StatusNotModified was returned.
141746func (c *SslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
141747	gensupport.SetOptions(c.urlParams_, opts...)
141748	res, err := c.doRequest("json")
141749	if res != nil && res.StatusCode == http.StatusNotModified {
141750		if res.Body != nil {
141751			res.Body.Close()
141752		}
141753		return nil, &googleapi.Error{
141754			Code:   res.StatusCode,
141755			Header: res.Header,
141756		}
141757	}
141758	if err != nil {
141759		return nil, err
141760	}
141761	defer googleapi.CloseBody(res)
141762	if err := googleapi.CheckResponse(res); err != nil {
141763		return nil, err
141764	}
141765	ret := &TestPermissionsResponse{
141766		ServerResponse: googleapi.ServerResponse{
141767			Header:         res.Header,
141768			HTTPStatusCode: res.StatusCode,
141769		},
141770	}
141771	target := &ret
141772	if err := gensupport.DecodeResponse(target, res); err != nil {
141773		return nil, err
141774	}
141775	return ret, nil
141776	// {
141777	//   "description": "Returns permissions that a caller has on the specified resource.",
141778	//   "httpMethod": "POST",
141779	//   "id": "compute.sslCertificates.testIamPermissions",
141780	//   "parameterOrder": [
141781	//     "project",
141782	//     "resource"
141783	//   ],
141784	//   "parameters": {
141785	//     "project": {
141786	//       "description": "Project ID for this request.",
141787	//       "location": "path",
141788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141789	//       "required": true,
141790	//       "type": "string"
141791	//     },
141792	//     "resource": {
141793	//       "description": "Name or id of the resource for this request.",
141794	//       "location": "path",
141795	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141796	//       "required": true,
141797	//       "type": "string"
141798	//     }
141799	//   },
141800	//   "path": "{project}/global/sslCertificates/{resource}/testIamPermissions",
141801	//   "request": {
141802	//     "$ref": "TestPermissionsRequest"
141803	//   },
141804	//   "response": {
141805	//     "$ref": "TestPermissionsResponse"
141806	//   },
141807	//   "scopes": [
141808	//     "https://www.googleapis.com/auth/cloud-platform",
141809	//     "https://www.googleapis.com/auth/compute",
141810	//     "https://www.googleapis.com/auth/compute.readonly"
141811	//   ]
141812	// }
141813
141814}
141815
141816// method id "compute.sslPolicies.delete":
141817
141818type SslPoliciesDeleteCall struct {
141819	s          *Service
141820	project    string
141821	sslPolicy  string
141822	urlParams_ gensupport.URLParams
141823	ctx_       context.Context
141824	header_    http.Header
141825}
141826
141827// Delete: Deletes the specified SSL policy. The SSL policy resource can
141828// be deleted only if it is not in use by any TargetHttpsProxy or
141829// TargetSslProxy resources.
141830func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
141831	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141832	c.project = project
141833	c.sslPolicy = sslPolicy
141834	return c
141835}
141836
141837// RequestId sets the optional parameter "requestId": An optional
141838// request ID to identify requests. Specify a unique request ID so that
141839// if you must retry your request, the server will know to ignore the
141840// request if it has already been completed.
141841//
141842// For example, consider a situation where you make an initial request
141843// and the request times out. If you make the request again with the
141844// same request ID, the server can check if original operation with the
141845// same request ID was received, and if so, will ignore the second
141846// request. This prevents clients from accidentally creating duplicate
141847// commitments.
141848//
141849// The request ID must be a valid UUID with the exception that zero UUID
141850// is not supported (00000000-0000-0000-0000-000000000000).
141851func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
141852	c.urlParams_.Set("requestId", requestId)
141853	return c
141854}
141855
141856// Fields allows partial responses to be retrieved. See
141857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141858// for more information.
141859func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
141860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141861	return c
141862}
141863
141864// Context sets the context to be used in this call's Do method. Any
141865// pending HTTP request will be aborted if the provided context is
141866// canceled.
141867func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
141868	c.ctx_ = ctx
141869	return c
141870}
141871
141872// Header returns an http.Header that can be modified by the caller to
141873// add HTTP headers to the request.
141874func (c *SslPoliciesDeleteCall) Header() http.Header {
141875	if c.header_ == nil {
141876		c.header_ = make(http.Header)
141877	}
141878	return c.header_
141879}
141880
141881func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
141882	reqHeaders := make(http.Header)
141883	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
141884	for k, v := range c.header_ {
141885		reqHeaders[k] = v
141886	}
141887	reqHeaders.Set("User-Agent", c.s.userAgent())
141888	var body io.Reader = nil
141889	c.urlParams_.Set("alt", alt)
141890	c.urlParams_.Set("prettyPrint", "false")
141891	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
141892	urls += "?" + c.urlParams_.Encode()
141893	req, err := http.NewRequest("DELETE", urls, body)
141894	if err != nil {
141895		return nil, err
141896	}
141897	req.Header = reqHeaders
141898	googleapi.Expand(req.URL, map[string]string{
141899		"project":   c.project,
141900		"sslPolicy": c.sslPolicy,
141901	})
141902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141903}
141904
141905// Do executes the "compute.sslPolicies.delete" call.
141906// Exactly one of *Operation or error will be non-nil. Any non-2xx
141907// status code is an error. Response headers are in either
141908// *Operation.ServerResponse.Header or (if a response was returned at
141909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141910// to check whether the returned error was because
141911// http.StatusNotModified was returned.
141912func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141913	gensupport.SetOptions(c.urlParams_, opts...)
141914	res, err := c.doRequest("json")
141915	if res != nil && res.StatusCode == http.StatusNotModified {
141916		if res.Body != nil {
141917			res.Body.Close()
141918		}
141919		return nil, &googleapi.Error{
141920			Code:   res.StatusCode,
141921			Header: res.Header,
141922		}
141923	}
141924	if err != nil {
141925		return nil, err
141926	}
141927	defer googleapi.CloseBody(res)
141928	if err := googleapi.CheckResponse(res); err != nil {
141929		return nil, err
141930	}
141931	ret := &Operation{
141932		ServerResponse: googleapi.ServerResponse{
141933			Header:         res.Header,
141934			HTTPStatusCode: res.StatusCode,
141935		},
141936	}
141937	target := &ret
141938	if err := gensupport.DecodeResponse(target, res); err != nil {
141939		return nil, err
141940	}
141941	return ret, nil
141942	// {
141943	//   "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.",
141944	//   "httpMethod": "DELETE",
141945	//   "id": "compute.sslPolicies.delete",
141946	//   "parameterOrder": [
141947	//     "project",
141948	//     "sslPolicy"
141949	//   ],
141950	//   "parameters": {
141951	//     "project": {
141952	//       "description": "Project ID for this request.",
141953	//       "location": "path",
141954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141955	//       "required": true,
141956	//       "type": "string"
141957	//     },
141958	//     "requestId": {
141959	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141960	//       "location": "query",
141961	//       "type": "string"
141962	//     },
141963	//     "sslPolicy": {
141964	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
141965	//       "location": "path",
141966	//       "required": true,
141967	//       "type": "string"
141968	//     }
141969	//   },
141970	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
141971	//   "response": {
141972	//     "$ref": "Operation"
141973	//   },
141974	//   "scopes": [
141975	//     "https://www.googleapis.com/auth/cloud-platform",
141976	//     "https://www.googleapis.com/auth/compute"
141977	//   ]
141978	// }
141979
141980}
141981
141982// method id "compute.sslPolicies.get":
141983
141984type SslPoliciesGetCall struct {
141985	s            *Service
141986	project      string
141987	sslPolicy    string
141988	urlParams_   gensupport.URLParams
141989	ifNoneMatch_ string
141990	ctx_         context.Context
141991	header_      http.Header
141992}
141993
141994// Get: Lists all of the ordered rules present in a single specified
141995// policy.
141996func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
141997	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141998	c.project = project
141999	c.sslPolicy = sslPolicy
142000	return c
142001}
142002
142003// Fields allows partial responses to be retrieved. See
142004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142005// for more information.
142006func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
142007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142008	return c
142009}
142010
142011// IfNoneMatch sets the optional parameter which makes the operation
142012// fail if the object's ETag matches the given value. This is useful for
142013// getting updates only after the object has changed since the last
142014// request. Use googleapi.IsNotModified to check whether the response
142015// error from Do is the result of In-None-Match.
142016func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
142017	c.ifNoneMatch_ = entityTag
142018	return c
142019}
142020
142021// Context sets the context to be used in this call's Do method. Any
142022// pending HTTP request will be aborted if the provided context is
142023// canceled.
142024func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
142025	c.ctx_ = ctx
142026	return c
142027}
142028
142029// Header returns an http.Header that can be modified by the caller to
142030// add HTTP headers to the request.
142031func (c *SslPoliciesGetCall) Header() http.Header {
142032	if c.header_ == nil {
142033		c.header_ = make(http.Header)
142034	}
142035	return c.header_
142036}
142037
142038func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
142039	reqHeaders := make(http.Header)
142040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142041	for k, v := range c.header_ {
142042		reqHeaders[k] = v
142043	}
142044	reqHeaders.Set("User-Agent", c.s.userAgent())
142045	if c.ifNoneMatch_ != "" {
142046		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142047	}
142048	var body io.Reader = nil
142049	c.urlParams_.Set("alt", alt)
142050	c.urlParams_.Set("prettyPrint", "false")
142051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
142052	urls += "?" + c.urlParams_.Encode()
142053	req, err := http.NewRequest("GET", urls, body)
142054	if err != nil {
142055		return nil, err
142056	}
142057	req.Header = reqHeaders
142058	googleapi.Expand(req.URL, map[string]string{
142059		"project":   c.project,
142060		"sslPolicy": c.sslPolicy,
142061	})
142062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142063}
142064
142065// Do executes the "compute.sslPolicies.get" call.
142066// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
142067// status code is an error. Response headers are in either
142068// *SslPolicy.ServerResponse.Header or (if a response was returned at
142069// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142070// to check whether the returned error was because
142071// http.StatusNotModified was returned.
142072func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
142073	gensupport.SetOptions(c.urlParams_, opts...)
142074	res, err := c.doRequest("json")
142075	if res != nil && res.StatusCode == http.StatusNotModified {
142076		if res.Body != nil {
142077			res.Body.Close()
142078		}
142079		return nil, &googleapi.Error{
142080			Code:   res.StatusCode,
142081			Header: res.Header,
142082		}
142083	}
142084	if err != nil {
142085		return nil, err
142086	}
142087	defer googleapi.CloseBody(res)
142088	if err := googleapi.CheckResponse(res); err != nil {
142089		return nil, err
142090	}
142091	ret := &SslPolicy{
142092		ServerResponse: googleapi.ServerResponse{
142093			Header:         res.Header,
142094			HTTPStatusCode: res.StatusCode,
142095		},
142096	}
142097	target := &ret
142098	if err := gensupport.DecodeResponse(target, res); err != nil {
142099		return nil, err
142100	}
142101	return ret, nil
142102	// {
142103	//   "description": "Lists all of the ordered rules present in a single specified policy.",
142104	//   "httpMethod": "GET",
142105	//   "id": "compute.sslPolicies.get",
142106	//   "parameterOrder": [
142107	//     "project",
142108	//     "sslPolicy"
142109	//   ],
142110	//   "parameters": {
142111	//     "project": {
142112	//       "description": "Project ID for this request.",
142113	//       "location": "path",
142114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142115	//       "required": true,
142116	//       "type": "string"
142117	//     },
142118	//     "sslPolicy": {
142119	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
142120	//       "location": "path",
142121	//       "required": true,
142122	//       "type": "string"
142123	//     }
142124	//   },
142125	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
142126	//   "response": {
142127	//     "$ref": "SslPolicy"
142128	//   },
142129	//   "scopes": [
142130	//     "https://www.googleapis.com/auth/cloud-platform",
142131	//     "https://www.googleapis.com/auth/compute",
142132	//     "https://www.googleapis.com/auth/compute.readonly"
142133	//   ]
142134	// }
142135
142136}
142137
142138// method id "compute.sslPolicies.insert":
142139
142140type SslPoliciesInsertCall struct {
142141	s          *Service
142142	project    string
142143	sslpolicy  *SslPolicy
142144	urlParams_ gensupport.URLParams
142145	ctx_       context.Context
142146	header_    http.Header
142147}
142148
142149// Insert: Returns the specified SSL policy resource. Gets a list of
142150// available SSL policies by making a list() request.
142151func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
142152	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142153	c.project = project
142154	c.sslpolicy = sslpolicy
142155	return c
142156}
142157
142158// RequestId sets the optional parameter "requestId": An optional
142159// request ID to identify requests. Specify a unique request ID so that
142160// if you must retry your request, the server will know to ignore the
142161// request if it has already been completed.
142162//
142163// For example, consider a situation where you make an initial request
142164// and the request times out. If you make the request again with the
142165// same request ID, the server can check if original operation with the
142166// same request ID was received, and if so, will ignore the second
142167// request. This prevents clients from accidentally creating duplicate
142168// commitments.
142169//
142170// The request ID must be a valid UUID with the exception that zero UUID
142171// is not supported (00000000-0000-0000-0000-000000000000).
142172func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
142173	c.urlParams_.Set("requestId", requestId)
142174	return c
142175}
142176
142177// Fields allows partial responses to be retrieved. See
142178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142179// for more information.
142180func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
142181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142182	return c
142183}
142184
142185// Context sets the context to be used in this call's Do method. Any
142186// pending HTTP request will be aborted if the provided context is
142187// canceled.
142188func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
142189	c.ctx_ = ctx
142190	return c
142191}
142192
142193// Header returns an http.Header that can be modified by the caller to
142194// add HTTP headers to the request.
142195func (c *SslPoliciesInsertCall) Header() http.Header {
142196	if c.header_ == nil {
142197		c.header_ = make(http.Header)
142198	}
142199	return c.header_
142200}
142201
142202func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
142203	reqHeaders := make(http.Header)
142204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142205	for k, v := range c.header_ {
142206		reqHeaders[k] = v
142207	}
142208	reqHeaders.Set("User-Agent", c.s.userAgent())
142209	var body io.Reader = nil
142210	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
142211	if err != nil {
142212		return nil, err
142213	}
142214	reqHeaders.Set("Content-Type", "application/json")
142215	c.urlParams_.Set("alt", alt)
142216	c.urlParams_.Set("prettyPrint", "false")
142217	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
142218	urls += "?" + c.urlParams_.Encode()
142219	req, err := http.NewRequest("POST", urls, body)
142220	if err != nil {
142221		return nil, err
142222	}
142223	req.Header = reqHeaders
142224	googleapi.Expand(req.URL, map[string]string{
142225		"project": c.project,
142226	})
142227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142228}
142229
142230// Do executes the "compute.sslPolicies.insert" call.
142231// Exactly one of *Operation or error will be non-nil. Any non-2xx
142232// status code is an error. Response headers are in either
142233// *Operation.ServerResponse.Header or (if a response was returned at
142234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142235// to check whether the returned error was because
142236// http.StatusNotModified was returned.
142237func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142238	gensupport.SetOptions(c.urlParams_, opts...)
142239	res, err := c.doRequest("json")
142240	if res != nil && res.StatusCode == http.StatusNotModified {
142241		if res.Body != nil {
142242			res.Body.Close()
142243		}
142244		return nil, &googleapi.Error{
142245			Code:   res.StatusCode,
142246			Header: res.Header,
142247		}
142248	}
142249	if err != nil {
142250		return nil, err
142251	}
142252	defer googleapi.CloseBody(res)
142253	if err := googleapi.CheckResponse(res); err != nil {
142254		return nil, err
142255	}
142256	ret := &Operation{
142257		ServerResponse: googleapi.ServerResponse{
142258			Header:         res.Header,
142259			HTTPStatusCode: res.StatusCode,
142260		},
142261	}
142262	target := &ret
142263	if err := gensupport.DecodeResponse(target, res); err != nil {
142264		return nil, err
142265	}
142266	return ret, nil
142267	// {
142268	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
142269	//   "httpMethod": "POST",
142270	//   "id": "compute.sslPolicies.insert",
142271	//   "parameterOrder": [
142272	//     "project"
142273	//   ],
142274	//   "parameters": {
142275	//     "project": {
142276	//       "description": "Project ID for this request.",
142277	//       "location": "path",
142278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142279	//       "required": true,
142280	//       "type": "string"
142281	//     },
142282	//     "requestId": {
142283	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142284	//       "location": "query",
142285	//       "type": "string"
142286	//     }
142287	//   },
142288	//   "path": "{project}/global/sslPolicies",
142289	//   "request": {
142290	//     "$ref": "SslPolicy"
142291	//   },
142292	//   "response": {
142293	//     "$ref": "Operation"
142294	//   },
142295	//   "scopes": [
142296	//     "https://www.googleapis.com/auth/cloud-platform",
142297	//     "https://www.googleapis.com/auth/compute"
142298	//   ]
142299	// }
142300
142301}
142302
142303// method id "compute.sslPolicies.list":
142304
142305type SslPoliciesListCall struct {
142306	s            *Service
142307	project      string
142308	urlParams_   gensupport.URLParams
142309	ifNoneMatch_ string
142310	ctx_         context.Context
142311	header_      http.Header
142312}
142313
142314// List: Lists all the SSL policies that have been configured for the
142315// specified project.
142316func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
142317	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142318	c.project = project
142319	return c
142320}
142321
142322// Filter sets the optional parameter "filter": A filter expression that
142323// filters resources listed in the response. The expression must specify
142324// the field name, a comparison operator, and the value that you want to
142325// use for filtering. The value must be a string, a number, or a
142326// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142327// `<`.
142328//
142329// For example, if you are filtering Compute Engine instances, you can
142330// exclude instances named `example-instance` by specifying `name !=
142331// example-instance`.
142332//
142333// You can also filter nested fields. For example, you could specify
142334// `scheduling.automaticRestart = false` to include instances only if
142335// they are not scheduled for automatic restarts. You can use filtering
142336// on nested fields to filter based on resource labels.
142337//
142338// To filter on multiple expressions, provide each separate expression
142339// within parentheses. For example: ``` (scheduling.automaticRestart =
142340// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142341// is an `AND` expression. However, you can include `AND` and `OR`
142342// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142343// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142344// (scheduling.automaticRestart = true) ```
142345func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
142346	c.urlParams_.Set("filter", filter)
142347	return c
142348}
142349
142350// MaxResults sets the optional parameter "maxResults": The maximum
142351// number of results per page that should be returned. If the number of
142352// available results is larger than `maxResults`, Compute Engine returns
142353// a `nextPageToken` that can be used to get the next page of results in
142354// subsequent list requests. Acceptable values are `0` to `500`,
142355// inclusive. (Default: `500`)
142356func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
142357	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142358	return c
142359}
142360
142361// OrderBy sets the optional parameter "orderBy": Sorts list results by
142362// a certain order. By default, results are returned in alphanumerical
142363// order based on the resource name.
142364//
142365// You can also sort results in descending order based on the creation
142366// timestamp using `orderBy="creationTimestamp desc". This sorts
142367// results based on the `creationTimestamp` field in reverse
142368// chronological order (newest result first). Use this to sort resources
142369// like operations so that the newest operation is returned
142370// first.
142371//
142372// Currently, only sorting by `name` or `creationTimestamp desc` is
142373// supported.
142374func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
142375	c.urlParams_.Set("orderBy", orderBy)
142376	return c
142377}
142378
142379// PageToken sets the optional parameter "pageToken": Specifies a page
142380// token to use. Set `pageToken` to the `nextPageToken` returned by a
142381// previous list request to get the next page of results.
142382func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
142383	c.urlParams_.Set("pageToken", pageToken)
142384	return c
142385}
142386
142387// Fields allows partial responses to be retrieved. See
142388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142389// for more information.
142390func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
142391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142392	return c
142393}
142394
142395// IfNoneMatch sets the optional parameter which makes the operation
142396// fail if the object's ETag matches the given value. This is useful for
142397// getting updates only after the object has changed since the last
142398// request. Use googleapi.IsNotModified to check whether the response
142399// error from Do is the result of In-None-Match.
142400func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
142401	c.ifNoneMatch_ = entityTag
142402	return c
142403}
142404
142405// Context sets the context to be used in this call's Do method. Any
142406// pending HTTP request will be aborted if the provided context is
142407// canceled.
142408func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
142409	c.ctx_ = ctx
142410	return c
142411}
142412
142413// Header returns an http.Header that can be modified by the caller to
142414// add HTTP headers to the request.
142415func (c *SslPoliciesListCall) Header() http.Header {
142416	if c.header_ == nil {
142417		c.header_ = make(http.Header)
142418	}
142419	return c.header_
142420}
142421
142422func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
142423	reqHeaders := make(http.Header)
142424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142425	for k, v := range c.header_ {
142426		reqHeaders[k] = v
142427	}
142428	reqHeaders.Set("User-Agent", c.s.userAgent())
142429	if c.ifNoneMatch_ != "" {
142430		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142431	}
142432	var body io.Reader = nil
142433	c.urlParams_.Set("alt", alt)
142434	c.urlParams_.Set("prettyPrint", "false")
142435	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
142436	urls += "?" + c.urlParams_.Encode()
142437	req, err := http.NewRequest("GET", urls, body)
142438	if err != nil {
142439		return nil, err
142440	}
142441	req.Header = reqHeaders
142442	googleapi.Expand(req.URL, map[string]string{
142443		"project": c.project,
142444	})
142445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142446}
142447
142448// Do executes the "compute.sslPolicies.list" call.
142449// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
142450// status code is an error. Response headers are in either
142451// *SslPoliciesList.ServerResponse.Header or (if a response was returned
142452// at all) in error.(*googleapi.Error).Header. Use
142453// googleapi.IsNotModified to check whether the returned error was
142454// because http.StatusNotModified was returned.
142455func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
142456	gensupport.SetOptions(c.urlParams_, opts...)
142457	res, err := c.doRequest("json")
142458	if res != nil && res.StatusCode == http.StatusNotModified {
142459		if res.Body != nil {
142460			res.Body.Close()
142461		}
142462		return nil, &googleapi.Error{
142463			Code:   res.StatusCode,
142464			Header: res.Header,
142465		}
142466	}
142467	if err != nil {
142468		return nil, err
142469	}
142470	defer googleapi.CloseBody(res)
142471	if err := googleapi.CheckResponse(res); err != nil {
142472		return nil, err
142473	}
142474	ret := &SslPoliciesList{
142475		ServerResponse: googleapi.ServerResponse{
142476			Header:         res.Header,
142477			HTTPStatusCode: res.StatusCode,
142478		},
142479	}
142480	target := &ret
142481	if err := gensupport.DecodeResponse(target, res); err != nil {
142482		return nil, err
142483	}
142484	return ret, nil
142485	// {
142486	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
142487	//   "httpMethod": "GET",
142488	//   "id": "compute.sslPolicies.list",
142489	//   "parameterOrder": [
142490	//     "project"
142491	//   ],
142492	//   "parameters": {
142493	//     "filter": {
142494	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
142495	//       "location": "query",
142496	//       "type": "string"
142497	//     },
142498	//     "maxResults": {
142499	//       "default": "500",
142500	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142501	//       "format": "uint32",
142502	//       "location": "query",
142503	//       "minimum": "0",
142504	//       "type": "integer"
142505	//     },
142506	//     "orderBy": {
142507	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
142508	//       "location": "query",
142509	//       "type": "string"
142510	//     },
142511	//     "pageToken": {
142512	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142513	//       "location": "query",
142514	//       "type": "string"
142515	//     },
142516	//     "project": {
142517	//       "description": "Project ID for this request.",
142518	//       "location": "path",
142519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142520	//       "required": true,
142521	//       "type": "string"
142522	//     }
142523	//   },
142524	//   "path": "{project}/global/sslPolicies",
142525	//   "response": {
142526	//     "$ref": "SslPoliciesList"
142527	//   },
142528	//   "scopes": [
142529	//     "https://www.googleapis.com/auth/cloud-platform",
142530	//     "https://www.googleapis.com/auth/compute",
142531	//     "https://www.googleapis.com/auth/compute.readonly"
142532	//   ]
142533	// }
142534
142535}
142536
142537// Pages invokes f for each page of results.
142538// A non-nil error returned from f will halt the iteration.
142539// The provided context supersedes any context provided to the Context method.
142540func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
142541	c.ctx_ = ctx
142542	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142543	for {
142544		x, err := c.Do()
142545		if err != nil {
142546			return err
142547		}
142548		if err := f(x); err != nil {
142549			return err
142550		}
142551		if x.NextPageToken == "" {
142552			return nil
142553		}
142554		c.PageToken(x.NextPageToken)
142555	}
142556}
142557
142558// method id "compute.sslPolicies.listAvailableFeatures":
142559
142560type SslPoliciesListAvailableFeaturesCall struct {
142561	s            *Service
142562	project      string
142563	urlParams_   gensupport.URLParams
142564	ifNoneMatch_ string
142565	ctx_         context.Context
142566	header_      http.Header
142567}
142568
142569// ListAvailableFeatures: Lists all features that can be specified in
142570// the SSL policy when using custom profile.
142571func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
142572	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142573	c.project = project
142574	return c
142575}
142576
142577// Filter sets the optional parameter "filter": A filter expression that
142578// filters resources listed in the response. The expression must specify
142579// the field name, a comparison operator, and the value that you want to
142580// use for filtering. The value must be a string, a number, or a
142581// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142582// `<`.
142583//
142584// For example, if you are filtering Compute Engine instances, you can
142585// exclude instances named `example-instance` by specifying `name !=
142586// example-instance`.
142587//
142588// You can also filter nested fields. For example, you could specify
142589// `scheduling.automaticRestart = false` to include instances only if
142590// they are not scheduled for automatic restarts. You can use filtering
142591// on nested fields to filter based on resource labels.
142592//
142593// To filter on multiple expressions, provide each separate expression
142594// within parentheses. For example: ``` (scheduling.automaticRestart =
142595// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142596// is an `AND` expression. However, you can include `AND` and `OR`
142597// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142598// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142599// (scheduling.automaticRestart = true) ```
142600func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
142601	c.urlParams_.Set("filter", filter)
142602	return c
142603}
142604
142605// MaxResults sets the optional parameter "maxResults": The maximum
142606// number of results per page that should be returned. If the number of
142607// available results is larger than `maxResults`, Compute Engine returns
142608// a `nextPageToken` that can be used to get the next page of results in
142609// subsequent list requests. Acceptable values are `0` to `500`,
142610// inclusive. (Default: `500`)
142611func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
142612	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142613	return c
142614}
142615
142616// OrderBy sets the optional parameter "orderBy": Sorts list results by
142617// a certain order. By default, results are returned in alphanumerical
142618// order based on the resource name.
142619//
142620// You can also sort results in descending order based on the creation
142621// timestamp using `orderBy="creationTimestamp desc". This sorts
142622// results based on the `creationTimestamp` field in reverse
142623// chronological order (newest result first). Use this to sort resources
142624// like operations so that the newest operation is returned
142625// first.
142626//
142627// Currently, only sorting by `name` or `creationTimestamp desc` is
142628// supported.
142629func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
142630	c.urlParams_.Set("orderBy", orderBy)
142631	return c
142632}
142633
142634// PageToken sets the optional parameter "pageToken": Specifies a page
142635// token to use. Set `pageToken` to the `nextPageToken` returned by a
142636// previous list request to get the next page of results.
142637func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
142638	c.urlParams_.Set("pageToken", pageToken)
142639	return c
142640}
142641
142642// Fields allows partial responses to be retrieved. See
142643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142644// for more information.
142645func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
142646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142647	return c
142648}
142649
142650// IfNoneMatch sets the optional parameter which makes the operation
142651// fail if the object's ETag matches the given value. This is useful for
142652// getting updates only after the object has changed since the last
142653// request. Use googleapi.IsNotModified to check whether the response
142654// error from Do is the result of In-None-Match.
142655func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
142656	c.ifNoneMatch_ = entityTag
142657	return c
142658}
142659
142660// Context sets the context to be used in this call's Do method. Any
142661// pending HTTP request will be aborted if the provided context is
142662// canceled.
142663func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
142664	c.ctx_ = ctx
142665	return c
142666}
142667
142668// Header returns an http.Header that can be modified by the caller to
142669// add HTTP headers to the request.
142670func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
142671	if c.header_ == nil {
142672		c.header_ = make(http.Header)
142673	}
142674	return c.header_
142675}
142676
142677func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
142678	reqHeaders := make(http.Header)
142679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142680	for k, v := range c.header_ {
142681		reqHeaders[k] = v
142682	}
142683	reqHeaders.Set("User-Agent", c.s.userAgent())
142684	if c.ifNoneMatch_ != "" {
142685		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142686	}
142687	var body io.Reader = nil
142688	c.urlParams_.Set("alt", alt)
142689	c.urlParams_.Set("prettyPrint", "false")
142690	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
142691	urls += "?" + c.urlParams_.Encode()
142692	req, err := http.NewRequest("GET", urls, body)
142693	if err != nil {
142694		return nil, err
142695	}
142696	req.Header = reqHeaders
142697	googleapi.Expand(req.URL, map[string]string{
142698		"project": c.project,
142699	})
142700	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142701}
142702
142703// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
142704// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
142705// will be non-nil. Any non-2xx status code is an error. Response
142706// headers are in either
142707// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
142708// (if a response was returned at all) in
142709// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
142710// whether the returned error was because http.StatusNotModified was
142711// returned.
142712func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
142713	gensupport.SetOptions(c.urlParams_, opts...)
142714	res, err := c.doRequest("json")
142715	if res != nil && res.StatusCode == http.StatusNotModified {
142716		if res.Body != nil {
142717			res.Body.Close()
142718		}
142719		return nil, &googleapi.Error{
142720			Code:   res.StatusCode,
142721			Header: res.Header,
142722		}
142723	}
142724	if err != nil {
142725		return nil, err
142726	}
142727	defer googleapi.CloseBody(res)
142728	if err := googleapi.CheckResponse(res); err != nil {
142729		return nil, err
142730	}
142731	ret := &SslPoliciesListAvailableFeaturesResponse{
142732		ServerResponse: googleapi.ServerResponse{
142733			Header:         res.Header,
142734			HTTPStatusCode: res.StatusCode,
142735		},
142736	}
142737	target := &ret
142738	if err := gensupport.DecodeResponse(target, res); err != nil {
142739		return nil, err
142740	}
142741	return ret, nil
142742	// {
142743	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
142744	//   "httpMethod": "GET",
142745	//   "id": "compute.sslPolicies.listAvailableFeatures",
142746	//   "parameterOrder": [
142747	//     "project"
142748	//   ],
142749	//   "parameters": {
142750	//     "filter": {
142751	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
142752	//       "location": "query",
142753	//       "type": "string"
142754	//     },
142755	//     "maxResults": {
142756	//       "default": "500",
142757	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142758	//       "format": "uint32",
142759	//       "location": "query",
142760	//       "minimum": "0",
142761	//       "type": "integer"
142762	//     },
142763	//     "orderBy": {
142764	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
142765	//       "location": "query",
142766	//       "type": "string"
142767	//     },
142768	//     "pageToken": {
142769	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142770	//       "location": "query",
142771	//       "type": "string"
142772	//     },
142773	//     "project": {
142774	//       "description": "Project ID for this request.",
142775	//       "location": "path",
142776	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142777	//       "required": true,
142778	//       "type": "string"
142779	//     }
142780	//   },
142781	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
142782	//   "response": {
142783	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
142784	//   },
142785	//   "scopes": [
142786	//     "https://www.googleapis.com/auth/cloud-platform",
142787	//     "https://www.googleapis.com/auth/compute",
142788	//     "https://www.googleapis.com/auth/compute.readonly"
142789	//   ]
142790	// }
142791
142792}
142793
142794// method id "compute.sslPolicies.patch":
142795
142796type SslPoliciesPatchCall struct {
142797	s          *Service
142798	project    string
142799	sslPolicy  string
142800	sslpolicy  *SslPolicy
142801	urlParams_ gensupport.URLParams
142802	ctx_       context.Context
142803	header_    http.Header
142804}
142805
142806// Patch: Patches the specified SSL policy with the data included in the
142807// request.
142808func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
142809	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142810	c.project = project
142811	c.sslPolicy = sslPolicy
142812	c.sslpolicy = sslpolicy
142813	return c
142814}
142815
142816// RequestId sets the optional parameter "requestId": An optional
142817// request ID to identify requests. Specify a unique request ID so that
142818// if you must retry your request, the server will know to ignore the
142819// request if it has already been completed.
142820//
142821// For example, consider a situation where you make an initial request
142822// and the request times out. If you make the request again with the
142823// same request ID, the server can check if original operation with the
142824// same request ID was received, and if so, will ignore the second
142825// request. This prevents clients from accidentally creating duplicate
142826// commitments.
142827//
142828// The request ID must be a valid UUID with the exception that zero UUID
142829// is not supported (00000000-0000-0000-0000-000000000000).
142830func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
142831	c.urlParams_.Set("requestId", requestId)
142832	return c
142833}
142834
142835// Fields allows partial responses to be retrieved. See
142836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142837// for more information.
142838func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
142839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142840	return c
142841}
142842
142843// Context sets the context to be used in this call's Do method. Any
142844// pending HTTP request will be aborted if the provided context is
142845// canceled.
142846func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
142847	c.ctx_ = ctx
142848	return c
142849}
142850
142851// Header returns an http.Header that can be modified by the caller to
142852// add HTTP headers to the request.
142853func (c *SslPoliciesPatchCall) Header() http.Header {
142854	if c.header_ == nil {
142855		c.header_ = make(http.Header)
142856	}
142857	return c.header_
142858}
142859
142860func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
142861	reqHeaders := make(http.Header)
142862	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
142863	for k, v := range c.header_ {
142864		reqHeaders[k] = v
142865	}
142866	reqHeaders.Set("User-Agent", c.s.userAgent())
142867	var body io.Reader = nil
142868	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
142869	if err != nil {
142870		return nil, err
142871	}
142872	reqHeaders.Set("Content-Type", "application/json")
142873	c.urlParams_.Set("alt", alt)
142874	c.urlParams_.Set("prettyPrint", "false")
142875	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
142876	urls += "?" + c.urlParams_.Encode()
142877	req, err := http.NewRequest("PATCH", urls, body)
142878	if err != nil {
142879		return nil, err
142880	}
142881	req.Header = reqHeaders
142882	googleapi.Expand(req.URL, map[string]string{
142883		"project":   c.project,
142884		"sslPolicy": c.sslPolicy,
142885	})
142886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142887}
142888
142889// Do executes the "compute.sslPolicies.patch" call.
142890// Exactly one of *Operation or error will be non-nil. Any non-2xx
142891// status code is an error. Response headers are in either
142892// *Operation.ServerResponse.Header or (if a response was returned at
142893// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142894// to check whether the returned error was because
142895// http.StatusNotModified was returned.
142896func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142897	gensupport.SetOptions(c.urlParams_, opts...)
142898	res, err := c.doRequest("json")
142899	if res != nil && res.StatusCode == http.StatusNotModified {
142900		if res.Body != nil {
142901			res.Body.Close()
142902		}
142903		return nil, &googleapi.Error{
142904			Code:   res.StatusCode,
142905			Header: res.Header,
142906		}
142907	}
142908	if err != nil {
142909		return nil, err
142910	}
142911	defer googleapi.CloseBody(res)
142912	if err := googleapi.CheckResponse(res); err != nil {
142913		return nil, err
142914	}
142915	ret := &Operation{
142916		ServerResponse: googleapi.ServerResponse{
142917			Header:         res.Header,
142918			HTTPStatusCode: res.StatusCode,
142919		},
142920	}
142921	target := &ret
142922	if err := gensupport.DecodeResponse(target, res); err != nil {
142923		return nil, err
142924	}
142925	return ret, nil
142926	// {
142927	//   "description": "Patches the specified SSL policy with the data included in the request.",
142928	//   "httpMethod": "PATCH",
142929	//   "id": "compute.sslPolicies.patch",
142930	//   "parameterOrder": [
142931	//     "project",
142932	//     "sslPolicy"
142933	//   ],
142934	//   "parameters": {
142935	//     "project": {
142936	//       "description": "Project ID for this request.",
142937	//       "location": "path",
142938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142939	//       "required": true,
142940	//       "type": "string"
142941	//     },
142942	//     "requestId": {
142943	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142944	//       "location": "query",
142945	//       "type": "string"
142946	//     },
142947	//     "sslPolicy": {
142948	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
142949	//       "location": "path",
142950	//       "required": true,
142951	//       "type": "string"
142952	//     }
142953	//   },
142954	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
142955	//   "request": {
142956	//     "$ref": "SslPolicy"
142957	//   },
142958	//   "response": {
142959	//     "$ref": "Operation"
142960	//   },
142961	//   "scopes": [
142962	//     "https://www.googleapis.com/auth/cloud-platform",
142963	//     "https://www.googleapis.com/auth/compute"
142964	//   ]
142965	// }
142966
142967}
142968
142969// method id "compute.sslPolicies.testIamPermissions":
142970
142971type SslPoliciesTestIamPermissionsCall struct {
142972	s                      *Service
142973	project                string
142974	resource               string
142975	testpermissionsrequest *TestPermissionsRequest
142976	urlParams_             gensupport.URLParams
142977	ctx_                   context.Context
142978	header_                http.Header
142979}
142980
142981// TestIamPermissions: Returns permissions that a caller has on the
142982// specified resource.
142983func (r *SslPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslPoliciesTestIamPermissionsCall {
142984	c := &SslPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142985	c.project = project
142986	c.resource = resource
142987	c.testpermissionsrequest = testpermissionsrequest
142988	return c
142989}
142990
142991// Fields allows partial responses to be retrieved. See
142992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142993// for more information.
142994func (c *SslPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslPoliciesTestIamPermissionsCall {
142995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142996	return c
142997}
142998
142999// Context sets the context to be used in this call's Do method. Any
143000// pending HTTP request will be aborted if the provided context is
143001// canceled.
143002func (c *SslPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SslPoliciesTestIamPermissionsCall {
143003	c.ctx_ = ctx
143004	return c
143005}
143006
143007// Header returns an http.Header that can be modified by the caller to
143008// add HTTP headers to the request.
143009func (c *SslPoliciesTestIamPermissionsCall) Header() http.Header {
143010	if c.header_ == nil {
143011		c.header_ = make(http.Header)
143012	}
143013	return c.header_
143014}
143015
143016func (c *SslPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
143017	reqHeaders := make(http.Header)
143018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
143019	for k, v := range c.header_ {
143020		reqHeaders[k] = v
143021	}
143022	reqHeaders.Set("User-Agent", c.s.userAgent())
143023	var body io.Reader = nil
143024	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
143025	if err != nil {
143026		return nil, err
143027	}
143028	reqHeaders.Set("Content-Type", "application/json")
143029	c.urlParams_.Set("alt", alt)
143030	c.urlParams_.Set("prettyPrint", "false")
143031	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{resource}/testIamPermissions")
143032	urls += "?" + c.urlParams_.Encode()
143033	req, err := http.NewRequest("POST", urls, body)
143034	if err != nil {
143035		return nil, err
143036	}
143037	req.Header = reqHeaders
143038	googleapi.Expand(req.URL, map[string]string{
143039		"project":  c.project,
143040		"resource": c.resource,
143041	})
143042	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143043}
143044
143045// Do executes the "compute.sslPolicies.testIamPermissions" call.
143046// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
143047// non-2xx status code is an error. Response headers are in either
143048// *TestPermissionsResponse.ServerResponse.Header or (if a response was
143049// returned at all) in error.(*googleapi.Error).Header. Use
143050// googleapi.IsNotModified to check whether the returned error was
143051// because http.StatusNotModified was returned.
143052func (c *SslPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
143053	gensupport.SetOptions(c.urlParams_, opts...)
143054	res, err := c.doRequest("json")
143055	if res != nil && res.StatusCode == http.StatusNotModified {
143056		if res.Body != nil {
143057			res.Body.Close()
143058		}
143059		return nil, &googleapi.Error{
143060			Code:   res.StatusCode,
143061			Header: res.Header,
143062		}
143063	}
143064	if err != nil {
143065		return nil, err
143066	}
143067	defer googleapi.CloseBody(res)
143068	if err := googleapi.CheckResponse(res); err != nil {
143069		return nil, err
143070	}
143071	ret := &TestPermissionsResponse{
143072		ServerResponse: googleapi.ServerResponse{
143073			Header:         res.Header,
143074			HTTPStatusCode: res.StatusCode,
143075		},
143076	}
143077	target := &ret
143078	if err := gensupport.DecodeResponse(target, res); err != nil {
143079		return nil, err
143080	}
143081	return ret, nil
143082	// {
143083	//   "description": "Returns permissions that a caller has on the specified resource.",
143084	//   "httpMethod": "POST",
143085	//   "id": "compute.sslPolicies.testIamPermissions",
143086	//   "parameterOrder": [
143087	//     "project",
143088	//     "resource"
143089	//   ],
143090	//   "parameters": {
143091	//     "project": {
143092	//       "description": "Project ID for this request.",
143093	//       "location": "path",
143094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143095	//       "required": true,
143096	//       "type": "string"
143097	//     },
143098	//     "resource": {
143099	//       "description": "Name or id of the resource for this request.",
143100	//       "location": "path",
143101	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143102	//       "required": true,
143103	//       "type": "string"
143104	//     }
143105	//   },
143106	//   "path": "{project}/global/sslPolicies/{resource}/testIamPermissions",
143107	//   "request": {
143108	//     "$ref": "TestPermissionsRequest"
143109	//   },
143110	//   "response": {
143111	//     "$ref": "TestPermissionsResponse"
143112	//   },
143113	//   "scopes": [
143114	//     "https://www.googleapis.com/auth/cloud-platform",
143115	//     "https://www.googleapis.com/auth/compute",
143116	//     "https://www.googleapis.com/auth/compute.readonly"
143117	//   ]
143118	// }
143119
143120}
143121
143122// method id "compute.subnetworks.aggregatedList":
143123
143124type SubnetworksAggregatedListCall struct {
143125	s            *Service
143126	project      string
143127	urlParams_   gensupport.URLParams
143128	ifNoneMatch_ string
143129	ctx_         context.Context
143130	header_      http.Header
143131}
143132
143133// AggregatedList: Retrieves an aggregated list of subnetworks.
143134func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
143135	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143136	c.project = project
143137	return c
143138}
143139
143140// Filter sets the optional parameter "filter": A filter expression that
143141// filters resources listed in the response. The expression must specify
143142// the field name, a comparison operator, and the value that you want to
143143// use for filtering. The value must be a string, a number, or a
143144// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143145// `<`.
143146//
143147// For example, if you are filtering Compute Engine instances, you can
143148// exclude instances named `example-instance` by specifying `name !=
143149// example-instance`.
143150//
143151// You can also filter nested fields. For example, you could specify
143152// `scheduling.automaticRestart = false` to include instances only if
143153// they are not scheduled for automatic restarts. You can use filtering
143154// on nested fields to filter based on resource labels.
143155//
143156// To filter on multiple expressions, provide each separate expression
143157// within parentheses. For example: ``` (scheduling.automaticRestart =
143158// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
143159// is an `AND` expression. However, you can include `AND` and `OR`
143160// expressions explicitly. For example: ``` (cpuPlatform = "Intel
143161// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
143162// (scheduling.automaticRestart = true) ```
143163func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
143164	c.urlParams_.Set("filter", filter)
143165	return c
143166}
143167
143168// IncludeAllScopes sets the optional parameter "includeAllScopes":
143169// Indicates whether every visible scope for each scope type (zone,
143170// region, global) should be included in the response. For new resource
143171// types added after this field, the flag has no effect as new resource
143172// types will always include every visible scope for each scope type in
143173// response. For resource types which predate this field, if this flag
143174// is omitted or false, only scopes of the scope types where the
143175// resource type is expected to be found will be included.
143176func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
143177	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
143178	return c
143179}
143180
143181// MaxResults sets the optional parameter "maxResults": The maximum
143182// number of results per page that should be returned. If the number of
143183// available results is larger than `maxResults`, Compute Engine returns
143184// a `nextPageToken` that can be used to get the next page of results in
143185// subsequent list requests. Acceptable values are `0` to `500`,
143186// inclusive. (Default: `500`)
143187func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
143188	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143189	return c
143190}
143191
143192// OrderBy sets the optional parameter "orderBy": Sorts list results by
143193// a certain order. By default, results are returned in alphanumerical
143194// order based on the resource name.
143195//
143196// You can also sort results in descending order based on the creation
143197// timestamp using `orderBy="creationTimestamp desc". This sorts
143198// results based on the `creationTimestamp` field in reverse
143199// chronological order (newest result first). Use this to sort resources
143200// like operations so that the newest operation is returned
143201// first.
143202//
143203// Currently, only sorting by `name` or `creationTimestamp desc` is
143204// supported.
143205func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
143206	c.urlParams_.Set("orderBy", orderBy)
143207	return c
143208}
143209
143210// PageToken sets the optional parameter "pageToken": Specifies a page
143211// token to use. Set `pageToken` to the `nextPageToken` returned by a
143212// previous list request to get the next page of results.
143213func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
143214	c.urlParams_.Set("pageToken", pageToken)
143215	return c
143216}
143217
143218// Fields allows partial responses to be retrieved. See
143219// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143220// for more information.
143221func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
143222	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143223	return c
143224}
143225
143226// IfNoneMatch sets the optional parameter which makes the operation
143227// fail if the object's ETag matches the given value. This is useful for
143228// getting updates only after the object has changed since the last
143229// request. Use googleapi.IsNotModified to check whether the response
143230// error from Do is the result of In-None-Match.
143231func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
143232	c.ifNoneMatch_ = entityTag
143233	return c
143234}
143235
143236// Context sets the context to be used in this call's Do method. Any
143237// pending HTTP request will be aborted if the provided context is
143238// canceled.
143239func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
143240	c.ctx_ = ctx
143241	return c
143242}
143243
143244// Header returns an http.Header that can be modified by the caller to
143245// add HTTP headers to the request.
143246func (c *SubnetworksAggregatedListCall) Header() http.Header {
143247	if c.header_ == nil {
143248		c.header_ = make(http.Header)
143249	}
143250	return c.header_
143251}
143252
143253func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
143254	reqHeaders := make(http.Header)
143255	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
143256	for k, v := range c.header_ {
143257		reqHeaders[k] = v
143258	}
143259	reqHeaders.Set("User-Agent", c.s.userAgent())
143260	if c.ifNoneMatch_ != "" {
143261		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143262	}
143263	var body io.Reader = nil
143264	c.urlParams_.Set("alt", alt)
143265	c.urlParams_.Set("prettyPrint", "false")
143266	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
143267	urls += "?" + c.urlParams_.Encode()
143268	req, err := http.NewRequest("GET", urls, body)
143269	if err != nil {
143270		return nil, err
143271	}
143272	req.Header = reqHeaders
143273	googleapi.Expand(req.URL, map[string]string{
143274		"project": c.project,
143275	})
143276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143277}
143278
143279// Do executes the "compute.subnetworks.aggregatedList" call.
143280// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
143281// Any non-2xx status code is an error. Response headers are in either
143282// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
143283// returned at all) in error.(*googleapi.Error).Header. Use
143284// googleapi.IsNotModified to check whether the returned error was
143285// because http.StatusNotModified was returned.
143286func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
143287	gensupport.SetOptions(c.urlParams_, opts...)
143288	res, err := c.doRequest("json")
143289	if res != nil && res.StatusCode == http.StatusNotModified {
143290		if res.Body != nil {
143291			res.Body.Close()
143292		}
143293		return nil, &googleapi.Error{
143294			Code:   res.StatusCode,
143295			Header: res.Header,
143296		}
143297	}
143298	if err != nil {
143299		return nil, err
143300	}
143301	defer googleapi.CloseBody(res)
143302	if err := googleapi.CheckResponse(res); err != nil {
143303		return nil, err
143304	}
143305	ret := &SubnetworkAggregatedList{
143306		ServerResponse: googleapi.ServerResponse{
143307			Header:         res.Header,
143308			HTTPStatusCode: res.StatusCode,
143309		},
143310	}
143311	target := &ret
143312	if err := gensupport.DecodeResponse(target, res); err != nil {
143313		return nil, err
143314	}
143315	return ret, nil
143316	// {
143317	//   "description": "Retrieves an aggregated list of subnetworks.",
143318	//   "httpMethod": "GET",
143319	//   "id": "compute.subnetworks.aggregatedList",
143320	//   "parameterOrder": [
143321	//     "project"
143322	//   ],
143323	//   "parameters": {
143324	//     "filter": {
143325	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
143326	//       "location": "query",
143327	//       "type": "string"
143328	//     },
143329	//     "includeAllScopes": {
143330	//       "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.",
143331	//       "location": "query",
143332	//       "type": "boolean"
143333	//     },
143334	//     "maxResults": {
143335	//       "default": "500",
143336	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143337	//       "format": "uint32",
143338	//       "location": "query",
143339	//       "minimum": "0",
143340	//       "type": "integer"
143341	//     },
143342	//     "orderBy": {
143343	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
143344	//       "location": "query",
143345	//       "type": "string"
143346	//     },
143347	//     "pageToken": {
143348	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143349	//       "location": "query",
143350	//       "type": "string"
143351	//     },
143352	//     "project": {
143353	//       "description": "Project ID for this request.",
143354	//       "location": "path",
143355	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143356	//       "required": true,
143357	//       "type": "string"
143358	//     }
143359	//   },
143360	//   "path": "{project}/aggregated/subnetworks",
143361	//   "response": {
143362	//     "$ref": "SubnetworkAggregatedList"
143363	//   },
143364	//   "scopes": [
143365	//     "https://www.googleapis.com/auth/cloud-platform",
143366	//     "https://www.googleapis.com/auth/compute",
143367	//     "https://www.googleapis.com/auth/compute.readonly"
143368	//   ]
143369	// }
143370
143371}
143372
143373// Pages invokes f for each page of results.
143374// A non-nil error returned from f will halt the iteration.
143375// The provided context supersedes any context provided to the Context method.
143376func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
143377	c.ctx_ = ctx
143378	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143379	for {
143380		x, err := c.Do()
143381		if err != nil {
143382			return err
143383		}
143384		if err := f(x); err != nil {
143385			return err
143386		}
143387		if x.NextPageToken == "" {
143388			return nil
143389		}
143390		c.PageToken(x.NextPageToken)
143391	}
143392}
143393
143394// method id "compute.subnetworks.delete":
143395
143396type SubnetworksDeleteCall struct {
143397	s          *Service
143398	project    string
143399	region     string
143400	subnetwork string
143401	urlParams_ gensupport.URLParams
143402	ctx_       context.Context
143403	header_    http.Header
143404}
143405
143406// Delete: Deletes the specified subnetwork.
143407func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
143408	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143409	c.project = project
143410	c.region = region
143411	c.subnetwork = subnetwork
143412	return c
143413}
143414
143415// RequestId sets the optional parameter "requestId": An optional
143416// request ID to identify requests. Specify a unique request ID so that
143417// if you must retry your request, the server will know to ignore the
143418// request if it has already been completed.
143419//
143420// For example, consider a situation where you make an initial request
143421// and the request times out. If you make the request again with the
143422// same request ID, the server can check if original operation with the
143423// same request ID was received, and if so, will ignore the second
143424// request. This prevents clients from accidentally creating duplicate
143425// commitments.
143426//
143427// The request ID must be a valid UUID with the exception that zero UUID
143428// is not supported (00000000-0000-0000-0000-000000000000).
143429func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
143430	c.urlParams_.Set("requestId", requestId)
143431	return c
143432}
143433
143434// Fields allows partial responses to be retrieved. See
143435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143436// for more information.
143437func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
143438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143439	return c
143440}
143441
143442// Context sets the context to be used in this call's Do method. Any
143443// pending HTTP request will be aborted if the provided context is
143444// canceled.
143445func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
143446	c.ctx_ = ctx
143447	return c
143448}
143449
143450// Header returns an http.Header that can be modified by the caller to
143451// add HTTP headers to the request.
143452func (c *SubnetworksDeleteCall) Header() http.Header {
143453	if c.header_ == nil {
143454		c.header_ = make(http.Header)
143455	}
143456	return c.header_
143457}
143458
143459func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
143460	reqHeaders := make(http.Header)
143461	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
143462	for k, v := range c.header_ {
143463		reqHeaders[k] = v
143464	}
143465	reqHeaders.Set("User-Agent", c.s.userAgent())
143466	var body io.Reader = nil
143467	c.urlParams_.Set("alt", alt)
143468	c.urlParams_.Set("prettyPrint", "false")
143469	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
143470	urls += "?" + c.urlParams_.Encode()
143471	req, err := http.NewRequest("DELETE", urls, body)
143472	if err != nil {
143473		return nil, err
143474	}
143475	req.Header = reqHeaders
143476	googleapi.Expand(req.URL, map[string]string{
143477		"project":    c.project,
143478		"region":     c.region,
143479		"subnetwork": c.subnetwork,
143480	})
143481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143482}
143483
143484// Do executes the "compute.subnetworks.delete" call.
143485// Exactly one of *Operation or error will be non-nil. Any non-2xx
143486// status code is an error. Response headers are in either
143487// *Operation.ServerResponse.Header or (if a response was returned at
143488// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143489// to check whether the returned error was because
143490// http.StatusNotModified was returned.
143491func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143492	gensupport.SetOptions(c.urlParams_, opts...)
143493	res, err := c.doRequest("json")
143494	if res != nil && res.StatusCode == http.StatusNotModified {
143495		if res.Body != nil {
143496			res.Body.Close()
143497		}
143498		return nil, &googleapi.Error{
143499			Code:   res.StatusCode,
143500			Header: res.Header,
143501		}
143502	}
143503	if err != nil {
143504		return nil, err
143505	}
143506	defer googleapi.CloseBody(res)
143507	if err := googleapi.CheckResponse(res); err != nil {
143508		return nil, err
143509	}
143510	ret := &Operation{
143511		ServerResponse: googleapi.ServerResponse{
143512			Header:         res.Header,
143513			HTTPStatusCode: res.StatusCode,
143514		},
143515	}
143516	target := &ret
143517	if err := gensupport.DecodeResponse(target, res); err != nil {
143518		return nil, err
143519	}
143520	return ret, nil
143521	// {
143522	//   "description": "Deletes the specified subnetwork.",
143523	//   "httpMethod": "DELETE",
143524	//   "id": "compute.subnetworks.delete",
143525	//   "parameterOrder": [
143526	//     "project",
143527	//     "region",
143528	//     "subnetwork"
143529	//   ],
143530	//   "parameters": {
143531	//     "project": {
143532	//       "description": "Project ID for this request.",
143533	//       "location": "path",
143534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143535	//       "required": true,
143536	//       "type": "string"
143537	//     },
143538	//     "region": {
143539	//       "description": "Name of the region scoping this request.",
143540	//       "location": "path",
143541	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143542	//       "required": true,
143543	//       "type": "string"
143544	//     },
143545	//     "requestId": {
143546	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143547	//       "location": "query",
143548	//       "type": "string"
143549	//     },
143550	//     "subnetwork": {
143551	//       "description": "Name of the Subnetwork resource to delete.",
143552	//       "location": "path",
143553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143554	//       "required": true,
143555	//       "type": "string"
143556	//     }
143557	//   },
143558	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
143559	//   "response": {
143560	//     "$ref": "Operation"
143561	//   },
143562	//   "scopes": [
143563	//     "https://www.googleapis.com/auth/cloud-platform",
143564	//     "https://www.googleapis.com/auth/compute"
143565	//   ]
143566	// }
143567
143568}
143569
143570// method id "compute.subnetworks.expandIpCidrRange":
143571
143572type SubnetworksExpandIpCidrRangeCall struct {
143573	s                                   *Service
143574	project                             string
143575	region                              string
143576	subnetwork                          string
143577	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
143578	urlParams_                          gensupport.URLParams
143579	ctx_                                context.Context
143580	header_                             http.Header
143581}
143582
143583// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
143584// specified value.
143585func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
143586	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143587	c.project = project
143588	c.region = region
143589	c.subnetwork = subnetwork
143590	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
143591	return c
143592}
143593
143594// RequestId sets the optional parameter "requestId": An optional
143595// request ID to identify requests. Specify a unique request ID so that
143596// if you must retry your request, the server will know to ignore the
143597// request if it has already been completed.
143598//
143599// For example, consider a situation where you make an initial request
143600// and the request times out. If you make the request again with the
143601// same request ID, the server can check if original operation with the
143602// same request ID was received, and if so, will ignore the second
143603// request. This prevents clients from accidentally creating duplicate
143604// commitments.
143605//
143606// The request ID must be a valid UUID with the exception that zero UUID
143607// is not supported (00000000-0000-0000-0000-000000000000).
143608func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
143609	c.urlParams_.Set("requestId", requestId)
143610	return c
143611}
143612
143613// Fields allows partial responses to be retrieved. See
143614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143615// for more information.
143616func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
143617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143618	return c
143619}
143620
143621// Context sets the context to be used in this call's Do method. Any
143622// pending HTTP request will be aborted if the provided context is
143623// canceled.
143624func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
143625	c.ctx_ = ctx
143626	return c
143627}
143628
143629// Header returns an http.Header that can be modified by the caller to
143630// add HTTP headers to the request.
143631func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
143632	if c.header_ == nil {
143633		c.header_ = make(http.Header)
143634	}
143635	return c.header_
143636}
143637
143638func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
143639	reqHeaders := make(http.Header)
143640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
143641	for k, v := range c.header_ {
143642		reqHeaders[k] = v
143643	}
143644	reqHeaders.Set("User-Agent", c.s.userAgent())
143645	var body io.Reader = nil
143646	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
143647	if err != nil {
143648		return nil, err
143649	}
143650	reqHeaders.Set("Content-Type", "application/json")
143651	c.urlParams_.Set("alt", alt)
143652	c.urlParams_.Set("prettyPrint", "false")
143653	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
143654	urls += "?" + c.urlParams_.Encode()
143655	req, err := http.NewRequest("POST", urls, body)
143656	if err != nil {
143657		return nil, err
143658	}
143659	req.Header = reqHeaders
143660	googleapi.Expand(req.URL, map[string]string{
143661		"project":    c.project,
143662		"region":     c.region,
143663		"subnetwork": c.subnetwork,
143664	})
143665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143666}
143667
143668// Do executes the "compute.subnetworks.expandIpCidrRange" call.
143669// Exactly one of *Operation or error will be non-nil. Any non-2xx
143670// status code is an error. Response headers are in either
143671// *Operation.ServerResponse.Header or (if a response was returned at
143672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143673// to check whether the returned error was because
143674// http.StatusNotModified was returned.
143675func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143676	gensupport.SetOptions(c.urlParams_, opts...)
143677	res, err := c.doRequest("json")
143678	if res != nil && res.StatusCode == http.StatusNotModified {
143679		if res.Body != nil {
143680			res.Body.Close()
143681		}
143682		return nil, &googleapi.Error{
143683			Code:   res.StatusCode,
143684			Header: res.Header,
143685		}
143686	}
143687	if err != nil {
143688		return nil, err
143689	}
143690	defer googleapi.CloseBody(res)
143691	if err := googleapi.CheckResponse(res); err != nil {
143692		return nil, err
143693	}
143694	ret := &Operation{
143695		ServerResponse: googleapi.ServerResponse{
143696			Header:         res.Header,
143697			HTTPStatusCode: res.StatusCode,
143698		},
143699	}
143700	target := &ret
143701	if err := gensupport.DecodeResponse(target, res); err != nil {
143702		return nil, err
143703	}
143704	return ret, nil
143705	// {
143706	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
143707	//   "httpMethod": "POST",
143708	//   "id": "compute.subnetworks.expandIpCidrRange",
143709	//   "parameterOrder": [
143710	//     "project",
143711	//     "region",
143712	//     "subnetwork"
143713	//   ],
143714	//   "parameters": {
143715	//     "project": {
143716	//       "description": "Project ID for this request.",
143717	//       "location": "path",
143718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143719	//       "required": true,
143720	//       "type": "string"
143721	//     },
143722	//     "region": {
143723	//       "description": "Name of the region scoping this request.",
143724	//       "location": "path",
143725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143726	//       "required": true,
143727	//       "type": "string"
143728	//     },
143729	//     "requestId": {
143730	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143731	//       "location": "query",
143732	//       "type": "string"
143733	//     },
143734	//     "subnetwork": {
143735	//       "description": "Name of the Subnetwork resource to update.",
143736	//       "location": "path",
143737	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143738	//       "required": true,
143739	//       "type": "string"
143740	//     }
143741	//   },
143742	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
143743	//   "request": {
143744	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
143745	//   },
143746	//   "response": {
143747	//     "$ref": "Operation"
143748	//   },
143749	//   "scopes": [
143750	//     "https://www.googleapis.com/auth/cloud-platform",
143751	//     "https://www.googleapis.com/auth/compute"
143752	//   ]
143753	// }
143754
143755}
143756
143757// method id "compute.subnetworks.get":
143758
143759type SubnetworksGetCall struct {
143760	s            *Service
143761	project      string
143762	region       string
143763	subnetwork   string
143764	urlParams_   gensupport.URLParams
143765	ifNoneMatch_ string
143766	ctx_         context.Context
143767	header_      http.Header
143768}
143769
143770// Get: Returns the specified subnetwork. Gets a list of available
143771// subnetworks list() request.
143772func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
143773	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143774	c.project = project
143775	c.region = region
143776	c.subnetwork = subnetwork
143777	return c
143778}
143779
143780// Fields allows partial responses to be retrieved. See
143781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143782// for more information.
143783func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
143784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143785	return c
143786}
143787
143788// IfNoneMatch sets the optional parameter which makes the operation
143789// fail if the object's ETag matches the given value. This is useful for
143790// getting updates only after the object has changed since the last
143791// request. Use googleapi.IsNotModified to check whether the response
143792// error from Do is the result of In-None-Match.
143793func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
143794	c.ifNoneMatch_ = entityTag
143795	return c
143796}
143797
143798// Context sets the context to be used in this call's Do method. Any
143799// pending HTTP request will be aborted if the provided context is
143800// canceled.
143801func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
143802	c.ctx_ = ctx
143803	return c
143804}
143805
143806// Header returns an http.Header that can be modified by the caller to
143807// add HTTP headers to the request.
143808func (c *SubnetworksGetCall) Header() http.Header {
143809	if c.header_ == nil {
143810		c.header_ = make(http.Header)
143811	}
143812	return c.header_
143813}
143814
143815func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
143816	reqHeaders := make(http.Header)
143817	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
143818	for k, v := range c.header_ {
143819		reqHeaders[k] = v
143820	}
143821	reqHeaders.Set("User-Agent", c.s.userAgent())
143822	if c.ifNoneMatch_ != "" {
143823		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143824	}
143825	var body io.Reader = nil
143826	c.urlParams_.Set("alt", alt)
143827	c.urlParams_.Set("prettyPrint", "false")
143828	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
143829	urls += "?" + c.urlParams_.Encode()
143830	req, err := http.NewRequest("GET", urls, body)
143831	if err != nil {
143832		return nil, err
143833	}
143834	req.Header = reqHeaders
143835	googleapi.Expand(req.URL, map[string]string{
143836		"project":    c.project,
143837		"region":     c.region,
143838		"subnetwork": c.subnetwork,
143839	})
143840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143841}
143842
143843// Do executes the "compute.subnetworks.get" call.
143844// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
143845// status code is an error. Response headers are in either
143846// *Subnetwork.ServerResponse.Header or (if a response was returned at
143847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143848// to check whether the returned error was because
143849// http.StatusNotModified was returned.
143850func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
143851	gensupport.SetOptions(c.urlParams_, opts...)
143852	res, err := c.doRequest("json")
143853	if res != nil && res.StatusCode == http.StatusNotModified {
143854		if res.Body != nil {
143855			res.Body.Close()
143856		}
143857		return nil, &googleapi.Error{
143858			Code:   res.StatusCode,
143859			Header: res.Header,
143860		}
143861	}
143862	if err != nil {
143863		return nil, err
143864	}
143865	defer googleapi.CloseBody(res)
143866	if err := googleapi.CheckResponse(res); err != nil {
143867		return nil, err
143868	}
143869	ret := &Subnetwork{
143870		ServerResponse: googleapi.ServerResponse{
143871			Header:         res.Header,
143872			HTTPStatusCode: res.StatusCode,
143873		},
143874	}
143875	target := &ret
143876	if err := gensupport.DecodeResponse(target, res); err != nil {
143877		return nil, err
143878	}
143879	return ret, nil
143880	// {
143881	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
143882	//   "httpMethod": "GET",
143883	//   "id": "compute.subnetworks.get",
143884	//   "parameterOrder": [
143885	//     "project",
143886	//     "region",
143887	//     "subnetwork"
143888	//   ],
143889	//   "parameters": {
143890	//     "project": {
143891	//       "description": "Project ID for this request.",
143892	//       "location": "path",
143893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143894	//       "required": true,
143895	//       "type": "string"
143896	//     },
143897	//     "region": {
143898	//       "description": "Name of the region scoping this request.",
143899	//       "location": "path",
143900	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143901	//       "required": true,
143902	//       "type": "string"
143903	//     },
143904	//     "subnetwork": {
143905	//       "description": "Name of the Subnetwork resource to return.",
143906	//       "location": "path",
143907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143908	//       "required": true,
143909	//       "type": "string"
143910	//     }
143911	//   },
143912	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
143913	//   "response": {
143914	//     "$ref": "Subnetwork"
143915	//   },
143916	//   "scopes": [
143917	//     "https://www.googleapis.com/auth/cloud-platform",
143918	//     "https://www.googleapis.com/auth/compute",
143919	//     "https://www.googleapis.com/auth/compute.readonly"
143920	//   ]
143921	// }
143922
143923}
143924
143925// method id "compute.subnetworks.getIamPolicy":
143926
143927type SubnetworksGetIamPolicyCall struct {
143928	s            *Service
143929	project      string
143930	region       string
143931	resource     string
143932	urlParams_   gensupport.URLParams
143933	ifNoneMatch_ string
143934	ctx_         context.Context
143935	header_      http.Header
143936}
143937
143938// GetIamPolicy: Gets the access control policy for a resource. May be
143939// empty if no such policy or resource exists.
143940func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
143941	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143942	c.project = project
143943	c.region = region
143944	c.resource = resource
143945	return c
143946}
143947
143948// OptionsRequestedPolicyVersion sets the optional parameter
143949// "optionsRequestedPolicyVersion": Requested IAM Policy version.
143950func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
143951	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
143952	return c
143953}
143954
143955// Fields allows partial responses to be retrieved. See
143956// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143957// for more information.
143958func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
143959	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143960	return c
143961}
143962
143963// IfNoneMatch sets the optional parameter which makes the operation
143964// fail if the object's ETag matches the given value. This is useful for
143965// getting updates only after the object has changed since the last
143966// request. Use googleapi.IsNotModified to check whether the response
143967// error from Do is the result of In-None-Match.
143968func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
143969	c.ifNoneMatch_ = entityTag
143970	return c
143971}
143972
143973// Context sets the context to be used in this call's Do method. Any
143974// pending HTTP request will be aborted if the provided context is
143975// canceled.
143976func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
143977	c.ctx_ = ctx
143978	return c
143979}
143980
143981// Header returns an http.Header that can be modified by the caller to
143982// add HTTP headers to the request.
143983func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
143984	if c.header_ == nil {
143985		c.header_ = make(http.Header)
143986	}
143987	return c.header_
143988}
143989
143990func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
143991	reqHeaders := make(http.Header)
143992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
143993	for k, v := range c.header_ {
143994		reqHeaders[k] = v
143995	}
143996	reqHeaders.Set("User-Agent", c.s.userAgent())
143997	if c.ifNoneMatch_ != "" {
143998		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143999	}
144000	var body io.Reader = nil
144001	c.urlParams_.Set("alt", alt)
144002	c.urlParams_.Set("prettyPrint", "false")
144003	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
144004	urls += "?" + c.urlParams_.Encode()
144005	req, err := http.NewRequest("GET", urls, body)
144006	if err != nil {
144007		return nil, err
144008	}
144009	req.Header = reqHeaders
144010	googleapi.Expand(req.URL, map[string]string{
144011		"project":  c.project,
144012		"region":   c.region,
144013		"resource": c.resource,
144014	})
144015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144016}
144017
144018// Do executes the "compute.subnetworks.getIamPolicy" call.
144019// Exactly one of *Policy or error will be non-nil. Any non-2xx status
144020// code is an error. Response headers are in either
144021// *Policy.ServerResponse.Header or (if a response was returned at all)
144022// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
144023// check whether the returned error was because http.StatusNotModified
144024// was returned.
144025func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
144026	gensupport.SetOptions(c.urlParams_, opts...)
144027	res, err := c.doRequest("json")
144028	if res != nil && res.StatusCode == http.StatusNotModified {
144029		if res.Body != nil {
144030			res.Body.Close()
144031		}
144032		return nil, &googleapi.Error{
144033			Code:   res.StatusCode,
144034			Header: res.Header,
144035		}
144036	}
144037	if err != nil {
144038		return nil, err
144039	}
144040	defer googleapi.CloseBody(res)
144041	if err := googleapi.CheckResponse(res); err != nil {
144042		return nil, err
144043	}
144044	ret := &Policy{
144045		ServerResponse: googleapi.ServerResponse{
144046			Header:         res.Header,
144047			HTTPStatusCode: res.StatusCode,
144048		},
144049	}
144050	target := &ret
144051	if err := gensupport.DecodeResponse(target, res); err != nil {
144052		return nil, err
144053	}
144054	return ret, nil
144055	// {
144056	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
144057	//   "httpMethod": "GET",
144058	//   "id": "compute.subnetworks.getIamPolicy",
144059	//   "parameterOrder": [
144060	//     "project",
144061	//     "region",
144062	//     "resource"
144063	//   ],
144064	//   "parameters": {
144065	//     "optionsRequestedPolicyVersion": {
144066	//       "description": "Requested IAM Policy version.",
144067	//       "format": "int32",
144068	//       "location": "query",
144069	//       "type": "integer"
144070	//     },
144071	//     "project": {
144072	//       "description": "Project ID for this request.",
144073	//       "location": "path",
144074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144075	//       "required": true,
144076	//       "type": "string"
144077	//     },
144078	//     "region": {
144079	//       "description": "The name of the region for this request.",
144080	//       "location": "path",
144081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144082	//       "required": true,
144083	//       "type": "string"
144084	//     },
144085	//     "resource": {
144086	//       "description": "Name or id of the resource for this request.",
144087	//       "location": "path",
144088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144089	//       "required": true,
144090	//       "type": "string"
144091	//     }
144092	//   },
144093	//   "path": "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
144094	//   "response": {
144095	//     "$ref": "Policy"
144096	//   },
144097	//   "scopes": [
144098	//     "https://www.googleapis.com/auth/cloud-platform",
144099	//     "https://www.googleapis.com/auth/compute",
144100	//     "https://www.googleapis.com/auth/compute.readonly"
144101	//   ]
144102	// }
144103
144104}
144105
144106// method id "compute.subnetworks.insert":
144107
144108type SubnetworksInsertCall struct {
144109	s          *Service
144110	project    string
144111	region     string
144112	subnetwork *Subnetwork
144113	urlParams_ gensupport.URLParams
144114	ctx_       context.Context
144115	header_    http.Header
144116}
144117
144118// Insert: Creates a subnetwork in the specified project using the data
144119// included in the request.
144120func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
144121	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144122	c.project = project
144123	c.region = region
144124	c.subnetwork = subnetwork
144125	return c
144126}
144127
144128// RequestId sets the optional parameter "requestId": An optional
144129// request ID to identify requests. Specify a unique request ID so that
144130// if you must retry your request, the server will know to ignore the
144131// request if it has already been completed.
144132//
144133// For example, consider a situation where you make an initial request
144134// and the request times out. If you make the request again with the
144135// same request ID, the server can check if original operation with the
144136// same request ID was received, and if so, will ignore the second
144137// request. This prevents clients from accidentally creating duplicate
144138// commitments.
144139//
144140// The request ID must be a valid UUID with the exception that zero UUID
144141// is not supported (00000000-0000-0000-0000-000000000000).
144142func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
144143	c.urlParams_.Set("requestId", requestId)
144144	return c
144145}
144146
144147// Fields allows partial responses to be retrieved. See
144148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144149// for more information.
144150func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
144151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144152	return c
144153}
144154
144155// Context sets the context to be used in this call's Do method. Any
144156// pending HTTP request will be aborted if the provided context is
144157// canceled.
144158func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
144159	c.ctx_ = ctx
144160	return c
144161}
144162
144163// Header returns an http.Header that can be modified by the caller to
144164// add HTTP headers to the request.
144165func (c *SubnetworksInsertCall) Header() http.Header {
144166	if c.header_ == nil {
144167		c.header_ = make(http.Header)
144168	}
144169	return c.header_
144170}
144171
144172func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
144173	reqHeaders := make(http.Header)
144174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
144175	for k, v := range c.header_ {
144176		reqHeaders[k] = v
144177	}
144178	reqHeaders.Set("User-Agent", c.s.userAgent())
144179	var body io.Reader = nil
144180	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
144181	if err != nil {
144182		return nil, err
144183	}
144184	reqHeaders.Set("Content-Type", "application/json")
144185	c.urlParams_.Set("alt", alt)
144186	c.urlParams_.Set("prettyPrint", "false")
144187	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
144188	urls += "?" + c.urlParams_.Encode()
144189	req, err := http.NewRequest("POST", urls, body)
144190	if err != nil {
144191		return nil, err
144192	}
144193	req.Header = reqHeaders
144194	googleapi.Expand(req.URL, map[string]string{
144195		"project": c.project,
144196		"region":  c.region,
144197	})
144198	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144199}
144200
144201// Do executes the "compute.subnetworks.insert" call.
144202// Exactly one of *Operation or error will be non-nil. Any non-2xx
144203// status code is an error. Response headers are in either
144204// *Operation.ServerResponse.Header or (if a response was returned at
144205// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144206// to check whether the returned error was because
144207// http.StatusNotModified was returned.
144208func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144209	gensupport.SetOptions(c.urlParams_, opts...)
144210	res, err := c.doRequest("json")
144211	if res != nil && res.StatusCode == http.StatusNotModified {
144212		if res.Body != nil {
144213			res.Body.Close()
144214		}
144215		return nil, &googleapi.Error{
144216			Code:   res.StatusCode,
144217			Header: res.Header,
144218		}
144219	}
144220	if err != nil {
144221		return nil, err
144222	}
144223	defer googleapi.CloseBody(res)
144224	if err := googleapi.CheckResponse(res); err != nil {
144225		return nil, err
144226	}
144227	ret := &Operation{
144228		ServerResponse: googleapi.ServerResponse{
144229			Header:         res.Header,
144230			HTTPStatusCode: res.StatusCode,
144231		},
144232	}
144233	target := &ret
144234	if err := gensupport.DecodeResponse(target, res); err != nil {
144235		return nil, err
144236	}
144237	return ret, nil
144238	// {
144239	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
144240	//   "httpMethod": "POST",
144241	//   "id": "compute.subnetworks.insert",
144242	//   "parameterOrder": [
144243	//     "project",
144244	//     "region"
144245	//   ],
144246	//   "parameters": {
144247	//     "project": {
144248	//       "description": "Project ID for this request.",
144249	//       "location": "path",
144250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144251	//       "required": true,
144252	//       "type": "string"
144253	//     },
144254	//     "region": {
144255	//       "description": "Name of the region scoping this request.",
144256	//       "location": "path",
144257	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144258	//       "required": true,
144259	//       "type": "string"
144260	//     },
144261	//     "requestId": {
144262	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144263	//       "location": "query",
144264	//       "type": "string"
144265	//     }
144266	//   },
144267	//   "path": "{project}/regions/{region}/subnetworks",
144268	//   "request": {
144269	//     "$ref": "Subnetwork"
144270	//   },
144271	//   "response": {
144272	//     "$ref": "Operation"
144273	//   },
144274	//   "scopes": [
144275	//     "https://www.googleapis.com/auth/cloud-platform",
144276	//     "https://www.googleapis.com/auth/compute"
144277	//   ]
144278	// }
144279
144280}
144281
144282// method id "compute.subnetworks.list":
144283
144284type SubnetworksListCall struct {
144285	s            *Service
144286	project      string
144287	region       string
144288	urlParams_   gensupport.URLParams
144289	ifNoneMatch_ string
144290	ctx_         context.Context
144291	header_      http.Header
144292}
144293
144294// List: Retrieves a list of subnetworks available to the specified
144295// project.
144296func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
144297	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144298	c.project = project
144299	c.region = region
144300	return c
144301}
144302
144303// Filter sets the optional parameter "filter": A filter expression that
144304// filters resources listed in the response. The expression must specify
144305// the field name, a comparison operator, and the value that you want to
144306// use for filtering. The value must be a string, a number, or a
144307// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144308// `<`.
144309//
144310// For example, if you are filtering Compute Engine instances, you can
144311// exclude instances named `example-instance` by specifying `name !=
144312// example-instance`.
144313//
144314// You can also filter nested fields. For example, you could specify
144315// `scheduling.automaticRestart = false` to include instances only if
144316// they are not scheduled for automatic restarts. You can use filtering
144317// on nested fields to filter based on resource labels.
144318//
144319// To filter on multiple expressions, provide each separate expression
144320// within parentheses. For example: ``` (scheduling.automaticRestart =
144321// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
144322// is an `AND` expression. However, you can include `AND` and `OR`
144323// expressions explicitly. For example: ``` (cpuPlatform = "Intel
144324// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
144325// (scheduling.automaticRestart = true) ```
144326func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
144327	c.urlParams_.Set("filter", filter)
144328	return c
144329}
144330
144331// MaxResults sets the optional parameter "maxResults": The maximum
144332// number of results per page that should be returned. If the number of
144333// available results is larger than `maxResults`, Compute Engine returns
144334// a `nextPageToken` that can be used to get the next page of results in
144335// subsequent list requests. Acceptable values are `0` to `500`,
144336// inclusive. (Default: `500`)
144337func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
144338	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144339	return c
144340}
144341
144342// OrderBy sets the optional parameter "orderBy": Sorts list results by
144343// a certain order. By default, results are returned in alphanumerical
144344// order based on the resource name.
144345//
144346// You can also sort results in descending order based on the creation
144347// timestamp using `orderBy="creationTimestamp desc". This sorts
144348// results based on the `creationTimestamp` field in reverse
144349// chronological order (newest result first). Use this to sort resources
144350// like operations so that the newest operation is returned
144351// first.
144352//
144353// Currently, only sorting by `name` or `creationTimestamp desc` is
144354// supported.
144355func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
144356	c.urlParams_.Set("orderBy", orderBy)
144357	return c
144358}
144359
144360// PageToken sets the optional parameter "pageToken": Specifies a page
144361// token to use. Set `pageToken` to the `nextPageToken` returned by a
144362// previous list request to get the next page of results.
144363func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
144364	c.urlParams_.Set("pageToken", pageToken)
144365	return c
144366}
144367
144368// Fields allows partial responses to be retrieved. See
144369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144370// for more information.
144371func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
144372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144373	return c
144374}
144375
144376// IfNoneMatch sets the optional parameter which makes the operation
144377// fail if the object's ETag matches the given value. This is useful for
144378// getting updates only after the object has changed since the last
144379// request. Use googleapi.IsNotModified to check whether the response
144380// error from Do is the result of In-None-Match.
144381func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
144382	c.ifNoneMatch_ = entityTag
144383	return c
144384}
144385
144386// Context sets the context to be used in this call's Do method. Any
144387// pending HTTP request will be aborted if the provided context is
144388// canceled.
144389func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
144390	c.ctx_ = ctx
144391	return c
144392}
144393
144394// Header returns an http.Header that can be modified by the caller to
144395// add HTTP headers to the request.
144396func (c *SubnetworksListCall) Header() http.Header {
144397	if c.header_ == nil {
144398		c.header_ = make(http.Header)
144399	}
144400	return c.header_
144401}
144402
144403func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
144404	reqHeaders := make(http.Header)
144405	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
144406	for k, v := range c.header_ {
144407		reqHeaders[k] = v
144408	}
144409	reqHeaders.Set("User-Agent", c.s.userAgent())
144410	if c.ifNoneMatch_ != "" {
144411		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144412	}
144413	var body io.Reader = nil
144414	c.urlParams_.Set("alt", alt)
144415	c.urlParams_.Set("prettyPrint", "false")
144416	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
144417	urls += "?" + c.urlParams_.Encode()
144418	req, err := http.NewRequest("GET", urls, body)
144419	if err != nil {
144420		return nil, err
144421	}
144422	req.Header = reqHeaders
144423	googleapi.Expand(req.URL, map[string]string{
144424		"project": c.project,
144425		"region":  c.region,
144426	})
144427	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144428}
144429
144430// Do executes the "compute.subnetworks.list" call.
144431// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
144432// status code is an error. Response headers are in either
144433// *SubnetworkList.ServerResponse.Header or (if a response was returned
144434// at all) in error.(*googleapi.Error).Header. Use
144435// googleapi.IsNotModified to check whether the returned error was
144436// because http.StatusNotModified was returned.
144437func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
144438	gensupport.SetOptions(c.urlParams_, opts...)
144439	res, err := c.doRequest("json")
144440	if res != nil && res.StatusCode == http.StatusNotModified {
144441		if res.Body != nil {
144442			res.Body.Close()
144443		}
144444		return nil, &googleapi.Error{
144445			Code:   res.StatusCode,
144446			Header: res.Header,
144447		}
144448	}
144449	if err != nil {
144450		return nil, err
144451	}
144452	defer googleapi.CloseBody(res)
144453	if err := googleapi.CheckResponse(res); err != nil {
144454		return nil, err
144455	}
144456	ret := &SubnetworkList{
144457		ServerResponse: googleapi.ServerResponse{
144458			Header:         res.Header,
144459			HTTPStatusCode: res.StatusCode,
144460		},
144461	}
144462	target := &ret
144463	if err := gensupport.DecodeResponse(target, res); err != nil {
144464		return nil, err
144465	}
144466	return ret, nil
144467	// {
144468	//   "description": "Retrieves a list of subnetworks available to the specified project.",
144469	//   "httpMethod": "GET",
144470	//   "id": "compute.subnetworks.list",
144471	//   "parameterOrder": [
144472	//     "project",
144473	//     "region"
144474	//   ],
144475	//   "parameters": {
144476	//     "filter": {
144477	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
144478	//       "location": "query",
144479	//       "type": "string"
144480	//     },
144481	//     "maxResults": {
144482	//       "default": "500",
144483	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144484	//       "format": "uint32",
144485	//       "location": "query",
144486	//       "minimum": "0",
144487	//       "type": "integer"
144488	//     },
144489	//     "orderBy": {
144490	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
144491	//       "location": "query",
144492	//       "type": "string"
144493	//     },
144494	//     "pageToken": {
144495	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144496	//       "location": "query",
144497	//       "type": "string"
144498	//     },
144499	//     "project": {
144500	//       "description": "Project ID for this request.",
144501	//       "location": "path",
144502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144503	//       "required": true,
144504	//       "type": "string"
144505	//     },
144506	//     "region": {
144507	//       "description": "Name of the region scoping this request.",
144508	//       "location": "path",
144509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144510	//       "required": true,
144511	//       "type": "string"
144512	//     }
144513	//   },
144514	//   "path": "{project}/regions/{region}/subnetworks",
144515	//   "response": {
144516	//     "$ref": "SubnetworkList"
144517	//   },
144518	//   "scopes": [
144519	//     "https://www.googleapis.com/auth/cloud-platform",
144520	//     "https://www.googleapis.com/auth/compute",
144521	//     "https://www.googleapis.com/auth/compute.readonly"
144522	//   ]
144523	// }
144524
144525}
144526
144527// Pages invokes f for each page of results.
144528// A non-nil error returned from f will halt the iteration.
144529// The provided context supersedes any context provided to the Context method.
144530func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
144531	c.ctx_ = ctx
144532	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144533	for {
144534		x, err := c.Do()
144535		if err != nil {
144536			return err
144537		}
144538		if err := f(x); err != nil {
144539			return err
144540		}
144541		if x.NextPageToken == "" {
144542			return nil
144543		}
144544		c.PageToken(x.NextPageToken)
144545	}
144546}
144547
144548// method id "compute.subnetworks.listUsable":
144549
144550type SubnetworksListUsableCall struct {
144551	s            *Service
144552	project      string
144553	urlParams_   gensupport.URLParams
144554	ifNoneMatch_ string
144555	ctx_         context.Context
144556	header_      http.Header
144557}
144558
144559// ListUsable: Retrieves an aggregated list of all usable subnetworks in
144560// the project.
144561func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
144562	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144563	c.project = project
144564	return c
144565}
144566
144567// Filter sets the optional parameter "filter": A filter expression that
144568// filters resources listed in the response. The expression must specify
144569// the field name, a comparison operator, and the value that you want to
144570// use for filtering. The value must be a string, a number, or a
144571// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144572// `<`.
144573//
144574// For example, if you are filtering Compute Engine instances, you can
144575// exclude instances named `example-instance` by specifying `name !=
144576// example-instance`.
144577//
144578// You can also filter nested fields. For example, you could specify
144579// `scheduling.automaticRestart = false` to include instances only if
144580// they are not scheduled for automatic restarts. You can use filtering
144581// on nested fields to filter based on resource labels.
144582//
144583// To filter on multiple expressions, provide each separate expression
144584// within parentheses. For example: ``` (scheduling.automaticRestart =
144585// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
144586// is an `AND` expression. However, you can include `AND` and `OR`
144587// expressions explicitly. For example: ``` (cpuPlatform = "Intel
144588// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
144589// (scheduling.automaticRestart = true) ```
144590func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
144591	c.urlParams_.Set("filter", filter)
144592	return c
144593}
144594
144595// MaxResults sets the optional parameter "maxResults": The maximum
144596// number of results per page that should be returned. If the number of
144597// available results is larger than `maxResults`, Compute Engine returns
144598// a `nextPageToken` that can be used to get the next page of results in
144599// subsequent list requests. Acceptable values are `0` to `500`,
144600// inclusive. (Default: `500`)
144601func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
144602	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144603	return c
144604}
144605
144606// OrderBy sets the optional parameter "orderBy": Sorts list results by
144607// a certain order. By default, results are returned in alphanumerical
144608// order based on the resource name.
144609//
144610// You can also sort results in descending order based on the creation
144611// timestamp using `orderBy="creationTimestamp desc". This sorts
144612// results based on the `creationTimestamp` field in reverse
144613// chronological order (newest result first). Use this to sort resources
144614// like operations so that the newest operation is returned
144615// first.
144616//
144617// Currently, only sorting by `name` or `creationTimestamp desc` is
144618// supported.
144619func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
144620	c.urlParams_.Set("orderBy", orderBy)
144621	return c
144622}
144623
144624// PageToken sets the optional parameter "pageToken": Specifies a page
144625// token to use. Set `pageToken` to the `nextPageToken` returned by a
144626// previous list request to get the next page of results.
144627func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
144628	c.urlParams_.Set("pageToken", pageToken)
144629	return c
144630}
144631
144632// Fields allows partial responses to be retrieved. See
144633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144634// for more information.
144635func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
144636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144637	return c
144638}
144639
144640// IfNoneMatch sets the optional parameter which makes the operation
144641// fail if the object's ETag matches the given value. This is useful for
144642// getting updates only after the object has changed since the last
144643// request. Use googleapi.IsNotModified to check whether the response
144644// error from Do is the result of In-None-Match.
144645func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
144646	c.ifNoneMatch_ = entityTag
144647	return c
144648}
144649
144650// Context sets the context to be used in this call's Do method. Any
144651// pending HTTP request will be aborted if the provided context is
144652// canceled.
144653func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
144654	c.ctx_ = ctx
144655	return c
144656}
144657
144658// Header returns an http.Header that can be modified by the caller to
144659// add HTTP headers to the request.
144660func (c *SubnetworksListUsableCall) Header() http.Header {
144661	if c.header_ == nil {
144662		c.header_ = make(http.Header)
144663	}
144664	return c.header_
144665}
144666
144667func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
144668	reqHeaders := make(http.Header)
144669	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
144670	for k, v := range c.header_ {
144671		reqHeaders[k] = v
144672	}
144673	reqHeaders.Set("User-Agent", c.s.userAgent())
144674	if c.ifNoneMatch_ != "" {
144675		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144676	}
144677	var body io.Reader = nil
144678	c.urlParams_.Set("alt", alt)
144679	c.urlParams_.Set("prettyPrint", "false")
144680	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks/listUsable")
144681	urls += "?" + c.urlParams_.Encode()
144682	req, err := http.NewRequest("GET", urls, body)
144683	if err != nil {
144684		return nil, err
144685	}
144686	req.Header = reqHeaders
144687	googleapi.Expand(req.URL, map[string]string{
144688		"project": c.project,
144689	})
144690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144691}
144692
144693// Do executes the "compute.subnetworks.listUsable" call.
144694// Exactly one of *UsableSubnetworksAggregatedList or error will be
144695// non-nil. Any non-2xx status code is an error. Response headers are in
144696// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
144697// a response was returned at all) in error.(*googleapi.Error).Header.
144698// Use googleapi.IsNotModified to check whether the returned error was
144699// because http.StatusNotModified was returned.
144700func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
144701	gensupport.SetOptions(c.urlParams_, opts...)
144702	res, err := c.doRequest("json")
144703	if res != nil && res.StatusCode == http.StatusNotModified {
144704		if res.Body != nil {
144705			res.Body.Close()
144706		}
144707		return nil, &googleapi.Error{
144708			Code:   res.StatusCode,
144709			Header: res.Header,
144710		}
144711	}
144712	if err != nil {
144713		return nil, err
144714	}
144715	defer googleapi.CloseBody(res)
144716	if err := googleapi.CheckResponse(res); err != nil {
144717		return nil, err
144718	}
144719	ret := &UsableSubnetworksAggregatedList{
144720		ServerResponse: googleapi.ServerResponse{
144721			Header:         res.Header,
144722			HTTPStatusCode: res.StatusCode,
144723		},
144724	}
144725	target := &ret
144726	if err := gensupport.DecodeResponse(target, res); err != nil {
144727		return nil, err
144728	}
144729	return ret, nil
144730	// {
144731	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
144732	//   "httpMethod": "GET",
144733	//   "id": "compute.subnetworks.listUsable",
144734	//   "parameterOrder": [
144735	//     "project"
144736	//   ],
144737	//   "parameters": {
144738	//     "filter": {
144739	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
144740	//       "location": "query",
144741	//       "type": "string"
144742	//     },
144743	//     "maxResults": {
144744	//       "default": "500",
144745	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144746	//       "format": "uint32",
144747	//       "location": "query",
144748	//       "minimum": "0",
144749	//       "type": "integer"
144750	//     },
144751	//     "orderBy": {
144752	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
144753	//       "location": "query",
144754	//       "type": "string"
144755	//     },
144756	//     "pageToken": {
144757	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144758	//       "location": "query",
144759	//       "type": "string"
144760	//     },
144761	//     "project": {
144762	//       "description": "Project ID for this request.",
144763	//       "location": "path",
144764	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144765	//       "required": true,
144766	//       "type": "string"
144767	//     }
144768	//   },
144769	//   "path": "{project}/aggregated/subnetworks/listUsable",
144770	//   "response": {
144771	//     "$ref": "UsableSubnetworksAggregatedList"
144772	//   },
144773	//   "scopes": [
144774	//     "https://www.googleapis.com/auth/cloud-platform",
144775	//     "https://www.googleapis.com/auth/compute",
144776	//     "https://www.googleapis.com/auth/compute.readonly"
144777	//   ]
144778	// }
144779
144780}
144781
144782// Pages invokes f for each page of results.
144783// A non-nil error returned from f will halt the iteration.
144784// The provided context supersedes any context provided to the Context method.
144785func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
144786	c.ctx_ = ctx
144787	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144788	for {
144789		x, err := c.Do()
144790		if err != nil {
144791			return err
144792		}
144793		if err := f(x); err != nil {
144794			return err
144795		}
144796		if x.NextPageToken == "" {
144797			return nil
144798		}
144799		c.PageToken(x.NextPageToken)
144800	}
144801}
144802
144803// method id "compute.subnetworks.patch":
144804
144805type SubnetworksPatchCall struct {
144806	s           *Service
144807	project     string
144808	region      string
144809	subnetwork  string
144810	subnetwork2 *Subnetwork
144811	urlParams_  gensupport.URLParams
144812	ctx_        context.Context
144813	header_     http.Header
144814}
144815
144816// Patch: Patches the specified subnetwork with the data included in the
144817// request. Only certain fields can up updated with a patch request as
144818// indicated in the field descriptions. You must specify the current
144819// fingerprint of the subnetwork resource being patched.
144820func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
144821	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144822	c.project = project
144823	c.region = region
144824	c.subnetwork = subnetwork
144825	c.subnetwork2 = subnetwork2
144826	return c
144827}
144828
144829// DrainTimeoutSeconds sets the optional parameter
144830// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
144831// seconds on the amount of time allowed to drain connections from the
144832// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
144833// timeout is only applicable when the following conditions are true: -
144834// the subnetwork being patched has purpose =
144835// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
144836// = BACKUP - the patch request is setting the role to ACTIVE. Note that
144837// after this patch operation the roles of the ACTIVE and BACKUP
144838// subnetworks will be swapped.
144839func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
144840	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
144841	return c
144842}
144843
144844// RequestId sets the optional parameter "requestId": An optional
144845// request ID to identify requests. Specify a unique request ID so that
144846// if you must retry your request, the server will know to ignore the
144847// request if it has already been completed.
144848//
144849// For example, consider a situation where you make an initial request
144850// and the request times out. If you make the request again with the
144851// same request ID, the server can check if original operation with the
144852// same request ID was received, and if so, will ignore the second
144853// request. This prevents clients from accidentally creating duplicate
144854// commitments.
144855//
144856// The request ID must be a valid UUID with the exception that zero UUID
144857// is not supported (00000000-0000-0000-0000-000000000000).
144858func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
144859	c.urlParams_.Set("requestId", requestId)
144860	return c
144861}
144862
144863// Fields allows partial responses to be retrieved. See
144864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144865// for more information.
144866func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
144867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144868	return c
144869}
144870
144871// Context sets the context to be used in this call's Do method. Any
144872// pending HTTP request will be aborted if the provided context is
144873// canceled.
144874func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
144875	c.ctx_ = ctx
144876	return c
144877}
144878
144879// Header returns an http.Header that can be modified by the caller to
144880// add HTTP headers to the request.
144881func (c *SubnetworksPatchCall) Header() http.Header {
144882	if c.header_ == nil {
144883		c.header_ = make(http.Header)
144884	}
144885	return c.header_
144886}
144887
144888func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
144889	reqHeaders := make(http.Header)
144890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
144891	for k, v := range c.header_ {
144892		reqHeaders[k] = v
144893	}
144894	reqHeaders.Set("User-Agent", c.s.userAgent())
144895	var body io.Reader = nil
144896	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
144897	if err != nil {
144898		return nil, err
144899	}
144900	reqHeaders.Set("Content-Type", "application/json")
144901	c.urlParams_.Set("alt", alt)
144902	c.urlParams_.Set("prettyPrint", "false")
144903	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
144904	urls += "?" + c.urlParams_.Encode()
144905	req, err := http.NewRequest("PATCH", urls, body)
144906	if err != nil {
144907		return nil, err
144908	}
144909	req.Header = reqHeaders
144910	googleapi.Expand(req.URL, map[string]string{
144911		"project":    c.project,
144912		"region":     c.region,
144913		"subnetwork": c.subnetwork,
144914	})
144915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144916}
144917
144918// Do executes the "compute.subnetworks.patch" call.
144919// Exactly one of *Operation or error will be non-nil. Any non-2xx
144920// status code is an error. Response headers are in either
144921// *Operation.ServerResponse.Header or (if a response was returned at
144922// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144923// to check whether the returned error was because
144924// http.StatusNotModified was returned.
144925func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144926	gensupport.SetOptions(c.urlParams_, opts...)
144927	res, err := c.doRequest("json")
144928	if res != nil && res.StatusCode == http.StatusNotModified {
144929		if res.Body != nil {
144930			res.Body.Close()
144931		}
144932		return nil, &googleapi.Error{
144933			Code:   res.StatusCode,
144934			Header: res.Header,
144935		}
144936	}
144937	if err != nil {
144938		return nil, err
144939	}
144940	defer googleapi.CloseBody(res)
144941	if err := googleapi.CheckResponse(res); err != nil {
144942		return nil, err
144943	}
144944	ret := &Operation{
144945		ServerResponse: googleapi.ServerResponse{
144946			Header:         res.Header,
144947			HTTPStatusCode: res.StatusCode,
144948		},
144949	}
144950	target := &ret
144951	if err := gensupport.DecodeResponse(target, res); err != nil {
144952		return nil, err
144953	}
144954	return ret, nil
144955	// {
144956	//   "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.",
144957	//   "httpMethod": "PATCH",
144958	//   "id": "compute.subnetworks.patch",
144959	//   "parameterOrder": [
144960	//     "project",
144961	//     "region",
144962	//     "subnetwork"
144963	//   ],
144964	//   "parameters": {
144965	//     "drainTimeoutSeconds": {
144966	//       "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.",
144967	//       "format": "int32",
144968	//       "location": "query",
144969	//       "type": "integer"
144970	//     },
144971	//     "project": {
144972	//       "description": "Project ID for this request.",
144973	//       "location": "path",
144974	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144975	//       "required": true,
144976	//       "type": "string"
144977	//     },
144978	//     "region": {
144979	//       "description": "Name of the region scoping this request.",
144980	//       "location": "path",
144981	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144982	//       "required": true,
144983	//       "type": "string"
144984	//     },
144985	//     "requestId": {
144986	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144987	//       "location": "query",
144988	//       "type": "string"
144989	//     },
144990	//     "subnetwork": {
144991	//       "description": "Name of the Subnetwork resource to patch.",
144992	//       "location": "path",
144993	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144994	//       "required": true,
144995	//       "type": "string"
144996	//     }
144997	//   },
144998	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
144999	//   "request": {
145000	//     "$ref": "Subnetwork"
145001	//   },
145002	//   "response": {
145003	//     "$ref": "Operation"
145004	//   },
145005	//   "scopes": [
145006	//     "https://www.googleapis.com/auth/cloud-platform",
145007	//     "https://www.googleapis.com/auth/compute"
145008	//   ]
145009	// }
145010
145011}
145012
145013// method id "compute.subnetworks.setIamPolicy":
145014
145015type SubnetworksSetIamPolicyCall struct {
145016	s                      *Service
145017	project                string
145018	region                 string
145019	resource               string
145020	regionsetpolicyrequest *RegionSetPolicyRequest
145021	urlParams_             gensupport.URLParams
145022	ctx_                   context.Context
145023	header_                http.Header
145024}
145025
145026// SetIamPolicy: Sets the access control policy on the specified
145027// resource. Replaces any existing policy.
145028func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
145029	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145030	c.project = project
145031	c.region = region
145032	c.resource = resource
145033	c.regionsetpolicyrequest = regionsetpolicyrequest
145034	return c
145035}
145036
145037// Fields allows partial responses to be retrieved. See
145038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145039// for more information.
145040func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
145041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145042	return c
145043}
145044
145045// Context sets the context to be used in this call's Do method. Any
145046// pending HTTP request will be aborted if the provided context is
145047// canceled.
145048func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
145049	c.ctx_ = ctx
145050	return c
145051}
145052
145053// Header returns an http.Header that can be modified by the caller to
145054// add HTTP headers to the request.
145055func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
145056	if c.header_ == nil {
145057		c.header_ = make(http.Header)
145058	}
145059	return c.header_
145060}
145061
145062func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
145063	reqHeaders := make(http.Header)
145064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
145065	for k, v := range c.header_ {
145066		reqHeaders[k] = v
145067	}
145068	reqHeaders.Set("User-Agent", c.s.userAgent())
145069	var body io.Reader = nil
145070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
145071	if err != nil {
145072		return nil, err
145073	}
145074	reqHeaders.Set("Content-Type", "application/json")
145075	c.urlParams_.Set("alt", alt)
145076	c.urlParams_.Set("prettyPrint", "false")
145077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
145078	urls += "?" + c.urlParams_.Encode()
145079	req, err := http.NewRequest("POST", urls, body)
145080	if err != nil {
145081		return nil, err
145082	}
145083	req.Header = reqHeaders
145084	googleapi.Expand(req.URL, map[string]string{
145085		"project":  c.project,
145086		"region":   c.region,
145087		"resource": c.resource,
145088	})
145089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145090}
145091
145092// Do executes the "compute.subnetworks.setIamPolicy" call.
145093// Exactly one of *Policy or error will be non-nil. Any non-2xx status
145094// code is an error. Response headers are in either
145095// *Policy.ServerResponse.Header or (if a response was returned at all)
145096// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
145097// check whether the returned error was because http.StatusNotModified
145098// was returned.
145099func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
145100	gensupport.SetOptions(c.urlParams_, opts...)
145101	res, err := c.doRequest("json")
145102	if res != nil && res.StatusCode == http.StatusNotModified {
145103		if res.Body != nil {
145104			res.Body.Close()
145105		}
145106		return nil, &googleapi.Error{
145107			Code:   res.StatusCode,
145108			Header: res.Header,
145109		}
145110	}
145111	if err != nil {
145112		return nil, err
145113	}
145114	defer googleapi.CloseBody(res)
145115	if err := googleapi.CheckResponse(res); err != nil {
145116		return nil, err
145117	}
145118	ret := &Policy{
145119		ServerResponse: googleapi.ServerResponse{
145120			Header:         res.Header,
145121			HTTPStatusCode: res.StatusCode,
145122		},
145123	}
145124	target := &ret
145125	if err := gensupport.DecodeResponse(target, res); err != nil {
145126		return nil, err
145127	}
145128	return ret, nil
145129	// {
145130	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
145131	//   "httpMethod": "POST",
145132	//   "id": "compute.subnetworks.setIamPolicy",
145133	//   "parameterOrder": [
145134	//     "project",
145135	//     "region",
145136	//     "resource"
145137	//   ],
145138	//   "parameters": {
145139	//     "project": {
145140	//       "description": "Project ID for this request.",
145141	//       "location": "path",
145142	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145143	//       "required": true,
145144	//       "type": "string"
145145	//     },
145146	//     "region": {
145147	//       "description": "The name of the region for this request.",
145148	//       "location": "path",
145149	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145150	//       "required": true,
145151	//       "type": "string"
145152	//     },
145153	//     "resource": {
145154	//       "description": "Name or id of the resource for this request.",
145155	//       "location": "path",
145156	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145157	//       "required": true,
145158	//       "type": "string"
145159	//     }
145160	//   },
145161	//   "path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
145162	//   "request": {
145163	//     "$ref": "RegionSetPolicyRequest"
145164	//   },
145165	//   "response": {
145166	//     "$ref": "Policy"
145167	//   },
145168	//   "scopes": [
145169	//     "https://www.googleapis.com/auth/cloud-platform",
145170	//     "https://www.googleapis.com/auth/compute"
145171	//   ]
145172	// }
145173
145174}
145175
145176// method id "compute.subnetworks.setPrivateIpGoogleAccess":
145177
145178type SubnetworksSetPrivateIpGoogleAccessCall struct {
145179	s                                          *Service
145180	project                                    string
145181	region                                     string
145182	subnetwork                                 string
145183	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
145184	urlParams_                                 gensupport.URLParams
145185	ctx_                                       context.Context
145186	header_                                    http.Header
145187}
145188
145189// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
145190// Google services without assigning external IP addresses through
145191// Private Google Access.
145192func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
145193	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145194	c.project = project
145195	c.region = region
145196	c.subnetwork = subnetwork
145197	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
145198	return c
145199}
145200
145201// RequestId sets the optional parameter "requestId": An optional
145202// request ID to identify requests. Specify a unique request ID so that
145203// if you must retry your request, the server will know to ignore the
145204// request if it has already been completed.
145205//
145206// For example, consider a situation where you make an initial request
145207// and the request times out. If you make the request again with the
145208// same request ID, the server can check if original operation with the
145209// same request ID was received, and if so, will ignore the second
145210// request. This prevents clients from accidentally creating duplicate
145211// commitments.
145212//
145213// The request ID must be a valid UUID with the exception that zero UUID
145214// is not supported (00000000-0000-0000-0000-000000000000).
145215func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
145216	c.urlParams_.Set("requestId", requestId)
145217	return c
145218}
145219
145220// Fields allows partial responses to be retrieved. See
145221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145222// for more information.
145223func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
145224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145225	return c
145226}
145227
145228// Context sets the context to be used in this call's Do method. Any
145229// pending HTTP request will be aborted if the provided context is
145230// canceled.
145231func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
145232	c.ctx_ = ctx
145233	return c
145234}
145235
145236// Header returns an http.Header that can be modified by the caller to
145237// add HTTP headers to the request.
145238func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
145239	if c.header_ == nil {
145240		c.header_ = make(http.Header)
145241	}
145242	return c.header_
145243}
145244
145245func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
145246	reqHeaders := make(http.Header)
145247	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
145248	for k, v := range c.header_ {
145249		reqHeaders[k] = v
145250	}
145251	reqHeaders.Set("User-Agent", c.s.userAgent())
145252	var body io.Reader = nil
145253	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
145254	if err != nil {
145255		return nil, err
145256	}
145257	reqHeaders.Set("Content-Type", "application/json")
145258	c.urlParams_.Set("alt", alt)
145259	c.urlParams_.Set("prettyPrint", "false")
145260	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
145261	urls += "?" + c.urlParams_.Encode()
145262	req, err := http.NewRequest("POST", urls, body)
145263	if err != nil {
145264		return nil, err
145265	}
145266	req.Header = reqHeaders
145267	googleapi.Expand(req.URL, map[string]string{
145268		"project":    c.project,
145269		"region":     c.region,
145270		"subnetwork": c.subnetwork,
145271	})
145272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145273}
145274
145275// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
145276// Exactly one of *Operation or error will be non-nil. Any non-2xx
145277// status code is an error. Response headers are in either
145278// *Operation.ServerResponse.Header or (if a response was returned at
145279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145280// to check whether the returned error was because
145281// http.StatusNotModified was returned.
145282func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145283	gensupport.SetOptions(c.urlParams_, opts...)
145284	res, err := c.doRequest("json")
145285	if res != nil && res.StatusCode == http.StatusNotModified {
145286		if res.Body != nil {
145287			res.Body.Close()
145288		}
145289		return nil, &googleapi.Error{
145290			Code:   res.StatusCode,
145291			Header: res.Header,
145292		}
145293	}
145294	if err != nil {
145295		return nil, err
145296	}
145297	defer googleapi.CloseBody(res)
145298	if err := googleapi.CheckResponse(res); err != nil {
145299		return nil, err
145300	}
145301	ret := &Operation{
145302		ServerResponse: googleapi.ServerResponse{
145303			Header:         res.Header,
145304			HTTPStatusCode: res.StatusCode,
145305		},
145306	}
145307	target := &ret
145308	if err := gensupport.DecodeResponse(target, res); err != nil {
145309		return nil, err
145310	}
145311	return ret, nil
145312	// {
145313	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
145314	//   "httpMethod": "POST",
145315	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
145316	//   "parameterOrder": [
145317	//     "project",
145318	//     "region",
145319	//     "subnetwork"
145320	//   ],
145321	//   "parameters": {
145322	//     "project": {
145323	//       "description": "Project ID for this request.",
145324	//       "location": "path",
145325	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145326	//       "required": true,
145327	//       "type": "string"
145328	//     },
145329	//     "region": {
145330	//       "description": "Name of the region scoping this request.",
145331	//       "location": "path",
145332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145333	//       "required": true,
145334	//       "type": "string"
145335	//     },
145336	//     "requestId": {
145337	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145338	//       "location": "query",
145339	//       "type": "string"
145340	//     },
145341	//     "subnetwork": {
145342	//       "description": "Name of the Subnetwork resource.",
145343	//       "location": "path",
145344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145345	//       "required": true,
145346	//       "type": "string"
145347	//     }
145348	//   },
145349	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
145350	//   "request": {
145351	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
145352	//   },
145353	//   "response": {
145354	//     "$ref": "Operation"
145355	//   },
145356	//   "scopes": [
145357	//     "https://www.googleapis.com/auth/cloud-platform",
145358	//     "https://www.googleapis.com/auth/compute"
145359	//   ]
145360	// }
145361
145362}
145363
145364// method id "compute.subnetworks.testIamPermissions":
145365
145366type SubnetworksTestIamPermissionsCall struct {
145367	s                      *Service
145368	project                string
145369	region                 string
145370	resource               string
145371	testpermissionsrequest *TestPermissionsRequest
145372	urlParams_             gensupport.URLParams
145373	ctx_                   context.Context
145374	header_                http.Header
145375}
145376
145377// TestIamPermissions: Returns permissions that a caller has on the
145378// specified resource.
145379func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
145380	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145381	c.project = project
145382	c.region = region
145383	c.resource = resource
145384	c.testpermissionsrequest = testpermissionsrequest
145385	return c
145386}
145387
145388// Fields allows partial responses to be retrieved. See
145389// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145390// for more information.
145391func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
145392	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145393	return c
145394}
145395
145396// Context sets the context to be used in this call's Do method. Any
145397// pending HTTP request will be aborted if the provided context is
145398// canceled.
145399func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
145400	c.ctx_ = ctx
145401	return c
145402}
145403
145404// Header returns an http.Header that can be modified by the caller to
145405// add HTTP headers to the request.
145406func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
145407	if c.header_ == nil {
145408		c.header_ = make(http.Header)
145409	}
145410	return c.header_
145411}
145412
145413func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
145414	reqHeaders := make(http.Header)
145415	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
145416	for k, v := range c.header_ {
145417		reqHeaders[k] = v
145418	}
145419	reqHeaders.Set("User-Agent", c.s.userAgent())
145420	var body io.Reader = nil
145421	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
145422	if err != nil {
145423		return nil, err
145424	}
145425	reqHeaders.Set("Content-Type", "application/json")
145426	c.urlParams_.Set("alt", alt)
145427	c.urlParams_.Set("prettyPrint", "false")
145428	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
145429	urls += "?" + c.urlParams_.Encode()
145430	req, err := http.NewRequest("POST", urls, body)
145431	if err != nil {
145432		return nil, err
145433	}
145434	req.Header = reqHeaders
145435	googleapi.Expand(req.URL, map[string]string{
145436		"project":  c.project,
145437		"region":   c.region,
145438		"resource": c.resource,
145439	})
145440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145441}
145442
145443// Do executes the "compute.subnetworks.testIamPermissions" call.
145444// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
145445// non-2xx status code is an error. Response headers are in either
145446// *TestPermissionsResponse.ServerResponse.Header or (if a response was
145447// returned at all) in error.(*googleapi.Error).Header. Use
145448// googleapi.IsNotModified to check whether the returned error was
145449// because http.StatusNotModified was returned.
145450func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
145451	gensupport.SetOptions(c.urlParams_, opts...)
145452	res, err := c.doRequest("json")
145453	if res != nil && res.StatusCode == http.StatusNotModified {
145454		if res.Body != nil {
145455			res.Body.Close()
145456		}
145457		return nil, &googleapi.Error{
145458			Code:   res.StatusCode,
145459			Header: res.Header,
145460		}
145461	}
145462	if err != nil {
145463		return nil, err
145464	}
145465	defer googleapi.CloseBody(res)
145466	if err := googleapi.CheckResponse(res); err != nil {
145467		return nil, err
145468	}
145469	ret := &TestPermissionsResponse{
145470		ServerResponse: googleapi.ServerResponse{
145471			Header:         res.Header,
145472			HTTPStatusCode: res.StatusCode,
145473		},
145474	}
145475	target := &ret
145476	if err := gensupport.DecodeResponse(target, res); err != nil {
145477		return nil, err
145478	}
145479	return ret, nil
145480	// {
145481	//   "description": "Returns permissions that a caller has on the specified resource.",
145482	//   "httpMethod": "POST",
145483	//   "id": "compute.subnetworks.testIamPermissions",
145484	//   "parameterOrder": [
145485	//     "project",
145486	//     "region",
145487	//     "resource"
145488	//   ],
145489	//   "parameters": {
145490	//     "project": {
145491	//       "description": "Project ID for this request.",
145492	//       "location": "path",
145493	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145494	//       "required": true,
145495	//       "type": "string"
145496	//     },
145497	//     "region": {
145498	//       "description": "The name of the region for this request.",
145499	//       "location": "path",
145500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145501	//       "required": true,
145502	//       "type": "string"
145503	//     },
145504	//     "resource": {
145505	//       "description": "Name or id of the resource for this request.",
145506	//       "location": "path",
145507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145508	//       "required": true,
145509	//       "type": "string"
145510	//     }
145511	//   },
145512	//   "path": "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
145513	//   "request": {
145514	//     "$ref": "TestPermissionsRequest"
145515	//   },
145516	//   "response": {
145517	//     "$ref": "TestPermissionsResponse"
145518	//   },
145519	//   "scopes": [
145520	//     "https://www.googleapis.com/auth/cloud-platform",
145521	//     "https://www.googleapis.com/auth/compute",
145522	//     "https://www.googleapis.com/auth/compute.readonly"
145523	//   ]
145524	// }
145525
145526}
145527
145528// method id "compute.targetHttpProxies.aggregatedList":
145529
145530type TargetHttpProxiesAggregatedListCall struct {
145531	s            *Service
145532	project      string
145533	urlParams_   gensupport.URLParams
145534	ifNoneMatch_ string
145535	ctx_         context.Context
145536	header_      http.Header
145537}
145538
145539// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
145540// regional and global, available to the specified project.
145541func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
145542	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145543	c.project = project
145544	return c
145545}
145546
145547// Filter sets the optional parameter "filter": A filter expression that
145548// filters resources listed in the response. The expression must specify
145549// the field name, a comparison operator, and the value that you want to
145550// use for filtering. The value must be a string, a number, or a
145551// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145552// `<`.
145553//
145554// For example, if you are filtering Compute Engine instances, you can
145555// exclude instances named `example-instance` by specifying `name !=
145556// example-instance`.
145557//
145558// You can also filter nested fields. For example, you could specify
145559// `scheduling.automaticRestart = false` to include instances only if
145560// they are not scheduled for automatic restarts. You can use filtering
145561// on nested fields to filter based on resource labels.
145562//
145563// To filter on multiple expressions, provide each separate expression
145564// within parentheses. For example: ``` (scheduling.automaticRestart =
145565// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
145566// is an `AND` expression. However, you can include `AND` and `OR`
145567// expressions explicitly. For example: ``` (cpuPlatform = "Intel
145568// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
145569// (scheduling.automaticRestart = true) ```
145570func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
145571	c.urlParams_.Set("filter", filter)
145572	return c
145573}
145574
145575// IncludeAllScopes sets the optional parameter "includeAllScopes":
145576// Indicates whether every visible scope for each scope type (zone,
145577// region, global) should be included in the response. For new resource
145578// types added after this field, the flag has no effect as new resource
145579// types will always include every visible scope for each scope type in
145580// response. For resource types which predate this field, if this flag
145581// is omitted or false, only scopes of the scope types where the
145582// resource type is expected to be found will be included.
145583func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
145584	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
145585	return c
145586}
145587
145588// MaxResults sets the optional parameter "maxResults": The maximum
145589// number of results per page that should be returned. If the number of
145590// available results is larger than `maxResults`, Compute Engine returns
145591// a `nextPageToken` that can be used to get the next page of results in
145592// subsequent list requests. Acceptable values are `0` to `500`,
145593// inclusive. (Default: `500`)
145594func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
145595	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145596	return c
145597}
145598
145599// OrderBy sets the optional parameter "orderBy": Sorts list results by
145600// a certain order. By default, results are returned in alphanumerical
145601// order based on the resource name.
145602//
145603// You can also sort results in descending order based on the creation
145604// timestamp using `orderBy="creationTimestamp desc". This sorts
145605// results based on the `creationTimestamp` field in reverse
145606// chronological order (newest result first). Use this to sort resources
145607// like operations so that the newest operation is returned
145608// first.
145609//
145610// Currently, only sorting by `name` or `creationTimestamp desc` is
145611// supported.
145612func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
145613	c.urlParams_.Set("orderBy", orderBy)
145614	return c
145615}
145616
145617// PageToken sets the optional parameter "pageToken": Specifies a page
145618// token to use. Set `pageToken` to the `nextPageToken` returned by a
145619// previous list request to get the next page of results.
145620func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
145621	c.urlParams_.Set("pageToken", pageToken)
145622	return c
145623}
145624
145625// Fields allows partial responses to be retrieved. See
145626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145627// for more information.
145628func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
145629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145630	return c
145631}
145632
145633// IfNoneMatch sets the optional parameter which makes the operation
145634// fail if the object's ETag matches the given value. This is useful for
145635// getting updates only after the object has changed since the last
145636// request. Use googleapi.IsNotModified to check whether the response
145637// error from Do is the result of In-None-Match.
145638func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
145639	c.ifNoneMatch_ = entityTag
145640	return c
145641}
145642
145643// Context sets the context to be used in this call's Do method. Any
145644// pending HTTP request will be aborted if the provided context is
145645// canceled.
145646func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
145647	c.ctx_ = ctx
145648	return c
145649}
145650
145651// Header returns an http.Header that can be modified by the caller to
145652// add HTTP headers to the request.
145653func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
145654	if c.header_ == nil {
145655		c.header_ = make(http.Header)
145656	}
145657	return c.header_
145658}
145659
145660func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
145661	reqHeaders := make(http.Header)
145662	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
145663	for k, v := range c.header_ {
145664		reqHeaders[k] = v
145665	}
145666	reqHeaders.Set("User-Agent", c.s.userAgent())
145667	if c.ifNoneMatch_ != "" {
145668		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145669	}
145670	var body io.Reader = nil
145671	c.urlParams_.Set("alt", alt)
145672	c.urlParams_.Set("prettyPrint", "false")
145673	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpProxies")
145674	urls += "?" + c.urlParams_.Encode()
145675	req, err := http.NewRequest("GET", urls, body)
145676	if err != nil {
145677		return nil, err
145678	}
145679	req.Header = reqHeaders
145680	googleapi.Expand(req.URL, map[string]string{
145681		"project": c.project,
145682	})
145683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145684}
145685
145686// Do executes the "compute.targetHttpProxies.aggregatedList" call.
145687// Exactly one of *TargetHttpProxyAggregatedList or error will be
145688// non-nil. Any non-2xx status code is an error. Response headers are in
145689// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
145690// response was returned at all) in error.(*googleapi.Error).Header. Use
145691// googleapi.IsNotModified to check whether the returned error was
145692// because http.StatusNotModified was returned.
145693func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
145694	gensupport.SetOptions(c.urlParams_, opts...)
145695	res, err := c.doRequest("json")
145696	if res != nil && res.StatusCode == http.StatusNotModified {
145697		if res.Body != nil {
145698			res.Body.Close()
145699		}
145700		return nil, &googleapi.Error{
145701			Code:   res.StatusCode,
145702			Header: res.Header,
145703		}
145704	}
145705	if err != nil {
145706		return nil, err
145707	}
145708	defer googleapi.CloseBody(res)
145709	if err := googleapi.CheckResponse(res); err != nil {
145710		return nil, err
145711	}
145712	ret := &TargetHttpProxyAggregatedList{
145713		ServerResponse: googleapi.ServerResponse{
145714			Header:         res.Header,
145715			HTTPStatusCode: res.StatusCode,
145716		},
145717	}
145718	target := &ret
145719	if err := gensupport.DecodeResponse(target, res); err != nil {
145720		return nil, err
145721	}
145722	return ret, nil
145723	// {
145724	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
145725	//   "httpMethod": "GET",
145726	//   "id": "compute.targetHttpProxies.aggregatedList",
145727	//   "parameterOrder": [
145728	//     "project"
145729	//   ],
145730	//   "parameters": {
145731	//     "filter": {
145732	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
145733	//       "location": "query",
145734	//       "type": "string"
145735	//     },
145736	//     "includeAllScopes": {
145737	//       "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.",
145738	//       "location": "query",
145739	//       "type": "boolean"
145740	//     },
145741	//     "maxResults": {
145742	//       "default": "500",
145743	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
145744	//       "format": "uint32",
145745	//       "location": "query",
145746	//       "minimum": "0",
145747	//       "type": "integer"
145748	//     },
145749	//     "orderBy": {
145750	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
145751	//       "location": "query",
145752	//       "type": "string"
145753	//     },
145754	//     "pageToken": {
145755	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
145756	//       "location": "query",
145757	//       "type": "string"
145758	//     },
145759	//     "project": {
145760	//       "description": "Name of the project scoping this request.",
145761	//       "location": "path",
145762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145763	//       "required": true,
145764	//       "type": "string"
145765	//     }
145766	//   },
145767	//   "path": "{project}/aggregated/targetHttpProxies",
145768	//   "response": {
145769	//     "$ref": "TargetHttpProxyAggregatedList"
145770	//   },
145771	//   "scopes": [
145772	//     "https://www.googleapis.com/auth/cloud-platform",
145773	//     "https://www.googleapis.com/auth/compute",
145774	//     "https://www.googleapis.com/auth/compute.readonly"
145775	//   ]
145776	// }
145777
145778}
145779
145780// Pages invokes f for each page of results.
145781// A non-nil error returned from f will halt the iteration.
145782// The provided context supersedes any context provided to the Context method.
145783func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
145784	c.ctx_ = ctx
145785	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145786	for {
145787		x, err := c.Do()
145788		if err != nil {
145789			return err
145790		}
145791		if err := f(x); err != nil {
145792			return err
145793		}
145794		if x.NextPageToken == "" {
145795			return nil
145796		}
145797		c.PageToken(x.NextPageToken)
145798	}
145799}
145800
145801// method id "compute.targetHttpProxies.delete":
145802
145803type TargetHttpProxiesDeleteCall struct {
145804	s               *Service
145805	project         string
145806	targetHttpProxy string
145807	urlParams_      gensupport.URLParams
145808	ctx_            context.Context
145809	header_         http.Header
145810}
145811
145812// Delete: Deletes the specified TargetHttpProxy resource.
145813// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
145814func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
145815	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145816	c.project = project
145817	c.targetHttpProxy = targetHttpProxy
145818	return c
145819}
145820
145821// RequestId sets the optional parameter "requestId": An optional
145822// request ID to identify requests. Specify a unique request ID so that
145823// if you must retry your request, the server will know to ignore the
145824// request if it has already been completed.
145825//
145826// For example, consider a situation where you make an initial request
145827// and the request times out. If you make the request again with the
145828// same request ID, the server can check if original operation with the
145829// same request ID was received, and if so, will ignore the second
145830// request. This prevents clients from accidentally creating duplicate
145831// commitments.
145832//
145833// The request ID must be a valid UUID with the exception that zero UUID
145834// is not supported (00000000-0000-0000-0000-000000000000).
145835func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
145836	c.urlParams_.Set("requestId", requestId)
145837	return c
145838}
145839
145840// Fields allows partial responses to be retrieved. See
145841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145842// for more information.
145843func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
145844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145845	return c
145846}
145847
145848// Context sets the context to be used in this call's Do method. Any
145849// pending HTTP request will be aborted if the provided context is
145850// canceled.
145851func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
145852	c.ctx_ = ctx
145853	return c
145854}
145855
145856// Header returns an http.Header that can be modified by the caller to
145857// add HTTP headers to the request.
145858func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
145859	if c.header_ == nil {
145860		c.header_ = make(http.Header)
145861	}
145862	return c.header_
145863}
145864
145865func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
145866	reqHeaders := make(http.Header)
145867	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
145868	for k, v := range c.header_ {
145869		reqHeaders[k] = v
145870	}
145871	reqHeaders.Set("User-Agent", c.s.userAgent())
145872	var body io.Reader = nil
145873	c.urlParams_.Set("alt", alt)
145874	c.urlParams_.Set("prettyPrint", "false")
145875	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
145876	urls += "?" + c.urlParams_.Encode()
145877	req, err := http.NewRequest("DELETE", urls, body)
145878	if err != nil {
145879		return nil, err
145880	}
145881	req.Header = reqHeaders
145882	googleapi.Expand(req.URL, map[string]string{
145883		"project":         c.project,
145884		"targetHttpProxy": c.targetHttpProxy,
145885	})
145886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145887}
145888
145889// Do executes the "compute.targetHttpProxies.delete" call.
145890// Exactly one of *Operation or error will be non-nil. Any non-2xx
145891// status code is an error. Response headers are in either
145892// *Operation.ServerResponse.Header or (if a response was returned at
145893// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145894// to check whether the returned error was because
145895// http.StatusNotModified was returned.
145896func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145897	gensupport.SetOptions(c.urlParams_, opts...)
145898	res, err := c.doRequest("json")
145899	if res != nil && res.StatusCode == http.StatusNotModified {
145900		if res.Body != nil {
145901			res.Body.Close()
145902		}
145903		return nil, &googleapi.Error{
145904			Code:   res.StatusCode,
145905			Header: res.Header,
145906		}
145907	}
145908	if err != nil {
145909		return nil, err
145910	}
145911	defer googleapi.CloseBody(res)
145912	if err := googleapi.CheckResponse(res); err != nil {
145913		return nil, err
145914	}
145915	ret := &Operation{
145916		ServerResponse: googleapi.ServerResponse{
145917			Header:         res.Header,
145918			HTTPStatusCode: res.StatusCode,
145919		},
145920	}
145921	target := &ret
145922	if err := gensupport.DecodeResponse(target, res); err != nil {
145923		return nil, err
145924	}
145925	return ret, nil
145926	// {
145927	//   "description": "Deletes the specified TargetHttpProxy resource.",
145928	//   "httpMethod": "DELETE",
145929	//   "id": "compute.targetHttpProxies.delete",
145930	//   "parameterOrder": [
145931	//     "project",
145932	//     "targetHttpProxy"
145933	//   ],
145934	//   "parameters": {
145935	//     "project": {
145936	//       "description": "Project ID for this request.",
145937	//       "location": "path",
145938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145939	//       "required": true,
145940	//       "type": "string"
145941	//     },
145942	//     "requestId": {
145943	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145944	//       "location": "query",
145945	//       "type": "string"
145946	//     },
145947	//     "targetHttpProxy": {
145948	//       "description": "Name of the TargetHttpProxy resource to delete.",
145949	//       "location": "path",
145950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145951	//       "required": true,
145952	//       "type": "string"
145953	//     }
145954	//   },
145955	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
145956	//   "response": {
145957	//     "$ref": "Operation"
145958	//   },
145959	//   "scopes": [
145960	//     "https://www.googleapis.com/auth/cloud-platform",
145961	//     "https://www.googleapis.com/auth/compute"
145962	//   ]
145963	// }
145964
145965}
145966
145967// method id "compute.targetHttpProxies.get":
145968
145969type TargetHttpProxiesGetCall struct {
145970	s               *Service
145971	project         string
145972	targetHttpProxy string
145973	urlParams_      gensupport.URLParams
145974	ifNoneMatch_    string
145975	ctx_            context.Context
145976	header_         http.Header
145977}
145978
145979// Get: Returns the specified TargetHttpProxy resource. Gets a list of
145980// available target HTTP proxies by making a list() request.
145981// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
145982func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
145983	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145984	c.project = project
145985	c.targetHttpProxy = targetHttpProxy
145986	return c
145987}
145988
145989// Fields allows partial responses to be retrieved. See
145990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145991// for more information.
145992func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
145993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145994	return c
145995}
145996
145997// IfNoneMatch sets the optional parameter which makes the operation
145998// fail if the object's ETag matches the given value. This is useful for
145999// getting updates only after the object has changed since the last
146000// request. Use googleapi.IsNotModified to check whether the response
146001// error from Do is the result of In-None-Match.
146002func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
146003	c.ifNoneMatch_ = entityTag
146004	return c
146005}
146006
146007// Context sets the context to be used in this call's Do method. Any
146008// pending HTTP request will be aborted if the provided context is
146009// canceled.
146010func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
146011	c.ctx_ = ctx
146012	return c
146013}
146014
146015// Header returns an http.Header that can be modified by the caller to
146016// add HTTP headers to the request.
146017func (c *TargetHttpProxiesGetCall) Header() http.Header {
146018	if c.header_ == nil {
146019		c.header_ = make(http.Header)
146020	}
146021	return c.header_
146022}
146023
146024func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
146025	reqHeaders := make(http.Header)
146026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
146027	for k, v := range c.header_ {
146028		reqHeaders[k] = v
146029	}
146030	reqHeaders.Set("User-Agent", c.s.userAgent())
146031	if c.ifNoneMatch_ != "" {
146032		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146033	}
146034	var body io.Reader = nil
146035	c.urlParams_.Set("alt", alt)
146036	c.urlParams_.Set("prettyPrint", "false")
146037	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
146038	urls += "?" + c.urlParams_.Encode()
146039	req, err := http.NewRequest("GET", urls, body)
146040	if err != nil {
146041		return nil, err
146042	}
146043	req.Header = reqHeaders
146044	googleapi.Expand(req.URL, map[string]string{
146045		"project":         c.project,
146046		"targetHttpProxy": c.targetHttpProxy,
146047	})
146048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146049}
146050
146051// Do executes the "compute.targetHttpProxies.get" call.
146052// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
146053// status code is an error. Response headers are in either
146054// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
146055// at all) in error.(*googleapi.Error).Header. Use
146056// googleapi.IsNotModified to check whether the returned error was
146057// because http.StatusNotModified was returned.
146058func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
146059	gensupport.SetOptions(c.urlParams_, opts...)
146060	res, err := c.doRequest("json")
146061	if res != nil && res.StatusCode == http.StatusNotModified {
146062		if res.Body != nil {
146063			res.Body.Close()
146064		}
146065		return nil, &googleapi.Error{
146066			Code:   res.StatusCode,
146067			Header: res.Header,
146068		}
146069	}
146070	if err != nil {
146071		return nil, err
146072	}
146073	defer googleapi.CloseBody(res)
146074	if err := googleapi.CheckResponse(res); err != nil {
146075		return nil, err
146076	}
146077	ret := &TargetHttpProxy{
146078		ServerResponse: googleapi.ServerResponse{
146079			Header:         res.Header,
146080			HTTPStatusCode: res.StatusCode,
146081		},
146082	}
146083	target := &ret
146084	if err := gensupport.DecodeResponse(target, res); err != nil {
146085		return nil, err
146086	}
146087	return ret, nil
146088	// {
146089	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
146090	//   "httpMethod": "GET",
146091	//   "id": "compute.targetHttpProxies.get",
146092	//   "parameterOrder": [
146093	//     "project",
146094	//     "targetHttpProxy"
146095	//   ],
146096	//   "parameters": {
146097	//     "project": {
146098	//       "description": "Project ID for this request.",
146099	//       "location": "path",
146100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146101	//       "required": true,
146102	//       "type": "string"
146103	//     },
146104	//     "targetHttpProxy": {
146105	//       "description": "Name of the TargetHttpProxy resource to return.",
146106	//       "location": "path",
146107	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146108	//       "required": true,
146109	//       "type": "string"
146110	//     }
146111	//   },
146112	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
146113	//   "response": {
146114	//     "$ref": "TargetHttpProxy"
146115	//   },
146116	//   "scopes": [
146117	//     "https://www.googleapis.com/auth/cloud-platform",
146118	//     "https://www.googleapis.com/auth/compute",
146119	//     "https://www.googleapis.com/auth/compute.readonly"
146120	//   ]
146121	// }
146122
146123}
146124
146125// method id "compute.targetHttpProxies.insert":
146126
146127type TargetHttpProxiesInsertCall struct {
146128	s               *Service
146129	project         string
146130	targethttpproxy *TargetHttpProxy
146131	urlParams_      gensupport.URLParams
146132	ctx_            context.Context
146133	header_         http.Header
146134}
146135
146136// Insert: Creates a TargetHttpProxy resource in the specified project
146137// using the data included in the request.
146138// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
146139func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
146140	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146141	c.project = project
146142	c.targethttpproxy = targethttpproxy
146143	return c
146144}
146145
146146// RequestId sets the optional parameter "requestId": An optional
146147// request ID to identify requests. Specify a unique request ID so that
146148// if you must retry your request, the server will know to ignore the
146149// request if it has already been completed.
146150//
146151// For example, consider a situation where you make an initial request
146152// and the request times out. If you make the request again with the
146153// same request ID, the server can check if original operation with the
146154// same request ID was received, and if so, will ignore the second
146155// request. This prevents clients from accidentally creating duplicate
146156// commitments.
146157//
146158// The request ID must be a valid UUID with the exception that zero UUID
146159// is not supported (00000000-0000-0000-0000-000000000000).
146160func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
146161	c.urlParams_.Set("requestId", requestId)
146162	return c
146163}
146164
146165// Fields allows partial responses to be retrieved. See
146166// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146167// for more information.
146168func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
146169	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146170	return c
146171}
146172
146173// Context sets the context to be used in this call's Do method. Any
146174// pending HTTP request will be aborted if the provided context is
146175// canceled.
146176func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
146177	c.ctx_ = ctx
146178	return c
146179}
146180
146181// Header returns an http.Header that can be modified by the caller to
146182// add HTTP headers to the request.
146183func (c *TargetHttpProxiesInsertCall) Header() http.Header {
146184	if c.header_ == nil {
146185		c.header_ = make(http.Header)
146186	}
146187	return c.header_
146188}
146189
146190func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
146191	reqHeaders := make(http.Header)
146192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
146193	for k, v := range c.header_ {
146194		reqHeaders[k] = v
146195	}
146196	reqHeaders.Set("User-Agent", c.s.userAgent())
146197	var body io.Reader = nil
146198	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
146199	if err != nil {
146200		return nil, err
146201	}
146202	reqHeaders.Set("Content-Type", "application/json")
146203	c.urlParams_.Set("alt", alt)
146204	c.urlParams_.Set("prettyPrint", "false")
146205	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
146206	urls += "?" + c.urlParams_.Encode()
146207	req, err := http.NewRequest("POST", urls, body)
146208	if err != nil {
146209		return nil, err
146210	}
146211	req.Header = reqHeaders
146212	googleapi.Expand(req.URL, map[string]string{
146213		"project": c.project,
146214	})
146215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146216}
146217
146218// Do executes the "compute.targetHttpProxies.insert" call.
146219// Exactly one of *Operation or error will be non-nil. Any non-2xx
146220// status code is an error. Response headers are in either
146221// *Operation.ServerResponse.Header or (if a response was returned at
146222// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146223// to check whether the returned error was because
146224// http.StatusNotModified was returned.
146225func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146226	gensupport.SetOptions(c.urlParams_, opts...)
146227	res, err := c.doRequest("json")
146228	if res != nil && res.StatusCode == http.StatusNotModified {
146229		if res.Body != nil {
146230			res.Body.Close()
146231		}
146232		return nil, &googleapi.Error{
146233			Code:   res.StatusCode,
146234			Header: res.Header,
146235		}
146236	}
146237	if err != nil {
146238		return nil, err
146239	}
146240	defer googleapi.CloseBody(res)
146241	if err := googleapi.CheckResponse(res); err != nil {
146242		return nil, err
146243	}
146244	ret := &Operation{
146245		ServerResponse: googleapi.ServerResponse{
146246			Header:         res.Header,
146247			HTTPStatusCode: res.StatusCode,
146248		},
146249	}
146250	target := &ret
146251	if err := gensupport.DecodeResponse(target, res); err != nil {
146252		return nil, err
146253	}
146254	return ret, nil
146255	// {
146256	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
146257	//   "httpMethod": "POST",
146258	//   "id": "compute.targetHttpProxies.insert",
146259	//   "parameterOrder": [
146260	//     "project"
146261	//   ],
146262	//   "parameters": {
146263	//     "project": {
146264	//       "description": "Project ID for this request.",
146265	//       "location": "path",
146266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146267	//       "required": true,
146268	//       "type": "string"
146269	//     },
146270	//     "requestId": {
146271	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146272	//       "location": "query",
146273	//       "type": "string"
146274	//     }
146275	//   },
146276	//   "path": "{project}/global/targetHttpProxies",
146277	//   "request": {
146278	//     "$ref": "TargetHttpProxy"
146279	//   },
146280	//   "response": {
146281	//     "$ref": "Operation"
146282	//   },
146283	//   "scopes": [
146284	//     "https://www.googleapis.com/auth/cloud-platform",
146285	//     "https://www.googleapis.com/auth/compute"
146286	//   ]
146287	// }
146288
146289}
146290
146291// method id "compute.targetHttpProxies.list":
146292
146293type TargetHttpProxiesListCall struct {
146294	s            *Service
146295	project      string
146296	urlParams_   gensupport.URLParams
146297	ifNoneMatch_ string
146298	ctx_         context.Context
146299	header_      http.Header
146300}
146301
146302// List: Retrieves the list of TargetHttpProxy resources available to
146303// the specified project.
146304// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
146305func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
146306	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146307	c.project = project
146308	return c
146309}
146310
146311// Filter sets the optional parameter "filter": A filter expression that
146312// filters resources listed in the response. The expression must specify
146313// the field name, a comparison operator, and the value that you want to
146314// use for filtering. The value must be a string, a number, or a
146315// boolean. The comparison operator must be either `=`, `!=`, `>`, or
146316// `<`.
146317//
146318// For example, if you are filtering Compute Engine instances, you can
146319// exclude instances named `example-instance` by specifying `name !=
146320// example-instance`.
146321//
146322// You can also filter nested fields. For example, you could specify
146323// `scheduling.automaticRestart = false` to include instances only if
146324// they are not scheduled for automatic restarts. You can use filtering
146325// on nested fields to filter based on resource labels.
146326//
146327// To filter on multiple expressions, provide each separate expression
146328// within parentheses. For example: ``` (scheduling.automaticRestart =
146329// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
146330// is an `AND` expression. However, you can include `AND` and `OR`
146331// expressions explicitly. For example: ``` (cpuPlatform = "Intel
146332// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
146333// (scheduling.automaticRestart = true) ```
146334func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
146335	c.urlParams_.Set("filter", filter)
146336	return c
146337}
146338
146339// MaxResults sets the optional parameter "maxResults": The maximum
146340// number of results per page that should be returned. If the number of
146341// available results is larger than `maxResults`, Compute Engine returns
146342// a `nextPageToken` that can be used to get the next page of results in
146343// subsequent list requests. Acceptable values are `0` to `500`,
146344// inclusive. (Default: `500`)
146345func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
146346	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146347	return c
146348}
146349
146350// OrderBy sets the optional parameter "orderBy": Sorts list results by
146351// a certain order. By default, results are returned in alphanumerical
146352// order based on the resource name.
146353//
146354// You can also sort results in descending order based on the creation
146355// timestamp using `orderBy="creationTimestamp desc". This sorts
146356// results based on the `creationTimestamp` field in reverse
146357// chronological order (newest result first). Use this to sort resources
146358// like operations so that the newest operation is returned
146359// first.
146360//
146361// Currently, only sorting by `name` or `creationTimestamp desc` is
146362// supported.
146363func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
146364	c.urlParams_.Set("orderBy", orderBy)
146365	return c
146366}
146367
146368// PageToken sets the optional parameter "pageToken": Specifies a page
146369// token to use. Set `pageToken` to the `nextPageToken` returned by a
146370// previous list request to get the next page of results.
146371func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
146372	c.urlParams_.Set("pageToken", pageToken)
146373	return c
146374}
146375
146376// Fields allows partial responses to be retrieved. See
146377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146378// for more information.
146379func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
146380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146381	return c
146382}
146383
146384// IfNoneMatch sets the optional parameter which makes the operation
146385// fail if the object's ETag matches the given value. This is useful for
146386// getting updates only after the object has changed since the last
146387// request. Use googleapi.IsNotModified to check whether the response
146388// error from Do is the result of In-None-Match.
146389func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
146390	c.ifNoneMatch_ = entityTag
146391	return c
146392}
146393
146394// Context sets the context to be used in this call's Do method. Any
146395// pending HTTP request will be aborted if the provided context is
146396// canceled.
146397func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
146398	c.ctx_ = ctx
146399	return c
146400}
146401
146402// Header returns an http.Header that can be modified by the caller to
146403// add HTTP headers to the request.
146404func (c *TargetHttpProxiesListCall) Header() http.Header {
146405	if c.header_ == nil {
146406		c.header_ = make(http.Header)
146407	}
146408	return c.header_
146409}
146410
146411func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
146412	reqHeaders := make(http.Header)
146413	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
146414	for k, v := range c.header_ {
146415		reqHeaders[k] = v
146416	}
146417	reqHeaders.Set("User-Agent", c.s.userAgent())
146418	if c.ifNoneMatch_ != "" {
146419		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146420	}
146421	var body io.Reader = nil
146422	c.urlParams_.Set("alt", alt)
146423	c.urlParams_.Set("prettyPrint", "false")
146424	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
146425	urls += "?" + c.urlParams_.Encode()
146426	req, err := http.NewRequest("GET", urls, body)
146427	if err != nil {
146428		return nil, err
146429	}
146430	req.Header = reqHeaders
146431	googleapi.Expand(req.URL, map[string]string{
146432		"project": c.project,
146433	})
146434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146435}
146436
146437// Do executes the "compute.targetHttpProxies.list" call.
146438// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
146439// non-2xx status code is an error. Response headers are in either
146440// *TargetHttpProxyList.ServerResponse.Header or (if a response was
146441// returned at all) in error.(*googleapi.Error).Header. Use
146442// googleapi.IsNotModified to check whether the returned error was
146443// because http.StatusNotModified was returned.
146444func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
146445	gensupport.SetOptions(c.urlParams_, opts...)
146446	res, err := c.doRequest("json")
146447	if res != nil && res.StatusCode == http.StatusNotModified {
146448		if res.Body != nil {
146449			res.Body.Close()
146450		}
146451		return nil, &googleapi.Error{
146452			Code:   res.StatusCode,
146453			Header: res.Header,
146454		}
146455	}
146456	if err != nil {
146457		return nil, err
146458	}
146459	defer googleapi.CloseBody(res)
146460	if err := googleapi.CheckResponse(res); err != nil {
146461		return nil, err
146462	}
146463	ret := &TargetHttpProxyList{
146464		ServerResponse: googleapi.ServerResponse{
146465			Header:         res.Header,
146466			HTTPStatusCode: res.StatusCode,
146467		},
146468	}
146469	target := &ret
146470	if err := gensupport.DecodeResponse(target, res); err != nil {
146471		return nil, err
146472	}
146473	return ret, nil
146474	// {
146475	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
146476	//   "httpMethod": "GET",
146477	//   "id": "compute.targetHttpProxies.list",
146478	//   "parameterOrder": [
146479	//     "project"
146480	//   ],
146481	//   "parameters": {
146482	//     "filter": {
146483	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
146484	//       "location": "query",
146485	//       "type": "string"
146486	//     },
146487	//     "maxResults": {
146488	//       "default": "500",
146489	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
146490	//       "format": "uint32",
146491	//       "location": "query",
146492	//       "minimum": "0",
146493	//       "type": "integer"
146494	//     },
146495	//     "orderBy": {
146496	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
146497	//       "location": "query",
146498	//       "type": "string"
146499	//     },
146500	//     "pageToken": {
146501	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
146502	//       "location": "query",
146503	//       "type": "string"
146504	//     },
146505	//     "project": {
146506	//       "description": "Project ID for this request.",
146507	//       "location": "path",
146508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146509	//       "required": true,
146510	//       "type": "string"
146511	//     }
146512	//   },
146513	//   "path": "{project}/global/targetHttpProxies",
146514	//   "response": {
146515	//     "$ref": "TargetHttpProxyList"
146516	//   },
146517	//   "scopes": [
146518	//     "https://www.googleapis.com/auth/cloud-platform",
146519	//     "https://www.googleapis.com/auth/compute",
146520	//     "https://www.googleapis.com/auth/compute.readonly"
146521	//   ]
146522	// }
146523
146524}
146525
146526// Pages invokes f for each page of results.
146527// A non-nil error returned from f will halt the iteration.
146528// The provided context supersedes any context provided to the Context method.
146529func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
146530	c.ctx_ = ctx
146531	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146532	for {
146533		x, err := c.Do()
146534		if err != nil {
146535			return err
146536		}
146537		if err := f(x); err != nil {
146538			return err
146539		}
146540		if x.NextPageToken == "" {
146541			return nil
146542		}
146543		c.PageToken(x.NextPageToken)
146544	}
146545}
146546
146547// method id "compute.targetHttpProxies.setUrlMap":
146548
146549type TargetHttpProxiesSetUrlMapCall struct {
146550	s               *Service
146551	project         string
146552	targetHttpProxy string
146553	urlmapreference *UrlMapReference
146554	urlParams_      gensupport.URLParams
146555	ctx_            context.Context
146556	header_         http.Header
146557}
146558
146559// SetUrlMap: Changes the URL map for TargetHttpProxy.
146560// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
146561func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
146562	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146563	c.project = project
146564	c.targetHttpProxy = targetHttpProxy
146565	c.urlmapreference = urlmapreference
146566	return c
146567}
146568
146569// RequestId sets the optional parameter "requestId": An optional
146570// request ID to identify requests. Specify a unique request ID so that
146571// if you must retry your request, the server will know to ignore the
146572// request if it has already been completed.
146573//
146574// For example, consider a situation where you make an initial request
146575// and the request times out. If you make the request again with the
146576// same request ID, the server can check if original operation with the
146577// same request ID was received, and if so, will ignore the second
146578// request. This prevents clients from accidentally creating duplicate
146579// commitments.
146580//
146581// The request ID must be a valid UUID with the exception that zero UUID
146582// is not supported (00000000-0000-0000-0000-000000000000).
146583func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
146584	c.urlParams_.Set("requestId", requestId)
146585	return c
146586}
146587
146588// Fields allows partial responses to be retrieved. See
146589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146590// for more information.
146591func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
146592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146593	return c
146594}
146595
146596// Context sets the context to be used in this call's Do method. Any
146597// pending HTTP request will be aborted if the provided context is
146598// canceled.
146599func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
146600	c.ctx_ = ctx
146601	return c
146602}
146603
146604// Header returns an http.Header that can be modified by the caller to
146605// add HTTP headers to the request.
146606func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
146607	if c.header_ == nil {
146608		c.header_ = make(http.Header)
146609	}
146610	return c.header_
146611}
146612
146613func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
146614	reqHeaders := make(http.Header)
146615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
146616	for k, v := range c.header_ {
146617		reqHeaders[k] = v
146618	}
146619	reqHeaders.Set("User-Agent", c.s.userAgent())
146620	var body io.Reader = nil
146621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
146622	if err != nil {
146623		return nil, err
146624	}
146625	reqHeaders.Set("Content-Type", "application/json")
146626	c.urlParams_.Set("alt", alt)
146627	c.urlParams_.Set("prettyPrint", "false")
146628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
146629	urls += "?" + c.urlParams_.Encode()
146630	req, err := http.NewRequest("POST", urls, body)
146631	if err != nil {
146632		return nil, err
146633	}
146634	req.Header = reqHeaders
146635	googleapi.Expand(req.URL, map[string]string{
146636		"project":         c.project,
146637		"targetHttpProxy": c.targetHttpProxy,
146638	})
146639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146640}
146641
146642// Do executes the "compute.targetHttpProxies.setUrlMap" call.
146643// Exactly one of *Operation or error will be non-nil. Any non-2xx
146644// status code is an error. Response headers are in either
146645// *Operation.ServerResponse.Header or (if a response was returned at
146646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146647// to check whether the returned error was because
146648// http.StatusNotModified was returned.
146649func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146650	gensupport.SetOptions(c.urlParams_, opts...)
146651	res, err := c.doRequest("json")
146652	if res != nil && res.StatusCode == http.StatusNotModified {
146653		if res.Body != nil {
146654			res.Body.Close()
146655		}
146656		return nil, &googleapi.Error{
146657			Code:   res.StatusCode,
146658			Header: res.Header,
146659		}
146660	}
146661	if err != nil {
146662		return nil, err
146663	}
146664	defer googleapi.CloseBody(res)
146665	if err := googleapi.CheckResponse(res); err != nil {
146666		return nil, err
146667	}
146668	ret := &Operation{
146669		ServerResponse: googleapi.ServerResponse{
146670			Header:         res.Header,
146671			HTTPStatusCode: res.StatusCode,
146672		},
146673	}
146674	target := &ret
146675	if err := gensupport.DecodeResponse(target, res); err != nil {
146676		return nil, err
146677	}
146678	return ret, nil
146679	// {
146680	//   "description": "Changes the URL map for TargetHttpProxy.",
146681	//   "httpMethod": "POST",
146682	//   "id": "compute.targetHttpProxies.setUrlMap",
146683	//   "parameterOrder": [
146684	//     "project",
146685	//     "targetHttpProxy"
146686	//   ],
146687	//   "parameters": {
146688	//     "project": {
146689	//       "description": "Project ID for this request.",
146690	//       "location": "path",
146691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146692	//       "required": true,
146693	//       "type": "string"
146694	//     },
146695	//     "requestId": {
146696	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146697	//       "location": "query",
146698	//       "type": "string"
146699	//     },
146700	//     "targetHttpProxy": {
146701	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
146702	//       "location": "path",
146703	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146704	//       "required": true,
146705	//       "type": "string"
146706	//     }
146707	//   },
146708	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
146709	//   "request": {
146710	//     "$ref": "UrlMapReference"
146711	//   },
146712	//   "response": {
146713	//     "$ref": "Operation"
146714	//   },
146715	//   "scopes": [
146716	//     "https://www.googleapis.com/auth/cloud-platform",
146717	//     "https://www.googleapis.com/auth/compute"
146718	//   ]
146719	// }
146720
146721}
146722
146723// method id "compute.targetHttpProxies.testIamPermissions":
146724
146725type TargetHttpProxiesTestIamPermissionsCall struct {
146726	s                      *Service
146727	project                string
146728	resource               string
146729	testpermissionsrequest *TestPermissionsRequest
146730	urlParams_             gensupport.URLParams
146731	ctx_                   context.Context
146732	header_                http.Header
146733}
146734
146735// TestIamPermissions: Returns permissions that a caller has on the
146736// specified resource.
146737func (r *TargetHttpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpProxiesTestIamPermissionsCall {
146738	c := &TargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146739	c.project = project
146740	c.resource = resource
146741	c.testpermissionsrequest = testpermissionsrequest
146742	return c
146743}
146744
146745// Fields allows partial responses to be retrieved. See
146746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146747// for more information.
146748func (c *TargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpProxiesTestIamPermissionsCall {
146749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146750	return c
146751}
146752
146753// Context sets the context to be used in this call's Do method. Any
146754// pending HTTP request will be aborted if the provided context is
146755// canceled.
146756func (c *TargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpProxiesTestIamPermissionsCall {
146757	c.ctx_ = ctx
146758	return c
146759}
146760
146761// Header returns an http.Header that can be modified by the caller to
146762// add HTTP headers to the request.
146763func (c *TargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
146764	if c.header_ == nil {
146765		c.header_ = make(http.Header)
146766	}
146767	return c.header_
146768}
146769
146770func (c *TargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
146771	reqHeaders := make(http.Header)
146772	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
146773	for k, v := range c.header_ {
146774		reqHeaders[k] = v
146775	}
146776	reqHeaders.Set("User-Agent", c.s.userAgent())
146777	var body io.Reader = nil
146778	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
146779	if err != nil {
146780		return nil, err
146781	}
146782	reqHeaders.Set("Content-Type", "application/json")
146783	c.urlParams_.Set("alt", alt)
146784	c.urlParams_.Set("prettyPrint", "false")
146785	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{resource}/testIamPermissions")
146786	urls += "?" + c.urlParams_.Encode()
146787	req, err := http.NewRequest("POST", urls, body)
146788	if err != nil {
146789		return nil, err
146790	}
146791	req.Header = reqHeaders
146792	googleapi.Expand(req.URL, map[string]string{
146793		"project":  c.project,
146794		"resource": c.resource,
146795	})
146796	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146797}
146798
146799// Do executes the "compute.targetHttpProxies.testIamPermissions" call.
146800// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
146801// non-2xx status code is an error. Response headers are in either
146802// *TestPermissionsResponse.ServerResponse.Header or (if a response was
146803// returned at all) in error.(*googleapi.Error).Header. Use
146804// googleapi.IsNotModified to check whether the returned error was
146805// because http.StatusNotModified was returned.
146806func (c *TargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
146807	gensupport.SetOptions(c.urlParams_, opts...)
146808	res, err := c.doRequest("json")
146809	if res != nil && res.StatusCode == http.StatusNotModified {
146810		if res.Body != nil {
146811			res.Body.Close()
146812		}
146813		return nil, &googleapi.Error{
146814			Code:   res.StatusCode,
146815			Header: res.Header,
146816		}
146817	}
146818	if err != nil {
146819		return nil, err
146820	}
146821	defer googleapi.CloseBody(res)
146822	if err := googleapi.CheckResponse(res); err != nil {
146823		return nil, err
146824	}
146825	ret := &TestPermissionsResponse{
146826		ServerResponse: googleapi.ServerResponse{
146827			Header:         res.Header,
146828			HTTPStatusCode: res.StatusCode,
146829		},
146830	}
146831	target := &ret
146832	if err := gensupport.DecodeResponse(target, res); err != nil {
146833		return nil, err
146834	}
146835	return ret, nil
146836	// {
146837	//   "description": "Returns permissions that a caller has on the specified resource.",
146838	//   "httpMethod": "POST",
146839	//   "id": "compute.targetHttpProxies.testIamPermissions",
146840	//   "parameterOrder": [
146841	//     "project",
146842	//     "resource"
146843	//   ],
146844	//   "parameters": {
146845	//     "project": {
146846	//       "description": "Project ID for this request.",
146847	//       "location": "path",
146848	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146849	//       "required": true,
146850	//       "type": "string"
146851	//     },
146852	//     "resource": {
146853	//       "description": "Name or id of the resource for this request.",
146854	//       "location": "path",
146855	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146856	//       "required": true,
146857	//       "type": "string"
146858	//     }
146859	//   },
146860	//   "path": "{project}/global/targetHttpProxies/{resource}/testIamPermissions",
146861	//   "request": {
146862	//     "$ref": "TestPermissionsRequest"
146863	//   },
146864	//   "response": {
146865	//     "$ref": "TestPermissionsResponse"
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.targetHttpsProxies.aggregatedList":
146877
146878type TargetHttpsProxiesAggregatedListCall struct {
146879	s            *Service
146880	project      string
146881	urlParams_   gensupport.URLParams
146882	ifNoneMatch_ string
146883	ctx_         context.Context
146884	header_      http.Header
146885}
146886
146887// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
146888// regional and global, available to the specified project.
146889func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
146890	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146891	c.project = project
146892	return c
146893}
146894
146895// Filter sets the optional parameter "filter": A filter expression that
146896// filters resources listed in the response. The expression must specify
146897// the field name, a comparison operator, and the value that you want to
146898// use for filtering. The value must be a string, a number, or a
146899// boolean. The comparison operator must be either `=`, `!=`, `>`, or
146900// `<`.
146901//
146902// For example, if you are filtering Compute Engine instances, you can
146903// exclude instances named `example-instance` by specifying `name !=
146904// example-instance`.
146905//
146906// You can also filter nested fields. For example, you could specify
146907// `scheduling.automaticRestart = false` to include instances only if
146908// they are not scheduled for automatic restarts. You can use filtering
146909// on nested fields to filter based on resource labels.
146910//
146911// To filter on multiple expressions, provide each separate expression
146912// within parentheses. For example: ``` (scheduling.automaticRestart =
146913// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
146914// is an `AND` expression. However, you can include `AND` and `OR`
146915// expressions explicitly. For example: ``` (cpuPlatform = "Intel
146916// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
146917// (scheduling.automaticRestart = true) ```
146918func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
146919	c.urlParams_.Set("filter", filter)
146920	return c
146921}
146922
146923// IncludeAllScopes sets the optional parameter "includeAllScopes":
146924// Indicates whether every visible scope for each scope type (zone,
146925// region, global) should be included in the response. For new resource
146926// types added after this field, the flag has no effect as new resource
146927// types will always include every visible scope for each scope type in
146928// response. For resource types which predate this field, if this flag
146929// is omitted or false, only scopes of the scope types where the
146930// resource type is expected to be found will be included.
146931func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
146932	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
146933	return c
146934}
146935
146936// MaxResults sets the optional parameter "maxResults": The maximum
146937// number of results per page that should be returned. If the number of
146938// available results is larger than `maxResults`, Compute Engine returns
146939// a `nextPageToken` that can be used to get the next page of results in
146940// subsequent list requests. Acceptable values are `0` to `500`,
146941// inclusive. (Default: `500`)
146942func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
146943	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146944	return c
146945}
146946
146947// OrderBy sets the optional parameter "orderBy": Sorts list results by
146948// a certain order. By default, results are returned in alphanumerical
146949// order based on the resource name.
146950//
146951// You can also sort results in descending order based on the creation
146952// timestamp using `orderBy="creationTimestamp desc". This sorts
146953// results based on the `creationTimestamp` field in reverse
146954// chronological order (newest result first). Use this to sort resources
146955// like operations so that the newest operation is returned
146956// first.
146957//
146958// Currently, only sorting by `name` or `creationTimestamp desc` is
146959// supported.
146960func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
146961	c.urlParams_.Set("orderBy", orderBy)
146962	return c
146963}
146964
146965// PageToken sets the optional parameter "pageToken": Specifies a page
146966// token to use. Set `pageToken` to the `nextPageToken` returned by a
146967// previous list request to get the next page of results.
146968func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
146969	c.urlParams_.Set("pageToken", pageToken)
146970	return c
146971}
146972
146973// Fields allows partial responses to be retrieved. See
146974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146975// for more information.
146976func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
146977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146978	return c
146979}
146980
146981// IfNoneMatch sets the optional parameter which makes the operation
146982// fail if the object's ETag matches the given value. This is useful for
146983// getting updates only after the object has changed since the last
146984// request. Use googleapi.IsNotModified to check whether the response
146985// error from Do is the result of In-None-Match.
146986func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
146987	c.ifNoneMatch_ = entityTag
146988	return c
146989}
146990
146991// Context sets the context to be used in this call's Do method. Any
146992// pending HTTP request will be aborted if the provided context is
146993// canceled.
146994func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
146995	c.ctx_ = ctx
146996	return c
146997}
146998
146999// Header returns an http.Header that can be modified by the caller to
147000// add HTTP headers to the request.
147001func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
147002	if c.header_ == nil {
147003		c.header_ = make(http.Header)
147004	}
147005	return c.header_
147006}
147007
147008func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
147009	reqHeaders := make(http.Header)
147010	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
147011	for k, v := range c.header_ {
147012		reqHeaders[k] = v
147013	}
147014	reqHeaders.Set("User-Agent", c.s.userAgent())
147015	if c.ifNoneMatch_ != "" {
147016		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147017	}
147018	var body io.Reader = nil
147019	c.urlParams_.Set("alt", alt)
147020	c.urlParams_.Set("prettyPrint", "false")
147021	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpsProxies")
147022	urls += "?" + c.urlParams_.Encode()
147023	req, err := http.NewRequest("GET", urls, body)
147024	if err != nil {
147025		return nil, err
147026	}
147027	req.Header = reqHeaders
147028	googleapi.Expand(req.URL, map[string]string{
147029		"project": c.project,
147030	})
147031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147032}
147033
147034// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
147035// Exactly one of *TargetHttpsProxyAggregatedList or error will be
147036// non-nil. Any non-2xx status code is an error. Response headers are in
147037// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
147038// response was returned at all) in error.(*googleapi.Error).Header. Use
147039// googleapi.IsNotModified to check whether the returned error was
147040// because http.StatusNotModified was returned.
147041func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
147042	gensupport.SetOptions(c.urlParams_, opts...)
147043	res, err := c.doRequest("json")
147044	if res != nil && res.StatusCode == http.StatusNotModified {
147045		if res.Body != nil {
147046			res.Body.Close()
147047		}
147048		return nil, &googleapi.Error{
147049			Code:   res.StatusCode,
147050			Header: res.Header,
147051		}
147052	}
147053	if err != nil {
147054		return nil, err
147055	}
147056	defer googleapi.CloseBody(res)
147057	if err := googleapi.CheckResponse(res); err != nil {
147058		return nil, err
147059	}
147060	ret := &TargetHttpsProxyAggregatedList{
147061		ServerResponse: googleapi.ServerResponse{
147062			Header:         res.Header,
147063			HTTPStatusCode: res.StatusCode,
147064		},
147065	}
147066	target := &ret
147067	if err := gensupport.DecodeResponse(target, res); err != nil {
147068		return nil, err
147069	}
147070	return ret, nil
147071	// {
147072	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
147073	//   "httpMethod": "GET",
147074	//   "id": "compute.targetHttpsProxies.aggregatedList",
147075	//   "parameterOrder": [
147076	//     "project"
147077	//   ],
147078	//   "parameters": {
147079	//     "filter": {
147080	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
147081	//       "location": "query",
147082	//       "type": "string"
147083	//     },
147084	//     "includeAllScopes": {
147085	//       "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.",
147086	//       "location": "query",
147087	//       "type": "boolean"
147088	//     },
147089	//     "maxResults": {
147090	//       "default": "500",
147091	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147092	//       "format": "uint32",
147093	//       "location": "query",
147094	//       "minimum": "0",
147095	//       "type": "integer"
147096	//     },
147097	//     "orderBy": {
147098	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
147099	//       "location": "query",
147100	//       "type": "string"
147101	//     },
147102	//     "pageToken": {
147103	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147104	//       "location": "query",
147105	//       "type": "string"
147106	//     },
147107	//     "project": {
147108	//       "description": "Name of the project scoping this request.",
147109	//       "location": "path",
147110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147111	//       "required": true,
147112	//       "type": "string"
147113	//     }
147114	//   },
147115	//   "path": "{project}/aggregated/targetHttpsProxies",
147116	//   "response": {
147117	//     "$ref": "TargetHttpsProxyAggregatedList"
147118	//   },
147119	//   "scopes": [
147120	//     "https://www.googleapis.com/auth/cloud-platform",
147121	//     "https://www.googleapis.com/auth/compute",
147122	//     "https://www.googleapis.com/auth/compute.readonly"
147123	//   ]
147124	// }
147125
147126}
147127
147128// Pages invokes f for each page of results.
147129// A non-nil error returned from f will halt the iteration.
147130// The provided context supersedes any context provided to the Context method.
147131func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
147132	c.ctx_ = ctx
147133	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147134	for {
147135		x, err := c.Do()
147136		if err != nil {
147137			return err
147138		}
147139		if err := f(x); err != nil {
147140			return err
147141		}
147142		if x.NextPageToken == "" {
147143			return nil
147144		}
147145		c.PageToken(x.NextPageToken)
147146	}
147147}
147148
147149// method id "compute.targetHttpsProxies.delete":
147150
147151type TargetHttpsProxiesDeleteCall struct {
147152	s                *Service
147153	project          string
147154	targetHttpsProxy string
147155	urlParams_       gensupport.URLParams
147156	ctx_             context.Context
147157	header_          http.Header
147158}
147159
147160// Delete: Deletes the specified TargetHttpsProxy resource.
147161func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
147162	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147163	c.project = project
147164	c.targetHttpsProxy = targetHttpsProxy
147165	return c
147166}
147167
147168// RequestId sets the optional parameter "requestId": An optional
147169// request ID to identify requests. Specify a unique request ID so that
147170// if you must retry your request, the server will know to ignore the
147171// request if it has already been completed.
147172//
147173// For example, consider a situation where you make an initial request
147174// and the request times out. If you make the request again with the
147175// same request ID, the server can check if original operation with the
147176// same request ID was received, and if so, will ignore the second
147177// request. This prevents clients from accidentally creating duplicate
147178// commitments.
147179//
147180// The request ID must be a valid UUID with the exception that zero UUID
147181// is not supported (00000000-0000-0000-0000-000000000000).
147182func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
147183	c.urlParams_.Set("requestId", requestId)
147184	return c
147185}
147186
147187// Fields allows partial responses to be retrieved. See
147188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147189// for more information.
147190func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
147191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147192	return c
147193}
147194
147195// Context sets the context to be used in this call's Do method. Any
147196// pending HTTP request will be aborted if the provided context is
147197// canceled.
147198func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
147199	c.ctx_ = ctx
147200	return c
147201}
147202
147203// Header returns an http.Header that can be modified by the caller to
147204// add HTTP headers to the request.
147205func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
147206	if c.header_ == nil {
147207		c.header_ = make(http.Header)
147208	}
147209	return c.header_
147210}
147211
147212func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
147213	reqHeaders := make(http.Header)
147214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
147215	for k, v := range c.header_ {
147216		reqHeaders[k] = v
147217	}
147218	reqHeaders.Set("User-Agent", c.s.userAgent())
147219	var body io.Reader = nil
147220	c.urlParams_.Set("alt", alt)
147221	c.urlParams_.Set("prettyPrint", "false")
147222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
147223	urls += "?" + c.urlParams_.Encode()
147224	req, err := http.NewRequest("DELETE", urls, body)
147225	if err != nil {
147226		return nil, err
147227	}
147228	req.Header = reqHeaders
147229	googleapi.Expand(req.URL, map[string]string{
147230		"project":          c.project,
147231		"targetHttpsProxy": c.targetHttpsProxy,
147232	})
147233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147234}
147235
147236// Do executes the "compute.targetHttpsProxies.delete" call.
147237// Exactly one of *Operation or error will be non-nil. Any non-2xx
147238// status code is an error. Response headers are in either
147239// *Operation.ServerResponse.Header or (if a response was returned at
147240// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147241// to check whether the returned error was because
147242// http.StatusNotModified was returned.
147243func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147244	gensupport.SetOptions(c.urlParams_, opts...)
147245	res, err := c.doRequest("json")
147246	if res != nil && res.StatusCode == http.StatusNotModified {
147247		if res.Body != nil {
147248			res.Body.Close()
147249		}
147250		return nil, &googleapi.Error{
147251			Code:   res.StatusCode,
147252			Header: res.Header,
147253		}
147254	}
147255	if err != nil {
147256		return nil, err
147257	}
147258	defer googleapi.CloseBody(res)
147259	if err := googleapi.CheckResponse(res); err != nil {
147260		return nil, err
147261	}
147262	ret := &Operation{
147263		ServerResponse: googleapi.ServerResponse{
147264			Header:         res.Header,
147265			HTTPStatusCode: res.StatusCode,
147266		},
147267	}
147268	target := &ret
147269	if err := gensupport.DecodeResponse(target, res); err != nil {
147270		return nil, err
147271	}
147272	return ret, nil
147273	// {
147274	//   "description": "Deletes the specified TargetHttpsProxy resource.",
147275	//   "httpMethod": "DELETE",
147276	//   "id": "compute.targetHttpsProxies.delete",
147277	//   "parameterOrder": [
147278	//     "project",
147279	//     "targetHttpsProxy"
147280	//   ],
147281	//   "parameters": {
147282	//     "project": {
147283	//       "description": "Project ID for this request.",
147284	//       "location": "path",
147285	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147286	//       "required": true,
147287	//       "type": "string"
147288	//     },
147289	//     "requestId": {
147290	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147291	//       "location": "query",
147292	//       "type": "string"
147293	//     },
147294	//     "targetHttpsProxy": {
147295	//       "description": "Name of the TargetHttpsProxy resource to delete.",
147296	//       "location": "path",
147297	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147298	//       "required": true,
147299	//       "type": "string"
147300	//     }
147301	//   },
147302	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
147303	//   "response": {
147304	//     "$ref": "Operation"
147305	//   },
147306	//   "scopes": [
147307	//     "https://www.googleapis.com/auth/cloud-platform",
147308	//     "https://www.googleapis.com/auth/compute"
147309	//   ]
147310	// }
147311
147312}
147313
147314// method id "compute.targetHttpsProxies.get":
147315
147316type TargetHttpsProxiesGetCall struct {
147317	s                *Service
147318	project          string
147319	targetHttpsProxy string
147320	urlParams_       gensupport.URLParams
147321	ifNoneMatch_     string
147322	ctx_             context.Context
147323	header_          http.Header
147324}
147325
147326// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
147327// available target HTTPS proxies by making a list() request.
147328func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
147329	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147330	c.project = project
147331	c.targetHttpsProxy = targetHttpsProxy
147332	return c
147333}
147334
147335// Fields allows partial responses to be retrieved. See
147336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147337// for more information.
147338func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
147339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147340	return c
147341}
147342
147343// IfNoneMatch sets the optional parameter which makes the operation
147344// fail if the object's ETag matches the given value. This is useful for
147345// getting updates only after the object has changed since the last
147346// request. Use googleapi.IsNotModified to check whether the response
147347// error from Do is the result of In-None-Match.
147348func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
147349	c.ifNoneMatch_ = entityTag
147350	return c
147351}
147352
147353// Context sets the context to be used in this call's Do method. Any
147354// pending HTTP request will be aborted if the provided context is
147355// canceled.
147356func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
147357	c.ctx_ = ctx
147358	return c
147359}
147360
147361// Header returns an http.Header that can be modified by the caller to
147362// add HTTP headers to the request.
147363func (c *TargetHttpsProxiesGetCall) Header() http.Header {
147364	if c.header_ == nil {
147365		c.header_ = make(http.Header)
147366	}
147367	return c.header_
147368}
147369
147370func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
147371	reqHeaders := make(http.Header)
147372	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
147373	for k, v := range c.header_ {
147374		reqHeaders[k] = v
147375	}
147376	reqHeaders.Set("User-Agent", c.s.userAgent())
147377	if c.ifNoneMatch_ != "" {
147378		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147379	}
147380	var body io.Reader = nil
147381	c.urlParams_.Set("alt", alt)
147382	c.urlParams_.Set("prettyPrint", "false")
147383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
147384	urls += "?" + c.urlParams_.Encode()
147385	req, err := http.NewRequest("GET", urls, body)
147386	if err != nil {
147387		return nil, err
147388	}
147389	req.Header = reqHeaders
147390	googleapi.Expand(req.URL, map[string]string{
147391		"project":          c.project,
147392		"targetHttpsProxy": c.targetHttpsProxy,
147393	})
147394	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147395}
147396
147397// Do executes the "compute.targetHttpsProxies.get" call.
147398// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
147399// non-2xx status code is an error. Response headers are in either
147400// *TargetHttpsProxy.ServerResponse.Header or (if a response was
147401// returned at all) in error.(*googleapi.Error).Header. Use
147402// googleapi.IsNotModified to check whether the returned error was
147403// because http.StatusNotModified was returned.
147404func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
147405	gensupport.SetOptions(c.urlParams_, opts...)
147406	res, err := c.doRequest("json")
147407	if res != nil && res.StatusCode == http.StatusNotModified {
147408		if res.Body != nil {
147409			res.Body.Close()
147410		}
147411		return nil, &googleapi.Error{
147412			Code:   res.StatusCode,
147413			Header: res.Header,
147414		}
147415	}
147416	if err != nil {
147417		return nil, err
147418	}
147419	defer googleapi.CloseBody(res)
147420	if err := googleapi.CheckResponse(res); err != nil {
147421		return nil, err
147422	}
147423	ret := &TargetHttpsProxy{
147424		ServerResponse: googleapi.ServerResponse{
147425			Header:         res.Header,
147426			HTTPStatusCode: res.StatusCode,
147427		},
147428	}
147429	target := &ret
147430	if err := gensupport.DecodeResponse(target, res); err != nil {
147431		return nil, err
147432	}
147433	return ret, nil
147434	// {
147435	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
147436	//   "httpMethod": "GET",
147437	//   "id": "compute.targetHttpsProxies.get",
147438	//   "parameterOrder": [
147439	//     "project",
147440	//     "targetHttpsProxy"
147441	//   ],
147442	//   "parameters": {
147443	//     "project": {
147444	//       "description": "Project ID for this request.",
147445	//       "location": "path",
147446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147447	//       "required": true,
147448	//       "type": "string"
147449	//     },
147450	//     "targetHttpsProxy": {
147451	//       "description": "Name of the TargetHttpsProxy resource to return.",
147452	//       "location": "path",
147453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147454	//       "required": true,
147455	//       "type": "string"
147456	//     }
147457	//   },
147458	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
147459	//   "response": {
147460	//     "$ref": "TargetHttpsProxy"
147461	//   },
147462	//   "scopes": [
147463	//     "https://www.googleapis.com/auth/cloud-platform",
147464	//     "https://www.googleapis.com/auth/compute",
147465	//     "https://www.googleapis.com/auth/compute.readonly"
147466	//   ]
147467	// }
147468
147469}
147470
147471// method id "compute.targetHttpsProxies.insert":
147472
147473type TargetHttpsProxiesInsertCall struct {
147474	s                *Service
147475	project          string
147476	targethttpsproxy *TargetHttpsProxy
147477	urlParams_       gensupport.URLParams
147478	ctx_             context.Context
147479	header_          http.Header
147480}
147481
147482// Insert: Creates a TargetHttpsProxy resource in the specified project
147483// using the data included in the request.
147484func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
147485	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147486	c.project = project
147487	c.targethttpsproxy = targethttpsproxy
147488	return c
147489}
147490
147491// RequestId sets the optional parameter "requestId": An optional
147492// request ID to identify requests. Specify a unique request ID so that
147493// if you must retry your request, the server will know to ignore the
147494// request if it has already been completed.
147495//
147496// For example, consider a situation where you make an initial request
147497// and the request times out. If you make the request again with the
147498// same request ID, the server can check if original operation with the
147499// same request ID was received, and if so, will ignore the second
147500// request. This prevents clients from accidentally creating duplicate
147501// commitments.
147502//
147503// The request ID must be a valid UUID with the exception that zero UUID
147504// is not supported (00000000-0000-0000-0000-000000000000).
147505func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
147506	c.urlParams_.Set("requestId", requestId)
147507	return c
147508}
147509
147510// Fields allows partial responses to be retrieved. See
147511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147512// for more information.
147513func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
147514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147515	return c
147516}
147517
147518// Context sets the context to be used in this call's Do method. Any
147519// pending HTTP request will be aborted if the provided context is
147520// canceled.
147521func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
147522	c.ctx_ = ctx
147523	return c
147524}
147525
147526// Header returns an http.Header that can be modified by the caller to
147527// add HTTP headers to the request.
147528func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
147529	if c.header_ == nil {
147530		c.header_ = make(http.Header)
147531	}
147532	return c.header_
147533}
147534
147535func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
147536	reqHeaders := make(http.Header)
147537	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
147538	for k, v := range c.header_ {
147539		reqHeaders[k] = v
147540	}
147541	reqHeaders.Set("User-Agent", c.s.userAgent())
147542	var body io.Reader = nil
147543	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
147544	if err != nil {
147545		return nil, err
147546	}
147547	reqHeaders.Set("Content-Type", "application/json")
147548	c.urlParams_.Set("alt", alt)
147549	c.urlParams_.Set("prettyPrint", "false")
147550	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
147551	urls += "?" + c.urlParams_.Encode()
147552	req, err := http.NewRequest("POST", urls, body)
147553	if err != nil {
147554		return nil, err
147555	}
147556	req.Header = reqHeaders
147557	googleapi.Expand(req.URL, map[string]string{
147558		"project": c.project,
147559	})
147560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147561}
147562
147563// Do executes the "compute.targetHttpsProxies.insert" call.
147564// Exactly one of *Operation or error will be non-nil. Any non-2xx
147565// status code is an error. Response headers are in either
147566// *Operation.ServerResponse.Header or (if a response was returned at
147567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147568// to check whether the returned error was because
147569// http.StatusNotModified was returned.
147570func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147571	gensupport.SetOptions(c.urlParams_, opts...)
147572	res, err := c.doRequest("json")
147573	if res != nil && res.StatusCode == http.StatusNotModified {
147574		if res.Body != nil {
147575			res.Body.Close()
147576		}
147577		return nil, &googleapi.Error{
147578			Code:   res.StatusCode,
147579			Header: res.Header,
147580		}
147581	}
147582	if err != nil {
147583		return nil, err
147584	}
147585	defer googleapi.CloseBody(res)
147586	if err := googleapi.CheckResponse(res); err != nil {
147587		return nil, err
147588	}
147589	ret := &Operation{
147590		ServerResponse: googleapi.ServerResponse{
147591			Header:         res.Header,
147592			HTTPStatusCode: res.StatusCode,
147593		},
147594	}
147595	target := &ret
147596	if err := gensupport.DecodeResponse(target, res); err != nil {
147597		return nil, err
147598	}
147599	return ret, nil
147600	// {
147601	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
147602	//   "httpMethod": "POST",
147603	//   "id": "compute.targetHttpsProxies.insert",
147604	//   "parameterOrder": [
147605	//     "project"
147606	//   ],
147607	//   "parameters": {
147608	//     "project": {
147609	//       "description": "Project ID for this request.",
147610	//       "location": "path",
147611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147612	//       "required": true,
147613	//       "type": "string"
147614	//     },
147615	//     "requestId": {
147616	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147617	//       "location": "query",
147618	//       "type": "string"
147619	//     }
147620	//   },
147621	//   "path": "{project}/global/targetHttpsProxies",
147622	//   "request": {
147623	//     "$ref": "TargetHttpsProxy"
147624	//   },
147625	//   "response": {
147626	//     "$ref": "Operation"
147627	//   },
147628	//   "scopes": [
147629	//     "https://www.googleapis.com/auth/cloud-platform",
147630	//     "https://www.googleapis.com/auth/compute"
147631	//   ]
147632	// }
147633
147634}
147635
147636// method id "compute.targetHttpsProxies.list":
147637
147638type TargetHttpsProxiesListCall struct {
147639	s            *Service
147640	project      string
147641	urlParams_   gensupport.URLParams
147642	ifNoneMatch_ string
147643	ctx_         context.Context
147644	header_      http.Header
147645}
147646
147647// List: Retrieves the list of TargetHttpsProxy resources available to
147648// the specified project.
147649func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
147650	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147651	c.project = project
147652	return c
147653}
147654
147655// Filter sets the optional parameter "filter": A filter expression that
147656// filters resources listed in the response. The expression must specify
147657// the field name, a comparison operator, and the value that you want to
147658// use for filtering. The value must be a string, a number, or a
147659// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147660// `<`.
147661//
147662// For example, if you are filtering Compute Engine instances, you can
147663// exclude instances named `example-instance` by specifying `name !=
147664// example-instance`.
147665//
147666// You can also filter nested fields. For example, you could specify
147667// `scheduling.automaticRestart = false` to include instances only if
147668// they are not scheduled for automatic restarts. You can use filtering
147669// on nested fields to filter based on resource labels.
147670//
147671// To filter on multiple expressions, provide each separate expression
147672// within parentheses. For example: ``` (scheduling.automaticRestart =
147673// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
147674// is an `AND` expression. However, you can include `AND` and `OR`
147675// expressions explicitly. For example: ``` (cpuPlatform = "Intel
147676// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
147677// (scheduling.automaticRestart = true) ```
147678func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
147679	c.urlParams_.Set("filter", filter)
147680	return c
147681}
147682
147683// MaxResults sets the optional parameter "maxResults": The maximum
147684// number of results per page that should be returned. If the number of
147685// available results is larger than `maxResults`, Compute Engine returns
147686// a `nextPageToken` that can be used to get the next page of results in
147687// subsequent list requests. Acceptable values are `0` to `500`,
147688// inclusive. (Default: `500`)
147689func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
147690	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147691	return c
147692}
147693
147694// OrderBy sets the optional parameter "orderBy": Sorts list results by
147695// a certain order. By default, results are returned in alphanumerical
147696// order based on the resource name.
147697//
147698// You can also sort results in descending order based on the creation
147699// timestamp using `orderBy="creationTimestamp desc". This sorts
147700// results based on the `creationTimestamp` field in reverse
147701// chronological order (newest result first). Use this to sort resources
147702// like operations so that the newest operation is returned
147703// first.
147704//
147705// Currently, only sorting by `name` or `creationTimestamp desc` is
147706// supported.
147707func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
147708	c.urlParams_.Set("orderBy", orderBy)
147709	return c
147710}
147711
147712// PageToken sets the optional parameter "pageToken": Specifies a page
147713// token to use. Set `pageToken` to the `nextPageToken` returned by a
147714// previous list request to get the next page of results.
147715func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
147716	c.urlParams_.Set("pageToken", pageToken)
147717	return c
147718}
147719
147720// Fields allows partial responses to be retrieved. See
147721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147722// for more information.
147723func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
147724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147725	return c
147726}
147727
147728// IfNoneMatch sets the optional parameter which makes the operation
147729// fail if the object's ETag matches the given value. This is useful for
147730// getting updates only after the object has changed since the last
147731// request. Use googleapi.IsNotModified to check whether the response
147732// error from Do is the result of In-None-Match.
147733func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
147734	c.ifNoneMatch_ = entityTag
147735	return c
147736}
147737
147738// Context sets the context to be used in this call's Do method. Any
147739// pending HTTP request will be aborted if the provided context is
147740// canceled.
147741func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
147742	c.ctx_ = ctx
147743	return c
147744}
147745
147746// Header returns an http.Header that can be modified by the caller to
147747// add HTTP headers to the request.
147748func (c *TargetHttpsProxiesListCall) Header() http.Header {
147749	if c.header_ == nil {
147750		c.header_ = make(http.Header)
147751	}
147752	return c.header_
147753}
147754
147755func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
147756	reqHeaders := make(http.Header)
147757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
147758	for k, v := range c.header_ {
147759		reqHeaders[k] = v
147760	}
147761	reqHeaders.Set("User-Agent", c.s.userAgent())
147762	if c.ifNoneMatch_ != "" {
147763		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147764	}
147765	var body io.Reader = nil
147766	c.urlParams_.Set("alt", alt)
147767	c.urlParams_.Set("prettyPrint", "false")
147768	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
147769	urls += "?" + c.urlParams_.Encode()
147770	req, err := http.NewRequest("GET", urls, body)
147771	if err != nil {
147772		return nil, err
147773	}
147774	req.Header = reqHeaders
147775	googleapi.Expand(req.URL, map[string]string{
147776		"project": c.project,
147777	})
147778	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147779}
147780
147781// Do executes the "compute.targetHttpsProxies.list" call.
147782// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
147783// non-2xx status code is an error. Response headers are in either
147784// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
147785// returned at all) in error.(*googleapi.Error).Header. Use
147786// googleapi.IsNotModified to check whether the returned error was
147787// because http.StatusNotModified was returned.
147788func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
147789	gensupport.SetOptions(c.urlParams_, opts...)
147790	res, err := c.doRequest("json")
147791	if res != nil && res.StatusCode == http.StatusNotModified {
147792		if res.Body != nil {
147793			res.Body.Close()
147794		}
147795		return nil, &googleapi.Error{
147796			Code:   res.StatusCode,
147797			Header: res.Header,
147798		}
147799	}
147800	if err != nil {
147801		return nil, err
147802	}
147803	defer googleapi.CloseBody(res)
147804	if err := googleapi.CheckResponse(res); err != nil {
147805		return nil, err
147806	}
147807	ret := &TargetHttpsProxyList{
147808		ServerResponse: googleapi.ServerResponse{
147809			Header:         res.Header,
147810			HTTPStatusCode: res.StatusCode,
147811		},
147812	}
147813	target := &ret
147814	if err := gensupport.DecodeResponse(target, res); err != nil {
147815		return nil, err
147816	}
147817	return ret, nil
147818	// {
147819	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
147820	//   "httpMethod": "GET",
147821	//   "id": "compute.targetHttpsProxies.list",
147822	//   "parameterOrder": [
147823	//     "project"
147824	//   ],
147825	//   "parameters": {
147826	//     "filter": {
147827	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
147828	//       "location": "query",
147829	//       "type": "string"
147830	//     },
147831	//     "maxResults": {
147832	//       "default": "500",
147833	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147834	//       "format": "uint32",
147835	//       "location": "query",
147836	//       "minimum": "0",
147837	//       "type": "integer"
147838	//     },
147839	//     "orderBy": {
147840	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
147841	//       "location": "query",
147842	//       "type": "string"
147843	//     },
147844	//     "pageToken": {
147845	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147846	//       "location": "query",
147847	//       "type": "string"
147848	//     },
147849	//     "project": {
147850	//       "description": "Project ID for this request.",
147851	//       "location": "path",
147852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147853	//       "required": true,
147854	//       "type": "string"
147855	//     }
147856	//   },
147857	//   "path": "{project}/global/targetHttpsProxies",
147858	//   "response": {
147859	//     "$ref": "TargetHttpsProxyList"
147860	//   },
147861	//   "scopes": [
147862	//     "https://www.googleapis.com/auth/cloud-platform",
147863	//     "https://www.googleapis.com/auth/compute",
147864	//     "https://www.googleapis.com/auth/compute.readonly"
147865	//   ]
147866	// }
147867
147868}
147869
147870// Pages invokes f for each page of results.
147871// A non-nil error returned from f will halt the iteration.
147872// The provided context supersedes any context provided to the Context method.
147873func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
147874	c.ctx_ = ctx
147875	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147876	for {
147877		x, err := c.Do()
147878		if err != nil {
147879			return err
147880		}
147881		if err := f(x); err != nil {
147882			return err
147883		}
147884		if x.NextPageToken == "" {
147885			return nil
147886		}
147887		c.PageToken(x.NextPageToken)
147888	}
147889}
147890
147891// method id "compute.targetHttpsProxies.setQuicOverride":
147892
147893type TargetHttpsProxiesSetQuicOverrideCall struct {
147894	s                                        *Service
147895	project                                  string
147896	targetHttpsProxy                         string
147897	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
147898	urlParams_                               gensupport.URLParams
147899	ctx_                                     context.Context
147900	header_                                  http.Header
147901}
147902
147903// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
147904func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
147905	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147906	c.project = project
147907	c.targetHttpsProxy = targetHttpsProxy
147908	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
147909	return c
147910}
147911
147912// RequestId sets the optional parameter "requestId": An optional
147913// request ID to identify requests. Specify a unique request ID so that
147914// if you must retry your request, the server will know to ignore the
147915// request if it has already been completed.
147916//
147917// For example, consider a situation where you make an initial request
147918// and the request times out. If you make the request again with the
147919// same request ID, the server can check if original operation with the
147920// same request ID was received, and if so, will ignore the second
147921// request. This prevents clients from accidentally creating duplicate
147922// commitments.
147923//
147924// The request ID must be a valid UUID with the exception that zero UUID
147925// is not supported (00000000-0000-0000-0000-000000000000).
147926func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
147927	c.urlParams_.Set("requestId", requestId)
147928	return c
147929}
147930
147931// Fields allows partial responses to be retrieved. See
147932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147933// for more information.
147934func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
147935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147936	return c
147937}
147938
147939// Context sets the context to be used in this call's Do method. Any
147940// pending HTTP request will be aborted if the provided context is
147941// canceled.
147942func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
147943	c.ctx_ = ctx
147944	return c
147945}
147946
147947// Header returns an http.Header that can be modified by the caller to
147948// add HTTP headers to the request.
147949func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
147950	if c.header_ == nil {
147951		c.header_ = make(http.Header)
147952	}
147953	return c.header_
147954}
147955
147956func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
147957	reqHeaders := make(http.Header)
147958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
147959	for k, v := range c.header_ {
147960		reqHeaders[k] = v
147961	}
147962	reqHeaders.Set("User-Agent", c.s.userAgent())
147963	var body io.Reader = nil
147964	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
147965	if err != nil {
147966		return nil, err
147967	}
147968	reqHeaders.Set("Content-Type", "application/json")
147969	c.urlParams_.Set("alt", alt)
147970	c.urlParams_.Set("prettyPrint", "false")
147971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
147972	urls += "?" + c.urlParams_.Encode()
147973	req, err := http.NewRequest("POST", urls, body)
147974	if err != nil {
147975		return nil, err
147976	}
147977	req.Header = reqHeaders
147978	googleapi.Expand(req.URL, map[string]string{
147979		"project":          c.project,
147980		"targetHttpsProxy": c.targetHttpsProxy,
147981	})
147982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147983}
147984
147985// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
147986// Exactly one of *Operation or error will be non-nil. Any non-2xx
147987// status code is an error. Response headers are in either
147988// *Operation.ServerResponse.Header or (if a response was returned at
147989// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147990// to check whether the returned error was because
147991// http.StatusNotModified was returned.
147992func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147993	gensupport.SetOptions(c.urlParams_, opts...)
147994	res, err := c.doRequest("json")
147995	if res != nil && res.StatusCode == http.StatusNotModified {
147996		if res.Body != nil {
147997			res.Body.Close()
147998		}
147999		return nil, &googleapi.Error{
148000			Code:   res.StatusCode,
148001			Header: res.Header,
148002		}
148003	}
148004	if err != nil {
148005		return nil, err
148006	}
148007	defer googleapi.CloseBody(res)
148008	if err := googleapi.CheckResponse(res); err != nil {
148009		return nil, err
148010	}
148011	ret := &Operation{
148012		ServerResponse: googleapi.ServerResponse{
148013			Header:         res.Header,
148014			HTTPStatusCode: res.StatusCode,
148015		},
148016	}
148017	target := &ret
148018	if err := gensupport.DecodeResponse(target, res); err != nil {
148019		return nil, err
148020	}
148021	return ret, nil
148022	// {
148023	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
148024	//   "httpMethod": "POST",
148025	//   "id": "compute.targetHttpsProxies.setQuicOverride",
148026	//   "parameterOrder": [
148027	//     "project",
148028	//     "targetHttpsProxy"
148029	//   ],
148030	//   "parameters": {
148031	//     "project": {
148032	//       "description": "Project ID for this request.",
148033	//       "location": "path",
148034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148035	//       "required": true,
148036	//       "type": "string"
148037	//     },
148038	//     "requestId": {
148039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148040	//       "location": "query",
148041	//       "type": "string"
148042	//     },
148043	//     "targetHttpsProxy": {
148044	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
148045	//       "location": "path",
148046	//       "required": true,
148047	//       "type": "string"
148048	//     }
148049	//   },
148050	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
148051	//   "request": {
148052	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
148053	//   },
148054	//   "response": {
148055	//     "$ref": "Operation"
148056	//   },
148057	//   "scopes": [
148058	//     "https://www.googleapis.com/auth/cloud-platform",
148059	//     "https://www.googleapis.com/auth/compute"
148060	//   ]
148061	// }
148062
148063}
148064
148065// method id "compute.targetHttpsProxies.setSslCertificates":
148066
148067type TargetHttpsProxiesSetSslCertificatesCall struct {
148068	s                                           *Service
148069	project                                     string
148070	targetHttpsProxy                            string
148071	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
148072	urlParams_                                  gensupport.URLParams
148073	ctx_                                        context.Context
148074	header_                                     http.Header
148075}
148076
148077// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
148078func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
148079	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148080	c.project = project
148081	c.targetHttpsProxy = targetHttpsProxy
148082	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
148083	return c
148084}
148085
148086// RequestId sets the optional parameter "requestId": An optional
148087// request ID to identify requests. Specify a unique request ID so that
148088// if you must retry your request, the server will know to ignore the
148089// request if it has already been completed.
148090//
148091// For example, consider a situation where you make an initial request
148092// and the request times out. If you make the request again with the
148093// same request ID, the server can check if original operation with the
148094// same request ID was received, and if so, will ignore the second
148095// request. This prevents clients from accidentally creating duplicate
148096// commitments.
148097//
148098// The request ID must be a valid UUID with the exception that zero UUID
148099// is not supported (00000000-0000-0000-0000-000000000000).
148100func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
148101	c.urlParams_.Set("requestId", requestId)
148102	return c
148103}
148104
148105// Fields allows partial responses to be retrieved. See
148106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148107// for more information.
148108func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
148109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148110	return c
148111}
148112
148113// Context sets the context to be used in this call's Do method. Any
148114// pending HTTP request will be aborted if the provided context is
148115// canceled.
148116func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
148117	c.ctx_ = ctx
148118	return c
148119}
148120
148121// Header returns an http.Header that can be modified by the caller to
148122// add HTTP headers to the request.
148123func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
148124	if c.header_ == nil {
148125		c.header_ = make(http.Header)
148126	}
148127	return c.header_
148128}
148129
148130func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
148131	reqHeaders := make(http.Header)
148132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
148133	for k, v := range c.header_ {
148134		reqHeaders[k] = v
148135	}
148136	reqHeaders.Set("User-Agent", c.s.userAgent())
148137	var body io.Reader = nil
148138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
148139	if err != nil {
148140		return nil, err
148141	}
148142	reqHeaders.Set("Content-Type", "application/json")
148143	c.urlParams_.Set("alt", alt)
148144	c.urlParams_.Set("prettyPrint", "false")
148145	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
148146	urls += "?" + c.urlParams_.Encode()
148147	req, err := http.NewRequest("POST", urls, body)
148148	if err != nil {
148149		return nil, err
148150	}
148151	req.Header = reqHeaders
148152	googleapi.Expand(req.URL, map[string]string{
148153		"project":          c.project,
148154		"targetHttpsProxy": c.targetHttpsProxy,
148155	})
148156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148157}
148158
148159// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
148160// Exactly one of *Operation or error will be non-nil. Any non-2xx
148161// status code is an error. Response headers are in either
148162// *Operation.ServerResponse.Header or (if a response was returned at
148163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148164// to check whether the returned error was because
148165// http.StatusNotModified was returned.
148166func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148167	gensupport.SetOptions(c.urlParams_, opts...)
148168	res, err := c.doRequest("json")
148169	if res != nil && res.StatusCode == http.StatusNotModified {
148170		if res.Body != nil {
148171			res.Body.Close()
148172		}
148173		return nil, &googleapi.Error{
148174			Code:   res.StatusCode,
148175			Header: res.Header,
148176		}
148177	}
148178	if err != nil {
148179		return nil, err
148180	}
148181	defer googleapi.CloseBody(res)
148182	if err := googleapi.CheckResponse(res); err != nil {
148183		return nil, err
148184	}
148185	ret := &Operation{
148186		ServerResponse: googleapi.ServerResponse{
148187			Header:         res.Header,
148188			HTTPStatusCode: res.StatusCode,
148189		},
148190	}
148191	target := &ret
148192	if err := gensupport.DecodeResponse(target, res); err != nil {
148193		return nil, err
148194	}
148195	return ret, nil
148196	// {
148197	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
148198	//   "httpMethod": "POST",
148199	//   "id": "compute.targetHttpsProxies.setSslCertificates",
148200	//   "parameterOrder": [
148201	//     "project",
148202	//     "targetHttpsProxy"
148203	//   ],
148204	//   "parameters": {
148205	//     "project": {
148206	//       "description": "Project ID for this request.",
148207	//       "location": "path",
148208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148209	//       "required": true,
148210	//       "type": "string"
148211	//     },
148212	//     "requestId": {
148213	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148214	//       "location": "query",
148215	//       "type": "string"
148216	//     },
148217	//     "targetHttpsProxy": {
148218	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
148219	//       "location": "path",
148220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148221	//       "required": true,
148222	//       "type": "string"
148223	//     }
148224	//   },
148225	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
148226	//   "request": {
148227	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
148228	//   },
148229	//   "response": {
148230	//     "$ref": "Operation"
148231	//   },
148232	//   "scopes": [
148233	//     "https://www.googleapis.com/auth/cloud-platform",
148234	//     "https://www.googleapis.com/auth/compute"
148235	//   ]
148236	// }
148237
148238}
148239
148240// method id "compute.targetHttpsProxies.setSslPolicy":
148241
148242type TargetHttpsProxiesSetSslPolicyCall struct {
148243	s                  *Service
148244	project            string
148245	targetHttpsProxy   string
148246	sslpolicyreference *SslPolicyReference
148247	urlParams_         gensupport.URLParams
148248	ctx_               context.Context
148249	header_            http.Header
148250}
148251
148252// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
148253// policy specifies the server-side support for SSL features. This
148254// affects connections between clients and the HTTPS proxy load
148255// balancer. They do not affect the connection between the load balancer
148256// and the backends.
148257func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
148258	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148259	c.project = project
148260	c.targetHttpsProxy = targetHttpsProxy
148261	c.sslpolicyreference = sslpolicyreference
148262	return c
148263}
148264
148265// RequestId sets the optional parameter "requestId": An optional
148266// request ID to identify requests. Specify a unique request ID so that
148267// if you must retry your request, the server will know to ignore the
148268// request if it has already been completed.
148269//
148270// For example, consider a situation where you make an initial request
148271// and the request times out. If you make the request again with the
148272// same request ID, the server can check if original operation with the
148273// same request ID was received, and if so, will ignore the second
148274// request. This prevents clients from accidentally creating duplicate
148275// commitments.
148276//
148277// The request ID must be a valid UUID with the exception that zero UUID
148278// is not supported (00000000-0000-0000-0000-000000000000).
148279func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
148280	c.urlParams_.Set("requestId", requestId)
148281	return c
148282}
148283
148284// Fields allows partial responses to be retrieved. See
148285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148286// for more information.
148287func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
148288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148289	return c
148290}
148291
148292// Context sets the context to be used in this call's Do method. Any
148293// pending HTTP request will be aborted if the provided context is
148294// canceled.
148295func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
148296	c.ctx_ = ctx
148297	return c
148298}
148299
148300// Header returns an http.Header that can be modified by the caller to
148301// add HTTP headers to the request.
148302func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
148303	if c.header_ == nil {
148304		c.header_ = make(http.Header)
148305	}
148306	return c.header_
148307}
148308
148309func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
148310	reqHeaders := make(http.Header)
148311	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
148312	for k, v := range c.header_ {
148313		reqHeaders[k] = v
148314	}
148315	reqHeaders.Set("User-Agent", c.s.userAgent())
148316	var body io.Reader = nil
148317	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
148318	if err != nil {
148319		return nil, err
148320	}
148321	reqHeaders.Set("Content-Type", "application/json")
148322	c.urlParams_.Set("alt", alt)
148323	c.urlParams_.Set("prettyPrint", "false")
148324	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
148325	urls += "?" + c.urlParams_.Encode()
148326	req, err := http.NewRequest("POST", urls, body)
148327	if err != nil {
148328		return nil, err
148329	}
148330	req.Header = reqHeaders
148331	googleapi.Expand(req.URL, map[string]string{
148332		"project":          c.project,
148333		"targetHttpsProxy": c.targetHttpsProxy,
148334	})
148335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148336}
148337
148338// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
148339// Exactly one of *Operation or error will be non-nil. Any non-2xx
148340// status code is an error. Response headers are in either
148341// *Operation.ServerResponse.Header or (if a response was returned at
148342// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148343// to check whether the returned error was because
148344// http.StatusNotModified was returned.
148345func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148346	gensupport.SetOptions(c.urlParams_, opts...)
148347	res, err := c.doRequest("json")
148348	if res != nil && res.StatusCode == http.StatusNotModified {
148349		if res.Body != nil {
148350			res.Body.Close()
148351		}
148352		return nil, &googleapi.Error{
148353			Code:   res.StatusCode,
148354			Header: res.Header,
148355		}
148356	}
148357	if err != nil {
148358		return nil, err
148359	}
148360	defer googleapi.CloseBody(res)
148361	if err := googleapi.CheckResponse(res); err != nil {
148362		return nil, err
148363	}
148364	ret := &Operation{
148365		ServerResponse: googleapi.ServerResponse{
148366			Header:         res.Header,
148367			HTTPStatusCode: res.StatusCode,
148368		},
148369	}
148370	target := &ret
148371	if err := gensupport.DecodeResponse(target, res); err != nil {
148372		return nil, err
148373	}
148374	return ret, nil
148375	// {
148376	//   "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.",
148377	//   "httpMethod": "POST",
148378	//   "id": "compute.targetHttpsProxies.setSslPolicy",
148379	//   "parameterOrder": [
148380	//     "project",
148381	//     "targetHttpsProxy"
148382	//   ],
148383	//   "parameters": {
148384	//     "project": {
148385	//       "description": "Project ID for this request.",
148386	//       "location": "path",
148387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148388	//       "required": true,
148389	//       "type": "string"
148390	//     },
148391	//     "requestId": {
148392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148393	//       "location": "query",
148394	//       "type": "string"
148395	//     },
148396	//     "targetHttpsProxy": {
148397	//       "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.",
148398	//       "location": "path",
148399	//       "required": true,
148400	//       "type": "string"
148401	//     }
148402	//   },
148403	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
148404	//   "request": {
148405	//     "$ref": "SslPolicyReference"
148406	//   },
148407	//   "response": {
148408	//     "$ref": "Operation"
148409	//   },
148410	//   "scopes": [
148411	//     "https://www.googleapis.com/auth/cloud-platform",
148412	//     "https://www.googleapis.com/auth/compute"
148413	//   ]
148414	// }
148415
148416}
148417
148418// method id "compute.targetHttpsProxies.setUrlMap":
148419
148420type TargetHttpsProxiesSetUrlMapCall struct {
148421	s                *Service
148422	project          string
148423	targetHttpsProxy string
148424	urlmapreference  *UrlMapReference
148425	urlParams_       gensupport.URLParams
148426	ctx_             context.Context
148427	header_          http.Header
148428}
148429
148430// SetUrlMap: Changes the URL map for TargetHttpsProxy.
148431func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
148432	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148433	c.project = project
148434	c.targetHttpsProxy = targetHttpsProxy
148435	c.urlmapreference = urlmapreference
148436	return c
148437}
148438
148439// RequestId sets the optional parameter "requestId": An optional
148440// request ID to identify requests. Specify a unique request ID so that
148441// if you must retry your request, the server will know to ignore the
148442// request if it has already been completed.
148443//
148444// For example, consider a situation where you make an initial request
148445// and the request times out. If you make the request again with the
148446// same request ID, the server can check if original operation with the
148447// same request ID was received, and if so, will ignore the second
148448// request. This prevents clients from accidentally creating duplicate
148449// commitments.
148450//
148451// The request ID must be a valid UUID with the exception that zero UUID
148452// is not supported (00000000-0000-0000-0000-000000000000).
148453func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
148454	c.urlParams_.Set("requestId", requestId)
148455	return c
148456}
148457
148458// Fields allows partial responses to be retrieved. See
148459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148460// for more information.
148461func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
148462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148463	return c
148464}
148465
148466// Context sets the context to be used in this call's Do method. Any
148467// pending HTTP request will be aborted if the provided context is
148468// canceled.
148469func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
148470	c.ctx_ = ctx
148471	return c
148472}
148473
148474// Header returns an http.Header that can be modified by the caller to
148475// add HTTP headers to the request.
148476func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
148477	if c.header_ == nil {
148478		c.header_ = make(http.Header)
148479	}
148480	return c.header_
148481}
148482
148483func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
148484	reqHeaders := make(http.Header)
148485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
148486	for k, v := range c.header_ {
148487		reqHeaders[k] = v
148488	}
148489	reqHeaders.Set("User-Agent", c.s.userAgent())
148490	var body io.Reader = nil
148491	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
148492	if err != nil {
148493		return nil, err
148494	}
148495	reqHeaders.Set("Content-Type", "application/json")
148496	c.urlParams_.Set("alt", alt)
148497	c.urlParams_.Set("prettyPrint", "false")
148498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
148499	urls += "?" + c.urlParams_.Encode()
148500	req, err := http.NewRequest("POST", urls, body)
148501	if err != nil {
148502		return nil, err
148503	}
148504	req.Header = reqHeaders
148505	googleapi.Expand(req.URL, map[string]string{
148506		"project":          c.project,
148507		"targetHttpsProxy": c.targetHttpsProxy,
148508	})
148509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148510}
148511
148512// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
148513// Exactly one of *Operation or error will be non-nil. Any non-2xx
148514// status code is an error. Response headers are in either
148515// *Operation.ServerResponse.Header or (if a response was returned at
148516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148517// to check whether the returned error was because
148518// http.StatusNotModified was returned.
148519func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148520	gensupport.SetOptions(c.urlParams_, opts...)
148521	res, err := c.doRequest("json")
148522	if res != nil && res.StatusCode == http.StatusNotModified {
148523		if res.Body != nil {
148524			res.Body.Close()
148525		}
148526		return nil, &googleapi.Error{
148527			Code:   res.StatusCode,
148528			Header: res.Header,
148529		}
148530	}
148531	if err != nil {
148532		return nil, err
148533	}
148534	defer googleapi.CloseBody(res)
148535	if err := googleapi.CheckResponse(res); err != nil {
148536		return nil, err
148537	}
148538	ret := &Operation{
148539		ServerResponse: googleapi.ServerResponse{
148540			Header:         res.Header,
148541			HTTPStatusCode: res.StatusCode,
148542		},
148543	}
148544	target := &ret
148545	if err := gensupport.DecodeResponse(target, res); err != nil {
148546		return nil, err
148547	}
148548	return ret, nil
148549	// {
148550	//   "description": "Changes the URL map for TargetHttpsProxy.",
148551	//   "httpMethod": "POST",
148552	//   "id": "compute.targetHttpsProxies.setUrlMap",
148553	//   "parameterOrder": [
148554	//     "project",
148555	//     "targetHttpsProxy"
148556	//   ],
148557	//   "parameters": {
148558	//     "project": {
148559	//       "description": "Project ID for this request.",
148560	//       "location": "path",
148561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148562	//       "required": true,
148563	//       "type": "string"
148564	//     },
148565	//     "requestId": {
148566	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148567	//       "location": "query",
148568	//       "type": "string"
148569	//     },
148570	//     "targetHttpsProxy": {
148571	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
148572	//       "location": "path",
148573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148574	//       "required": true,
148575	//       "type": "string"
148576	//     }
148577	//   },
148578	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
148579	//   "request": {
148580	//     "$ref": "UrlMapReference"
148581	//   },
148582	//   "response": {
148583	//     "$ref": "Operation"
148584	//   },
148585	//   "scopes": [
148586	//     "https://www.googleapis.com/auth/cloud-platform",
148587	//     "https://www.googleapis.com/auth/compute"
148588	//   ]
148589	// }
148590
148591}
148592
148593// method id "compute.targetHttpsProxies.testIamPermissions":
148594
148595type TargetHttpsProxiesTestIamPermissionsCall struct {
148596	s                      *Service
148597	project                string
148598	resource               string
148599	testpermissionsrequest *TestPermissionsRequest
148600	urlParams_             gensupport.URLParams
148601	ctx_                   context.Context
148602	header_                http.Header
148603}
148604
148605// TestIamPermissions: Returns permissions that a caller has on the
148606// specified resource.
148607func (r *TargetHttpsProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpsProxiesTestIamPermissionsCall {
148608	c := &TargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148609	c.project = project
148610	c.resource = resource
148611	c.testpermissionsrequest = testpermissionsrequest
148612	return c
148613}
148614
148615// Fields allows partial responses to be retrieved. See
148616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148617// for more information.
148618func (c *TargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesTestIamPermissionsCall {
148619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148620	return c
148621}
148622
148623// Context sets the context to be used in this call's Do method. Any
148624// pending HTTP request will be aborted if the provided context is
148625// canceled.
148626func (c *TargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpsProxiesTestIamPermissionsCall {
148627	c.ctx_ = ctx
148628	return c
148629}
148630
148631// Header returns an http.Header that can be modified by the caller to
148632// add HTTP headers to the request.
148633func (c *TargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
148634	if c.header_ == nil {
148635		c.header_ = make(http.Header)
148636	}
148637	return c.header_
148638}
148639
148640func (c *TargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
148641	reqHeaders := make(http.Header)
148642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
148643	for k, v := range c.header_ {
148644		reqHeaders[k] = v
148645	}
148646	reqHeaders.Set("User-Agent", c.s.userAgent())
148647	var body io.Reader = nil
148648	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
148649	if err != nil {
148650		return nil, err
148651	}
148652	reqHeaders.Set("Content-Type", "application/json")
148653	c.urlParams_.Set("alt", alt)
148654	c.urlParams_.Set("prettyPrint", "false")
148655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{resource}/testIamPermissions")
148656	urls += "?" + c.urlParams_.Encode()
148657	req, err := http.NewRequest("POST", urls, body)
148658	if err != nil {
148659		return nil, err
148660	}
148661	req.Header = reqHeaders
148662	googleapi.Expand(req.URL, map[string]string{
148663		"project":  c.project,
148664		"resource": c.resource,
148665	})
148666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148667}
148668
148669// Do executes the "compute.targetHttpsProxies.testIamPermissions" call.
148670// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
148671// non-2xx status code is an error. Response headers are in either
148672// *TestPermissionsResponse.ServerResponse.Header or (if a response was
148673// returned at all) in error.(*googleapi.Error).Header. Use
148674// googleapi.IsNotModified to check whether the returned error was
148675// because http.StatusNotModified was returned.
148676func (c *TargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
148677	gensupport.SetOptions(c.urlParams_, opts...)
148678	res, err := c.doRequest("json")
148679	if res != nil && res.StatusCode == http.StatusNotModified {
148680		if res.Body != nil {
148681			res.Body.Close()
148682		}
148683		return nil, &googleapi.Error{
148684			Code:   res.StatusCode,
148685			Header: res.Header,
148686		}
148687	}
148688	if err != nil {
148689		return nil, err
148690	}
148691	defer googleapi.CloseBody(res)
148692	if err := googleapi.CheckResponse(res); err != nil {
148693		return nil, err
148694	}
148695	ret := &TestPermissionsResponse{
148696		ServerResponse: googleapi.ServerResponse{
148697			Header:         res.Header,
148698			HTTPStatusCode: res.StatusCode,
148699		},
148700	}
148701	target := &ret
148702	if err := gensupport.DecodeResponse(target, res); err != nil {
148703		return nil, err
148704	}
148705	return ret, nil
148706	// {
148707	//   "description": "Returns permissions that a caller has on the specified resource.",
148708	//   "httpMethod": "POST",
148709	//   "id": "compute.targetHttpsProxies.testIamPermissions",
148710	//   "parameterOrder": [
148711	//     "project",
148712	//     "resource"
148713	//   ],
148714	//   "parameters": {
148715	//     "project": {
148716	//       "description": "Project ID for this request.",
148717	//       "location": "path",
148718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148719	//       "required": true,
148720	//       "type": "string"
148721	//     },
148722	//     "resource": {
148723	//       "description": "Name or id of the resource for this request.",
148724	//       "location": "path",
148725	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148726	//       "required": true,
148727	//       "type": "string"
148728	//     }
148729	//   },
148730	//   "path": "{project}/global/targetHttpsProxies/{resource}/testIamPermissions",
148731	//   "request": {
148732	//     "$ref": "TestPermissionsRequest"
148733	//   },
148734	//   "response": {
148735	//     "$ref": "TestPermissionsResponse"
148736	//   },
148737	//   "scopes": [
148738	//     "https://www.googleapis.com/auth/cloud-platform",
148739	//     "https://www.googleapis.com/auth/compute",
148740	//     "https://www.googleapis.com/auth/compute.readonly"
148741	//   ]
148742	// }
148743
148744}
148745
148746// method id "compute.targetInstances.aggregatedList":
148747
148748type TargetInstancesAggregatedListCall struct {
148749	s            *Service
148750	project      string
148751	urlParams_   gensupport.URLParams
148752	ifNoneMatch_ string
148753	ctx_         context.Context
148754	header_      http.Header
148755}
148756
148757// AggregatedList: Retrieves an aggregated list of target instances.
148758// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
148759func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
148760	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148761	c.project = project
148762	return c
148763}
148764
148765// Filter sets the optional parameter "filter": A filter expression that
148766// filters resources listed in the response. The expression must specify
148767// the field name, a comparison operator, and the value that you want to
148768// use for filtering. The value must be a string, a number, or a
148769// boolean. The comparison operator must be either `=`, `!=`, `>`, or
148770// `<`.
148771//
148772// For example, if you are filtering Compute Engine instances, you can
148773// exclude instances named `example-instance` by specifying `name !=
148774// example-instance`.
148775//
148776// You can also filter nested fields. For example, you could specify
148777// `scheduling.automaticRestart = false` to include instances only if
148778// they are not scheduled for automatic restarts. You can use filtering
148779// on nested fields to filter based on resource labels.
148780//
148781// To filter on multiple expressions, provide each separate expression
148782// within parentheses. For example: ``` (scheduling.automaticRestart =
148783// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
148784// is an `AND` expression. However, you can include `AND` and `OR`
148785// expressions explicitly. For example: ``` (cpuPlatform = "Intel
148786// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
148787// (scheduling.automaticRestart = true) ```
148788func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
148789	c.urlParams_.Set("filter", filter)
148790	return c
148791}
148792
148793// IncludeAllScopes sets the optional parameter "includeAllScopes":
148794// Indicates whether every visible scope for each scope type (zone,
148795// region, global) should be included in the response. For new resource
148796// types added after this field, the flag has no effect as new resource
148797// types will always include every visible scope for each scope type in
148798// response. For resource types which predate this field, if this flag
148799// is omitted or false, only scopes of the scope types where the
148800// resource type is expected to be found will be included.
148801func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
148802	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
148803	return c
148804}
148805
148806// MaxResults sets the optional parameter "maxResults": The maximum
148807// number of results per page that should be returned. If the number of
148808// available results is larger than `maxResults`, Compute Engine returns
148809// a `nextPageToken` that can be used to get the next page of results in
148810// subsequent list requests. Acceptable values are `0` to `500`,
148811// inclusive. (Default: `500`)
148812func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
148813	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148814	return c
148815}
148816
148817// OrderBy sets the optional parameter "orderBy": Sorts list results by
148818// a certain order. By default, results are returned in alphanumerical
148819// order based on the resource name.
148820//
148821// You can also sort results in descending order based on the creation
148822// timestamp using `orderBy="creationTimestamp desc". This sorts
148823// results based on the `creationTimestamp` field in reverse
148824// chronological order (newest result first). Use this to sort resources
148825// like operations so that the newest operation is returned
148826// first.
148827//
148828// Currently, only sorting by `name` or `creationTimestamp desc` is
148829// supported.
148830func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
148831	c.urlParams_.Set("orderBy", orderBy)
148832	return c
148833}
148834
148835// PageToken sets the optional parameter "pageToken": Specifies a page
148836// token to use. Set `pageToken` to the `nextPageToken` returned by a
148837// previous list request to get the next page of results.
148838func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
148839	c.urlParams_.Set("pageToken", pageToken)
148840	return c
148841}
148842
148843// Fields allows partial responses to be retrieved. See
148844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148845// for more information.
148846func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
148847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148848	return c
148849}
148850
148851// IfNoneMatch sets the optional parameter which makes the operation
148852// fail if the object's ETag matches the given value. This is useful for
148853// getting updates only after the object has changed since the last
148854// request. Use googleapi.IsNotModified to check whether the response
148855// error from Do is the result of In-None-Match.
148856func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
148857	c.ifNoneMatch_ = entityTag
148858	return c
148859}
148860
148861// Context sets the context to be used in this call's Do method. Any
148862// pending HTTP request will be aborted if the provided context is
148863// canceled.
148864func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
148865	c.ctx_ = ctx
148866	return c
148867}
148868
148869// Header returns an http.Header that can be modified by the caller to
148870// add HTTP headers to the request.
148871func (c *TargetInstancesAggregatedListCall) Header() http.Header {
148872	if c.header_ == nil {
148873		c.header_ = make(http.Header)
148874	}
148875	return c.header_
148876}
148877
148878func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
148879	reqHeaders := make(http.Header)
148880	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
148881	for k, v := range c.header_ {
148882		reqHeaders[k] = v
148883	}
148884	reqHeaders.Set("User-Agent", c.s.userAgent())
148885	if c.ifNoneMatch_ != "" {
148886		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148887	}
148888	var body io.Reader = nil
148889	c.urlParams_.Set("alt", alt)
148890	c.urlParams_.Set("prettyPrint", "false")
148891	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
148892	urls += "?" + c.urlParams_.Encode()
148893	req, err := http.NewRequest("GET", urls, body)
148894	if err != nil {
148895		return nil, err
148896	}
148897	req.Header = reqHeaders
148898	googleapi.Expand(req.URL, map[string]string{
148899		"project": c.project,
148900	})
148901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148902}
148903
148904// Do executes the "compute.targetInstances.aggregatedList" call.
148905// Exactly one of *TargetInstanceAggregatedList or error will be
148906// non-nil. Any non-2xx status code is an error. Response headers are in
148907// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
148908// response was returned at all) in error.(*googleapi.Error).Header. Use
148909// googleapi.IsNotModified to check whether the returned error was
148910// because http.StatusNotModified was returned.
148911func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
148912	gensupport.SetOptions(c.urlParams_, opts...)
148913	res, err := c.doRequest("json")
148914	if res != nil && res.StatusCode == http.StatusNotModified {
148915		if res.Body != nil {
148916			res.Body.Close()
148917		}
148918		return nil, &googleapi.Error{
148919			Code:   res.StatusCode,
148920			Header: res.Header,
148921		}
148922	}
148923	if err != nil {
148924		return nil, err
148925	}
148926	defer googleapi.CloseBody(res)
148927	if err := googleapi.CheckResponse(res); err != nil {
148928		return nil, err
148929	}
148930	ret := &TargetInstanceAggregatedList{
148931		ServerResponse: googleapi.ServerResponse{
148932			Header:         res.Header,
148933			HTTPStatusCode: res.StatusCode,
148934		},
148935	}
148936	target := &ret
148937	if err := gensupport.DecodeResponse(target, res); err != nil {
148938		return nil, err
148939	}
148940	return ret, nil
148941	// {
148942	//   "description": "Retrieves an aggregated list of target instances.",
148943	//   "httpMethod": "GET",
148944	//   "id": "compute.targetInstances.aggregatedList",
148945	//   "parameterOrder": [
148946	//     "project"
148947	//   ],
148948	//   "parameters": {
148949	//     "filter": {
148950	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
148951	//       "location": "query",
148952	//       "type": "string"
148953	//     },
148954	//     "includeAllScopes": {
148955	//       "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.",
148956	//       "location": "query",
148957	//       "type": "boolean"
148958	//     },
148959	//     "maxResults": {
148960	//       "default": "500",
148961	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148962	//       "format": "uint32",
148963	//       "location": "query",
148964	//       "minimum": "0",
148965	//       "type": "integer"
148966	//     },
148967	//     "orderBy": {
148968	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
148969	//       "location": "query",
148970	//       "type": "string"
148971	//     },
148972	//     "pageToken": {
148973	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148974	//       "location": "query",
148975	//       "type": "string"
148976	//     },
148977	//     "project": {
148978	//       "description": "Project ID for this request.",
148979	//       "location": "path",
148980	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148981	//       "required": true,
148982	//       "type": "string"
148983	//     }
148984	//   },
148985	//   "path": "{project}/aggregated/targetInstances",
148986	//   "response": {
148987	//     "$ref": "TargetInstanceAggregatedList"
148988	//   },
148989	//   "scopes": [
148990	//     "https://www.googleapis.com/auth/cloud-platform",
148991	//     "https://www.googleapis.com/auth/compute",
148992	//     "https://www.googleapis.com/auth/compute.readonly"
148993	//   ]
148994	// }
148995
148996}
148997
148998// Pages invokes f for each page of results.
148999// A non-nil error returned from f will halt the iteration.
149000// The provided context supersedes any context provided to the Context method.
149001func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
149002	c.ctx_ = ctx
149003	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149004	for {
149005		x, err := c.Do()
149006		if err != nil {
149007			return err
149008		}
149009		if err := f(x); err != nil {
149010			return err
149011		}
149012		if x.NextPageToken == "" {
149013			return nil
149014		}
149015		c.PageToken(x.NextPageToken)
149016	}
149017}
149018
149019// method id "compute.targetInstances.delete":
149020
149021type TargetInstancesDeleteCall struct {
149022	s              *Service
149023	project        string
149024	zone           string
149025	targetInstance string
149026	urlParams_     gensupport.URLParams
149027	ctx_           context.Context
149028	header_        http.Header
149029}
149030
149031// Delete: Deletes the specified TargetInstance resource.
149032// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
149033func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
149034	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149035	c.project = project
149036	c.zone = zone
149037	c.targetInstance = targetInstance
149038	return c
149039}
149040
149041// RequestId sets the optional parameter "requestId": An optional
149042// request ID to identify requests. Specify a unique request ID so that
149043// if you must retry your request, the server will know to ignore the
149044// request if it has already been completed.
149045//
149046// For example, consider a situation where you make an initial request
149047// and the request times out. If you make the request again with the
149048// same request ID, the server can check if original operation with the
149049// same request ID was received, and if so, will ignore the second
149050// request. This prevents clients from accidentally creating duplicate
149051// commitments.
149052//
149053// The request ID must be a valid UUID with the exception that zero UUID
149054// is not supported (00000000-0000-0000-0000-000000000000).
149055func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
149056	c.urlParams_.Set("requestId", requestId)
149057	return c
149058}
149059
149060// Fields allows partial responses to be retrieved. See
149061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149062// for more information.
149063func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
149064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149065	return c
149066}
149067
149068// Context sets the context to be used in this call's Do method. Any
149069// pending HTTP request will be aborted if the provided context is
149070// canceled.
149071func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
149072	c.ctx_ = ctx
149073	return c
149074}
149075
149076// Header returns an http.Header that can be modified by the caller to
149077// add HTTP headers to the request.
149078func (c *TargetInstancesDeleteCall) Header() http.Header {
149079	if c.header_ == nil {
149080		c.header_ = make(http.Header)
149081	}
149082	return c.header_
149083}
149084
149085func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
149086	reqHeaders := make(http.Header)
149087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
149088	for k, v := range c.header_ {
149089		reqHeaders[k] = v
149090	}
149091	reqHeaders.Set("User-Agent", c.s.userAgent())
149092	var body io.Reader = nil
149093	c.urlParams_.Set("alt", alt)
149094	c.urlParams_.Set("prettyPrint", "false")
149095	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
149096	urls += "?" + c.urlParams_.Encode()
149097	req, err := http.NewRequest("DELETE", urls, body)
149098	if err != nil {
149099		return nil, err
149100	}
149101	req.Header = reqHeaders
149102	googleapi.Expand(req.URL, map[string]string{
149103		"project":        c.project,
149104		"zone":           c.zone,
149105		"targetInstance": c.targetInstance,
149106	})
149107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149108}
149109
149110// Do executes the "compute.targetInstances.delete" call.
149111// Exactly one of *Operation or error will be non-nil. Any non-2xx
149112// status code is an error. Response headers are in either
149113// *Operation.ServerResponse.Header or (if a response was returned at
149114// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149115// to check whether the returned error was because
149116// http.StatusNotModified was returned.
149117func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149118	gensupport.SetOptions(c.urlParams_, opts...)
149119	res, err := c.doRequest("json")
149120	if res != nil && res.StatusCode == http.StatusNotModified {
149121		if res.Body != nil {
149122			res.Body.Close()
149123		}
149124		return nil, &googleapi.Error{
149125			Code:   res.StatusCode,
149126			Header: res.Header,
149127		}
149128	}
149129	if err != nil {
149130		return nil, err
149131	}
149132	defer googleapi.CloseBody(res)
149133	if err := googleapi.CheckResponse(res); err != nil {
149134		return nil, err
149135	}
149136	ret := &Operation{
149137		ServerResponse: googleapi.ServerResponse{
149138			Header:         res.Header,
149139			HTTPStatusCode: res.StatusCode,
149140		},
149141	}
149142	target := &ret
149143	if err := gensupport.DecodeResponse(target, res); err != nil {
149144		return nil, err
149145	}
149146	return ret, nil
149147	// {
149148	//   "description": "Deletes the specified TargetInstance resource.",
149149	//   "httpMethod": "DELETE",
149150	//   "id": "compute.targetInstances.delete",
149151	//   "parameterOrder": [
149152	//     "project",
149153	//     "zone",
149154	//     "targetInstance"
149155	//   ],
149156	//   "parameters": {
149157	//     "project": {
149158	//       "description": "Project ID for this request.",
149159	//       "location": "path",
149160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149161	//       "required": true,
149162	//       "type": "string"
149163	//     },
149164	//     "requestId": {
149165	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149166	//       "location": "query",
149167	//       "type": "string"
149168	//     },
149169	//     "targetInstance": {
149170	//       "description": "Name of the TargetInstance resource to delete.",
149171	//       "location": "path",
149172	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149173	//       "required": true,
149174	//       "type": "string"
149175	//     },
149176	//     "zone": {
149177	//       "description": "Name of the zone scoping this request.",
149178	//       "location": "path",
149179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149180	//       "required": true,
149181	//       "type": "string"
149182	//     }
149183	//   },
149184	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
149185	//   "response": {
149186	//     "$ref": "Operation"
149187	//   },
149188	//   "scopes": [
149189	//     "https://www.googleapis.com/auth/cloud-platform",
149190	//     "https://www.googleapis.com/auth/compute"
149191	//   ]
149192	// }
149193
149194}
149195
149196// method id "compute.targetInstances.get":
149197
149198type TargetInstancesGetCall struct {
149199	s              *Service
149200	project        string
149201	zone           string
149202	targetInstance string
149203	urlParams_     gensupport.URLParams
149204	ifNoneMatch_   string
149205	ctx_           context.Context
149206	header_        http.Header
149207}
149208
149209// Get: Returns the specified TargetInstance resource. Gets a list of
149210// available target instances by making a list() request.
149211// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
149212func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
149213	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149214	c.project = project
149215	c.zone = zone
149216	c.targetInstance = targetInstance
149217	return c
149218}
149219
149220// Fields allows partial responses to be retrieved. See
149221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149222// for more information.
149223func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
149224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149225	return c
149226}
149227
149228// IfNoneMatch sets the optional parameter which makes the operation
149229// fail if the object's ETag matches the given value. This is useful for
149230// getting updates only after the object has changed since the last
149231// request. Use googleapi.IsNotModified to check whether the response
149232// error from Do is the result of In-None-Match.
149233func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
149234	c.ifNoneMatch_ = entityTag
149235	return c
149236}
149237
149238// Context sets the context to be used in this call's Do method. Any
149239// pending HTTP request will be aborted if the provided context is
149240// canceled.
149241func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
149242	c.ctx_ = ctx
149243	return c
149244}
149245
149246// Header returns an http.Header that can be modified by the caller to
149247// add HTTP headers to the request.
149248func (c *TargetInstancesGetCall) Header() http.Header {
149249	if c.header_ == nil {
149250		c.header_ = make(http.Header)
149251	}
149252	return c.header_
149253}
149254
149255func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
149256	reqHeaders := make(http.Header)
149257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
149258	for k, v := range c.header_ {
149259		reqHeaders[k] = v
149260	}
149261	reqHeaders.Set("User-Agent", c.s.userAgent())
149262	if c.ifNoneMatch_ != "" {
149263		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149264	}
149265	var body io.Reader = nil
149266	c.urlParams_.Set("alt", alt)
149267	c.urlParams_.Set("prettyPrint", "false")
149268	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
149269	urls += "?" + c.urlParams_.Encode()
149270	req, err := http.NewRequest("GET", urls, body)
149271	if err != nil {
149272		return nil, err
149273	}
149274	req.Header = reqHeaders
149275	googleapi.Expand(req.URL, map[string]string{
149276		"project":        c.project,
149277		"zone":           c.zone,
149278		"targetInstance": c.targetInstance,
149279	})
149280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149281}
149282
149283// Do executes the "compute.targetInstances.get" call.
149284// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
149285// status code is an error. Response headers are in either
149286// *TargetInstance.ServerResponse.Header or (if a response was returned
149287// at all) in error.(*googleapi.Error).Header. Use
149288// googleapi.IsNotModified to check whether the returned error was
149289// because http.StatusNotModified was returned.
149290func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
149291	gensupport.SetOptions(c.urlParams_, opts...)
149292	res, err := c.doRequest("json")
149293	if res != nil && res.StatusCode == http.StatusNotModified {
149294		if res.Body != nil {
149295			res.Body.Close()
149296		}
149297		return nil, &googleapi.Error{
149298			Code:   res.StatusCode,
149299			Header: res.Header,
149300		}
149301	}
149302	if err != nil {
149303		return nil, err
149304	}
149305	defer googleapi.CloseBody(res)
149306	if err := googleapi.CheckResponse(res); err != nil {
149307		return nil, err
149308	}
149309	ret := &TargetInstance{
149310		ServerResponse: googleapi.ServerResponse{
149311			Header:         res.Header,
149312			HTTPStatusCode: res.StatusCode,
149313		},
149314	}
149315	target := &ret
149316	if err := gensupport.DecodeResponse(target, res); err != nil {
149317		return nil, err
149318	}
149319	return ret, nil
149320	// {
149321	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
149322	//   "httpMethod": "GET",
149323	//   "id": "compute.targetInstances.get",
149324	//   "parameterOrder": [
149325	//     "project",
149326	//     "zone",
149327	//     "targetInstance"
149328	//   ],
149329	//   "parameters": {
149330	//     "project": {
149331	//       "description": "Project ID for this request.",
149332	//       "location": "path",
149333	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149334	//       "required": true,
149335	//       "type": "string"
149336	//     },
149337	//     "targetInstance": {
149338	//       "description": "Name of the TargetInstance resource to return.",
149339	//       "location": "path",
149340	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149341	//       "required": true,
149342	//       "type": "string"
149343	//     },
149344	//     "zone": {
149345	//       "description": "Name of the zone scoping this request.",
149346	//       "location": "path",
149347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149348	//       "required": true,
149349	//       "type": "string"
149350	//     }
149351	//   },
149352	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
149353	//   "response": {
149354	//     "$ref": "TargetInstance"
149355	//   },
149356	//   "scopes": [
149357	//     "https://www.googleapis.com/auth/cloud-platform",
149358	//     "https://www.googleapis.com/auth/compute",
149359	//     "https://www.googleapis.com/auth/compute.readonly"
149360	//   ]
149361	// }
149362
149363}
149364
149365// method id "compute.targetInstances.insert":
149366
149367type TargetInstancesInsertCall struct {
149368	s              *Service
149369	project        string
149370	zone           string
149371	targetinstance *TargetInstance
149372	urlParams_     gensupport.URLParams
149373	ctx_           context.Context
149374	header_        http.Header
149375}
149376
149377// Insert: Creates a TargetInstance resource in the specified project
149378// and zone using the data included in the request.
149379// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
149380func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
149381	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149382	c.project = project
149383	c.zone = zone
149384	c.targetinstance = targetinstance
149385	return c
149386}
149387
149388// RequestId sets the optional parameter "requestId": An optional
149389// request ID to identify requests. Specify a unique request ID so that
149390// if you must retry your request, the server will know to ignore the
149391// request if it has already been completed.
149392//
149393// For example, consider a situation where you make an initial request
149394// and the request times out. If you make the request again with the
149395// same request ID, the server can check if original operation with the
149396// same request ID was received, and if so, will ignore the second
149397// request. This prevents clients from accidentally creating duplicate
149398// commitments.
149399//
149400// The request ID must be a valid UUID with the exception that zero UUID
149401// is not supported (00000000-0000-0000-0000-000000000000).
149402func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
149403	c.urlParams_.Set("requestId", requestId)
149404	return c
149405}
149406
149407// Fields allows partial responses to be retrieved. See
149408// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149409// for more information.
149410func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
149411	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149412	return c
149413}
149414
149415// Context sets the context to be used in this call's Do method. Any
149416// pending HTTP request will be aborted if the provided context is
149417// canceled.
149418func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
149419	c.ctx_ = ctx
149420	return c
149421}
149422
149423// Header returns an http.Header that can be modified by the caller to
149424// add HTTP headers to the request.
149425func (c *TargetInstancesInsertCall) Header() http.Header {
149426	if c.header_ == nil {
149427		c.header_ = make(http.Header)
149428	}
149429	return c.header_
149430}
149431
149432func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
149433	reqHeaders := make(http.Header)
149434	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
149435	for k, v := range c.header_ {
149436		reqHeaders[k] = v
149437	}
149438	reqHeaders.Set("User-Agent", c.s.userAgent())
149439	var body io.Reader = nil
149440	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
149441	if err != nil {
149442		return nil, err
149443	}
149444	reqHeaders.Set("Content-Type", "application/json")
149445	c.urlParams_.Set("alt", alt)
149446	c.urlParams_.Set("prettyPrint", "false")
149447	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
149448	urls += "?" + c.urlParams_.Encode()
149449	req, err := http.NewRequest("POST", urls, body)
149450	if err != nil {
149451		return nil, err
149452	}
149453	req.Header = reqHeaders
149454	googleapi.Expand(req.URL, map[string]string{
149455		"project": c.project,
149456		"zone":    c.zone,
149457	})
149458	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149459}
149460
149461// Do executes the "compute.targetInstances.insert" call.
149462// Exactly one of *Operation or error will be non-nil. Any non-2xx
149463// status code is an error. Response headers are in either
149464// *Operation.ServerResponse.Header or (if a response was returned at
149465// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149466// to check whether the returned error was because
149467// http.StatusNotModified was returned.
149468func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149469	gensupport.SetOptions(c.urlParams_, opts...)
149470	res, err := c.doRequest("json")
149471	if res != nil && res.StatusCode == http.StatusNotModified {
149472		if res.Body != nil {
149473			res.Body.Close()
149474		}
149475		return nil, &googleapi.Error{
149476			Code:   res.StatusCode,
149477			Header: res.Header,
149478		}
149479	}
149480	if err != nil {
149481		return nil, err
149482	}
149483	defer googleapi.CloseBody(res)
149484	if err := googleapi.CheckResponse(res); err != nil {
149485		return nil, err
149486	}
149487	ret := &Operation{
149488		ServerResponse: googleapi.ServerResponse{
149489			Header:         res.Header,
149490			HTTPStatusCode: res.StatusCode,
149491		},
149492	}
149493	target := &ret
149494	if err := gensupport.DecodeResponse(target, res); err != nil {
149495		return nil, err
149496	}
149497	return ret, nil
149498	// {
149499	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
149500	//   "httpMethod": "POST",
149501	//   "id": "compute.targetInstances.insert",
149502	//   "parameterOrder": [
149503	//     "project",
149504	//     "zone"
149505	//   ],
149506	//   "parameters": {
149507	//     "project": {
149508	//       "description": "Project ID for this request.",
149509	//       "location": "path",
149510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149511	//       "required": true,
149512	//       "type": "string"
149513	//     },
149514	//     "requestId": {
149515	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149516	//       "location": "query",
149517	//       "type": "string"
149518	//     },
149519	//     "zone": {
149520	//       "description": "Name of the zone scoping this request.",
149521	//       "location": "path",
149522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149523	//       "required": true,
149524	//       "type": "string"
149525	//     }
149526	//   },
149527	//   "path": "{project}/zones/{zone}/targetInstances",
149528	//   "request": {
149529	//     "$ref": "TargetInstance"
149530	//   },
149531	//   "response": {
149532	//     "$ref": "Operation"
149533	//   },
149534	//   "scopes": [
149535	//     "https://www.googleapis.com/auth/cloud-platform",
149536	//     "https://www.googleapis.com/auth/compute"
149537	//   ]
149538	// }
149539
149540}
149541
149542// method id "compute.targetInstances.list":
149543
149544type TargetInstancesListCall struct {
149545	s            *Service
149546	project      string
149547	zone         string
149548	urlParams_   gensupport.URLParams
149549	ifNoneMatch_ string
149550	ctx_         context.Context
149551	header_      http.Header
149552}
149553
149554// List: Retrieves a list of TargetInstance resources available to the
149555// specified project and zone.
149556// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
149557func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
149558	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149559	c.project = project
149560	c.zone = zone
149561	return c
149562}
149563
149564// Filter sets the optional parameter "filter": A filter expression that
149565// filters resources listed in the response. The expression must specify
149566// the field name, a comparison operator, and the value that you want to
149567// use for filtering. The value must be a string, a number, or a
149568// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149569// `<`.
149570//
149571// For example, if you are filtering Compute Engine instances, you can
149572// exclude instances named `example-instance` by specifying `name !=
149573// example-instance`.
149574//
149575// You can also filter nested fields. For example, you could specify
149576// `scheduling.automaticRestart = false` to include instances only if
149577// they are not scheduled for automatic restarts. You can use filtering
149578// on nested fields to filter based on resource labels.
149579//
149580// To filter on multiple expressions, provide each separate expression
149581// within parentheses. For example: ``` (scheduling.automaticRestart =
149582// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
149583// is an `AND` expression. However, you can include `AND` and `OR`
149584// expressions explicitly. For example: ``` (cpuPlatform = "Intel
149585// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
149586// (scheduling.automaticRestart = true) ```
149587func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
149588	c.urlParams_.Set("filter", filter)
149589	return c
149590}
149591
149592// MaxResults sets the optional parameter "maxResults": The maximum
149593// number of results per page that should be returned. If the number of
149594// available results is larger than `maxResults`, Compute Engine returns
149595// a `nextPageToken` that can be used to get the next page of results in
149596// subsequent list requests. Acceptable values are `0` to `500`,
149597// inclusive. (Default: `500`)
149598func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
149599	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149600	return c
149601}
149602
149603// OrderBy sets the optional parameter "orderBy": Sorts list results by
149604// a certain order. By default, results are returned in alphanumerical
149605// order based on the resource name.
149606//
149607// You can also sort results in descending order based on the creation
149608// timestamp using `orderBy="creationTimestamp desc". This sorts
149609// results based on the `creationTimestamp` field in reverse
149610// chronological order (newest result first). Use this to sort resources
149611// like operations so that the newest operation is returned
149612// first.
149613//
149614// Currently, only sorting by `name` or `creationTimestamp desc` is
149615// supported.
149616func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
149617	c.urlParams_.Set("orderBy", orderBy)
149618	return c
149619}
149620
149621// PageToken sets the optional parameter "pageToken": Specifies a page
149622// token to use. Set `pageToken` to the `nextPageToken` returned by a
149623// previous list request to get the next page of results.
149624func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
149625	c.urlParams_.Set("pageToken", pageToken)
149626	return c
149627}
149628
149629// Fields allows partial responses to be retrieved. See
149630// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149631// for more information.
149632func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
149633	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149634	return c
149635}
149636
149637// IfNoneMatch sets the optional parameter which makes the operation
149638// fail if the object's ETag matches the given value. This is useful for
149639// getting updates only after the object has changed since the last
149640// request. Use googleapi.IsNotModified to check whether the response
149641// error from Do is the result of In-None-Match.
149642func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
149643	c.ifNoneMatch_ = entityTag
149644	return c
149645}
149646
149647// Context sets the context to be used in this call's Do method. Any
149648// pending HTTP request will be aborted if the provided context is
149649// canceled.
149650func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
149651	c.ctx_ = ctx
149652	return c
149653}
149654
149655// Header returns an http.Header that can be modified by the caller to
149656// add HTTP headers to the request.
149657func (c *TargetInstancesListCall) Header() http.Header {
149658	if c.header_ == nil {
149659		c.header_ = make(http.Header)
149660	}
149661	return c.header_
149662}
149663
149664func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
149665	reqHeaders := make(http.Header)
149666	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
149667	for k, v := range c.header_ {
149668		reqHeaders[k] = v
149669	}
149670	reqHeaders.Set("User-Agent", c.s.userAgent())
149671	if c.ifNoneMatch_ != "" {
149672		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149673	}
149674	var body io.Reader = nil
149675	c.urlParams_.Set("alt", alt)
149676	c.urlParams_.Set("prettyPrint", "false")
149677	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
149678	urls += "?" + c.urlParams_.Encode()
149679	req, err := http.NewRequest("GET", urls, body)
149680	if err != nil {
149681		return nil, err
149682	}
149683	req.Header = reqHeaders
149684	googleapi.Expand(req.URL, map[string]string{
149685		"project": c.project,
149686		"zone":    c.zone,
149687	})
149688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149689}
149690
149691// Do executes the "compute.targetInstances.list" call.
149692// Exactly one of *TargetInstanceList or error will be non-nil. Any
149693// non-2xx status code is an error. Response headers are in either
149694// *TargetInstanceList.ServerResponse.Header or (if a response was
149695// returned at all) in error.(*googleapi.Error).Header. Use
149696// googleapi.IsNotModified to check whether the returned error was
149697// because http.StatusNotModified was returned.
149698func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
149699	gensupport.SetOptions(c.urlParams_, opts...)
149700	res, err := c.doRequest("json")
149701	if res != nil && res.StatusCode == http.StatusNotModified {
149702		if res.Body != nil {
149703			res.Body.Close()
149704		}
149705		return nil, &googleapi.Error{
149706			Code:   res.StatusCode,
149707			Header: res.Header,
149708		}
149709	}
149710	if err != nil {
149711		return nil, err
149712	}
149713	defer googleapi.CloseBody(res)
149714	if err := googleapi.CheckResponse(res); err != nil {
149715		return nil, err
149716	}
149717	ret := &TargetInstanceList{
149718		ServerResponse: googleapi.ServerResponse{
149719			Header:         res.Header,
149720			HTTPStatusCode: res.StatusCode,
149721		},
149722	}
149723	target := &ret
149724	if err := gensupport.DecodeResponse(target, res); err != nil {
149725		return nil, err
149726	}
149727	return ret, nil
149728	// {
149729	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
149730	//   "httpMethod": "GET",
149731	//   "id": "compute.targetInstances.list",
149732	//   "parameterOrder": [
149733	//     "project",
149734	//     "zone"
149735	//   ],
149736	//   "parameters": {
149737	//     "filter": {
149738	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149739	//       "location": "query",
149740	//       "type": "string"
149741	//     },
149742	//     "maxResults": {
149743	//       "default": "500",
149744	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149745	//       "format": "uint32",
149746	//       "location": "query",
149747	//       "minimum": "0",
149748	//       "type": "integer"
149749	//     },
149750	//     "orderBy": {
149751	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
149752	//       "location": "query",
149753	//       "type": "string"
149754	//     },
149755	//     "pageToken": {
149756	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149757	//       "location": "query",
149758	//       "type": "string"
149759	//     },
149760	//     "project": {
149761	//       "description": "Project ID for this request.",
149762	//       "location": "path",
149763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149764	//       "required": true,
149765	//       "type": "string"
149766	//     },
149767	//     "zone": {
149768	//       "description": "Name of the zone scoping this request.",
149769	//       "location": "path",
149770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149771	//       "required": true,
149772	//       "type": "string"
149773	//     }
149774	//   },
149775	//   "path": "{project}/zones/{zone}/targetInstances",
149776	//   "response": {
149777	//     "$ref": "TargetInstanceList"
149778	//   },
149779	//   "scopes": [
149780	//     "https://www.googleapis.com/auth/cloud-platform",
149781	//     "https://www.googleapis.com/auth/compute",
149782	//     "https://www.googleapis.com/auth/compute.readonly"
149783	//   ]
149784	// }
149785
149786}
149787
149788// Pages invokes f for each page of results.
149789// A non-nil error returned from f will halt the iteration.
149790// The provided context supersedes any context provided to the Context method.
149791func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
149792	c.ctx_ = ctx
149793	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149794	for {
149795		x, err := c.Do()
149796		if err != nil {
149797			return err
149798		}
149799		if err := f(x); err != nil {
149800			return err
149801		}
149802		if x.NextPageToken == "" {
149803			return nil
149804		}
149805		c.PageToken(x.NextPageToken)
149806	}
149807}
149808
149809// method id "compute.targetInstances.testIamPermissions":
149810
149811type TargetInstancesTestIamPermissionsCall struct {
149812	s                      *Service
149813	project                string
149814	zone                   string
149815	resource               string
149816	testpermissionsrequest *TestPermissionsRequest
149817	urlParams_             gensupport.URLParams
149818	ctx_                   context.Context
149819	header_                http.Header
149820}
149821
149822// TestIamPermissions: Returns permissions that a caller has on the
149823// specified resource.
149824func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall {
149825	c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149826	c.project = project
149827	c.zone = zone
149828	c.resource = resource
149829	c.testpermissionsrequest = testpermissionsrequest
149830	return c
149831}
149832
149833// Fields allows partial responses to be retrieved. See
149834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149835// for more information.
149836func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall {
149837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149838	return c
149839}
149840
149841// Context sets the context to be used in this call's Do method. Any
149842// pending HTTP request will be aborted if the provided context is
149843// canceled.
149844func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall {
149845	c.ctx_ = ctx
149846	return c
149847}
149848
149849// Header returns an http.Header that can be modified by the caller to
149850// add HTTP headers to the request.
149851func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header {
149852	if c.header_ == nil {
149853		c.header_ = make(http.Header)
149854	}
149855	return c.header_
149856}
149857
149858func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
149859	reqHeaders := make(http.Header)
149860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
149861	for k, v := range c.header_ {
149862		reqHeaders[k] = v
149863	}
149864	reqHeaders.Set("User-Agent", c.s.userAgent())
149865	var body io.Reader = nil
149866	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
149867	if err != nil {
149868		return nil, err
149869	}
149870	reqHeaders.Set("Content-Type", "application/json")
149871	c.urlParams_.Set("alt", alt)
149872	c.urlParams_.Set("prettyPrint", "false")
149873	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions")
149874	urls += "?" + c.urlParams_.Encode()
149875	req, err := http.NewRequest("POST", urls, body)
149876	if err != nil {
149877		return nil, err
149878	}
149879	req.Header = reqHeaders
149880	googleapi.Expand(req.URL, map[string]string{
149881		"project":  c.project,
149882		"zone":     c.zone,
149883		"resource": c.resource,
149884	})
149885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149886}
149887
149888// Do executes the "compute.targetInstances.testIamPermissions" call.
149889// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
149890// non-2xx status code is an error. Response headers are in either
149891// *TestPermissionsResponse.ServerResponse.Header or (if a response was
149892// returned at all) in error.(*googleapi.Error).Header. Use
149893// googleapi.IsNotModified to check whether the returned error was
149894// because http.StatusNotModified was returned.
149895func (c *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
149896	gensupport.SetOptions(c.urlParams_, opts...)
149897	res, err := c.doRequest("json")
149898	if res != nil && res.StatusCode == http.StatusNotModified {
149899		if res.Body != nil {
149900			res.Body.Close()
149901		}
149902		return nil, &googleapi.Error{
149903			Code:   res.StatusCode,
149904			Header: res.Header,
149905		}
149906	}
149907	if err != nil {
149908		return nil, err
149909	}
149910	defer googleapi.CloseBody(res)
149911	if err := googleapi.CheckResponse(res); err != nil {
149912		return nil, err
149913	}
149914	ret := &TestPermissionsResponse{
149915		ServerResponse: googleapi.ServerResponse{
149916			Header:         res.Header,
149917			HTTPStatusCode: res.StatusCode,
149918		},
149919	}
149920	target := &ret
149921	if err := gensupport.DecodeResponse(target, res); err != nil {
149922		return nil, err
149923	}
149924	return ret, nil
149925	// {
149926	//   "description": "Returns permissions that a caller has on the specified resource.",
149927	//   "httpMethod": "POST",
149928	//   "id": "compute.targetInstances.testIamPermissions",
149929	//   "parameterOrder": [
149930	//     "project",
149931	//     "zone",
149932	//     "resource"
149933	//   ],
149934	//   "parameters": {
149935	//     "project": {
149936	//       "description": "Project ID for this request.",
149937	//       "location": "path",
149938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149939	//       "required": true,
149940	//       "type": "string"
149941	//     },
149942	//     "resource": {
149943	//       "description": "Name or id of the resource for this request.",
149944	//       "location": "path",
149945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149946	//       "required": true,
149947	//       "type": "string"
149948	//     },
149949	//     "zone": {
149950	//       "description": "The name of the zone for this request.",
149951	//       "location": "path",
149952	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149953	//       "required": true,
149954	//       "type": "string"
149955	//     }
149956	//   },
149957	//   "path": "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
149958	//   "request": {
149959	//     "$ref": "TestPermissionsRequest"
149960	//   },
149961	//   "response": {
149962	//     "$ref": "TestPermissionsResponse"
149963	//   },
149964	//   "scopes": [
149965	//     "https://www.googleapis.com/auth/cloud-platform",
149966	//     "https://www.googleapis.com/auth/compute",
149967	//     "https://www.googleapis.com/auth/compute.readonly"
149968	//   ]
149969	// }
149970
149971}
149972
149973// method id "compute.targetPools.addHealthCheck":
149974
149975type TargetPoolsAddHealthCheckCall struct {
149976	s                                *Service
149977	project                          string
149978	region                           string
149979	targetPool                       string
149980	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
149981	urlParams_                       gensupport.URLParams
149982	ctx_                             context.Context
149983	header_                          http.Header
149984}
149985
149986// AddHealthCheck: Adds health check URLs to a target pool.
149987// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
149988func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
149989	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149990	c.project = project
149991	c.region = region
149992	c.targetPool = targetPool
149993	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
149994	return c
149995}
149996
149997// RequestId sets the optional parameter "requestId": An optional
149998// request ID to identify requests. Specify a unique request ID so that
149999// if you must retry your request, the server will know to ignore the
150000// request if it has already been completed.
150001//
150002// For example, consider a situation where you make an initial request
150003// and the request times out. If you make the request again with the
150004// same request ID, the server can check if original operation with the
150005// same request ID was received, and if so, will ignore the second
150006// request. This prevents clients from accidentally creating duplicate
150007// commitments.
150008//
150009// The request ID must be a valid UUID with the exception that zero UUID
150010// is not supported (00000000-0000-0000-0000-000000000000).
150011func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
150012	c.urlParams_.Set("requestId", requestId)
150013	return c
150014}
150015
150016// Fields allows partial responses to be retrieved. See
150017// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150018// for more information.
150019func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
150020	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150021	return c
150022}
150023
150024// Context sets the context to be used in this call's Do method. Any
150025// pending HTTP request will be aborted if the provided context is
150026// canceled.
150027func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
150028	c.ctx_ = ctx
150029	return c
150030}
150031
150032// Header returns an http.Header that can be modified by the caller to
150033// add HTTP headers to the request.
150034func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
150035	if c.header_ == nil {
150036		c.header_ = make(http.Header)
150037	}
150038	return c.header_
150039}
150040
150041func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
150042	reqHeaders := make(http.Header)
150043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
150044	for k, v := range c.header_ {
150045		reqHeaders[k] = v
150046	}
150047	reqHeaders.Set("User-Agent", c.s.userAgent())
150048	var body io.Reader = nil
150049	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
150050	if err != nil {
150051		return nil, err
150052	}
150053	reqHeaders.Set("Content-Type", "application/json")
150054	c.urlParams_.Set("alt", alt)
150055	c.urlParams_.Set("prettyPrint", "false")
150056	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
150057	urls += "?" + c.urlParams_.Encode()
150058	req, err := http.NewRequest("POST", urls, body)
150059	if err != nil {
150060		return nil, err
150061	}
150062	req.Header = reqHeaders
150063	googleapi.Expand(req.URL, map[string]string{
150064		"project":    c.project,
150065		"region":     c.region,
150066		"targetPool": c.targetPool,
150067	})
150068	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150069}
150070
150071// Do executes the "compute.targetPools.addHealthCheck" call.
150072// Exactly one of *Operation or error will be non-nil. Any non-2xx
150073// status code is an error. Response headers are in either
150074// *Operation.ServerResponse.Header or (if a response was returned at
150075// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150076// to check whether the returned error was because
150077// http.StatusNotModified was returned.
150078func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150079	gensupport.SetOptions(c.urlParams_, opts...)
150080	res, err := c.doRequest("json")
150081	if res != nil && res.StatusCode == http.StatusNotModified {
150082		if res.Body != nil {
150083			res.Body.Close()
150084		}
150085		return nil, &googleapi.Error{
150086			Code:   res.StatusCode,
150087			Header: res.Header,
150088		}
150089	}
150090	if err != nil {
150091		return nil, err
150092	}
150093	defer googleapi.CloseBody(res)
150094	if err := googleapi.CheckResponse(res); err != nil {
150095		return nil, err
150096	}
150097	ret := &Operation{
150098		ServerResponse: googleapi.ServerResponse{
150099			Header:         res.Header,
150100			HTTPStatusCode: res.StatusCode,
150101		},
150102	}
150103	target := &ret
150104	if err := gensupport.DecodeResponse(target, res); err != nil {
150105		return nil, err
150106	}
150107	return ret, nil
150108	// {
150109	//   "description": "Adds health check URLs to a target pool.",
150110	//   "httpMethod": "POST",
150111	//   "id": "compute.targetPools.addHealthCheck",
150112	//   "parameterOrder": [
150113	//     "project",
150114	//     "region",
150115	//     "targetPool"
150116	//   ],
150117	//   "parameters": {
150118	//     "project": {
150119	//       "description": "Project ID for this request.",
150120	//       "location": "path",
150121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150122	//       "required": true,
150123	//       "type": "string"
150124	//     },
150125	//     "region": {
150126	//       "description": "Name of the region scoping this request.",
150127	//       "location": "path",
150128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150129	//       "required": true,
150130	//       "type": "string"
150131	//     },
150132	//     "requestId": {
150133	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150134	//       "location": "query",
150135	//       "type": "string"
150136	//     },
150137	//     "targetPool": {
150138	//       "description": "Name of the target pool to add a health check to.",
150139	//       "location": "path",
150140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150141	//       "required": true,
150142	//       "type": "string"
150143	//     }
150144	//   },
150145	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
150146	//   "request": {
150147	//     "$ref": "TargetPoolsAddHealthCheckRequest"
150148	//   },
150149	//   "response": {
150150	//     "$ref": "Operation"
150151	//   },
150152	//   "scopes": [
150153	//     "https://www.googleapis.com/auth/cloud-platform",
150154	//     "https://www.googleapis.com/auth/compute"
150155	//   ]
150156	// }
150157
150158}
150159
150160// method id "compute.targetPools.addInstance":
150161
150162type TargetPoolsAddInstanceCall struct {
150163	s                             *Service
150164	project                       string
150165	region                        string
150166	targetPool                    string
150167	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
150168	urlParams_                    gensupport.URLParams
150169	ctx_                          context.Context
150170	header_                       http.Header
150171}
150172
150173// AddInstance: Adds an instance to a target pool.
150174// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
150175func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
150176	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150177	c.project = project
150178	c.region = region
150179	c.targetPool = targetPool
150180	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
150181	return c
150182}
150183
150184// RequestId sets the optional parameter "requestId": An optional
150185// request ID to identify requests. Specify a unique request ID so that
150186// if you must retry your request, the server will know to ignore the
150187// request if it has already been completed.
150188//
150189// For example, consider a situation where you make an initial request
150190// and the request times out. If you make the request again with the
150191// same request ID, the server can check if original operation with the
150192// same request ID was received, and if so, will ignore the second
150193// request. This prevents clients from accidentally creating duplicate
150194// commitments.
150195//
150196// The request ID must be a valid UUID with the exception that zero UUID
150197// is not supported (00000000-0000-0000-0000-000000000000).
150198func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
150199	c.urlParams_.Set("requestId", requestId)
150200	return c
150201}
150202
150203// Fields allows partial responses to be retrieved. See
150204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150205// for more information.
150206func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
150207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150208	return c
150209}
150210
150211// Context sets the context to be used in this call's Do method. Any
150212// pending HTTP request will be aborted if the provided context is
150213// canceled.
150214func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
150215	c.ctx_ = ctx
150216	return c
150217}
150218
150219// Header returns an http.Header that can be modified by the caller to
150220// add HTTP headers to the request.
150221func (c *TargetPoolsAddInstanceCall) Header() http.Header {
150222	if c.header_ == nil {
150223		c.header_ = make(http.Header)
150224	}
150225	return c.header_
150226}
150227
150228func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
150229	reqHeaders := make(http.Header)
150230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
150231	for k, v := range c.header_ {
150232		reqHeaders[k] = v
150233	}
150234	reqHeaders.Set("User-Agent", c.s.userAgent())
150235	var body io.Reader = nil
150236	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
150237	if err != nil {
150238		return nil, err
150239	}
150240	reqHeaders.Set("Content-Type", "application/json")
150241	c.urlParams_.Set("alt", alt)
150242	c.urlParams_.Set("prettyPrint", "false")
150243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
150244	urls += "?" + c.urlParams_.Encode()
150245	req, err := http.NewRequest("POST", urls, body)
150246	if err != nil {
150247		return nil, err
150248	}
150249	req.Header = reqHeaders
150250	googleapi.Expand(req.URL, map[string]string{
150251		"project":    c.project,
150252		"region":     c.region,
150253		"targetPool": c.targetPool,
150254	})
150255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150256}
150257
150258// Do executes the "compute.targetPools.addInstance" call.
150259// Exactly one of *Operation or error will be non-nil. Any non-2xx
150260// status code is an error. Response headers are in either
150261// *Operation.ServerResponse.Header or (if a response was returned at
150262// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150263// to check whether the returned error was because
150264// http.StatusNotModified was returned.
150265func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150266	gensupport.SetOptions(c.urlParams_, opts...)
150267	res, err := c.doRequest("json")
150268	if res != nil && res.StatusCode == http.StatusNotModified {
150269		if res.Body != nil {
150270			res.Body.Close()
150271		}
150272		return nil, &googleapi.Error{
150273			Code:   res.StatusCode,
150274			Header: res.Header,
150275		}
150276	}
150277	if err != nil {
150278		return nil, err
150279	}
150280	defer googleapi.CloseBody(res)
150281	if err := googleapi.CheckResponse(res); err != nil {
150282		return nil, err
150283	}
150284	ret := &Operation{
150285		ServerResponse: googleapi.ServerResponse{
150286			Header:         res.Header,
150287			HTTPStatusCode: res.StatusCode,
150288		},
150289	}
150290	target := &ret
150291	if err := gensupport.DecodeResponse(target, res); err != nil {
150292		return nil, err
150293	}
150294	return ret, nil
150295	// {
150296	//   "description": "Adds an instance to a target pool.",
150297	//   "httpMethod": "POST",
150298	//   "id": "compute.targetPools.addInstance",
150299	//   "parameterOrder": [
150300	//     "project",
150301	//     "region",
150302	//     "targetPool"
150303	//   ],
150304	//   "parameters": {
150305	//     "project": {
150306	//       "description": "Project ID for this request.",
150307	//       "location": "path",
150308	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150309	//       "required": true,
150310	//       "type": "string"
150311	//     },
150312	//     "region": {
150313	//       "description": "Name of the region scoping this request.",
150314	//       "location": "path",
150315	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150316	//       "required": true,
150317	//       "type": "string"
150318	//     },
150319	//     "requestId": {
150320	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150321	//       "location": "query",
150322	//       "type": "string"
150323	//     },
150324	//     "targetPool": {
150325	//       "description": "Name of the TargetPool resource to add instances to.",
150326	//       "location": "path",
150327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150328	//       "required": true,
150329	//       "type": "string"
150330	//     }
150331	//   },
150332	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
150333	//   "request": {
150334	//     "$ref": "TargetPoolsAddInstanceRequest"
150335	//   },
150336	//   "response": {
150337	//     "$ref": "Operation"
150338	//   },
150339	//   "scopes": [
150340	//     "https://www.googleapis.com/auth/cloud-platform",
150341	//     "https://www.googleapis.com/auth/compute"
150342	//   ]
150343	// }
150344
150345}
150346
150347// method id "compute.targetPools.aggregatedList":
150348
150349type TargetPoolsAggregatedListCall struct {
150350	s            *Service
150351	project      string
150352	urlParams_   gensupport.URLParams
150353	ifNoneMatch_ string
150354	ctx_         context.Context
150355	header_      http.Header
150356}
150357
150358// AggregatedList: Retrieves an aggregated list of target pools.
150359// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
150360func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
150361	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150362	c.project = project
150363	return c
150364}
150365
150366// Filter sets the optional parameter "filter": A filter expression that
150367// filters resources listed in the response. The expression must specify
150368// the field name, a comparison operator, and the value that you want to
150369// use for filtering. The value must be a string, a number, or a
150370// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150371// `<`.
150372//
150373// For example, if you are filtering Compute Engine instances, you can
150374// exclude instances named `example-instance` by specifying `name !=
150375// example-instance`.
150376//
150377// You can also filter nested fields. For example, you could specify
150378// `scheduling.automaticRestart = false` to include instances only if
150379// they are not scheduled for automatic restarts. You can use filtering
150380// on nested fields to filter based on resource labels.
150381//
150382// To filter on multiple expressions, provide each separate expression
150383// within parentheses. For example: ``` (scheduling.automaticRestart =
150384// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
150385// is an `AND` expression. However, you can include `AND` and `OR`
150386// expressions explicitly. For example: ``` (cpuPlatform = "Intel
150387// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
150388// (scheduling.automaticRestart = true) ```
150389func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
150390	c.urlParams_.Set("filter", filter)
150391	return c
150392}
150393
150394// IncludeAllScopes sets the optional parameter "includeAllScopes":
150395// Indicates whether every visible scope for each scope type (zone,
150396// region, global) should be included in the response. For new resource
150397// types added after this field, the flag has no effect as new resource
150398// types will always include every visible scope for each scope type in
150399// response. For resource types which predate this field, if this flag
150400// is omitted or false, only scopes of the scope types where the
150401// resource type is expected to be found will be included.
150402func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
150403	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
150404	return c
150405}
150406
150407// MaxResults sets the optional parameter "maxResults": The maximum
150408// number of results per page that should be returned. If the number of
150409// available results is larger than `maxResults`, Compute Engine returns
150410// a `nextPageToken` that can be used to get the next page of results in
150411// subsequent list requests. Acceptable values are `0` to `500`,
150412// inclusive. (Default: `500`)
150413func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
150414	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150415	return c
150416}
150417
150418// OrderBy sets the optional parameter "orderBy": Sorts list results by
150419// a certain order. By default, results are returned in alphanumerical
150420// order based on the resource name.
150421//
150422// You can also sort results in descending order based on the creation
150423// timestamp using `orderBy="creationTimestamp desc". This sorts
150424// results based on the `creationTimestamp` field in reverse
150425// chronological order (newest result first). Use this to sort resources
150426// like operations so that the newest operation is returned
150427// first.
150428//
150429// Currently, only sorting by `name` or `creationTimestamp desc` is
150430// supported.
150431func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
150432	c.urlParams_.Set("orderBy", orderBy)
150433	return c
150434}
150435
150436// PageToken sets the optional parameter "pageToken": Specifies a page
150437// token to use. Set `pageToken` to the `nextPageToken` returned by a
150438// previous list request to get the next page of results.
150439func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
150440	c.urlParams_.Set("pageToken", pageToken)
150441	return c
150442}
150443
150444// Fields allows partial responses to be retrieved. See
150445// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150446// for more information.
150447func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
150448	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150449	return c
150450}
150451
150452// IfNoneMatch sets the optional parameter which makes the operation
150453// fail if the object's ETag matches the given value. This is useful for
150454// getting updates only after the object has changed since the last
150455// request. Use googleapi.IsNotModified to check whether the response
150456// error from Do is the result of In-None-Match.
150457func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
150458	c.ifNoneMatch_ = entityTag
150459	return c
150460}
150461
150462// Context sets the context to be used in this call's Do method. Any
150463// pending HTTP request will be aborted if the provided context is
150464// canceled.
150465func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
150466	c.ctx_ = ctx
150467	return c
150468}
150469
150470// Header returns an http.Header that can be modified by the caller to
150471// add HTTP headers to the request.
150472func (c *TargetPoolsAggregatedListCall) Header() http.Header {
150473	if c.header_ == nil {
150474		c.header_ = make(http.Header)
150475	}
150476	return c.header_
150477}
150478
150479func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
150480	reqHeaders := make(http.Header)
150481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
150482	for k, v := range c.header_ {
150483		reqHeaders[k] = v
150484	}
150485	reqHeaders.Set("User-Agent", c.s.userAgent())
150486	if c.ifNoneMatch_ != "" {
150487		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150488	}
150489	var body io.Reader = nil
150490	c.urlParams_.Set("alt", alt)
150491	c.urlParams_.Set("prettyPrint", "false")
150492	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
150493	urls += "?" + c.urlParams_.Encode()
150494	req, err := http.NewRequest("GET", urls, body)
150495	if err != nil {
150496		return nil, err
150497	}
150498	req.Header = reqHeaders
150499	googleapi.Expand(req.URL, map[string]string{
150500		"project": c.project,
150501	})
150502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150503}
150504
150505// Do executes the "compute.targetPools.aggregatedList" call.
150506// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
150507// Any non-2xx status code is an error. Response headers are in either
150508// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
150509// returned at all) in error.(*googleapi.Error).Header. Use
150510// googleapi.IsNotModified to check whether the returned error was
150511// because http.StatusNotModified was returned.
150512func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
150513	gensupport.SetOptions(c.urlParams_, opts...)
150514	res, err := c.doRequest("json")
150515	if res != nil && res.StatusCode == http.StatusNotModified {
150516		if res.Body != nil {
150517			res.Body.Close()
150518		}
150519		return nil, &googleapi.Error{
150520			Code:   res.StatusCode,
150521			Header: res.Header,
150522		}
150523	}
150524	if err != nil {
150525		return nil, err
150526	}
150527	defer googleapi.CloseBody(res)
150528	if err := googleapi.CheckResponse(res); err != nil {
150529		return nil, err
150530	}
150531	ret := &TargetPoolAggregatedList{
150532		ServerResponse: googleapi.ServerResponse{
150533			Header:         res.Header,
150534			HTTPStatusCode: res.StatusCode,
150535		},
150536	}
150537	target := &ret
150538	if err := gensupport.DecodeResponse(target, res); err != nil {
150539		return nil, err
150540	}
150541	return ret, nil
150542	// {
150543	//   "description": "Retrieves an aggregated list of target pools.",
150544	//   "httpMethod": "GET",
150545	//   "id": "compute.targetPools.aggregatedList",
150546	//   "parameterOrder": [
150547	//     "project"
150548	//   ],
150549	//   "parameters": {
150550	//     "filter": {
150551	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
150552	//       "location": "query",
150553	//       "type": "string"
150554	//     },
150555	//     "includeAllScopes": {
150556	//       "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.",
150557	//       "location": "query",
150558	//       "type": "boolean"
150559	//     },
150560	//     "maxResults": {
150561	//       "default": "500",
150562	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
150563	//       "format": "uint32",
150564	//       "location": "query",
150565	//       "minimum": "0",
150566	//       "type": "integer"
150567	//     },
150568	//     "orderBy": {
150569	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
150570	//       "location": "query",
150571	//       "type": "string"
150572	//     },
150573	//     "pageToken": {
150574	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150575	//       "location": "query",
150576	//       "type": "string"
150577	//     },
150578	//     "project": {
150579	//       "description": "Project ID for this request.",
150580	//       "location": "path",
150581	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150582	//       "required": true,
150583	//       "type": "string"
150584	//     }
150585	//   },
150586	//   "path": "{project}/aggregated/targetPools",
150587	//   "response": {
150588	//     "$ref": "TargetPoolAggregatedList"
150589	//   },
150590	//   "scopes": [
150591	//     "https://www.googleapis.com/auth/cloud-platform",
150592	//     "https://www.googleapis.com/auth/compute",
150593	//     "https://www.googleapis.com/auth/compute.readonly"
150594	//   ]
150595	// }
150596
150597}
150598
150599// Pages invokes f for each page of results.
150600// A non-nil error returned from f will halt the iteration.
150601// The provided context supersedes any context provided to the Context method.
150602func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
150603	c.ctx_ = ctx
150604	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150605	for {
150606		x, err := c.Do()
150607		if err != nil {
150608			return err
150609		}
150610		if err := f(x); err != nil {
150611			return err
150612		}
150613		if x.NextPageToken == "" {
150614			return nil
150615		}
150616		c.PageToken(x.NextPageToken)
150617	}
150618}
150619
150620// method id "compute.targetPools.delete":
150621
150622type TargetPoolsDeleteCall struct {
150623	s          *Service
150624	project    string
150625	region     string
150626	targetPool string
150627	urlParams_ gensupport.URLParams
150628	ctx_       context.Context
150629	header_    http.Header
150630}
150631
150632// Delete: Deletes the specified target pool.
150633// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
150634func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
150635	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150636	c.project = project
150637	c.region = region
150638	c.targetPool = targetPool
150639	return c
150640}
150641
150642// RequestId sets the optional parameter "requestId": An optional
150643// request ID to identify requests. Specify a unique request ID so that
150644// if you must retry your request, the server will know to ignore the
150645// request if it has already been completed.
150646//
150647// For example, consider a situation where you make an initial request
150648// and the request times out. If you make the request again with the
150649// same request ID, the server can check if original operation with the
150650// same request ID was received, and if so, will ignore the second
150651// request. This prevents clients from accidentally creating duplicate
150652// commitments.
150653//
150654// The request ID must be a valid UUID with the exception that zero UUID
150655// is not supported (00000000-0000-0000-0000-000000000000).
150656func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
150657	c.urlParams_.Set("requestId", requestId)
150658	return c
150659}
150660
150661// Fields allows partial responses to be retrieved. See
150662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150663// for more information.
150664func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
150665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150666	return c
150667}
150668
150669// Context sets the context to be used in this call's Do method. Any
150670// pending HTTP request will be aborted if the provided context is
150671// canceled.
150672func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
150673	c.ctx_ = ctx
150674	return c
150675}
150676
150677// Header returns an http.Header that can be modified by the caller to
150678// add HTTP headers to the request.
150679func (c *TargetPoolsDeleteCall) Header() http.Header {
150680	if c.header_ == nil {
150681		c.header_ = make(http.Header)
150682	}
150683	return c.header_
150684}
150685
150686func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
150687	reqHeaders := make(http.Header)
150688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
150689	for k, v := range c.header_ {
150690		reqHeaders[k] = v
150691	}
150692	reqHeaders.Set("User-Agent", c.s.userAgent())
150693	var body io.Reader = nil
150694	c.urlParams_.Set("alt", alt)
150695	c.urlParams_.Set("prettyPrint", "false")
150696	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
150697	urls += "?" + c.urlParams_.Encode()
150698	req, err := http.NewRequest("DELETE", urls, body)
150699	if err != nil {
150700		return nil, err
150701	}
150702	req.Header = reqHeaders
150703	googleapi.Expand(req.URL, map[string]string{
150704		"project":    c.project,
150705		"region":     c.region,
150706		"targetPool": c.targetPool,
150707	})
150708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150709}
150710
150711// Do executes the "compute.targetPools.delete" call.
150712// Exactly one of *Operation or error will be non-nil. Any non-2xx
150713// status code is an error. Response headers are in either
150714// *Operation.ServerResponse.Header or (if a response was returned at
150715// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150716// to check whether the returned error was because
150717// http.StatusNotModified was returned.
150718func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150719	gensupport.SetOptions(c.urlParams_, opts...)
150720	res, err := c.doRequest("json")
150721	if res != nil && res.StatusCode == http.StatusNotModified {
150722		if res.Body != nil {
150723			res.Body.Close()
150724		}
150725		return nil, &googleapi.Error{
150726			Code:   res.StatusCode,
150727			Header: res.Header,
150728		}
150729	}
150730	if err != nil {
150731		return nil, err
150732	}
150733	defer googleapi.CloseBody(res)
150734	if err := googleapi.CheckResponse(res); err != nil {
150735		return nil, err
150736	}
150737	ret := &Operation{
150738		ServerResponse: googleapi.ServerResponse{
150739			Header:         res.Header,
150740			HTTPStatusCode: res.StatusCode,
150741		},
150742	}
150743	target := &ret
150744	if err := gensupport.DecodeResponse(target, res); err != nil {
150745		return nil, err
150746	}
150747	return ret, nil
150748	// {
150749	//   "description": "Deletes the specified target pool.",
150750	//   "httpMethod": "DELETE",
150751	//   "id": "compute.targetPools.delete",
150752	//   "parameterOrder": [
150753	//     "project",
150754	//     "region",
150755	//     "targetPool"
150756	//   ],
150757	//   "parameters": {
150758	//     "project": {
150759	//       "description": "Project ID for this request.",
150760	//       "location": "path",
150761	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150762	//       "required": true,
150763	//       "type": "string"
150764	//     },
150765	//     "region": {
150766	//       "description": "Name of the region scoping this request.",
150767	//       "location": "path",
150768	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150769	//       "required": true,
150770	//       "type": "string"
150771	//     },
150772	//     "requestId": {
150773	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150774	//       "location": "query",
150775	//       "type": "string"
150776	//     },
150777	//     "targetPool": {
150778	//       "description": "Name of the TargetPool resource to delete.",
150779	//       "location": "path",
150780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150781	//       "required": true,
150782	//       "type": "string"
150783	//     }
150784	//   },
150785	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
150786	//   "response": {
150787	//     "$ref": "Operation"
150788	//   },
150789	//   "scopes": [
150790	//     "https://www.googleapis.com/auth/cloud-platform",
150791	//     "https://www.googleapis.com/auth/compute"
150792	//   ]
150793	// }
150794
150795}
150796
150797// method id "compute.targetPools.get":
150798
150799type TargetPoolsGetCall struct {
150800	s            *Service
150801	project      string
150802	region       string
150803	targetPool   string
150804	urlParams_   gensupport.URLParams
150805	ifNoneMatch_ string
150806	ctx_         context.Context
150807	header_      http.Header
150808}
150809
150810// Get: Returns the specified target pool. Gets a list of available
150811// target pools by making a list() request.
150812// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
150813func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
150814	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150815	c.project = project
150816	c.region = region
150817	c.targetPool = targetPool
150818	return c
150819}
150820
150821// Fields allows partial responses to be retrieved. See
150822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150823// for more information.
150824func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
150825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150826	return c
150827}
150828
150829// IfNoneMatch sets the optional parameter which makes the operation
150830// fail if the object's ETag matches the given value. This is useful for
150831// getting updates only after the object has changed since the last
150832// request. Use googleapi.IsNotModified to check whether the response
150833// error from Do is the result of In-None-Match.
150834func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
150835	c.ifNoneMatch_ = entityTag
150836	return c
150837}
150838
150839// Context sets the context to be used in this call's Do method. Any
150840// pending HTTP request will be aborted if the provided context is
150841// canceled.
150842func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
150843	c.ctx_ = ctx
150844	return c
150845}
150846
150847// Header returns an http.Header that can be modified by the caller to
150848// add HTTP headers to the request.
150849func (c *TargetPoolsGetCall) Header() http.Header {
150850	if c.header_ == nil {
150851		c.header_ = make(http.Header)
150852	}
150853	return c.header_
150854}
150855
150856func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
150857	reqHeaders := make(http.Header)
150858	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
150859	for k, v := range c.header_ {
150860		reqHeaders[k] = v
150861	}
150862	reqHeaders.Set("User-Agent", c.s.userAgent())
150863	if c.ifNoneMatch_ != "" {
150864		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150865	}
150866	var body io.Reader = nil
150867	c.urlParams_.Set("alt", alt)
150868	c.urlParams_.Set("prettyPrint", "false")
150869	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
150870	urls += "?" + c.urlParams_.Encode()
150871	req, err := http.NewRequest("GET", urls, body)
150872	if err != nil {
150873		return nil, err
150874	}
150875	req.Header = reqHeaders
150876	googleapi.Expand(req.URL, map[string]string{
150877		"project":    c.project,
150878		"region":     c.region,
150879		"targetPool": c.targetPool,
150880	})
150881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150882}
150883
150884// Do executes the "compute.targetPools.get" call.
150885// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
150886// status code is an error. Response headers are in either
150887// *TargetPool.ServerResponse.Header or (if a response was returned at
150888// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150889// to check whether the returned error was because
150890// http.StatusNotModified was returned.
150891func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
150892	gensupport.SetOptions(c.urlParams_, opts...)
150893	res, err := c.doRequest("json")
150894	if res != nil && res.StatusCode == http.StatusNotModified {
150895		if res.Body != nil {
150896			res.Body.Close()
150897		}
150898		return nil, &googleapi.Error{
150899			Code:   res.StatusCode,
150900			Header: res.Header,
150901		}
150902	}
150903	if err != nil {
150904		return nil, err
150905	}
150906	defer googleapi.CloseBody(res)
150907	if err := googleapi.CheckResponse(res); err != nil {
150908		return nil, err
150909	}
150910	ret := &TargetPool{
150911		ServerResponse: googleapi.ServerResponse{
150912			Header:         res.Header,
150913			HTTPStatusCode: res.StatusCode,
150914		},
150915	}
150916	target := &ret
150917	if err := gensupport.DecodeResponse(target, res); err != nil {
150918		return nil, err
150919	}
150920	return ret, nil
150921	// {
150922	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
150923	//   "httpMethod": "GET",
150924	//   "id": "compute.targetPools.get",
150925	//   "parameterOrder": [
150926	//     "project",
150927	//     "region",
150928	//     "targetPool"
150929	//   ],
150930	//   "parameters": {
150931	//     "project": {
150932	//       "description": "Project ID for this request.",
150933	//       "location": "path",
150934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150935	//       "required": true,
150936	//       "type": "string"
150937	//     },
150938	//     "region": {
150939	//       "description": "Name of the region scoping this request.",
150940	//       "location": "path",
150941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150942	//       "required": true,
150943	//       "type": "string"
150944	//     },
150945	//     "targetPool": {
150946	//       "description": "Name of the TargetPool resource to return.",
150947	//       "location": "path",
150948	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150949	//       "required": true,
150950	//       "type": "string"
150951	//     }
150952	//   },
150953	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
150954	//   "response": {
150955	//     "$ref": "TargetPool"
150956	//   },
150957	//   "scopes": [
150958	//     "https://www.googleapis.com/auth/cloud-platform",
150959	//     "https://www.googleapis.com/auth/compute",
150960	//     "https://www.googleapis.com/auth/compute.readonly"
150961	//   ]
150962	// }
150963
150964}
150965
150966// method id "compute.targetPools.getHealth":
150967
150968type TargetPoolsGetHealthCall struct {
150969	s                 *Service
150970	project           string
150971	region            string
150972	targetPool        string
150973	instancereference *InstanceReference
150974	urlParams_        gensupport.URLParams
150975	ctx_              context.Context
150976	header_           http.Header
150977}
150978
150979// GetHealth: Gets the most recent health check results for each IP for
150980// the instance that is referenced by the given target pool.
150981// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
150982func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
150983	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150984	c.project = project
150985	c.region = region
150986	c.targetPool = targetPool
150987	c.instancereference = instancereference
150988	return c
150989}
150990
150991// Fields allows partial responses to be retrieved. See
150992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150993// for more information.
150994func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
150995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150996	return c
150997}
150998
150999// Context sets the context to be used in this call's Do method. Any
151000// pending HTTP request will be aborted if the provided context is
151001// canceled.
151002func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
151003	c.ctx_ = ctx
151004	return c
151005}
151006
151007// Header returns an http.Header that can be modified by the caller to
151008// add HTTP headers to the request.
151009func (c *TargetPoolsGetHealthCall) Header() http.Header {
151010	if c.header_ == nil {
151011		c.header_ = make(http.Header)
151012	}
151013	return c.header_
151014}
151015
151016func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
151017	reqHeaders := make(http.Header)
151018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
151019	for k, v := range c.header_ {
151020		reqHeaders[k] = v
151021	}
151022	reqHeaders.Set("User-Agent", c.s.userAgent())
151023	var body io.Reader = nil
151024	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
151025	if err != nil {
151026		return nil, err
151027	}
151028	reqHeaders.Set("Content-Type", "application/json")
151029	c.urlParams_.Set("alt", alt)
151030	c.urlParams_.Set("prettyPrint", "false")
151031	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
151032	urls += "?" + c.urlParams_.Encode()
151033	req, err := http.NewRequest("POST", urls, body)
151034	if err != nil {
151035		return nil, err
151036	}
151037	req.Header = reqHeaders
151038	googleapi.Expand(req.URL, map[string]string{
151039		"project":    c.project,
151040		"region":     c.region,
151041		"targetPool": c.targetPool,
151042	})
151043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151044}
151045
151046// Do executes the "compute.targetPools.getHealth" call.
151047// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
151048// Any non-2xx status code is an error. Response headers are in either
151049// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
151050// returned at all) in error.(*googleapi.Error).Header. Use
151051// googleapi.IsNotModified to check whether the returned error was
151052// because http.StatusNotModified was returned.
151053func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
151054	gensupport.SetOptions(c.urlParams_, opts...)
151055	res, err := c.doRequest("json")
151056	if res != nil && res.StatusCode == http.StatusNotModified {
151057		if res.Body != nil {
151058			res.Body.Close()
151059		}
151060		return nil, &googleapi.Error{
151061			Code:   res.StatusCode,
151062			Header: res.Header,
151063		}
151064	}
151065	if err != nil {
151066		return nil, err
151067	}
151068	defer googleapi.CloseBody(res)
151069	if err := googleapi.CheckResponse(res); err != nil {
151070		return nil, err
151071	}
151072	ret := &TargetPoolInstanceHealth{
151073		ServerResponse: googleapi.ServerResponse{
151074			Header:         res.Header,
151075			HTTPStatusCode: res.StatusCode,
151076		},
151077	}
151078	target := &ret
151079	if err := gensupport.DecodeResponse(target, res); err != nil {
151080		return nil, err
151081	}
151082	return ret, nil
151083	// {
151084	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
151085	//   "httpMethod": "POST",
151086	//   "id": "compute.targetPools.getHealth",
151087	//   "parameterOrder": [
151088	//     "project",
151089	//     "region",
151090	//     "targetPool"
151091	//   ],
151092	//   "parameters": {
151093	//     "project": {
151094	//       "description": "Project ID for this request.",
151095	//       "location": "path",
151096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151097	//       "required": true,
151098	//       "type": "string"
151099	//     },
151100	//     "region": {
151101	//       "description": "Name of the region scoping this request.",
151102	//       "location": "path",
151103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151104	//       "required": true,
151105	//       "type": "string"
151106	//     },
151107	//     "targetPool": {
151108	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
151109	//       "location": "path",
151110	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151111	//       "required": true,
151112	//       "type": "string"
151113	//     }
151114	//   },
151115	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
151116	//   "request": {
151117	//     "$ref": "InstanceReference"
151118	//   },
151119	//   "response": {
151120	//     "$ref": "TargetPoolInstanceHealth"
151121	//   },
151122	//   "scopes": [
151123	//     "https://www.googleapis.com/auth/cloud-platform",
151124	//     "https://www.googleapis.com/auth/compute",
151125	//     "https://www.googleapis.com/auth/compute.readonly"
151126	//   ]
151127	// }
151128
151129}
151130
151131// method id "compute.targetPools.insert":
151132
151133type TargetPoolsInsertCall struct {
151134	s          *Service
151135	project    string
151136	region     string
151137	targetpool *TargetPool
151138	urlParams_ gensupport.URLParams
151139	ctx_       context.Context
151140	header_    http.Header
151141}
151142
151143// Insert: Creates a target pool in the specified project and region
151144// using the data included in the request.
151145// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
151146func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
151147	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151148	c.project = project
151149	c.region = region
151150	c.targetpool = targetpool
151151	return c
151152}
151153
151154// RequestId sets the optional parameter "requestId": An optional
151155// request ID to identify requests. Specify a unique request ID so that
151156// if you must retry your request, the server will know to ignore the
151157// request if it has already been completed.
151158//
151159// For example, consider a situation where you make an initial request
151160// and the request times out. If you make the request again with the
151161// same request ID, the server can check if original operation with the
151162// same request ID was received, and if so, will ignore the second
151163// request. This prevents clients from accidentally creating duplicate
151164// commitments.
151165//
151166// The request ID must be a valid UUID with the exception that zero UUID
151167// is not supported (00000000-0000-0000-0000-000000000000).
151168func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
151169	c.urlParams_.Set("requestId", requestId)
151170	return c
151171}
151172
151173// Fields allows partial responses to be retrieved. See
151174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151175// for more information.
151176func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
151177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151178	return c
151179}
151180
151181// Context sets the context to be used in this call's Do method. Any
151182// pending HTTP request will be aborted if the provided context is
151183// canceled.
151184func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
151185	c.ctx_ = ctx
151186	return c
151187}
151188
151189// Header returns an http.Header that can be modified by the caller to
151190// add HTTP headers to the request.
151191func (c *TargetPoolsInsertCall) Header() http.Header {
151192	if c.header_ == nil {
151193		c.header_ = make(http.Header)
151194	}
151195	return c.header_
151196}
151197
151198func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
151199	reqHeaders := make(http.Header)
151200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
151201	for k, v := range c.header_ {
151202		reqHeaders[k] = v
151203	}
151204	reqHeaders.Set("User-Agent", c.s.userAgent())
151205	var body io.Reader = nil
151206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
151207	if err != nil {
151208		return nil, err
151209	}
151210	reqHeaders.Set("Content-Type", "application/json")
151211	c.urlParams_.Set("alt", alt)
151212	c.urlParams_.Set("prettyPrint", "false")
151213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
151214	urls += "?" + c.urlParams_.Encode()
151215	req, err := http.NewRequest("POST", urls, body)
151216	if err != nil {
151217		return nil, err
151218	}
151219	req.Header = reqHeaders
151220	googleapi.Expand(req.URL, map[string]string{
151221		"project": c.project,
151222		"region":  c.region,
151223	})
151224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151225}
151226
151227// Do executes the "compute.targetPools.insert" call.
151228// Exactly one of *Operation or error will be non-nil. Any non-2xx
151229// status code is an error. Response headers are in either
151230// *Operation.ServerResponse.Header or (if a response was returned at
151231// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151232// to check whether the returned error was because
151233// http.StatusNotModified was returned.
151234func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151235	gensupport.SetOptions(c.urlParams_, opts...)
151236	res, err := c.doRequest("json")
151237	if res != nil && res.StatusCode == http.StatusNotModified {
151238		if res.Body != nil {
151239			res.Body.Close()
151240		}
151241		return nil, &googleapi.Error{
151242			Code:   res.StatusCode,
151243			Header: res.Header,
151244		}
151245	}
151246	if err != nil {
151247		return nil, err
151248	}
151249	defer googleapi.CloseBody(res)
151250	if err := googleapi.CheckResponse(res); err != nil {
151251		return nil, err
151252	}
151253	ret := &Operation{
151254		ServerResponse: googleapi.ServerResponse{
151255			Header:         res.Header,
151256			HTTPStatusCode: res.StatusCode,
151257		},
151258	}
151259	target := &ret
151260	if err := gensupport.DecodeResponse(target, res); err != nil {
151261		return nil, err
151262	}
151263	return ret, nil
151264	// {
151265	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
151266	//   "httpMethod": "POST",
151267	//   "id": "compute.targetPools.insert",
151268	//   "parameterOrder": [
151269	//     "project",
151270	//     "region"
151271	//   ],
151272	//   "parameters": {
151273	//     "project": {
151274	//       "description": "Project ID for this request.",
151275	//       "location": "path",
151276	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151277	//       "required": true,
151278	//       "type": "string"
151279	//     },
151280	//     "region": {
151281	//       "description": "Name of the region scoping this request.",
151282	//       "location": "path",
151283	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151284	//       "required": true,
151285	//       "type": "string"
151286	//     },
151287	//     "requestId": {
151288	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151289	//       "location": "query",
151290	//       "type": "string"
151291	//     }
151292	//   },
151293	//   "path": "{project}/regions/{region}/targetPools",
151294	//   "request": {
151295	//     "$ref": "TargetPool"
151296	//   },
151297	//   "response": {
151298	//     "$ref": "Operation"
151299	//   },
151300	//   "scopes": [
151301	//     "https://www.googleapis.com/auth/cloud-platform",
151302	//     "https://www.googleapis.com/auth/compute"
151303	//   ]
151304	// }
151305
151306}
151307
151308// method id "compute.targetPools.list":
151309
151310type TargetPoolsListCall struct {
151311	s            *Service
151312	project      string
151313	region       string
151314	urlParams_   gensupport.URLParams
151315	ifNoneMatch_ string
151316	ctx_         context.Context
151317	header_      http.Header
151318}
151319
151320// List: Retrieves a list of target pools available to the specified
151321// project and region.
151322// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
151323func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
151324	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151325	c.project = project
151326	c.region = region
151327	return c
151328}
151329
151330// Filter sets the optional parameter "filter": A filter expression that
151331// filters resources listed in the response. The expression must specify
151332// the field name, a comparison operator, and the value that you want to
151333// use for filtering. The value must be a string, a number, or a
151334// boolean. The comparison operator must be either `=`, `!=`, `>`, or
151335// `<`.
151336//
151337// For example, if you are filtering Compute Engine instances, you can
151338// exclude instances named `example-instance` by specifying `name !=
151339// example-instance`.
151340//
151341// You can also filter nested fields. For example, you could specify
151342// `scheduling.automaticRestart = false` to include instances only if
151343// they are not scheduled for automatic restarts. You can use filtering
151344// on nested fields to filter based on resource labels.
151345//
151346// To filter on multiple expressions, provide each separate expression
151347// within parentheses. For example: ``` (scheduling.automaticRestart =
151348// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
151349// is an `AND` expression. However, you can include `AND` and `OR`
151350// expressions explicitly. For example: ``` (cpuPlatform = "Intel
151351// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
151352// (scheduling.automaticRestart = true) ```
151353func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
151354	c.urlParams_.Set("filter", filter)
151355	return c
151356}
151357
151358// MaxResults sets the optional parameter "maxResults": The maximum
151359// number of results per page that should be returned. If the number of
151360// available results is larger than `maxResults`, Compute Engine returns
151361// a `nextPageToken` that can be used to get the next page of results in
151362// subsequent list requests. Acceptable values are `0` to `500`,
151363// inclusive. (Default: `500`)
151364func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
151365	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151366	return c
151367}
151368
151369// OrderBy sets the optional parameter "orderBy": Sorts list results by
151370// a certain order. By default, results are returned in alphanumerical
151371// order based on the resource name.
151372//
151373// You can also sort results in descending order based on the creation
151374// timestamp using `orderBy="creationTimestamp desc". This sorts
151375// results based on the `creationTimestamp` field in reverse
151376// chronological order (newest result first). Use this to sort resources
151377// like operations so that the newest operation is returned
151378// first.
151379//
151380// Currently, only sorting by `name` or `creationTimestamp desc` is
151381// supported.
151382func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
151383	c.urlParams_.Set("orderBy", orderBy)
151384	return c
151385}
151386
151387// PageToken sets the optional parameter "pageToken": Specifies a page
151388// token to use. Set `pageToken` to the `nextPageToken` returned by a
151389// previous list request to get the next page of results.
151390func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
151391	c.urlParams_.Set("pageToken", pageToken)
151392	return c
151393}
151394
151395// Fields allows partial responses to be retrieved. See
151396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151397// for more information.
151398func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
151399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151400	return c
151401}
151402
151403// IfNoneMatch sets the optional parameter which makes the operation
151404// fail if the object's ETag matches the given value. This is useful for
151405// getting updates only after the object has changed since the last
151406// request. Use googleapi.IsNotModified to check whether the response
151407// error from Do is the result of In-None-Match.
151408func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
151409	c.ifNoneMatch_ = entityTag
151410	return c
151411}
151412
151413// Context sets the context to be used in this call's Do method. Any
151414// pending HTTP request will be aborted if the provided context is
151415// canceled.
151416func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
151417	c.ctx_ = ctx
151418	return c
151419}
151420
151421// Header returns an http.Header that can be modified by the caller to
151422// add HTTP headers to the request.
151423func (c *TargetPoolsListCall) Header() http.Header {
151424	if c.header_ == nil {
151425		c.header_ = make(http.Header)
151426	}
151427	return c.header_
151428}
151429
151430func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
151431	reqHeaders := make(http.Header)
151432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
151433	for k, v := range c.header_ {
151434		reqHeaders[k] = v
151435	}
151436	reqHeaders.Set("User-Agent", c.s.userAgent())
151437	if c.ifNoneMatch_ != "" {
151438		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151439	}
151440	var body io.Reader = nil
151441	c.urlParams_.Set("alt", alt)
151442	c.urlParams_.Set("prettyPrint", "false")
151443	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
151444	urls += "?" + c.urlParams_.Encode()
151445	req, err := http.NewRequest("GET", urls, body)
151446	if err != nil {
151447		return nil, err
151448	}
151449	req.Header = reqHeaders
151450	googleapi.Expand(req.URL, map[string]string{
151451		"project": c.project,
151452		"region":  c.region,
151453	})
151454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151455}
151456
151457// Do executes the "compute.targetPools.list" call.
151458// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
151459// status code is an error. Response headers are in either
151460// *TargetPoolList.ServerResponse.Header or (if a response was returned
151461// at all) in error.(*googleapi.Error).Header. Use
151462// googleapi.IsNotModified to check whether the returned error was
151463// because http.StatusNotModified was returned.
151464func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
151465	gensupport.SetOptions(c.urlParams_, opts...)
151466	res, err := c.doRequest("json")
151467	if res != nil && res.StatusCode == http.StatusNotModified {
151468		if res.Body != nil {
151469			res.Body.Close()
151470		}
151471		return nil, &googleapi.Error{
151472			Code:   res.StatusCode,
151473			Header: res.Header,
151474		}
151475	}
151476	if err != nil {
151477		return nil, err
151478	}
151479	defer googleapi.CloseBody(res)
151480	if err := googleapi.CheckResponse(res); err != nil {
151481		return nil, err
151482	}
151483	ret := &TargetPoolList{
151484		ServerResponse: googleapi.ServerResponse{
151485			Header:         res.Header,
151486			HTTPStatusCode: res.StatusCode,
151487		},
151488	}
151489	target := &ret
151490	if err := gensupport.DecodeResponse(target, res); err != nil {
151491		return nil, err
151492	}
151493	return ret, nil
151494	// {
151495	//   "description": "Retrieves a list of target pools available to the specified project and region.",
151496	//   "httpMethod": "GET",
151497	//   "id": "compute.targetPools.list",
151498	//   "parameterOrder": [
151499	//     "project",
151500	//     "region"
151501	//   ],
151502	//   "parameters": {
151503	//     "filter": {
151504	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
151505	//       "location": "query",
151506	//       "type": "string"
151507	//     },
151508	//     "maxResults": {
151509	//       "default": "500",
151510	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
151511	//       "format": "uint32",
151512	//       "location": "query",
151513	//       "minimum": "0",
151514	//       "type": "integer"
151515	//     },
151516	//     "orderBy": {
151517	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
151518	//       "location": "query",
151519	//       "type": "string"
151520	//     },
151521	//     "pageToken": {
151522	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
151523	//       "location": "query",
151524	//       "type": "string"
151525	//     },
151526	//     "project": {
151527	//       "description": "Project ID for this request.",
151528	//       "location": "path",
151529	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151530	//       "required": true,
151531	//       "type": "string"
151532	//     },
151533	//     "region": {
151534	//       "description": "Name of the region scoping this request.",
151535	//       "location": "path",
151536	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151537	//       "required": true,
151538	//       "type": "string"
151539	//     }
151540	//   },
151541	//   "path": "{project}/regions/{region}/targetPools",
151542	//   "response": {
151543	//     "$ref": "TargetPoolList"
151544	//   },
151545	//   "scopes": [
151546	//     "https://www.googleapis.com/auth/cloud-platform",
151547	//     "https://www.googleapis.com/auth/compute",
151548	//     "https://www.googleapis.com/auth/compute.readonly"
151549	//   ]
151550	// }
151551
151552}
151553
151554// Pages invokes f for each page of results.
151555// A non-nil error returned from f will halt the iteration.
151556// The provided context supersedes any context provided to the Context method.
151557func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
151558	c.ctx_ = ctx
151559	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151560	for {
151561		x, err := c.Do()
151562		if err != nil {
151563			return err
151564		}
151565		if err := f(x); err != nil {
151566			return err
151567		}
151568		if x.NextPageToken == "" {
151569			return nil
151570		}
151571		c.PageToken(x.NextPageToken)
151572	}
151573}
151574
151575// method id "compute.targetPools.removeHealthCheck":
151576
151577type TargetPoolsRemoveHealthCheckCall struct {
151578	s                                   *Service
151579	project                             string
151580	region                              string
151581	targetPool                          string
151582	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
151583	urlParams_                          gensupport.URLParams
151584	ctx_                                context.Context
151585	header_                             http.Header
151586}
151587
151588// RemoveHealthCheck: Removes health check URL from a target pool.
151589// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
151590func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
151591	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151592	c.project = project
151593	c.region = region
151594	c.targetPool = targetPool
151595	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
151596	return c
151597}
151598
151599// RequestId sets the optional parameter "requestId": An optional
151600// request ID to identify requests. Specify a unique request ID so that
151601// if you must retry your request, the server will know to ignore the
151602// request if it has already been completed.
151603//
151604// For example, consider a situation where you make an initial request
151605// and the request times out. If you make the request again with the
151606// same request ID, the server can check if original operation with the
151607// same request ID was received, and if so, will ignore the second
151608// request. This prevents clients from accidentally creating duplicate
151609// commitments.
151610//
151611// The request ID must be a valid UUID with the exception that zero UUID
151612// is not supported (00000000-0000-0000-0000-000000000000).
151613func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
151614	c.urlParams_.Set("requestId", requestId)
151615	return c
151616}
151617
151618// Fields allows partial responses to be retrieved. See
151619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151620// for more information.
151621func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
151622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151623	return c
151624}
151625
151626// Context sets the context to be used in this call's Do method. Any
151627// pending HTTP request will be aborted if the provided context is
151628// canceled.
151629func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
151630	c.ctx_ = ctx
151631	return c
151632}
151633
151634// Header returns an http.Header that can be modified by the caller to
151635// add HTTP headers to the request.
151636func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
151637	if c.header_ == nil {
151638		c.header_ = make(http.Header)
151639	}
151640	return c.header_
151641}
151642
151643func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
151644	reqHeaders := make(http.Header)
151645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
151646	for k, v := range c.header_ {
151647		reqHeaders[k] = v
151648	}
151649	reqHeaders.Set("User-Agent", c.s.userAgent())
151650	var body io.Reader = nil
151651	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
151652	if err != nil {
151653		return nil, err
151654	}
151655	reqHeaders.Set("Content-Type", "application/json")
151656	c.urlParams_.Set("alt", alt)
151657	c.urlParams_.Set("prettyPrint", "false")
151658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
151659	urls += "?" + c.urlParams_.Encode()
151660	req, err := http.NewRequest("POST", urls, body)
151661	if err != nil {
151662		return nil, err
151663	}
151664	req.Header = reqHeaders
151665	googleapi.Expand(req.URL, map[string]string{
151666		"project":    c.project,
151667		"region":     c.region,
151668		"targetPool": c.targetPool,
151669	})
151670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151671}
151672
151673// Do executes the "compute.targetPools.removeHealthCheck" call.
151674// Exactly one of *Operation or error will be non-nil. Any non-2xx
151675// status code is an error. Response headers are in either
151676// *Operation.ServerResponse.Header or (if a response was returned at
151677// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151678// to check whether the returned error was because
151679// http.StatusNotModified was returned.
151680func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151681	gensupport.SetOptions(c.urlParams_, opts...)
151682	res, err := c.doRequest("json")
151683	if res != nil && res.StatusCode == http.StatusNotModified {
151684		if res.Body != nil {
151685			res.Body.Close()
151686		}
151687		return nil, &googleapi.Error{
151688			Code:   res.StatusCode,
151689			Header: res.Header,
151690		}
151691	}
151692	if err != nil {
151693		return nil, err
151694	}
151695	defer googleapi.CloseBody(res)
151696	if err := googleapi.CheckResponse(res); err != nil {
151697		return nil, err
151698	}
151699	ret := &Operation{
151700		ServerResponse: googleapi.ServerResponse{
151701			Header:         res.Header,
151702			HTTPStatusCode: res.StatusCode,
151703		},
151704	}
151705	target := &ret
151706	if err := gensupport.DecodeResponse(target, res); err != nil {
151707		return nil, err
151708	}
151709	return ret, nil
151710	// {
151711	//   "description": "Removes health check URL from a target pool.",
151712	//   "httpMethod": "POST",
151713	//   "id": "compute.targetPools.removeHealthCheck",
151714	//   "parameterOrder": [
151715	//     "project",
151716	//     "region",
151717	//     "targetPool"
151718	//   ],
151719	//   "parameters": {
151720	//     "project": {
151721	//       "description": "Project ID for this request.",
151722	//       "location": "path",
151723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151724	//       "required": true,
151725	//       "type": "string"
151726	//     },
151727	//     "region": {
151728	//       "description": "Name of the region for this request.",
151729	//       "location": "path",
151730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151731	//       "required": true,
151732	//       "type": "string"
151733	//     },
151734	//     "requestId": {
151735	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151736	//       "location": "query",
151737	//       "type": "string"
151738	//     },
151739	//     "targetPool": {
151740	//       "description": "Name of the target pool to remove health checks from.",
151741	//       "location": "path",
151742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151743	//       "required": true,
151744	//       "type": "string"
151745	//     }
151746	//   },
151747	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
151748	//   "request": {
151749	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
151750	//   },
151751	//   "response": {
151752	//     "$ref": "Operation"
151753	//   },
151754	//   "scopes": [
151755	//     "https://www.googleapis.com/auth/cloud-platform",
151756	//     "https://www.googleapis.com/auth/compute"
151757	//   ]
151758	// }
151759
151760}
151761
151762// method id "compute.targetPools.removeInstance":
151763
151764type TargetPoolsRemoveInstanceCall struct {
151765	s                                *Service
151766	project                          string
151767	region                           string
151768	targetPool                       string
151769	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
151770	urlParams_                       gensupport.URLParams
151771	ctx_                             context.Context
151772	header_                          http.Header
151773}
151774
151775// RemoveInstance: Removes instance URL from a target pool.
151776// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
151777func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
151778	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151779	c.project = project
151780	c.region = region
151781	c.targetPool = targetPool
151782	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
151783	return c
151784}
151785
151786// RequestId sets the optional parameter "requestId": An optional
151787// request ID to identify requests. Specify a unique request ID so that
151788// if you must retry your request, the server will know to ignore the
151789// request if it has already been completed.
151790//
151791// For example, consider a situation where you make an initial request
151792// and the request times out. If you make the request again with the
151793// same request ID, the server can check if original operation with the
151794// same request ID was received, and if so, will ignore the second
151795// request. This prevents clients from accidentally creating duplicate
151796// commitments.
151797//
151798// The request ID must be a valid UUID with the exception that zero UUID
151799// is not supported (00000000-0000-0000-0000-000000000000).
151800func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
151801	c.urlParams_.Set("requestId", requestId)
151802	return c
151803}
151804
151805// Fields allows partial responses to be retrieved. See
151806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151807// for more information.
151808func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
151809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151810	return c
151811}
151812
151813// Context sets the context to be used in this call's Do method. Any
151814// pending HTTP request will be aborted if the provided context is
151815// canceled.
151816func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
151817	c.ctx_ = ctx
151818	return c
151819}
151820
151821// Header returns an http.Header that can be modified by the caller to
151822// add HTTP headers to the request.
151823func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
151824	if c.header_ == nil {
151825		c.header_ = make(http.Header)
151826	}
151827	return c.header_
151828}
151829
151830func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
151831	reqHeaders := make(http.Header)
151832	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
151833	for k, v := range c.header_ {
151834		reqHeaders[k] = v
151835	}
151836	reqHeaders.Set("User-Agent", c.s.userAgent())
151837	var body io.Reader = nil
151838	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
151839	if err != nil {
151840		return nil, err
151841	}
151842	reqHeaders.Set("Content-Type", "application/json")
151843	c.urlParams_.Set("alt", alt)
151844	c.urlParams_.Set("prettyPrint", "false")
151845	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
151846	urls += "?" + c.urlParams_.Encode()
151847	req, err := http.NewRequest("POST", urls, body)
151848	if err != nil {
151849		return nil, err
151850	}
151851	req.Header = reqHeaders
151852	googleapi.Expand(req.URL, map[string]string{
151853		"project":    c.project,
151854		"region":     c.region,
151855		"targetPool": c.targetPool,
151856	})
151857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151858}
151859
151860// Do executes the "compute.targetPools.removeInstance" call.
151861// Exactly one of *Operation or error will be non-nil. Any non-2xx
151862// status code is an error. Response headers are in either
151863// *Operation.ServerResponse.Header or (if a response was returned at
151864// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151865// to check whether the returned error was because
151866// http.StatusNotModified was returned.
151867func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151868	gensupport.SetOptions(c.urlParams_, opts...)
151869	res, err := c.doRequest("json")
151870	if res != nil && res.StatusCode == http.StatusNotModified {
151871		if res.Body != nil {
151872			res.Body.Close()
151873		}
151874		return nil, &googleapi.Error{
151875			Code:   res.StatusCode,
151876			Header: res.Header,
151877		}
151878	}
151879	if err != nil {
151880		return nil, err
151881	}
151882	defer googleapi.CloseBody(res)
151883	if err := googleapi.CheckResponse(res); err != nil {
151884		return nil, err
151885	}
151886	ret := &Operation{
151887		ServerResponse: googleapi.ServerResponse{
151888			Header:         res.Header,
151889			HTTPStatusCode: res.StatusCode,
151890		},
151891	}
151892	target := &ret
151893	if err := gensupport.DecodeResponse(target, res); err != nil {
151894		return nil, err
151895	}
151896	return ret, nil
151897	// {
151898	//   "description": "Removes instance URL from a target pool.",
151899	//   "httpMethod": "POST",
151900	//   "id": "compute.targetPools.removeInstance",
151901	//   "parameterOrder": [
151902	//     "project",
151903	//     "region",
151904	//     "targetPool"
151905	//   ],
151906	//   "parameters": {
151907	//     "project": {
151908	//       "description": "Project ID for this request.",
151909	//       "location": "path",
151910	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151911	//       "required": true,
151912	//       "type": "string"
151913	//     },
151914	//     "region": {
151915	//       "description": "Name of the region scoping this request.",
151916	//       "location": "path",
151917	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151918	//       "required": true,
151919	//       "type": "string"
151920	//     },
151921	//     "requestId": {
151922	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151923	//       "location": "query",
151924	//       "type": "string"
151925	//     },
151926	//     "targetPool": {
151927	//       "description": "Name of the TargetPool resource to remove instances from.",
151928	//       "location": "path",
151929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151930	//       "required": true,
151931	//       "type": "string"
151932	//     }
151933	//   },
151934	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
151935	//   "request": {
151936	//     "$ref": "TargetPoolsRemoveInstanceRequest"
151937	//   },
151938	//   "response": {
151939	//     "$ref": "Operation"
151940	//   },
151941	//   "scopes": [
151942	//     "https://www.googleapis.com/auth/cloud-platform",
151943	//     "https://www.googleapis.com/auth/compute"
151944	//   ]
151945	// }
151946
151947}
151948
151949// method id "compute.targetPools.setBackup":
151950
151951type TargetPoolsSetBackupCall struct {
151952	s               *Service
151953	project         string
151954	region          string
151955	targetPool      string
151956	targetreference *TargetReference
151957	urlParams_      gensupport.URLParams
151958	ctx_            context.Context
151959	header_         http.Header
151960}
151961
151962// SetBackup: Changes a backup target pool's configurations.
151963// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
151964func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
151965	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151966	c.project = project
151967	c.region = region
151968	c.targetPool = targetPool
151969	c.targetreference = targetreference
151970	return c
151971}
151972
151973// FailoverRatio sets the optional parameter "failoverRatio": New
151974// failoverRatio value for the target pool.
151975func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
151976	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
151977	return c
151978}
151979
151980// RequestId sets the optional parameter "requestId": An optional
151981// request ID to identify requests. Specify a unique request ID so that
151982// if you must retry your request, the server will know to ignore the
151983// request if it has already been completed.
151984//
151985// For example, consider a situation where you make an initial request
151986// and the request times out. If you make the request again with the
151987// same request ID, the server can check if original operation with the
151988// same request ID was received, and if so, will ignore the second
151989// request. This prevents clients from accidentally creating duplicate
151990// commitments.
151991//
151992// The request ID must be a valid UUID with the exception that zero UUID
151993// is not supported (00000000-0000-0000-0000-000000000000).
151994func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
151995	c.urlParams_.Set("requestId", requestId)
151996	return c
151997}
151998
151999// Fields allows partial responses to be retrieved. See
152000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152001// for more information.
152002func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
152003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152004	return c
152005}
152006
152007// Context sets the context to be used in this call's Do method. Any
152008// pending HTTP request will be aborted if the provided context is
152009// canceled.
152010func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
152011	c.ctx_ = ctx
152012	return c
152013}
152014
152015// Header returns an http.Header that can be modified by the caller to
152016// add HTTP headers to the request.
152017func (c *TargetPoolsSetBackupCall) Header() http.Header {
152018	if c.header_ == nil {
152019		c.header_ = make(http.Header)
152020	}
152021	return c.header_
152022}
152023
152024func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
152025	reqHeaders := make(http.Header)
152026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
152027	for k, v := range c.header_ {
152028		reqHeaders[k] = v
152029	}
152030	reqHeaders.Set("User-Agent", c.s.userAgent())
152031	var body io.Reader = nil
152032	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
152033	if err != nil {
152034		return nil, err
152035	}
152036	reqHeaders.Set("Content-Type", "application/json")
152037	c.urlParams_.Set("alt", alt)
152038	c.urlParams_.Set("prettyPrint", "false")
152039	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
152040	urls += "?" + c.urlParams_.Encode()
152041	req, err := http.NewRequest("POST", urls, body)
152042	if err != nil {
152043		return nil, err
152044	}
152045	req.Header = reqHeaders
152046	googleapi.Expand(req.URL, map[string]string{
152047		"project":    c.project,
152048		"region":     c.region,
152049		"targetPool": c.targetPool,
152050	})
152051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152052}
152053
152054// Do executes the "compute.targetPools.setBackup" call.
152055// Exactly one of *Operation or error will be non-nil. Any non-2xx
152056// status code is an error. Response headers are in either
152057// *Operation.ServerResponse.Header or (if a response was returned at
152058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152059// to check whether the returned error was because
152060// http.StatusNotModified was returned.
152061func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152062	gensupport.SetOptions(c.urlParams_, opts...)
152063	res, err := c.doRequest("json")
152064	if res != nil && res.StatusCode == http.StatusNotModified {
152065		if res.Body != nil {
152066			res.Body.Close()
152067		}
152068		return nil, &googleapi.Error{
152069			Code:   res.StatusCode,
152070			Header: res.Header,
152071		}
152072	}
152073	if err != nil {
152074		return nil, err
152075	}
152076	defer googleapi.CloseBody(res)
152077	if err := googleapi.CheckResponse(res); err != nil {
152078		return nil, err
152079	}
152080	ret := &Operation{
152081		ServerResponse: googleapi.ServerResponse{
152082			Header:         res.Header,
152083			HTTPStatusCode: res.StatusCode,
152084		},
152085	}
152086	target := &ret
152087	if err := gensupport.DecodeResponse(target, res); err != nil {
152088		return nil, err
152089	}
152090	return ret, nil
152091	// {
152092	//   "description": "Changes a backup target pool's configurations.",
152093	//   "httpMethod": "POST",
152094	//   "id": "compute.targetPools.setBackup",
152095	//   "parameterOrder": [
152096	//     "project",
152097	//     "region",
152098	//     "targetPool"
152099	//   ],
152100	//   "parameters": {
152101	//     "failoverRatio": {
152102	//       "description": "New failoverRatio value for the target pool.",
152103	//       "format": "float",
152104	//       "location": "query",
152105	//       "type": "number"
152106	//     },
152107	//     "project": {
152108	//       "description": "Project ID for this request.",
152109	//       "location": "path",
152110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152111	//       "required": true,
152112	//       "type": "string"
152113	//     },
152114	//     "region": {
152115	//       "description": "Name of the region scoping this request.",
152116	//       "location": "path",
152117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152118	//       "required": true,
152119	//       "type": "string"
152120	//     },
152121	//     "requestId": {
152122	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152123	//       "location": "query",
152124	//       "type": "string"
152125	//     },
152126	//     "targetPool": {
152127	//       "description": "Name of the TargetPool resource to set a backup pool for.",
152128	//       "location": "path",
152129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152130	//       "required": true,
152131	//       "type": "string"
152132	//     }
152133	//   },
152134	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
152135	//   "request": {
152136	//     "$ref": "TargetReference"
152137	//   },
152138	//   "response": {
152139	//     "$ref": "Operation"
152140	//   },
152141	//   "scopes": [
152142	//     "https://www.googleapis.com/auth/cloud-platform",
152143	//     "https://www.googleapis.com/auth/compute"
152144	//   ]
152145	// }
152146
152147}
152148
152149// method id "compute.targetPools.testIamPermissions":
152150
152151type TargetPoolsTestIamPermissionsCall struct {
152152	s                      *Service
152153	project                string
152154	region                 string
152155	resource               string
152156	testpermissionsrequest *TestPermissionsRequest
152157	urlParams_             gensupport.URLParams
152158	ctx_                   context.Context
152159	header_                http.Header
152160}
152161
152162// TestIamPermissions: Returns permissions that a caller has on the
152163// specified resource.
152164func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall {
152165	c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152166	c.project = project
152167	c.region = region
152168	c.resource = resource
152169	c.testpermissionsrequest = testpermissionsrequest
152170	return c
152171}
152172
152173// Fields allows partial responses to be retrieved. See
152174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152175// for more information.
152176func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall {
152177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152178	return c
152179}
152180
152181// Context sets the context to be used in this call's Do method. Any
152182// pending HTTP request will be aborted if the provided context is
152183// canceled.
152184func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall {
152185	c.ctx_ = ctx
152186	return c
152187}
152188
152189// Header returns an http.Header that can be modified by the caller to
152190// add HTTP headers to the request.
152191func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header {
152192	if c.header_ == nil {
152193		c.header_ = make(http.Header)
152194	}
152195	return c.header_
152196}
152197
152198func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
152199	reqHeaders := make(http.Header)
152200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
152201	for k, v := range c.header_ {
152202		reqHeaders[k] = v
152203	}
152204	reqHeaders.Set("User-Agent", c.s.userAgent())
152205	var body io.Reader = nil
152206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
152207	if err != nil {
152208		return nil, err
152209	}
152210	reqHeaders.Set("Content-Type", "application/json")
152211	c.urlParams_.Set("alt", alt)
152212	c.urlParams_.Set("prettyPrint", "false")
152213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{resource}/testIamPermissions")
152214	urls += "?" + c.urlParams_.Encode()
152215	req, err := http.NewRequest("POST", urls, body)
152216	if err != nil {
152217		return nil, err
152218	}
152219	req.Header = reqHeaders
152220	googleapi.Expand(req.URL, map[string]string{
152221		"project":  c.project,
152222		"region":   c.region,
152223		"resource": c.resource,
152224	})
152225	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152226}
152227
152228// Do executes the "compute.targetPools.testIamPermissions" call.
152229// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
152230// non-2xx status code is an error. Response headers are in either
152231// *TestPermissionsResponse.ServerResponse.Header or (if a response was
152232// returned at all) in error.(*googleapi.Error).Header. Use
152233// googleapi.IsNotModified to check whether the returned error was
152234// because http.StatusNotModified was returned.
152235func (c *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
152236	gensupport.SetOptions(c.urlParams_, opts...)
152237	res, err := c.doRequest("json")
152238	if res != nil && res.StatusCode == http.StatusNotModified {
152239		if res.Body != nil {
152240			res.Body.Close()
152241		}
152242		return nil, &googleapi.Error{
152243			Code:   res.StatusCode,
152244			Header: res.Header,
152245		}
152246	}
152247	if err != nil {
152248		return nil, err
152249	}
152250	defer googleapi.CloseBody(res)
152251	if err := googleapi.CheckResponse(res); err != nil {
152252		return nil, err
152253	}
152254	ret := &TestPermissionsResponse{
152255		ServerResponse: googleapi.ServerResponse{
152256			Header:         res.Header,
152257			HTTPStatusCode: res.StatusCode,
152258		},
152259	}
152260	target := &ret
152261	if err := gensupport.DecodeResponse(target, res); err != nil {
152262		return nil, err
152263	}
152264	return ret, nil
152265	// {
152266	//   "description": "Returns permissions that a caller has on the specified resource.",
152267	//   "httpMethod": "POST",
152268	//   "id": "compute.targetPools.testIamPermissions",
152269	//   "parameterOrder": [
152270	//     "project",
152271	//     "region",
152272	//     "resource"
152273	//   ],
152274	//   "parameters": {
152275	//     "project": {
152276	//       "description": "Project ID for this request.",
152277	//       "location": "path",
152278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152279	//       "required": true,
152280	//       "type": "string"
152281	//     },
152282	//     "region": {
152283	//       "description": "The name of the region for this request.",
152284	//       "location": "path",
152285	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152286	//       "required": true,
152287	//       "type": "string"
152288	//     },
152289	//     "resource": {
152290	//       "description": "Name or id of the resource for this request.",
152291	//       "location": "path",
152292	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152293	//       "required": true,
152294	//       "type": "string"
152295	//     }
152296	//   },
152297	//   "path": "{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
152298	//   "request": {
152299	//     "$ref": "TestPermissionsRequest"
152300	//   },
152301	//   "response": {
152302	//     "$ref": "TestPermissionsResponse"
152303	//   },
152304	//   "scopes": [
152305	//     "https://www.googleapis.com/auth/cloud-platform",
152306	//     "https://www.googleapis.com/auth/compute",
152307	//     "https://www.googleapis.com/auth/compute.readonly"
152308	//   ]
152309	// }
152310
152311}
152312
152313// method id "compute.targetSslProxies.delete":
152314
152315type TargetSslProxiesDeleteCall struct {
152316	s              *Service
152317	project        string
152318	targetSslProxy string
152319	urlParams_     gensupport.URLParams
152320	ctx_           context.Context
152321	header_        http.Header
152322}
152323
152324// Delete: Deletes the specified TargetSslProxy resource.
152325func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
152326	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152327	c.project = project
152328	c.targetSslProxy = targetSslProxy
152329	return c
152330}
152331
152332// RequestId sets the optional parameter "requestId": An optional
152333// request ID to identify requests. Specify a unique request ID so that
152334// if you must retry your request, the server will know to ignore the
152335// request if it has already been completed.
152336//
152337// For example, consider a situation where you make an initial request
152338// and the request times out. If you make the request again with the
152339// same request ID, the server can check if original operation with the
152340// same request ID was received, and if so, will ignore the second
152341// request. This prevents clients from accidentally creating duplicate
152342// commitments.
152343//
152344// The request ID must be a valid UUID with the exception that zero UUID
152345// is not supported (00000000-0000-0000-0000-000000000000).
152346func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
152347	c.urlParams_.Set("requestId", requestId)
152348	return c
152349}
152350
152351// Fields allows partial responses to be retrieved. See
152352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152353// for more information.
152354func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
152355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152356	return c
152357}
152358
152359// Context sets the context to be used in this call's Do method. Any
152360// pending HTTP request will be aborted if the provided context is
152361// canceled.
152362func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
152363	c.ctx_ = ctx
152364	return c
152365}
152366
152367// Header returns an http.Header that can be modified by the caller to
152368// add HTTP headers to the request.
152369func (c *TargetSslProxiesDeleteCall) Header() http.Header {
152370	if c.header_ == nil {
152371		c.header_ = make(http.Header)
152372	}
152373	return c.header_
152374}
152375
152376func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
152377	reqHeaders := make(http.Header)
152378	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
152379	for k, v := range c.header_ {
152380		reqHeaders[k] = v
152381	}
152382	reqHeaders.Set("User-Agent", c.s.userAgent())
152383	var body io.Reader = nil
152384	c.urlParams_.Set("alt", alt)
152385	c.urlParams_.Set("prettyPrint", "false")
152386	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
152387	urls += "?" + c.urlParams_.Encode()
152388	req, err := http.NewRequest("DELETE", urls, body)
152389	if err != nil {
152390		return nil, err
152391	}
152392	req.Header = reqHeaders
152393	googleapi.Expand(req.URL, map[string]string{
152394		"project":        c.project,
152395		"targetSslProxy": c.targetSslProxy,
152396	})
152397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152398}
152399
152400// Do executes the "compute.targetSslProxies.delete" call.
152401// Exactly one of *Operation or error will be non-nil. Any non-2xx
152402// status code is an error. Response headers are in either
152403// *Operation.ServerResponse.Header or (if a response was returned at
152404// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152405// to check whether the returned error was because
152406// http.StatusNotModified was returned.
152407func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152408	gensupport.SetOptions(c.urlParams_, opts...)
152409	res, err := c.doRequest("json")
152410	if res != nil && res.StatusCode == http.StatusNotModified {
152411		if res.Body != nil {
152412			res.Body.Close()
152413		}
152414		return nil, &googleapi.Error{
152415			Code:   res.StatusCode,
152416			Header: res.Header,
152417		}
152418	}
152419	if err != nil {
152420		return nil, err
152421	}
152422	defer googleapi.CloseBody(res)
152423	if err := googleapi.CheckResponse(res); err != nil {
152424		return nil, err
152425	}
152426	ret := &Operation{
152427		ServerResponse: googleapi.ServerResponse{
152428			Header:         res.Header,
152429			HTTPStatusCode: res.StatusCode,
152430		},
152431	}
152432	target := &ret
152433	if err := gensupport.DecodeResponse(target, res); err != nil {
152434		return nil, err
152435	}
152436	return ret, nil
152437	// {
152438	//   "description": "Deletes the specified TargetSslProxy resource.",
152439	//   "httpMethod": "DELETE",
152440	//   "id": "compute.targetSslProxies.delete",
152441	//   "parameterOrder": [
152442	//     "project",
152443	//     "targetSslProxy"
152444	//   ],
152445	//   "parameters": {
152446	//     "project": {
152447	//       "description": "Project ID for this request.",
152448	//       "location": "path",
152449	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152450	//       "required": true,
152451	//       "type": "string"
152452	//     },
152453	//     "requestId": {
152454	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152455	//       "location": "query",
152456	//       "type": "string"
152457	//     },
152458	//     "targetSslProxy": {
152459	//       "description": "Name of the TargetSslProxy resource to delete.",
152460	//       "location": "path",
152461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152462	//       "required": true,
152463	//       "type": "string"
152464	//     }
152465	//   },
152466	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
152467	//   "response": {
152468	//     "$ref": "Operation"
152469	//   },
152470	//   "scopes": [
152471	//     "https://www.googleapis.com/auth/cloud-platform",
152472	//     "https://www.googleapis.com/auth/compute"
152473	//   ]
152474	// }
152475
152476}
152477
152478// method id "compute.targetSslProxies.get":
152479
152480type TargetSslProxiesGetCall struct {
152481	s              *Service
152482	project        string
152483	targetSslProxy string
152484	urlParams_     gensupport.URLParams
152485	ifNoneMatch_   string
152486	ctx_           context.Context
152487	header_        http.Header
152488}
152489
152490// Get: Returns the specified TargetSslProxy resource. Gets a list of
152491// available target SSL proxies by making a list() request.
152492func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
152493	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152494	c.project = project
152495	c.targetSslProxy = targetSslProxy
152496	return c
152497}
152498
152499// Fields allows partial responses to be retrieved. See
152500// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152501// for more information.
152502func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
152503	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152504	return c
152505}
152506
152507// IfNoneMatch sets the optional parameter which makes the operation
152508// fail if the object's ETag matches the given value. This is useful for
152509// getting updates only after the object has changed since the last
152510// request. Use googleapi.IsNotModified to check whether the response
152511// error from Do is the result of In-None-Match.
152512func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
152513	c.ifNoneMatch_ = entityTag
152514	return c
152515}
152516
152517// Context sets the context to be used in this call's Do method. Any
152518// pending HTTP request will be aborted if the provided context is
152519// canceled.
152520func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
152521	c.ctx_ = ctx
152522	return c
152523}
152524
152525// Header returns an http.Header that can be modified by the caller to
152526// add HTTP headers to the request.
152527func (c *TargetSslProxiesGetCall) Header() http.Header {
152528	if c.header_ == nil {
152529		c.header_ = make(http.Header)
152530	}
152531	return c.header_
152532}
152533
152534func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
152535	reqHeaders := make(http.Header)
152536	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
152537	for k, v := range c.header_ {
152538		reqHeaders[k] = v
152539	}
152540	reqHeaders.Set("User-Agent", c.s.userAgent())
152541	if c.ifNoneMatch_ != "" {
152542		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152543	}
152544	var body io.Reader = nil
152545	c.urlParams_.Set("alt", alt)
152546	c.urlParams_.Set("prettyPrint", "false")
152547	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
152548	urls += "?" + c.urlParams_.Encode()
152549	req, err := http.NewRequest("GET", urls, body)
152550	if err != nil {
152551		return nil, err
152552	}
152553	req.Header = reqHeaders
152554	googleapi.Expand(req.URL, map[string]string{
152555		"project":        c.project,
152556		"targetSslProxy": c.targetSslProxy,
152557	})
152558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152559}
152560
152561// Do executes the "compute.targetSslProxies.get" call.
152562// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
152563// status code is an error. Response headers are in either
152564// *TargetSslProxy.ServerResponse.Header or (if a response was returned
152565// at all) in error.(*googleapi.Error).Header. Use
152566// googleapi.IsNotModified to check whether the returned error was
152567// because http.StatusNotModified was returned.
152568func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
152569	gensupport.SetOptions(c.urlParams_, opts...)
152570	res, err := c.doRequest("json")
152571	if res != nil && res.StatusCode == http.StatusNotModified {
152572		if res.Body != nil {
152573			res.Body.Close()
152574		}
152575		return nil, &googleapi.Error{
152576			Code:   res.StatusCode,
152577			Header: res.Header,
152578		}
152579	}
152580	if err != nil {
152581		return nil, err
152582	}
152583	defer googleapi.CloseBody(res)
152584	if err := googleapi.CheckResponse(res); err != nil {
152585		return nil, err
152586	}
152587	ret := &TargetSslProxy{
152588		ServerResponse: googleapi.ServerResponse{
152589			Header:         res.Header,
152590			HTTPStatusCode: res.StatusCode,
152591		},
152592	}
152593	target := &ret
152594	if err := gensupport.DecodeResponse(target, res); err != nil {
152595		return nil, err
152596	}
152597	return ret, nil
152598	// {
152599	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
152600	//   "httpMethod": "GET",
152601	//   "id": "compute.targetSslProxies.get",
152602	//   "parameterOrder": [
152603	//     "project",
152604	//     "targetSslProxy"
152605	//   ],
152606	//   "parameters": {
152607	//     "project": {
152608	//       "description": "Project ID for this request.",
152609	//       "location": "path",
152610	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152611	//       "required": true,
152612	//       "type": "string"
152613	//     },
152614	//     "targetSslProxy": {
152615	//       "description": "Name of the TargetSslProxy resource to return.",
152616	//       "location": "path",
152617	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152618	//       "required": true,
152619	//       "type": "string"
152620	//     }
152621	//   },
152622	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
152623	//   "response": {
152624	//     "$ref": "TargetSslProxy"
152625	//   },
152626	//   "scopes": [
152627	//     "https://www.googleapis.com/auth/cloud-platform",
152628	//     "https://www.googleapis.com/auth/compute",
152629	//     "https://www.googleapis.com/auth/compute.readonly"
152630	//   ]
152631	// }
152632
152633}
152634
152635// method id "compute.targetSslProxies.insert":
152636
152637type TargetSslProxiesInsertCall struct {
152638	s              *Service
152639	project        string
152640	targetsslproxy *TargetSslProxy
152641	urlParams_     gensupport.URLParams
152642	ctx_           context.Context
152643	header_        http.Header
152644}
152645
152646// Insert: Creates a TargetSslProxy resource in the specified project
152647// using the data included in the request.
152648func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
152649	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152650	c.project = project
152651	c.targetsslproxy = targetsslproxy
152652	return c
152653}
152654
152655// RequestId sets the optional parameter "requestId": An optional
152656// request ID to identify requests. Specify a unique request ID so that
152657// if you must retry your request, the server will know to ignore the
152658// request if it has already been completed.
152659//
152660// For example, consider a situation where you make an initial request
152661// and the request times out. If you make the request again with the
152662// same request ID, the server can check if original operation with the
152663// same request ID was received, and if so, will ignore the second
152664// request. This prevents clients from accidentally creating duplicate
152665// commitments.
152666//
152667// The request ID must be a valid UUID with the exception that zero UUID
152668// is not supported (00000000-0000-0000-0000-000000000000).
152669func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
152670	c.urlParams_.Set("requestId", requestId)
152671	return c
152672}
152673
152674// Fields allows partial responses to be retrieved. See
152675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152676// for more information.
152677func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
152678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152679	return c
152680}
152681
152682// Context sets the context to be used in this call's Do method. Any
152683// pending HTTP request will be aborted if the provided context is
152684// canceled.
152685func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
152686	c.ctx_ = ctx
152687	return c
152688}
152689
152690// Header returns an http.Header that can be modified by the caller to
152691// add HTTP headers to the request.
152692func (c *TargetSslProxiesInsertCall) Header() http.Header {
152693	if c.header_ == nil {
152694		c.header_ = make(http.Header)
152695	}
152696	return c.header_
152697}
152698
152699func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
152700	reqHeaders := make(http.Header)
152701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
152702	for k, v := range c.header_ {
152703		reqHeaders[k] = v
152704	}
152705	reqHeaders.Set("User-Agent", c.s.userAgent())
152706	var body io.Reader = nil
152707	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
152708	if err != nil {
152709		return nil, err
152710	}
152711	reqHeaders.Set("Content-Type", "application/json")
152712	c.urlParams_.Set("alt", alt)
152713	c.urlParams_.Set("prettyPrint", "false")
152714	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
152715	urls += "?" + c.urlParams_.Encode()
152716	req, err := http.NewRequest("POST", urls, body)
152717	if err != nil {
152718		return nil, err
152719	}
152720	req.Header = reqHeaders
152721	googleapi.Expand(req.URL, map[string]string{
152722		"project": c.project,
152723	})
152724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152725}
152726
152727// Do executes the "compute.targetSslProxies.insert" call.
152728// Exactly one of *Operation or error will be non-nil. Any non-2xx
152729// status code is an error. Response headers are in either
152730// *Operation.ServerResponse.Header or (if a response was returned at
152731// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152732// to check whether the returned error was because
152733// http.StatusNotModified was returned.
152734func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152735	gensupport.SetOptions(c.urlParams_, opts...)
152736	res, err := c.doRequest("json")
152737	if res != nil && res.StatusCode == http.StatusNotModified {
152738		if res.Body != nil {
152739			res.Body.Close()
152740		}
152741		return nil, &googleapi.Error{
152742			Code:   res.StatusCode,
152743			Header: res.Header,
152744		}
152745	}
152746	if err != nil {
152747		return nil, err
152748	}
152749	defer googleapi.CloseBody(res)
152750	if err := googleapi.CheckResponse(res); err != nil {
152751		return nil, err
152752	}
152753	ret := &Operation{
152754		ServerResponse: googleapi.ServerResponse{
152755			Header:         res.Header,
152756			HTTPStatusCode: res.StatusCode,
152757		},
152758	}
152759	target := &ret
152760	if err := gensupport.DecodeResponse(target, res); err != nil {
152761		return nil, err
152762	}
152763	return ret, nil
152764	// {
152765	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
152766	//   "httpMethod": "POST",
152767	//   "id": "compute.targetSslProxies.insert",
152768	//   "parameterOrder": [
152769	//     "project"
152770	//   ],
152771	//   "parameters": {
152772	//     "project": {
152773	//       "description": "Project ID for this request.",
152774	//       "location": "path",
152775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152776	//       "required": true,
152777	//       "type": "string"
152778	//     },
152779	//     "requestId": {
152780	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152781	//       "location": "query",
152782	//       "type": "string"
152783	//     }
152784	//   },
152785	//   "path": "{project}/global/targetSslProxies",
152786	//   "request": {
152787	//     "$ref": "TargetSslProxy"
152788	//   },
152789	//   "response": {
152790	//     "$ref": "Operation"
152791	//   },
152792	//   "scopes": [
152793	//     "https://www.googleapis.com/auth/cloud-platform",
152794	//     "https://www.googleapis.com/auth/compute"
152795	//   ]
152796	// }
152797
152798}
152799
152800// method id "compute.targetSslProxies.list":
152801
152802type TargetSslProxiesListCall struct {
152803	s            *Service
152804	project      string
152805	urlParams_   gensupport.URLParams
152806	ifNoneMatch_ string
152807	ctx_         context.Context
152808	header_      http.Header
152809}
152810
152811// List: Retrieves the list of TargetSslProxy resources available to the
152812// specified project.
152813func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
152814	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152815	c.project = project
152816	return c
152817}
152818
152819// Filter sets the optional parameter "filter": A filter expression that
152820// filters resources listed in the response. The expression must specify
152821// the field name, a comparison operator, and the value that you want to
152822// use for filtering. The value must be a string, a number, or a
152823// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152824// `<`.
152825//
152826// For example, if you are filtering Compute Engine instances, you can
152827// exclude instances named `example-instance` by specifying `name !=
152828// example-instance`.
152829//
152830// You can also filter nested fields. For example, you could specify
152831// `scheduling.automaticRestart = false` to include instances only if
152832// they are not scheduled for automatic restarts. You can use filtering
152833// on nested fields to filter based on resource labels.
152834//
152835// To filter on multiple expressions, provide each separate expression
152836// within parentheses. For example: ``` (scheduling.automaticRestart =
152837// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
152838// is an `AND` expression. However, you can include `AND` and `OR`
152839// expressions explicitly. For example: ``` (cpuPlatform = "Intel
152840// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
152841// (scheduling.automaticRestart = true) ```
152842func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
152843	c.urlParams_.Set("filter", filter)
152844	return c
152845}
152846
152847// MaxResults sets the optional parameter "maxResults": The maximum
152848// number of results per page that should be returned. If the number of
152849// available results is larger than `maxResults`, Compute Engine returns
152850// a `nextPageToken` that can be used to get the next page of results in
152851// subsequent list requests. Acceptable values are `0` to `500`,
152852// inclusive. (Default: `500`)
152853func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
152854	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152855	return c
152856}
152857
152858// OrderBy sets the optional parameter "orderBy": Sorts list results by
152859// a certain order. By default, results are returned in alphanumerical
152860// order based on the resource name.
152861//
152862// You can also sort results in descending order based on the creation
152863// timestamp using `orderBy="creationTimestamp desc". This sorts
152864// results based on the `creationTimestamp` field in reverse
152865// chronological order (newest result first). Use this to sort resources
152866// like operations so that the newest operation is returned
152867// first.
152868//
152869// Currently, only sorting by `name` or `creationTimestamp desc` is
152870// supported.
152871func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
152872	c.urlParams_.Set("orderBy", orderBy)
152873	return c
152874}
152875
152876// PageToken sets the optional parameter "pageToken": Specifies a page
152877// token to use. Set `pageToken` to the `nextPageToken` returned by a
152878// previous list request to get the next page of results.
152879func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
152880	c.urlParams_.Set("pageToken", pageToken)
152881	return c
152882}
152883
152884// Fields allows partial responses to be retrieved. See
152885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152886// for more information.
152887func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
152888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152889	return c
152890}
152891
152892// IfNoneMatch sets the optional parameter which makes the operation
152893// fail if the object's ETag matches the given value. This is useful for
152894// getting updates only after the object has changed since the last
152895// request. Use googleapi.IsNotModified to check whether the response
152896// error from Do is the result of In-None-Match.
152897func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
152898	c.ifNoneMatch_ = entityTag
152899	return c
152900}
152901
152902// Context sets the context to be used in this call's Do method. Any
152903// pending HTTP request will be aborted if the provided context is
152904// canceled.
152905func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
152906	c.ctx_ = ctx
152907	return c
152908}
152909
152910// Header returns an http.Header that can be modified by the caller to
152911// add HTTP headers to the request.
152912func (c *TargetSslProxiesListCall) Header() http.Header {
152913	if c.header_ == nil {
152914		c.header_ = make(http.Header)
152915	}
152916	return c.header_
152917}
152918
152919func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
152920	reqHeaders := make(http.Header)
152921	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
152922	for k, v := range c.header_ {
152923		reqHeaders[k] = v
152924	}
152925	reqHeaders.Set("User-Agent", c.s.userAgent())
152926	if c.ifNoneMatch_ != "" {
152927		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152928	}
152929	var body io.Reader = nil
152930	c.urlParams_.Set("alt", alt)
152931	c.urlParams_.Set("prettyPrint", "false")
152932	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
152933	urls += "?" + c.urlParams_.Encode()
152934	req, err := http.NewRequest("GET", urls, body)
152935	if err != nil {
152936		return nil, err
152937	}
152938	req.Header = reqHeaders
152939	googleapi.Expand(req.URL, map[string]string{
152940		"project": c.project,
152941	})
152942	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152943}
152944
152945// Do executes the "compute.targetSslProxies.list" call.
152946// Exactly one of *TargetSslProxyList or error will be non-nil. Any
152947// non-2xx status code is an error. Response headers are in either
152948// *TargetSslProxyList.ServerResponse.Header or (if a response was
152949// returned at all) in error.(*googleapi.Error).Header. Use
152950// googleapi.IsNotModified to check whether the returned error was
152951// because http.StatusNotModified was returned.
152952func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
152953	gensupport.SetOptions(c.urlParams_, opts...)
152954	res, err := c.doRequest("json")
152955	if res != nil && res.StatusCode == http.StatusNotModified {
152956		if res.Body != nil {
152957			res.Body.Close()
152958		}
152959		return nil, &googleapi.Error{
152960			Code:   res.StatusCode,
152961			Header: res.Header,
152962		}
152963	}
152964	if err != nil {
152965		return nil, err
152966	}
152967	defer googleapi.CloseBody(res)
152968	if err := googleapi.CheckResponse(res); err != nil {
152969		return nil, err
152970	}
152971	ret := &TargetSslProxyList{
152972		ServerResponse: googleapi.ServerResponse{
152973			Header:         res.Header,
152974			HTTPStatusCode: res.StatusCode,
152975		},
152976	}
152977	target := &ret
152978	if err := gensupport.DecodeResponse(target, res); err != nil {
152979		return nil, err
152980	}
152981	return ret, nil
152982	// {
152983	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
152984	//   "httpMethod": "GET",
152985	//   "id": "compute.targetSslProxies.list",
152986	//   "parameterOrder": [
152987	//     "project"
152988	//   ],
152989	//   "parameters": {
152990	//     "filter": {
152991	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
152992	//       "location": "query",
152993	//       "type": "string"
152994	//     },
152995	//     "maxResults": {
152996	//       "default": "500",
152997	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
152998	//       "format": "uint32",
152999	//       "location": "query",
153000	//       "minimum": "0",
153001	//       "type": "integer"
153002	//     },
153003	//     "orderBy": {
153004	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
153005	//       "location": "query",
153006	//       "type": "string"
153007	//     },
153008	//     "pageToken": {
153009	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153010	//       "location": "query",
153011	//       "type": "string"
153012	//     },
153013	//     "project": {
153014	//       "description": "Project ID for this request.",
153015	//       "location": "path",
153016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153017	//       "required": true,
153018	//       "type": "string"
153019	//     }
153020	//   },
153021	//   "path": "{project}/global/targetSslProxies",
153022	//   "response": {
153023	//     "$ref": "TargetSslProxyList"
153024	//   },
153025	//   "scopes": [
153026	//     "https://www.googleapis.com/auth/cloud-platform",
153027	//     "https://www.googleapis.com/auth/compute",
153028	//     "https://www.googleapis.com/auth/compute.readonly"
153029	//   ]
153030	// }
153031
153032}
153033
153034// Pages invokes f for each page of results.
153035// A non-nil error returned from f will halt the iteration.
153036// The provided context supersedes any context provided to the Context method.
153037func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
153038	c.ctx_ = ctx
153039	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153040	for {
153041		x, err := c.Do()
153042		if err != nil {
153043			return err
153044		}
153045		if err := f(x); err != nil {
153046			return err
153047		}
153048		if x.NextPageToken == "" {
153049			return nil
153050		}
153051		c.PageToken(x.NextPageToken)
153052	}
153053}
153054
153055// method id "compute.targetSslProxies.setBackendService":
153056
153057type TargetSslProxiesSetBackendServiceCall struct {
153058	s                                        *Service
153059	project                                  string
153060	targetSslProxy                           string
153061	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
153062	urlParams_                               gensupport.URLParams
153063	ctx_                                     context.Context
153064	header_                                  http.Header
153065}
153066
153067// SetBackendService: Changes the BackendService for TargetSslProxy.
153068func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
153069	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153070	c.project = project
153071	c.targetSslProxy = targetSslProxy
153072	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
153073	return c
153074}
153075
153076// RequestId sets the optional parameter "requestId": An optional
153077// request ID to identify requests. Specify a unique request ID so that
153078// if you must retry your request, the server will know to ignore the
153079// request if it has already been completed.
153080//
153081// For example, consider a situation where you make an initial request
153082// and the request times out. If you make the request again with the
153083// same request ID, the server can check if original operation with the
153084// same request ID was received, and if so, will ignore the second
153085// request. This prevents clients from accidentally creating duplicate
153086// commitments.
153087//
153088// The request ID must be a valid UUID with the exception that zero UUID
153089// is not supported (00000000-0000-0000-0000-000000000000).
153090func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
153091	c.urlParams_.Set("requestId", requestId)
153092	return c
153093}
153094
153095// Fields allows partial responses to be retrieved. See
153096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153097// for more information.
153098func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
153099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153100	return c
153101}
153102
153103// Context sets the context to be used in this call's Do method. Any
153104// pending HTTP request will be aborted if the provided context is
153105// canceled.
153106func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
153107	c.ctx_ = ctx
153108	return c
153109}
153110
153111// Header returns an http.Header that can be modified by the caller to
153112// add HTTP headers to the request.
153113func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
153114	if c.header_ == nil {
153115		c.header_ = make(http.Header)
153116	}
153117	return c.header_
153118}
153119
153120func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
153121	reqHeaders := make(http.Header)
153122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
153123	for k, v := range c.header_ {
153124		reqHeaders[k] = v
153125	}
153126	reqHeaders.Set("User-Agent", c.s.userAgent())
153127	var body io.Reader = nil
153128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
153129	if err != nil {
153130		return nil, err
153131	}
153132	reqHeaders.Set("Content-Type", "application/json")
153133	c.urlParams_.Set("alt", alt)
153134	c.urlParams_.Set("prettyPrint", "false")
153135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
153136	urls += "?" + c.urlParams_.Encode()
153137	req, err := http.NewRequest("POST", urls, body)
153138	if err != nil {
153139		return nil, err
153140	}
153141	req.Header = reqHeaders
153142	googleapi.Expand(req.URL, map[string]string{
153143		"project":        c.project,
153144		"targetSslProxy": c.targetSslProxy,
153145	})
153146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153147}
153148
153149// Do executes the "compute.targetSslProxies.setBackendService" call.
153150// Exactly one of *Operation or error will be non-nil. Any non-2xx
153151// status code is an error. Response headers are in either
153152// *Operation.ServerResponse.Header or (if a response was returned at
153153// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153154// to check whether the returned error was because
153155// http.StatusNotModified was returned.
153156func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153157	gensupport.SetOptions(c.urlParams_, opts...)
153158	res, err := c.doRequest("json")
153159	if res != nil && res.StatusCode == http.StatusNotModified {
153160		if res.Body != nil {
153161			res.Body.Close()
153162		}
153163		return nil, &googleapi.Error{
153164			Code:   res.StatusCode,
153165			Header: res.Header,
153166		}
153167	}
153168	if err != nil {
153169		return nil, err
153170	}
153171	defer googleapi.CloseBody(res)
153172	if err := googleapi.CheckResponse(res); err != nil {
153173		return nil, err
153174	}
153175	ret := &Operation{
153176		ServerResponse: googleapi.ServerResponse{
153177			Header:         res.Header,
153178			HTTPStatusCode: res.StatusCode,
153179		},
153180	}
153181	target := &ret
153182	if err := gensupport.DecodeResponse(target, res); err != nil {
153183		return nil, err
153184	}
153185	return ret, nil
153186	// {
153187	//   "description": "Changes the BackendService for TargetSslProxy.",
153188	//   "httpMethod": "POST",
153189	//   "id": "compute.targetSslProxies.setBackendService",
153190	//   "parameterOrder": [
153191	//     "project",
153192	//     "targetSslProxy"
153193	//   ],
153194	//   "parameters": {
153195	//     "project": {
153196	//       "description": "Project ID for this request.",
153197	//       "location": "path",
153198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153199	//       "required": true,
153200	//       "type": "string"
153201	//     },
153202	//     "requestId": {
153203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153204	//       "location": "query",
153205	//       "type": "string"
153206	//     },
153207	//     "targetSslProxy": {
153208	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
153209	//       "location": "path",
153210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153211	//       "required": true,
153212	//       "type": "string"
153213	//     }
153214	//   },
153215	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
153216	//   "request": {
153217	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
153218	//   },
153219	//   "response": {
153220	//     "$ref": "Operation"
153221	//   },
153222	//   "scopes": [
153223	//     "https://www.googleapis.com/auth/cloud-platform",
153224	//     "https://www.googleapis.com/auth/compute"
153225	//   ]
153226	// }
153227
153228}
153229
153230// method id "compute.targetSslProxies.setProxyHeader":
153231
153232type TargetSslProxiesSetProxyHeaderCall struct {
153233	s                                     *Service
153234	project                               string
153235	targetSslProxy                        string
153236	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
153237	urlParams_                            gensupport.URLParams
153238	ctx_                                  context.Context
153239	header_                               http.Header
153240}
153241
153242// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
153243func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
153244	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153245	c.project = project
153246	c.targetSslProxy = targetSslProxy
153247	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
153248	return c
153249}
153250
153251// RequestId sets the optional parameter "requestId": An optional
153252// request ID to identify requests. Specify a unique request ID so that
153253// if you must retry your request, the server will know to ignore the
153254// request if it has already been completed.
153255//
153256// For example, consider a situation where you make an initial request
153257// and the request times out. If you make the request again with the
153258// same request ID, the server can check if original operation with the
153259// same request ID was received, and if so, will ignore the second
153260// request. This prevents clients from accidentally creating duplicate
153261// commitments.
153262//
153263// The request ID must be a valid UUID with the exception that zero UUID
153264// is not supported (00000000-0000-0000-0000-000000000000).
153265func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
153266	c.urlParams_.Set("requestId", requestId)
153267	return c
153268}
153269
153270// Fields allows partial responses to be retrieved. See
153271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153272// for more information.
153273func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
153274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153275	return c
153276}
153277
153278// Context sets the context to be used in this call's Do method. Any
153279// pending HTTP request will be aborted if the provided context is
153280// canceled.
153281func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
153282	c.ctx_ = ctx
153283	return c
153284}
153285
153286// Header returns an http.Header that can be modified by the caller to
153287// add HTTP headers to the request.
153288func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
153289	if c.header_ == nil {
153290		c.header_ = make(http.Header)
153291	}
153292	return c.header_
153293}
153294
153295func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
153296	reqHeaders := make(http.Header)
153297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
153298	for k, v := range c.header_ {
153299		reqHeaders[k] = v
153300	}
153301	reqHeaders.Set("User-Agent", c.s.userAgent())
153302	var body io.Reader = nil
153303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
153304	if err != nil {
153305		return nil, err
153306	}
153307	reqHeaders.Set("Content-Type", "application/json")
153308	c.urlParams_.Set("alt", alt)
153309	c.urlParams_.Set("prettyPrint", "false")
153310	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
153311	urls += "?" + c.urlParams_.Encode()
153312	req, err := http.NewRequest("POST", urls, body)
153313	if err != nil {
153314		return nil, err
153315	}
153316	req.Header = reqHeaders
153317	googleapi.Expand(req.URL, map[string]string{
153318		"project":        c.project,
153319		"targetSslProxy": c.targetSslProxy,
153320	})
153321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153322}
153323
153324// Do executes the "compute.targetSslProxies.setProxyHeader" call.
153325// Exactly one of *Operation or error will be non-nil. Any non-2xx
153326// status code is an error. Response headers are in either
153327// *Operation.ServerResponse.Header or (if a response was returned at
153328// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153329// to check whether the returned error was because
153330// http.StatusNotModified was returned.
153331func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153332	gensupport.SetOptions(c.urlParams_, opts...)
153333	res, err := c.doRequest("json")
153334	if res != nil && res.StatusCode == http.StatusNotModified {
153335		if res.Body != nil {
153336			res.Body.Close()
153337		}
153338		return nil, &googleapi.Error{
153339			Code:   res.StatusCode,
153340			Header: res.Header,
153341		}
153342	}
153343	if err != nil {
153344		return nil, err
153345	}
153346	defer googleapi.CloseBody(res)
153347	if err := googleapi.CheckResponse(res); err != nil {
153348		return nil, err
153349	}
153350	ret := &Operation{
153351		ServerResponse: googleapi.ServerResponse{
153352			Header:         res.Header,
153353			HTTPStatusCode: res.StatusCode,
153354		},
153355	}
153356	target := &ret
153357	if err := gensupport.DecodeResponse(target, res); err != nil {
153358		return nil, err
153359	}
153360	return ret, nil
153361	// {
153362	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
153363	//   "httpMethod": "POST",
153364	//   "id": "compute.targetSslProxies.setProxyHeader",
153365	//   "parameterOrder": [
153366	//     "project",
153367	//     "targetSslProxy"
153368	//   ],
153369	//   "parameters": {
153370	//     "project": {
153371	//       "description": "Project ID for this request.",
153372	//       "location": "path",
153373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153374	//       "required": true,
153375	//       "type": "string"
153376	//     },
153377	//     "requestId": {
153378	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153379	//       "location": "query",
153380	//       "type": "string"
153381	//     },
153382	//     "targetSslProxy": {
153383	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
153384	//       "location": "path",
153385	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153386	//       "required": true,
153387	//       "type": "string"
153388	//     }
153389	//   },
153390	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
153391	//   "request": {
153392	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
153393	//   },
153394	//   "response": {
153395	//     "$ref": "Operation"
153396	//   },
153397	//   "scopes": [
153398	//     "https://www.googleapis.com/auth/cloud-platform",
153399	//     "https://www.googleapis.com/auth/compute"
153400	//   ]
153401	// }
153402
153403}
153404
153405// method id "compute.targetSslProxies.setSslCertificates":
153406
153407type TargetSslProxiesSetSslCertificatesCall struct {
153408	s                                         *Service
153409	project                                   string
153410	targetSslProxy                            string
153411	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
153412	urlParams_                                gensupport.URLParams
153413	ctx_                                      context.Context
153414	header_                                   http.Header
153415}
153416
153417// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
153418func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
153419	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153420	c.project = project
153421	c.targetSslProxy = targetSslProxy
153422	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
153423	return c
153424}
153425
153426// RequestId sets the optional parameter "requestId": An optional
153427// request ID to identify requests. Specify a unique request ID so that
153428// if you must retry your request, the server will know to ignore the
153429// request if it has already been completed.
153430//
153431// For example, consider a situation where you make an initial request
153432// and the request times out. If you make the request again with the
153433// same request ID, the server can check if original operation with the
153434// same request ID was received, and if so, will ignore the second
153435// request. This prevents clients from accidentally creating duplicate
153436// commitments.
153437//
153438// The request ID must be a valid UUID with the exception that zero UUID
153439// is not supported (00000000-0000-0000-0000-000000000000).
153440func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
153441	c.urlParams_.Set("requestId", requestId)
153442	return c
153443}
153444
153445// Fields allows partial responses to be retrieved. See
153446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153447// for more information.
153448func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
153449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153450	return c
153451}
153452
153453// Context sets the context to be used in this call's Do method. Any
153454// pending HTTP request will be aborted if the provided context is
153455// canceled.
153456func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
153457	c.ctx_ = ctx
153458	return c
153459}
153460
153461// Header returns an http.Header that can be modified by the caller to
153462// add HTTP headers to the request.
153463func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
153464	if c.header_ == nil {
153465		c.header_ = make(http.Header)
153466	}
153467	return c.header_
153468}
153469
153470func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
153471	reqHeaders := make(http.Header)
153472	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
153473	for k, v := range c.header_ {
153474		reqHeaders[k] = v
153475	}
153476	reqHeaders.Set("User-Agent", c.s.userAgent())
153477	var body io.Reader = nil
153478	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
153479	if err != nil {
153480		return nil, err
153481	}
153482	reqHeaders.Set("Content-Type", "application/json")
153483	c.urlParams_.Set("alt", alt)
153484	c.urlParams_.Set("prettyPrint", "false")
153485	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
153486	urls += "?" + c.urlParams_.Encode()
153487	req, err := http.NewRequest("POST", urls, body)
153488	if err != nil {
153489		return nil, err
153490	}
153491	req.Header = reqHeaders
153492	googleapi.Expand(req.URL, map[string]string{
153493		"project":        c.project,
153494		"targetSslProxy": c.targetSslProxy,
153495	})
153496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153497}
153498
153499// Do executes the "compute.targetSslProxies.setSslCertificates" call.
153500// Exactly one of *Operation or error will be non-nil. Any non-2xx
153501// status code is an error. Response headers are in either
153502// *Operation.ServerResponse.Header or (if a response was returned at
153503// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153504// to check whether the returned error was because
153505// http.StatusNotModified was returned.
153506func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153507	gensupport.SetOptions(c.urlParams_, opts...)
153508	res, err := c.doRequest("json")
153509	if res != nil && res.StatusCode == http.StatusNotModified {
153510		if res.Body != nil {
153511			res.Body.Close()
153512		}
153513		return nil, &googleapi.Error{
153514			Code:   res.StatusCode,
153515			Header: res.Header,
153516		}
153517	}
153518	if err != nil {
153519		return nil, err
153520	}
153521	defer googleapi.CloseBody(res)
153522	if err := googleapi.CheckResponse(res); err != nil {
153523		return nil, err
153524	}
153525	ret := &Operation{
153526		ServerResponse: googleapi.ServerResponse{
153527			Header:         res.Header,
153528			HTTPStatusCode: res.StatusCode,
153529		},
153530	}
153531	target := &ret
153532	if err := gensupport.DecodeResponse(target, res); err != nil {
153533		return nil, err
153534	}
153535	return ret, nil
153536	// {
153537	//   "description": "Changes SslCertificates for TargetSslProxy.",
153538	//   "httpMethod": "POST",
153539	//   "id": "compute.targetSslProxies.setSslCertificates",
153540	//   "parameterOrder": [
153541	//     "project",
153542	//     "targetSslProxy"
153543	//   ],
153544	//   "parameters": {
153545	//     "project": {
153546	//       "description": "Project ID for this request.",
153547	//       "location": "path",
153548	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153549	//       "required": true,
153550	//       "type": "string"
153551	//     },
153552	//     "requestId": {
153553	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153554	//       "location": "query",
153555	//       "type": "string"
153556	//     },
153557	//     "targetSslProxy": {
153558	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
153559	//       "location": "path",
153560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153561	//       "required": true,
153562	//       "type": "string"
153563	//     }
153564	//   },
153565	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
153566	//   "request": {
153567	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
153568	//   },
153569	//   "response": {
153570	//     "$ref": "Operation"
153571	//   },
153572	//   "scopes": [
153573	//     "https://www.googleapis.com/auth/cloud-platform",
153574	//     "https://www.googleapis.com/auth/compute"
153575	//   ]
153576	// }
153577
153578}
153579
153580// method id "compute.targetSslProxies.setSslPolicy":
153581
153582type TargetSslProxiesSetSslPolicyCall struct {
153583	s                  *Service
153584	project            string
153585	targetSslProxy     string
153586	sslpolicyreference *SslPolicyReference
153587	urlParams_         gensupport.URLParams
153588	ctx_               context.Context
153589	header_            http.Header
153590}
153591
153592// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
153593// specifies the server-side support for SSL features. This affects
153594// connections between clients and the SSL proxy load balancer. They do
153595// not affect the connection between the load balancer and the backends.
153596func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
153597	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153598	c.project = project
153599	c.targetSslProxy = targetSslProxy
153600	c.sslpolicyreference = sslpolicyreference
153601	return c
153602}
153603
153604// RequestId sets the optional parameter "requestId": An optional
153605// request ID to identify requests. Specify a unique request ID so that
153606// if you must retry your request, the server will know to ignore the
153607// request if it has already been completed.
153608//
153609// For example, consider a situation where you make an initial request
153610// and the request times out. If you make the request again with the
153611// same request ID, the server can check if original operation with the
153612// same request ID was received, and if so, will ignore the second
153613// request. This prevents clients from accidentally creating duplicate
153614// commitments.
153615//
153616// The request ID must be a valid UUID with the exception that zero UUID
153617// is not supported (00000000-0000-0000-0000-000000000000).
153618func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
153619	c.urlParams_.Set("requestId", requestId)
153620	return c
153621}
153622
153623// Fields allows partial responses to be retrieved. See
153624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153625// for more information.
153626func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
153627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153628	return c
153629}
153630
153631// Context sets the context to be used in this call's Do method. Any
153632// pending HTTP request will be aborted if the provided context is
153633// canceled.
153634func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
153635	c.ctx_ = ctx
153636	return c
153637}
153638
153639// Header returns an http.Header that can be modified by the caller to
153640// add HTTP headers to the request.
153641func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
153642	if c.header_ == nil {
153643		c.header_ = make(http.Header)
153644	}
153645	return c.header_
153646}
153647
153648func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
153649	reqHeaders := make(http.Header)
153650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
153651	for k, v := range c.header_ {
153652		reqHeaders[k] = v
153653	}
153654	reqHeaders.Set("User-Agent", c.s.userAgent())
153655	var body io.Reader = nil
153656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
153657	if err != nil {
153658		return nil, err
153659	}
153660	reqHeaders.Set("Content-Type", "application/json")
153661	c.urlParams_.Set("alt", alt)
153662	c.urlParams_.Set("prettyPrint", "false")
153663	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
153664	urls += "?" + c.urlParams_.Encode()
153665	req, err := http.NewRequest("POST", urls, body)
153666	if err != nil {
153667		return nil, err
153668	}
153669	req.Header = reqHeaders
153670	googleapi.Expand(req.URL, map[string]string{
153671		"project":        c.project,
153672		"targetSslProxy": c.targetSslProxy,
153673	})
153674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153675}
153676
153677// Do executes the "compute.targetSslProxies.setSslPolicy" call.
153678// Exactly one of *Operation or error will be non-nil. Any non-2xx
153679// status code is an error. Response headers are in either
153680// *Operation.ServerResponse.Header or (if a response was returned at
153681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153682// to check whether the returned error was because
153683// http.StatusNotModified was returned.
153684func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153685	gensupport.SetOptions(c.urlParams_, opts...)
153686	res, err := c.doRequest("json")
153687	if res != nil && res.StatusCode == http.StatusNotModified {
153688		if res.Body != nil {
153689			res.Body.Close()
153690		}
153691		return nil, &googleapi.Error{
153692			Code:   res.StatusCode,
153693			Header: res.Header,
153694		}
153695	}
153696	if err != nil {
153697		return nil, err
153698	}
153699	defer googleapi.CloseBody(res)
153700	if err := googleapi.CheckResponse(res); err != nil {
153701		return nil, err
153702	}
153703	ret := &Operation{
153704		ServerResponse: googleapi.ServerResponse{
153705			Header:         res.Header,
153706			HTTPStatusCode: res.StatusCode,
153707		},
153708	}
153709	target := &ret
153710	if err := gensupport.DecodeResponse(target, res); err != nil {
153711		return nil, err
153712	}
153713	return ret, nil
153714	// {
153715	//   "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.",
153716	//   "httpMethod": "POST",
153717	//   "id": "compute.targetSslProxies.setSslPolicy",
153718	//   "parameterOrder": [
153719	//     "project",
153720	//     "targetSslProxy"
153721	//   ],
153722	//   "parameters": {
153723	//     "project": {
153724	//       "description": "Project ID for this request.",
153725	//       "location": "path",
153726	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153727	//       "required": true,
153728	//       "type": "string"
153729	//     },
153730	//     "requestId": {
153731	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153732	//       "location": "query",
153733	//       "type": "string"
153734	//     },
153735	//     "targetSslProxy": {
153736	//       "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.",
153737	//       "location": "path",
153738	//       "required": true,
153739	//       "type": "string"
153740	//     }
153741	//   },
153742	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
153743	//   "request": {
153744	//     "$ref": "SslPolicyReference"
153745	//   },
153746	//   "response": {
153747	//     "$ref": "Operation"
153748	//   },
153749	//   "scopes": [
153750	//     "https://www.googleapis.com/auth/cloud-platform",
153751	//     "https://www.googleapis.com/auth/compute"
153752	//   ]
153753	// }
153754
153755}
153756
153757// method id "compute.targetSslProxies.testIamPermissions":
153758
153759type TargetSslProxiesTestIamPermissionsCall struct {
153760	s                      *Service
153761	project                string
153762	resource               string
153763	testpermissionsrequest *TestPermissionsRequest
153764	urlParams_             gensupport.URLParams
153765	ctx_                   context.Context
153766	header_                http.Header
153767}
153768
153769// TestIamPermissions: Returns permissions that a caller has on the
153770// specified resource.
153771func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall {
153772	c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153773	c.project = project
153774	c.resource = resource
153775	c.testpermissionsrequest = testpermissionsrequest
153776	return c
153777}
153778
153779// Fields allows partial responses to be retrieved. See
153780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153781// for more information.
153782func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall {
153783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153784	return c
153785}
153786
153787// Context sets the context to be used in this call's Do method. Any
153788// pending HTTP request will be aborted if the provided context is
153789// canceled.
153790func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall {
153791	c.ctx_ = ctx
153792	return c
153793}
153794
153795// Header returns an http.Header that can be modified by the caller to
153796// add HTTP headers to the request.
153797func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header {
153798	if c.header_ == nil {
153799		c.header_ = make(http.Header)
153800	}
153801	return c.header_
153802}
153803
153804func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
153805	reqHeaders := make(http.Header)
153806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
153807	for k, v := range c.header_ {
153808		reqHeaders[k] = v
153809	}
153810	reqHeaders.Set("User-Agent", c.s.userAgent())
153811	var body io.Reader = nil
153812	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
153813	if err != nil {
153814		return nil, err
153815	}
153816	reqHeaders.Set("Content-Type", "application/json")
153817	c.urlParams_.Set("alt", alt)
153818	c.urlParams_.Set("prettyPrint", "false")
153819	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{resource}/testIamPermissions")
153820	urls += "?" + c.urlParams_.Encode()
153821	req, err := http.NewRequest("POST", urls, body)
153822	if err != nil {
153823		return nil, err
153824	}
153825	req.Header = reqHeaders
153826	googleapi.Expand(req.URL, map[string]string{
153827		"project":  c.project,
153828		"resource": c.resource,
153829	})
153830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153831}
153832
153833// Do executes the "compute.targetSslProxies.testIamPermissions" call.
153834// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
153835// non-2xx status code is an error. Response headers are in either
153836// *TestPermissionsResponse.ServerResponse.Header or (if a response was
153837// returned at all) in error.(*googleapi.Error).Header. Use
153838// googleapi.IsNotModified to check whether the returned error was
153839// because http.StatusNotModified was returned.
153840func (c *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
153841	gensupport.SetOptions(c.urlParams_, opts...)
153842	res, err := c.doRequest("json")
153843	if res != nil && res.StatusCode == http.StatusNotModified {
153844		if res.Body != nil {
153845			res.Body.Close()
153846		}
153847		return nil, &googleapi.Error{
153848			Code:   res.StatusCode,
153849			Header: res.Header,
153850		}
153851	}
153852	if err != nil {
153853		return nil, err
153854	}
153855	defer googleapi.CloseBody(res)
153856	if err := googleapi.CheckResponse(res); err != nil {
153857		return nil, err
153858	}
153859	ret := &TestPermissionsResponse{
153860		ServerResponse: googleapi.ServerResponse{
153861			Header:         res.Header,
153862			HTTPStatusCode: res.StatusCode,
153863		},
153864	}
153865	target := &ret
153866	if err := gensupport.DecodeResponse(target, res); err != nil {
153867		return nil, err
153868	}
153869	return ret, nil
153870	// {
153871	//   "description": "Returns permissions that a caller has on the specified resource.",
153872	//   "httpMethod": "POST",
153873	//   "id": "compute.targetSslProxies.testIamPermissions",
153874	//   "parameterOrder": [
153875	//     "project",
153876	//     "resource"
153877	//   ],
153878	//   "parameters": {
153879	//     "project": {
153880	//       "description": "Project ID for this request.",
153881	//       "location": "path",
153882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153883	//       "required": true,
153884	//       "type": "string"
153885	//     },
153886	//     "resource": {
153887	//       "description": "Name or id of the resource for this request.",
153888	//       "location": "path",
153889	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153890	//       "required": true,
153891	//       "type": "string"
153892	//     }
153893	//   },
153894	//   "path": "{project}/global/targetSslProxies/{resource}/testIamPermissions",
153895	//   "request": {
153896	//     "$ref": "TestPermissionsRequest"
153897	//   },
153898	//   "response": {
153899	//     "$ref": "TestPermissionsResponse"
153900	//   },
153901	//   "scopes": [
153902	//     "https://www.googleapis.com/auth/cloud-platform",
153903	//     "https://www.googleapis.com/auth/compute",
153904	//     "https://www.googleapis.com/auth/compute.readonly"
153905	//   ]
153906	// }
153907
153908}
153909
153910// method id "compute.targetTcpProxies.delete":
153911
153912type TargetTcpProxiesDeleteCall struct {
153913	s              *Service
153914	project        string
153915	targetTcpProxy string
153916	urlParams_     gensupport.URLParams
153917	ctx_           context.Context
153918	header_        http.Header
153919}
153920
153921// Delete: Deletes the specified TargetTcpProxy resource.
153922func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
153923	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153924	c.project = project
153925	c.targetTcpProxy = targetTcpProxy
153926	return c
153927}
153928
153929// RequestId sets the optional parameter "requestId": An optional
153930// request ID to identify requests. Specify a unique request ID so that
153931// if you must retry your request, the server will know to ignore the
153932// request if it has already been completed.
153933//
153934// For example, consider a situation where you make an initial request
153935// and the request times out. If you make the request again with the
153936// same request ID, the server can check if original operation with the
153937// same request ID was received, and if so, will ignore the second
153938// request. This prevents clients from accidentally creating duplicate
153939// commitments.
153940//
153941// The request ID must be a valid UUID with the exception that zero UUID
153942// is not supported (00000000-0000-0000-0000-000000000000).
153943func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
153944	c.urlParams_.Set("requestId", requestId)
153945	return c
153946}
153947
153948// Fields allows partial responses to be retrieved. See
153949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153950// for more information.
153951func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
153952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153953	return c
153954}
153955
153956// Context sets the context to be used in this call's Do method. Any
153957// pending HTTP request will be aborted if the provided context is
153958// canceled.
153959func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
153960	c.ctx_ = ctx
153961	return c
153962}
153963
153964// Header returns an http.Header that can be modified by the caller to
153965// add HTTP headers to the request.
153966func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
153967	if c.header_ == nil {
153968		c.header_ = make(http.Header)
153969	}
153970	return c.header_
153971}
153972
153973func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
153974	reqHeaders := make(http.Header)
153975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
153976	for k, v := range c.header_ {
153977		reqHeaders[k] = v
153978	}
153979	reqHeaders.Set("User-Agent", c.s.userAgent())
153980	var body io.Reader = nil
153981	c.urlParams_.Set("alt", alt)
153982	c.urlParams_.Set("prettyPrint", "false")
153983	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
153984	urls += "?" + c.urlParams_.Encode()
153985	req, err := http.NewRequest("DELETE", urls, body)
153986	if err != nil {
153987		return nil, err
153988	}
153989	req.Header = reqHeaders
153990	googleapi.Expand(req.URL, map[string]string{
153991		"project":        c.project,
153992		"targetTcpProxy": c.targetTcpProxy,
153993	})
153994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153995}
153996
153997// Do executes the "compute.targetTcpProxies.delete" call.
153998// Exactly one of *Operation or error will be non-nil. Any non-2xx
153999// status code is an error. Response headers are in either
154000// *Operation.ServerResponse.Header or (if a response was returned at
154001// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154002// to check whether the returned error was because
154003// http.StatusNotModified was returned.
154004func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154005	gensupport.SetOptions(c.urlParams_, opts...)
154006	res, err := c.doRequest("json")
154007	if res != nil && res.StatusCode == http.StatusNotModified {
154008		if res.Body != nil {
154009			res.Body.Close()
154010		}
154011		return nil, &googleapi.Error{
154012			Code:   res.StatusCode,
154013			Header: res.Header,
154014		}
154015	}
154016	if err != nil {
154017		return nil, err
154018	}
154019	defer googleapi.CloseBody(res)
154020	if err := googleapi.CheckResponse(res); err != nil {
154021		return nil, err
154022	}
154023	ret := &Operation{
154024		ServerResponse: googleapi.ServerResponse{
154025			Header:         res.Header,
154026			HTTPStatusCode: res.StatusCode,
154027		},
154028	}
154029	target := &ret
154030	if err := gensupport.DecodeResponse(target, res); err != nil {
154031		return nil, err
154032	}
154033	return ret, nil
154034	// {
154035	//   "description": "Deletes the specified TargetTcpProxy resource.",
154036	//   "httpMethod": "DELETE",
154037	//   "id": "compute.targetTcpProxies.delete",
154038	//   "parameterOrder": [
154039	//     "project",
154040	//     "targetTcpProxy"
154041	//   ],
154042	//   "parameters": {
154043	//     "project": {
154044	//       "description": "Project ID for this request.",
154045	//       "location": "path",
154046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154047	//       "required": true,
154048	//       "type": "string"
154049	//     },
154050	//     "requestId": {
154051	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154052	//       "location": "query",
154053	//       "type": "string"
154054	//     },
154055	//     "targetTcpProxy": {
154056	//       "description": "Name of the TargetTcpProxy resource to delete.",
154057	//       "location": "path",
154058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154059	//       "required": true,
154060	//       "type": "string"
154061	//     }
154062	//   },
154063	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
154064	//   "response": {
154065	//     "$ref": "Operation"
154066	//   },
154067	//   "scopes": [
154068	//     "https://www.googleapis.com/auth/cloud-platform",
154069	//     "https://www.googleapis.com/auth/compute"
154070	//   ]
154071	// }
154072
154073}
154074
154075// method id "compute.targetTcpProxies.get":
154076
154077type TargetTcpProxiesGetCall struct {
154078	s              *Service
154079	project        string
154080	targetTcpProxy string
154081	urlParams_     gensupport.URLParams
154082	ifNoneMatch_   string
154083	ctx_           context.Context
154084	header_        http.Header
154085}
154086
154087// Get: Returns the specified TargetTcpProxy resource. Gets a list of
154088// available target TCP proxies by making a list() request.
154089func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
154090	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154091	c.project = project
154092	c.targetTcpProxy = targetTcpProxy
154093	return c
154094}
154095
154096// Fields allows partial responses to be retrieved. See
154097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154098// for more information.
154099func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
154100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154101	return c
154102}
154103
154104// IfNoneMatch sets the optional parameter which makes the operation
154105// fail if the object's ETag matches the given value. This is useful for
154106// getting updates only after the object has changed since the last
154107// request. Use googleapi.IsNotModified to check whether the response
154108// error from Do is the result of In-None-Match.
154109func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
154110	c.ifNoneMatch_ = entityTag
154111	return c
154112}
154113
154114// Context sets the context to be used in this call's Do method. Any
154115// pending HTTP request will be aborted if the provided context is
154116// canceled.
154117func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
154118	c.ctx_ = ctx
154119	return c
154120}
154121
154122// Header returns an http.Header that can be modified by the caller to
154123// add HTTP headers to the request.
154124func (c *TargetTcpProxiesGetCall) Header() http.Header {
154125	if c.header_ == nil {
154126		c.header_ = make(http.Header)
154127	}
154128	return c.header_
154129}
154130
154131func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
154132	reqHeaders := make(http.Header)
154133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
154134	for k, v := range c.header_ {
154135		reqHeaders[k] = v
154136	}
154137	reqHeaders.Set("User-Agent", c.s.userAgent())
154138	if c.ifNoneMatch_ != "" {
154139		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154140	}
154141	var body io.Reader = nil
154142	c.urlParams_.Set("alt", alt)
154143	c.urlParams_.Set("prettyPrint", "false")
154144	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
154145	urls += "?" + c.urlParams_.Encode()
154146	req, err := http.NewRequest("GET", urls, body)
154147	if err != nil {
154148		return nil, err
154149	}
154150	req.Header = reqHeaders
154151	googleapi.Expand(req.URL, map[string]string{
154152		"project":        c.project,
154153		"targetTcpProxy": c.targetTcpProxy,
154154	})
154155	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154156}
154157
154158// Do executes the "compute.targetTcpProxies.get" call.
154159// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
154160// status code is an error. Response headers are in either
154161// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
154162// at all) in error.(*googleapi.Error).Header. Use
154163// googleapi.IsNotModified to check whether the returned error was
154164// because http.StatusNotModified was returned.
154165func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
154166	gensupport.SetOptions(c.urlParams_, opts...)
154167	res, err := c.doRequest("json")
154168	if res != nil && res.StatusCode == http.StatusNotModified {
154169		if res.Body != nil {
154170			res.Body.Close()
154171		}
154172		return nil, &googleapi.Error{
154173			Code:   res.StatusCode,
154174			Header: res.Header,
154175		}
154176	}
154177	if err != nil {
154178		return nil, err
154179	}
154180	defer googleapi.CloseBody(res)
154181	if err := googleapi.CheckResponse(res); err != nil {
154182		return nil, err
154183	}
154184	ret := &TargetTcpProxy{
154185		ServerResponse: googleapi.ServerResponse{
154186			Header:         res.Header,
154187			HTTPStatusCode: res.StatusCode,
154188		},
154189	}
154190	target := &ret
154191	if err := gensupport.DecodeResponse(target, res); err != nil {
154192		return nil, err
154193	}
154194	return ret, nil
154195	// {
154196	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
154197	//   "httpMethod": "GET",
154198	//   "id": "compute.targetTcpProxies.get",
154199	//   "parameterOrder": [
154200	//     "project",
154201	//     "targetTcpProxy"
154202	//   ],
154203	//   "parameters": {
154204	//     "project": {
154205	//       "description": "Project ID for this request.",
154206	//       "location": "path",
154207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154208	//       "required": true,
154209	//       "type": "string"
154210	//     },
154211	//     "targetTcpProxy": {
154212	//       "description": "Name of the TargetTcpProxy resource to return.",
154213	//       "location": "path",
154214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154215	//       "required": true,
154216	//       "type": "string"
154217	//     }
154218	//   },
154219	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
154220	//   "response": {
154221	//     "$ref": "TargetTcpProxy"
154222	//   },
154223	//   "scopes": [
154224	//     "https://www.googleapis.com/auth/cloud-platform",
154225	//     "https://www.googleapis.com/auth/compute",
154226	//     "https://www.googleapis.com/auth/compute.readonly"
154227	//   ]
154228	// }
154229
154230}
154231
154232// method id "compute.targetTcpProxies.insert":
154233
154234type TargetTcpProxiesInsertCall struct {
154235	s              *Service
154236	project        string
154237	targettcpproxy *TargetTcpProxy
154238	urlParams_     gensupport.URLParams
154239	ctx_           context.Context
154240	header_        http.Header
154241}
154242
154243// Insert: Creates a TargetTcpProxy resource in the specified project
154244// using the data included in the request.
154245func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
154246	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154247	c.project = project
154248	c.targettcpproxy = targettcpproxy
154249	return c
154250}
154251
154252// RequestId sets the optional parameter "requestId": An optional
154253// request ID to identify requests. Specify a unique request ID so that
154254// if you must retry your request, the server will know to ignore the
154255// request if it has already been completed.
154256//
154257// For example, consider a situation where you make an initial request
154258// and the request times out. If you make the request again with the
154259// same request ID, the server can check if original operation with the
154260// same request ID was received, and if so, will ignore the second
154261// request. This prevents clients from accidentally creating duplicate
154262// commitments.
154263//
154264// The request ID must be a valid UUID with the exception that zero UUID
154265// is not supported (00000000-0000-0000-0000-000000000000).
154266func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
154267	c.urlParams_.Set("requestId", requestId)
154268	return c
154269}
154270
154271// Fields allows partial responses to be retrieved. See
154272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154273// for more information.
154274func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
154275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154276	return c
154277}
154278
154279// Context sets the context to be used in this call's Do method. Any
154280// pending HTTP request will be aborted if the provided context is
154281// canceled.
154282func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
154283	c.ctx_ = ctx
154284	return c
154285}
154286
154287// Header returns an http.Header that can be modified by the caller to
154288// add HTTP headers to the request.
154289func (c *TargetTcpProxiesInsertCall) Header() http.Header {
154290	if c.header_ == nil {
154291		c.header_ = make(http.Header)
154292	}
154293	return c.header_
154294}
154295
154296func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
154297	reqHeaders := make(http.Header)
154298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
154299	for k, v := range c.header_ {
154300		reqHeaders[k] = v
154301	}
154302	reqHeaders.Set("User-Agent", c.s.userAgent())
154303	var body io.Reader = nil
154304	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
154305	if err != nil {
154306		return nil, err
154307	}
154308	reqHeaders.Set("Content-Type", "application/json")
154309	c.urlParams_.Set("alt", alt)
154310	c.urlParams_.Set("prettyPrint", "false")
154311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
154312	urls += "?" + c.urlParams_.Encode()
154313	req, err := http.NewRequest("POST", urls, body)
154314	if err != nil {
154315		return nil, err
154316	}
154317	req.Header = reqHeaders
154318	googleapi.Expand(req.URL, map[string]string{
154319		"project": c.project,
154320	})
154321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154322}
154323
154324// Do executes the "compute.targetTcpProxies.insert" call.
154325// Exactly one of *Operation or error will be non-nil. Any non-2xx
154326// status code is an error. Response headers are in either
154327// *Operation.ServerResponse.Header or (if a response was returned at
154328// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154329// to check whether the returned error was because
154330// http.StatusNotModified was returned.
154331func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154332	gensupport.SetOptions(c.urlParams_, opts...)
154333	res, err := c.doRequest("json")
154334	if res != nil && res.StatusCode == http.StatusNotModified {
154335		if res.Body != nil {
154336			res.Body.Close()
154337		}
154338		return nil, &googleapi.Error{
154339			Code:   res.StatusCode,
154340			Header: res.Header,
154341		}
154342	}
154343	if err != nil {
154344		return nil, err
154345	}
154346	defer googleapi.CloseBody(res)
154347	if err := googleapi.CheckResponse(res); err != nil {
154348		return nil, err
154349	}
154350	ret := &Operation{
154351		ServerResponse: googleapi.ServerResponse{
154352			Header:         res.Header,
154353			HTTPStatusCode: res.StatusCode,
154354		},
154355	}
154356	target := &ret
154357	if err := gensupport.DecodeResponse(target, res); err != nil {
154358		return nil, err
154359	}
154360	return ret, nil
154361	// {
154362	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
154363	//   "httpMethod": "POST",
154364	//   "id": "compute.targetTcpProxies.insert",
154365	//   "parameterOrder": [
154366	//     "project"
154367	//   ],
154368	//   "parameters": {
154369	//     "project": {
154370	//       "description": "Project ID for this request.",
154371	//       "location": "path",
154372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154373	//       "required": true,
154374	//       "type": "string"
154375	//     },
154376	//     "requestId": {
154377	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154378	//       "location": "query",
154379	//       "type": "string"
154380	//     }
154381	//   },
154382	//   "path": "{project}/global/targetTcpProxies",
154383	//   "request": {
154384	//     "$ref": "TargetTcpProxy"
154385	//   },
154386	//   "response": {
154387	//     "$ref": "Operation"
154388	//   },
154389	//   "scopes": [
154390	//     "https://www.googleapis.com/auth/cloud-platform",
154391	//     "https://www.googleapis.com/auth/compute"
154392	//   ]
154393	// }
154394
154395}
154396
154397// method id "compute.targetTcpProxies.list":
154398
154399type TargetTcpProxiesListCall struct {
154400	s            *Service
154401	project      string
154402	urlParams_   gensupport.URLParams
154403	ifNoneMatch_ string
154404	ctx_         context.Context
154405	header_      http.Header
154406}
154407
154408// List: Retrieves the list of TargetTcpProxy resources available to the
154409// specified project.
154410func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
154411	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154412	c.project = project
154413	return c
154414}
154415
154416// Filter sets the optional parameter "filter": A filter expression that
154417// filters resources listed in the response. The expression must specify
154418// the field name, a comparison operator, and the value that you want to
154419// use for filtering. The value must be a string, a number, or a
154420// boolean. The comparison operator must be either `=`, `!=`, `>`, or
154421// `<`.
154422//
154423// For example, if you are filtering Compute Engine instances, you can
154424// exclude instances named `example-instance` by specifying `name !=
154425// example-instance`.
154426//
154427// You can also filter nested fields. For example, you could specify
154428// `scheduling.automaticRestart = false` to include instances only if
154429// they are not scheduled for automatic restarts. You can use filtering
154430// on nested fields to filter based on resource labels.
154431//
154432// To filter on multiple expressions, provide each separate expression
154433// within parentheses. For example: ``` (scheduling.automaticRestart =
154434// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
154435// is an `AND` expression. However, you can include `AND` and `OR`
154436// expressions explicitly. For example: ``` (cpuPlatform = "Intel
154437// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
154438// (scheduling.automaticRestart = true) ```
154439func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
154440	c.urlParams_.Set("filter", filter)
154441	return c
154442}
154443
154444// MaxResults sets the optional parameter "maxResults": The maximum
154445// number of results per page that should be returned. If the number of
154446// available results is larger than `maxResults`, Compute Engine returns
154447// a `nextPageToken` that can be used to get the next page of results in
154448// subsequent list requests. Acceptable values are `0` to `500`,
154449// inclusive. (Default: `500`)
154450func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
154451	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154452	return c
154453}
154454
154455// OrderBy sets the optional parameter "orderBy": Sorts list results by
154456// a certain order. By default, results are returned in alphanumerical
154457// order based on the resource name.
154458//
154459// You can also sort results in descending order based on the creation
154460// timestamp using `orderBy="creationTimestamp desc". This sorts
154461// results based on the `creationTimestamp` field in reverse
154462// chronological order (newest result first). Use this to sort resources
154463// like operations so that the newest operation is returned
154464// first.
154465//
154466// Currently, only sorting by `name` or `creationTimestamp desc` is
154467// supported.
154468func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
154469	c.urlParams_.Set("orderBy", orderBy)
154470	return c
154471}
154472
154473// PageToken sets the optional parameter "pageToken": Specifies a page
154474// token to use. Set `pageToken` to the `nextPageToken` returned by a
154475// previous list request to get the next page of results.
154476func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
154477	c.urlParams_.Set("pageToken", pageToken)
154478	return c
154479}
154480
154481// Fields allows partial responses to be retrieved. See
154482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154483// for more information.
154484func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
154485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154486	return c
154487}
154488
154489// IfNoneMatch sets the optional parameter which makes the operation
154490// fail if the object's ETag matches the given value. This is useful for
154491// getting updates only after the object has changed since the last
154492// request. Use googleapi.IsNotModified to check whether the response
154493// error from Do is the result of In-None-Match.
154494func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
154495	c.ifNoneMatch_ = entityTag
154496	return c
154497}
154498
154499// Context sets the context to be used in this call's Do method. Any
154500// pending HTTP request will be aborted if the provided context is
154501// canceled.
154502func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
154503	c.ctx_ = ctx
154504	return c
154505}
154506
154507// Header returns an http.Header that can be modified by the caller to
154508// add HTTP headers to the request.
154509func (c *TargetTcpProxiesListCall) Header() http.Header {
154510	if c.header_ == nil {
154511		c.header_ = make(http.Header)
154512	}
154513	return c.header_
154514}
154515
154516func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
154517	reqHeaders := make(http.Header)
154518	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
154519	for k, v := range c.header_ {
154520		reqHeaders[k] = v
154521	}
154522	reqHeaders.Set("User-Agent", c.s.userAgent())
154523	if c.ifNoneMatch_ != "" {
154524		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154525	}
154526	var body io.Reader = nil
154527	c.urlParams_.Set("alt", alt)
154528	c.urlParams_.Set("prettyPrint", "false")
154529	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
154530	urls += "?" + c.urlParams_.Encode()
154531	req, err := http.NewRequest("GET", urls, body)
154532	if err != nil {
154533		return nil, err
154534	}
154535	req.Header = reqHeaders
154536	googleapi.Expand(req.URL, map[string]string{
154537		"project": c.project,
154538	})
154539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154540}
154541
154542// Do executes the "compute.targetTcpProxies.list" call.
154543// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
154544// non-2xx status code is an error. Response headers are in either
154545// *TargetTcpProxyList.ServerResponse.Header or (if a response was
154546// returned at all) in error.(*googleapi.Error).Header. Use
154547// googleapi.IsNotModified to check whether the returned error was
154548// because http.StatusNotModified was returned.
154549func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
154550	gensupport.SetOptions(c.urlParams_, opts...)
154551	res, err := c.doRequest("json")
154552	if res != nil && res.StatusCode == http.StatusNotModified {
154553		if res.Body != nil {
154554			res.Body.Close()
154555		}
154556		return nil, &googleapi.Error{
154557			Code:   res.StatusCode,
154558			Header: res.Header,
154559		}
154560	}
154561	if err != nil {
154562		return nil, err
154563	}
154564	defer googleapi.CloseBody(res)
154565	if err := googleapi.CheckResponse(res); err != nil {
154566		return nil, err
154567	}
154568	ret := &TargetTcpProxyList{
154569		ServerResponse: googleapi.ServerResponse{
154570			Header:         res.Header,
154571			HTTPStatusCode: res.StatusCode,
154572		},
154573	}
154574	target := &ret
154575	if err := gensupport.DecodeResponse(target, res); err != nil {
154576		return nil, err
154577	}
154578	return ret, nil
154579	// {
154580	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
154581	//   "httpMethod": "GET",
154582	//   "id": "compute.targetTcpProxies.list",
154583	//   "parameterOrder": [
154584	//     "project"
154585	//   ],
154586	//   "parameters": {
154587	//     "filter": {
154588	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
154589	//       "location": "query",
154590	//       "type": "string"
154591	//     },
154592	//     "maxResults": {
154593	//       "default": "500",
154594	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
154595	//       "format": "uint32",
154596	//       "location": "query",
154597	//       "minimum": "0",
154598	//       "type": "integer"
154599	//     },
154600	//     "orderBy": {
154601	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
154602	//       "location": "query",
154603	//       "type": "string"
154604	//     },
154605	//     "pageToken": {
154606	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
154607	//       "location": "query",
154608	//       "type": "string"
154609	//     },
154610	//     "project": {
154611	//       "description": "Project ID for this request.",
154612	//       "location": "path",
154613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154614	//       "required": true,
154615	//       "type": "string"
154616	//     }
154617	//   },
154618	//   "path": "{project}/global/targetTcpProxies",
154619	//   "response": {
154620	//     "$ref": "TargetTcpProxyList"
154621	//   },
154622	//   "scopes": [
154623	//     "https://www.googleapis.com/auth/cloud-platform",
154624	//     "https://www.googleapis.com/auth/compute",
154625	//     "https://www.googleapis.com/auth/compute.readonly"
154626	//   ]
154627	// }
154628
154629}
154630
154631// Pages invokes f for each page of results.
154632// A non-nil error returned from f will halt the iteration.
154633// The provided context supersedes any context provided to the Context method.
154634func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
154635	c.ctx_ = ctx
154636	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154637	for {
154638		x, err := c.Do()
154639		if err != nil {
154640			return err
154641		}
154642		if err := f(x); err != nil {
154643			return err
154644		}
154645		if x.NextPageToken == "" {
154646			return nil
154647		}
154648		c.PageToken(x.NextPageToken)
154649	}
154650}
154651
154652// method id "compute.targetTcpProxies.setBackendService":
154653
154654type TargetTcpProxiesSetBackendServiceCall struct {
154655	s                                        *Service
154656	project                                  string
154657	targetTcpProxy                           string
154658	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
154659	urlParams_                               gensupport.URLParams
154660	ctx_                                     context.Context
154661	header_                                  http.Header
154662}
154663
154664// SetBackendService: Changes the BackendService for TargetTcpProxy.
154665func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
154666	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154667	c.project = project
154668	c.targetTcpProxy = targetTcpProxy
154669	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
154670	return c
154671}
154672
154673// RequestId sets the optional parameter "requestId": An optional
154674// request ID to identify requests. Specify a unique request ID so that
154675// if you must retry your request, the server will know to ignore the
154676// request if it has already been completed.
154677//
154678// For example, consider a situation where you make an initial request
154679// and the request times out. If you make the request again with the
154680// same request ID, the server can check if original operation with the
154681// same request ID was received, and if so, will ignore the second
154682// request. This prevents clients from accidentally creating duplicate
154683// commitments.
154684//
154685// The request ID must be a valid UUID with the exception that zero UUID
154686// is not supported (00000000-0000-0000-0000-000000000000).
154687func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
154688	c.urlParams_.Set("requestId", requestId)
154689	return c
154690}
154691
154692// Fields allows partial responses to be retrieved. See
154693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154694// for more information.
154695func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
154696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154697	return c
154698}
154699
154700// Context sets the context to be used in this call's Do method. Any
154701// pending HTTP request will be aborted if the provided context is
154702// canceled.
154703func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
154704	c.ctx_ = ctx
154705	return c
154706}
154707
154708// Header returns an http.Header that can be modified by the caller to
154709// add HTTP headers to the request.
154710func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
154711	if c.header_ == nil {
154712		c.header_ = make(http.Header)
154713	}
154714	return c.header_
154715}
154716
154717func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
154718	reqHeaders := make(http.Header)
154719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
154720	for k, v := range c.header_ {
154721		reqHeaders[k] = v
154722	}
154723	reqHeaders.Set("User-Agent", c.s.userAgent())
154724	var body io.Reader = nil
154725	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
154726	if err != nil {
154727		return nil, err
154728	}
154729	reqHeaders.Set("Content-Type", "application/json")
154730	c.urlParams_.Set("alt", alt)
154731	c.urlParams_.Set("prettyPrint", "false")
154732	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
154733	urls += "?" + c.urlParams_.Encode()
154734	req, err := http.NewRequest("POST", urls, body)
154735	if err != nil {
154736		return nil, err
154737	}
154738	req.Header = reqHeaders
154739	googleapi.Expand(req.URL, map[string]string{
154740		"project":        c.project,
154741		"targetTcpProxy": c.targetTcpProxy,
154742	})
154743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154744}
154745
154746// Do executes the "compute.targetTcpProxies.setBackendService" call.
154747// Exactly one of *Operation or error will be non-nil. Any non-2xx
154748// status code is an error. Response headers are in either
154749// *Operation.ServerResponse.Header or (if a response was returned at
154750// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154751// to check whether the returned error was because
154752// http.StatusNotModified was returned.
154753func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154754	gensupport.SetOptions(c.urlParams_, opts...)
154755	res, err := c.doRequest("json")
154756	if res != nil && res.StatusCode == http.StatusNotModified {
154757		if res.Body != nil {
154758			res.Body.Close()
154759		}
154760		return nil, &googleapi.Error{
154761			Code:   res.StatusCode,
154762			Header: res.Header,
154763		}
154764	}
154765	if err != nil {
154766		return nil, err
154767	}
154768	defer googleapi.CloseBody(res)
154769	if err := googleapi.CheckResponse(res); err != nil {
154770		return nil, err
154771	}
154772	ret := &Operation{
154773		ServerResponse: googleapi.ServerResponse{
154774			Header:         res.Header,
154775			HTTPStatusCode: res.StatusCode,
154776		},
154777	}
154778	target := &ret
154779	if err := gensupport.DecodeResponse(target, res); err != nil {
154780		return nil, err
154781	}
154782	return ret, nil
154783	// {
154784	//   "description": "Changes the BackendService for TargetTcpProxy.",
154785	//   "httpMethod": "POST",
154786	//   "id": "compute.targetTcpProxies.setBackendService",
154787	//   "parameterOrder": [
154788	//     "project",
154789	//     "targetTcpProxy"
154790	//   ],
154791	//   "parameters": {
154792	//     "project": {
154793	//       "description": "Project ID for this request.",
154794	//       "location": "path",
154795	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154796	//       "required": true,
154797	//       "type": "string"
154798	//     },
154799	//     "requestId": {
154800	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154801	//       "location": "query",
154802	//       "type": "string"
154803	//     },
154804	//     "targetTcpProxy": {
154805	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
154806	//       "location": "path",
154807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154808	//       "required": true,
154809	//       "type": "string"
154810	//     }
154811	//   },
154812	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
154813	//   "request": {
154814	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
154815	//   },
154816	//   "response": {
154817	//     "$ref": "Operation"
154818	//   },
154819	//   "scopes": [
154820	//     "https://www.googleapis.com/auth/cloud-platform",
154821	//     "https://www.googleapis.com/auth/compute"
154822	//   ]
154823	// }
154824
154825}
154826
154827// method id "compute.targetTcpProxies.setProxyHeader":
154828
154829type TargetTcpProxiesSetProxyHeaderCall struct {
154830	s                                     *Service
154831	project                               string
154832	targetTcpProxy                        string
154833	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
154834	urlParams_                            gensupport.URLParams
154835	ctx_                                  context.Context
154836	header_                               http.Header
154837}
154838
154839// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
154840func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
154841	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154842	c.project = project
154843	c.targetTcpProxy = targetTcpProxy
154844	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
154845	return c
154846}
154847
154848// RequestId sets the optional parameter "requestId": An optional
154849// request ID to identify requests. Specify a unique request ID so that
154850// if you must retry your request, the server will know to ignore the
154851// request if it has already been completed.
154852//
154853// For example, consider a situation where you make an initial request
154854// and the request times out. If you make the request again with the
154855// same request ID, the server can check if original operation with the
154856// same request ID was received, and if so, will ignore the second
154857// request. This prevents clients from accidentally creating duplicate
154858// commitments.
154859//
154860// The request ID must be a valid UUID with the exception that zero UUID
154861// is not supported (00000000-0000-0000-0000-000000000000).
154862func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
154863	c.urlParams_.Set("requestId", requestId)
154864	return c
154865}
154866
154867// Fields allows partial responses to be retrieved. See
154868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154869// for more information.
154870func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
154871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154872	return c
154873}
154874
154875// Context sets the context to be used in this call's Do method. Any
154876// pending HTTP request will be aborted if the provided context is
154877// canceled.
154878func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
154879	c.ctx_ = ctx
154880	return c
154881}
154882
154883// Header returns an http.Header that can be modified by the caller to
154884// add HTTP headers to the request.
154885func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
154886	if c.header_ == nil {
154887		c.header_ = make(http.Header)
154888	}
154889	return c.header_
154890}
154891
154892func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
154893	reqHeaders := make(http.Header)
154894	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
154895	for k, v := range c.header_ {
154896		reqHeaders[k] = v
154897	}
154898	reqHeaders.Set("User-Agent", c.s.userAgent())
154899	var body io.Reader = nil
154900	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
154901	if err != nil {
154902		return nil, err
154903	}
154904	reqHeaders.Set("Content-Type", "application/json")
154905	c.urlParams_.Set("alt", alt)
154906	c.urlParams_.Set("prettyPrint", "false")
154907	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
154908	urls += "?" + c.urlParams_.Encode()
154909	req, err := http.NewRequest("POST", urls, body)
154910	if err != nil {
154911		return nil, err
154912	}
154913	req.Header = reqHeaders
154914	googleapi.Expand(req.URL, map[string]string{
154915		"project":        c.project,
154916		"targetTcpProxy": c.targetTcpProxy,
154917	})
154918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154919}
154920
154921// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
154922// Exactly one of *Operation or error will be non-nil. Any non-2xx
154923// status code is an error. Response headers are in either
154924// *Operation.ServerResponse.Header or (if a response was returned at
154925// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154926// to check whether the returned error was because
154927// http.StatusNotModified was returned.
154928func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154929	gensupport.SetOptions(c.urlParams_, opts...)
154930	res, err := c.doRequest("json")
154931	if res != nil && res.StatusCode == http.StatusNotModified {
154932		if res.Body != nil {
154933			res.Body.Close()
154934		}
154935		return nil, &googleapi.Error{
154936			Code:   res.StatusCode,
154937			Header: res.Header,
154938		}
154939	}
154940	if err != nil {
154941		return nil, err
154942	}
154943	defer googleapi.CloseBody(res)
154944	if err := googleapi.CheckResponse(res); err != nil {
154945		return nil, err
154946	}
154947	ret := &Operation{
154948		ServerResponse: googleapi.ServerResponse{
154949			Header:         res.Header,
154950			HTTPStatusCode: res.StatusCode,
154951		},
154952	}
154953	target := &ret
154954	if err := gensupport.DecodeResponse(target, res); err != nil {
154955		return nil, err
154956	}
154957	return ret, nil
154958	// {
154959	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
154960	//   "httpMethod": "POST",
154961	//   "id": "compute.targetTcpProxies.setProxyHeader",
154962	//   "parameterOrder": [
154963	//     "project",
154964	//     "targetTcpProxy"
154965	//   ],
154966	//   "parameters": {
154967	//     "project": {
154968	//       "description": "Project ID for this request.",
154969	//       "location": "path",
154970	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154971	//       "required": true,
154972	//       "type": "string"
154973	//     },
154974	//     "requestId": {
154975	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154976	//       "location": "query",
154977	//       "type": "string"
154978	//     },
154979	//     "targetTcpProxy": {
154980	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
154981	//       "location": "path",
154982	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154983	//       "required": true,
154984	//       "type": "string"
154985	//     }
154986	//   },
154987	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
154988	//   "request": {
154989	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
154990	//   },
154991	//   "response": {
154992	//     "$ref": "Operation"
154993	//   },
154994	//   "scopes": [
154995	//     "https://www.googleapis.com/auth/cloud-platform",
154996	//     "https://www.googleapis.com/auth/compute"
154997	//   ]
154998	// }
154999
155000}
155001
155002// method id "compute.targetVpnGateways.aggregatedList":
155003
155004type TargetVpnGatewaysAggregatedListCall struct {
155005	s            *Service
155006	project      string
155007	urlParams_   gensupport.URLParams
155008	ifNoneMatch_ string
155009	ctx_         context.Context
155010	header_      http.Header
155011}
155012
155013// AggregatedList: Retrieves an aggregated list of target VPN gateways.
155014func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
155015	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155016	c.project = project
155017	return c
155018}
155019
155020// Filter sets the optional parameter "filter": A filter expression that
155021// filters resources listed in the response. The expression must specify
155022// the field name, a comparison operator, and the value that you want to
155023// use for filtering. The value must be a string, a number, or a
155024// boolean. The comparison operator must be either `=`, `!=`, `>`, or
155025// `<`.
155026//
155027// For example, if you are filtering Compute Engine instances, you can
155028// exclude instances named `example-instance` by specifying `name !=
155029// example-instance`.
155030//
155031// You can also filter nested fields. For example, you could specify
155032// `scheduling.automaticRestart = false` to include instances only if
155033// they are not scheduled for automatic restarts. You can use filtering
155034// on nested fields to filter based on resource labels.
155035//
155036// To filter on multiple expressions, provide each separate expression
155037// within parentheses. For example: ``` (scheduling.automaticRestart =
155038// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
155039// is an `AND` expression. However, you can include `AND` and `OR`
155040// expressions explicitly. For example: ``` (cpuPlatform = "Intel
155041// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
155042// (scheduling.automaticRestart = true) ```
155043func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
155044	c.urlParams_.Set("filter", filter)
155045	return c
155046}
155047
155048// IncludeAllScopes sets the optional parameter "includeAllScopes":
155049// Indicates whether every visible scope for each scope type (zone,
155050// region, global) should be included in the response. For new resource
155051// types added after this field, the flag has no effect as new resource
155052// types will always include every visible scope for each scope type in
155053// response. For resource types which predate this field, if this flag
155054// is omitted or false, only scopes of the scope types where the
155055// resource type is expected to be found will be included.
155056func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
155057	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
155058	return c
155059}
155060
155061// MaxResults sets the optional parameter "maxResults": The maximum
155062// number of results per page that should be returned. If the number of
155063// available results is larger than `maxResults`, Compute Engine returns
155064// a `nextPageToken` that can be used to get the next page of results in
155065// subsequent list requests. Acceptable values are `0` to `500`,
155066// inclusive. (Default: `500`)
155067func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
155068	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155069	return c
155070}
155071
155072// OrderBy sets the optional parameter "orderBy": Sorts list results by
155073// a certain order. By default, results are returned in alphanumerical
155074// order based on the resource name.
155075//
155076// You can also sort results in descending order based on the creation
155077// timestamp using `orderBy="creationTimestamp desc". This sorts
155078// results based on the `creationTimestamp` field in reverse
155079// chronological order (newest result first). Use this to sort resources
155080// like operations so that the newest operation is returned
155081// first.
155082//
155083// Currently, only sorting by `name` or `creationTimestamp desc` is
155084// supported.
155085func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
155086	c.urlParams_.Set("orderBy", orderBy)
155087	return c
155088}
155089
155090// PageToken sets the optional parameter "pageToken": Specifies a page
155091// token to use. Set `pageToken` to the `nextPageToken` returned by a
155092// previous list request to get the next page of results.
155093func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
155094	c.urlParams_.Set("pageToken", pageToken)
155095	return c
155096}
155097
155098// Fields allows partial responses to be retrieved. See
155099// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155100// for more information.
155101func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
155102	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155103	return c
155104}
155105
155106// IfNoneMatch sets the optional parameter which makes the operation
155107// fail if the object's ETag matches the given value. This is useful for
155108// getting updates only after the object has changed since the last
155109// request. Use googleapi.IsNotModified to check whether the response
155110// error from Do is the result of In-None-Match.
155111func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
155112	c.ifNoneMatch_ = entityTag
155113	return c
155114}
155115
155116// Context sets the context to be used in this call's Do method. Any
155117// pending HTTP request will be aborted if the provided context is
155118// canceled.
155119func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
155120	c.ctx_ = ctx
155121	return c
155122}
155123
155124// Header returns an http.Header that can be modified by the caller to
155125// add HTTP headers to the request.
155126func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
155127	if c.header_ == nil {
155128		c.header_ = make(http.Header)
155129	}
155130	return c.header_
155131}
155132
155133func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
155134	reqHeaders := make(http.Header)
155135	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
155136	for k, v := range c.header_ {
155137		reqHeaders[k] = v
155138	}
155139	reqHeaders.Set("User-Agent", c.s.userAgent())
155140	if c.ifNoneMatch_ != "" {
155141		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155142	}
155143	var body io.Reader = nil
155144	c.urlParams_.Set("alt", alt)
155145	c.urlParams_.Set("prettyPrint", "false")
155146	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
155147	urls += "?" + c.urlParams_.Encode()
155148	req, err := http.NewRequest("GET", urls, body)
155149	if err != nil {
155150		return nil, err
155151	}
155152	req.Header = reqHeaders
155153	googleapi.Expand(req.URL, map[string]string{
155154		"project": c.project,
155155	})
155156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155157}
155158
155159// Do executes the "compute.targetVpnGateways.aggregatedList" call.
155160// Exactly one of *TargetVpnGatewayAggregatedList or error will be
155161// non-nil. Any non-2xx status code is an error. Response headers are in
155162// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
155163// response was returned at all) in error.(*googleapi.Error).Header. Use
155164// googleapi.IsNotModified to check whether the returned error was
155165// because http.StatusNotModified was returned.
155166func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
155167	gensupport.SetOptions(c.urlParams_, opts...)
155168	res, err := c.doRequest("json")
155169	if res != nil && res.StatusCode == http.StatusNotModified {
155170		if res.Body != nil {
155171			res.Body.Close()
155172		}
155173		return nil, &googleapi.Error{
155174			Code:   res.StatusCode,
155175			Header: res.Header,
155176		}
155177	}
155178	if err != nil {
155179		return nil, err
155180	}
155181	defer googleapi.CloseBody(res)
155182	if err := googleapi.CheckResponse(res); err != nil {
155183		return nil, err
155184	}
155185	ret := &TargetVpnGatewayAggregatedList{
155186		ServerResponse: googleapi.ServerResponse{
155187			Header:         res.Header,
155188			HTTPStatusCode: res.StatusCode,
155189		},
155190	}
155191	target := &ret
155192	if err := gensupport.DecodeResponse(target, res); err != nil {
155193		return nil, err
155194	}
155195	return ret, nil
155196	// {
155197	//   "description": "Retrieves an aggregated list of target VPN gateways.",
155198	//   "httpMethod": "GET",
155199	//   "id": "compute.targetVpnGateways.aggregatedList",
155200	//   "parameterOrder": [
155201	//     "project"
155202	//   ],
155203	//   "parameters": {
155204	//     "filter": {
155205	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
155206	//       "location": "query",
155207	//       "type": "string"
155208	//     },
155209	//     "includeAllScopes": {
155210	//       "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.",
155211	//       "location": "query",
155212	//       "type": "boolean"
155213	//     },
155214	//     "maxResults": {
155215	//       "default": "500",
155216	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
155217	//       "format": "uint32",
155218	//       "location": "query",
155219	//       "minimum": "0",
155220	//       "type": "integer"
155221	//     },
155222	//     "orderBy": {
155223	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
155224	//       "location": "query",
155225	//       "type": "string"
155226	//     },
155227	//     "pageToken": {
155228	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
155229	//       "location": "query",
155230	//       "type": "string"
155231	//     },
155232	//     "project": {
155233	//       "description": "Project ID for this request.",
155234	//       "location": "path",
155235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155236	//       "required": true,
155237	//       "type": "string"
155238	//     }
155239	//   },
155240	//   "path": "{project}/aggregated/targetVpnGateways",
155241	//   "response": {
155242	//     "$ref": "TargetVpnGatewayAggregatedList"
155243	//   },
155244	//   "scopes": [
155245	//     "https://www.googleapis.com/auth/cloud-platform",
155246	//     "https://www.googleapis.com/auth/compute",
155247	//     "https://www.googleapis.com/auth/compute.readonly"
155248	//   ]
155249	// }
155250
155251}
155252
155253// Pages invokes f for each page of results.
155254// A non-nil error returned from f will halt the iteration.
155255// The provided context supersedes any context provided to the Context method.
155256func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
155257	c.ctx_ = ctx
155258	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155259	for {
155260		x, err := c.Do()
155261		if err != nil {
155262			return err
155263		}
155264		if err := f(x); err != nil {
155265			return err
155266		}
155267		if x.NextPageToken == "" {
155268			return nil
155269		}
155270		c.PageToken(x.NextPageToken)
155271	}
155272}
155273
155274// method id "compute.targetVpnGateways.delete":
155275
155276type TargetVpnGatewaysDeleteCall struct {
155277	s                *Service
155278	project          string
155279	region           string
155280	targetVpnGateway string
155281	urlParams_       gensupport.URLParams
155282	ctx_             context.Context
155283	header_          http.Header
155284}
155285
155286// Delete: Deletes the specified target VPN gateway.
155287func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
155288	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155289	c.project = project
155290	c.region = region
155291	c.targetVpnGateway = targetVpnGateway
155292	return c
155293}
155294
155295// RequestId sets the optional parameter "requestId": An optional
155296// request ID to identify requests. Specify a unique request ID so that
155297// if you must retry your request, the server will know to ignore the
155298// request if it has already been completed.
155299//
155300// For example, consider a situation where you make an initial request
155301// and the request times out. If you make the request again with the
155302// same request ID, the server can check if original operation with the
155303// same request ID was received, and if so, will ignore the second
155304// request. This prevents clients from accidentally creating duplicate
155305// commitments.
155306//
155307// The request ID must be a valid UUID with the exception that zero UUID
155308// is not supported (00000000-0000-0000-0000-000000000000).
155309func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
155310	c.urlParams_.Set("requestId", requestId)
155311	return c
155312}
155313
155314// Fields allows partial responses to be retrieved. See
155315// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155316// for more information.
155317func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
155318	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155319	return c
155320}
155321
155322// Context sets the context to be used in this call's Do method. Any
155323// pending HTTP request will be aborted if the provided context is
155324// canceled.
155325func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
155326	c.ctx_ = ctx
155327	return c
155328}
155329
155330// Header returns an http.Header that can be modified by the caller to
155331// add HTTP headers to the request.
155332func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
155333	if c.header_ == nil {
155334		c.header_ = make(http.Header)
155335	}
155336	return c.header_
155337}
155338
155339func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
155340	reqHeaders := make(http.Header)
155341	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
155342	for k, v := range c.header_ {
155343		reqHeaders[k] = v
155344	}
155345	reqHeaders.Set("User-Agent", c.s.userAgent())
155346	var body io.Reader = nil
155347	c.urlParams_.Set("alt", alt)
155348	c.urlParams_.Set("prettyPrint", "false")
155349	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
155350	urls += "?" + c.urlParams_.Encode()
155351	req, err := http.NewRequest("DELETE", urls, body)
155352	if err != nil {
155353		return nil, err
155354	}
155355	req.Header = reqHeaders
155356	googleapi.Expand(req.URL, map[string]string{
155357		"project":          c.project,
155358		"region":           c.region,
155359		"targetVpnGateway": c.targetVpnGateway,
155360	})
155361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155362}
155363
155364// Do executes the "compute.targetVpnGateways.delete" call.
155365// Exactly one of *Operation or error will be non-nil. Any non-2xx
155366// status code is an error. Response headers are in either
155367// *Operation.ServerResponse.Header or (if a response was returned at
155368// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155369// to check whether the returned error was because
155370// http.StatusNotModified was returned.
155371func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155372	gensupport.SetOptions(c.urlParams_, opts...)
155373	res, err := c.doRequest("json")
155374	if res != nil && res.StatusCode == http.StatusNotModified {
155375		if res.Body != nil {
155376			res.Body.Close()
155377		}
155378		return nil, &googleapi.Error{
155379			Code:   res.StatusCode,
155380			Header: res.Header,
155381		}
155382	}
155383	if err != nil {
155384		return nil, err
155385	}
155386	defer googleapi.CloseBody(res)
155387	if err := googleapi.CheckResponse(res); err != nil {
155388		return nil, err
155389	}
155390	ret := &Operation{
155391		ServerResponse: googleapi.ServerResponse{
155392			Header:         res.Header,
155393			HTTPStatusCode: res.StatusCode,
155394		},
155395	}
155396	target := &ret
155397	if err := gensupport.DecodeResponse(target, res); err != nil {
155398		return nil, err
155399	}
155400	return ret, nil
155401	// {
155402	//   "description": "Deletes the specified target VPN gateway.",
155403	//   "httpMethod": "DELETE",
155404	//   "id": "compute.targetVpnGateways.delete",
155405	//   "parameterOrder": [
155406	//     "project",
155407	//     "region",
155408	//     "targetVpnGateway"
155409	//   ],
155410	//   "parameters": {
155411	//     "project": {
155412	//       "description": "Project ID for this request.",
155413	//       "location": "path",
155414	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155415	//       "required": true,
155416	//       "type": "string"
155417	//     },
155418	//     "region": {
155419	//       "description": "Name of the region for this request.",
155420	//       "location": "path",
155421	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155422	//       "required": true,
155423	//       "type": "string"
155424	//     },
155425	//     "requestId": {
155426	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155427	//       "location": "query",
155428	//       "type": "string"
155429	//     },
155430	//     "targetVpnGateway": {
155431	//       "description": "Name of the target VPN gateway to delete.",
155432	//       "location": "path",
155433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155434	//       "required": true,
155435	//       "type": "string"
155436	//     }
155437	//   },
155438	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
155439	//   "response": {
155440	//     "$ref": "Operation"
155441	//   },
155442	//   "scopes": [
155443	//     "https://www.googleapis.com/auth/cloud-platform",
155444	//     "https://www.googleapis.com/auth/compute"
155445	//   ]
155446	// }
155447
155448}
155449
155450// method id "compute.targetVpnGateways.get":
155451
155452type TargetVpnGatewaysGetCall struct {
155453	s                *Service
155454	project          string
155455	region           string
155456	targetVpnGateway string
155457	urlParams_       gensupport.URLParams
155458	ifNoneMatch_     string
155459	ctx_             context.Context
155460	header_          http.Header
155461}
155462
155463// Get: Returns the specified target VPN gateway. Gets a list of
155464// available target VPN gateways by making a list() request.
155465func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
155466	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155467	c.project = project
155468	c.region = region
155469	c.targetVpnGateway = targetVpnGateway
155470	return c
155471}
155472
155473// Fields allows partial responses to be retrieved. See
155474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155475// for more information.
155476func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
155477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155478	return c
155479}
155480
155481// IfNoneMatch sets the optional parameter which makes the operation
155482// fail if the object's ETag matches the given value. This is useful for
155483// getting updates only after the object has changed since the last
155484// request. Use googleapi.IsNotModified to check whether the response
155485// error from Do is the result of In-None-Match.
155486func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
155487	c.ifNoneMatch_ = entityTag
155488	return c
155489}
155490
155491// Context sets the context to be used in this call's Do method. Any
155492// pending HTTP request will be aborted if the provided context is
155493// canceled.
155494func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
155495	c.ctx_ = ctx
155496	return c
155497}
155498
155499// Header returns an http.Header that can be modified by the caller to
155500// add HTTP headers to the request.
155501func (c *TargetVpnGatewaysGetCall) Header() http.Header {
155502	if c.header_ == nil {
155503		c.header_ = make(http.Header)
155504	}
155505	return c.header_
155506}
155507
155508func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
155509	reqHeaders := make(http.Header)
155510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
155511	for k, v := range c.header_ {
155512		reqHeaders[k] = v
155513	}
155514	reqHeaders.Set("User-Agent", c.s.userAgent())
155515	if c.ifNoneMatch_ != "" {
155516		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155517	}
155518	var body io.Reader = nil
155519	c.urlParams_.Set("alt", alt)
155520	c.urlParams_.Set("prettyPrint", "false")
155521	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
155522	urls += "?" + c.urlParams_.Encode()
155523	req, err := http.NewRequest("GET", urls, body)
155524	if err != nil {
155525		return nil, err
155526	}
155527	req.Header = reqHeaders
155528	googleapi.Expand(req.URL, map[string]string{
155529		"project":          c.project,
155530		"region":           c.region,
155531		"targetVpnGateway": c.targetVpnGateway,
155532	})
155533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155534}
155535
155536// Do executes the "compute.targetVpnGateways.get" call.
155537// Exactly one of *TargetVpnGateway or error will be non-nil. Any
155538// non-2xx status code is an error. Response headers are in either
155539// *TargetVpnGateway.ServerResponse.Header or (if a response was
155540// returned at all) in error.(*googleapi.Error).Header. Use
155541// googleapi.IsNotModified to check whether the returned error was
155542// because http.StatusNotModified was returned.
155543func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
155544	gensupport.SetOptions(c.urlParams_, opts...)
155545	res, err := c.doRequest("json")
155546	if res != nil && res.StatusCode == http.StatusNotModified {
155547		if res.Body != nil {
155548			res.Body.Close()
155549		}
155550		return nil, &googleapi.Error{
155551			Code:   res.StatusCode,
155552			Header: res.Header,
155553		}
155554	}
155555	if err != nil {
155556		return nil, err
155557	}
155558	defer googleapi.CloseBody(res)
155559	if err := googleapi.CheckResponse(res); err != nil {
155560		return nil, err
155561	}
155562	ret := &TargetVpnGateway{
155563		ServerResponse: googleapi.ServerResponse{
155564			Header:         res.Header,
155565			HTTPStatusCode: res.StatusCode,
155566		},
155567	}
155568	target := &ret
155569	if err := gensupport.DecodeResponse(target, res); err != nil {
155570		return nil, err
155571	}
155572	return ret, nil
155573	// {
155574	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
155575	//   "httpMethod": "GET",
155576	//   "id": "compute.targetVpnGateways.get",
155577	//   "parameterOrder": [
155578	//     "project",
155579	//     "region",
155580	//     "targetVpnGateway"
155581	//   ],
155582	//   "parameters": {
155583	//     "project": {
155584	//       "description": "Project ID for this request.",
155585	//       "location": "path",
155586	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155587	//       "required": true,
155588	//       "type": "string"
155589	//     },
155590	//     "region": {
155591	//       "description": "Name of the region for this request.",
155592	//       "location": "path",
155593	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155594	//       "required": true,
155595	//       "type": "string"
155596	//     },
155597	//     "targetVpnGateway": {
155598	//       "description": "Name of the target VPN gateway to return.",
155599	//       "location": "path",
155600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155601	//       "required": true,
155602	//       "type": "string"
155603	//     }
155604	//   },
155605	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
155606	//   "response": {
155607	//     "$ref": "TargetVpnGateway"
155608	//   },
155609	//   "scopes": [
155610	//     "https://www.googleapis.com/auth/cloud-platform",
155611	//     "https://www.googleapis.com/auth/compute",
155612	//     "https://www.googleapis.com/auth/compute.readonly"
155613	//   ]
155614	// }
155615
155616}
155617
155618// method id "compute.targetVpnGateways.insert":
155619
155620type TargetVpnGatewaysInsertCall struct {
155621	s                *Service
155622	project          string
155623	region           string
155624	targetvpngateway *TargetVpnGateway
155625	urlParams_       gensupport.URLParams
155626	ctx_             context.Context
155627	header_          http.Header
155628}
155629
155630// Insert: Creates a target VPN gateway in the specified project and
155631// region using the data included in the request.
155632func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
155633	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155634	c.project = project
155635	c.region = region
155636	c.targetvpngateway = targetvpngateway
155637	return c
155638}
155639
155640// RequestId sets the optional parameter "requestId": An optional
155641// request ID to identify requests. Specify a unique request ID so that
155642// if you must retry your request, the server will know to ignore the
155643// request if it has already been completed.
155644//
155645// For example, consider a situation where you make an initial request
155646// and the request times out. If you make the request again with the
155647// same request ID, the server can check if original operation with the
155648// same request ID was received, and if so, will ignore the second
155649// request. This prevents clients from accidentally creating duplicate
155650// commitments.
155651//
155652// The request ID must be a valid UUID with the exception that zero UUID
155653// is not supported (00000000-0000-0000-0000-000000000000).
155654func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
155655	c.urlParams_.Set("requestId", requestId)
155656	return c
155657}
155658
155659// Fields allows partial responses to be retrieved. See
155660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155661// for more information.
155662func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
155663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155664	return c
155665}
155666
155667// Context sets the context to be used in this call's Do method. Any
155668// pending HTTP request will be aborted if the provided context is
155669// canceled.
155670func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
155671	c.ctx_ = ctx
155672	return c
155673}
155674
155675// Header returns an http.Header that can be modified by the caller to
155676// add HTTP headers to the request.
155677func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
155678	if c.header_ == nil {
155679		c.header_ = make(http.Header)
155680	}
155681	return c.header_
155682}
155683
155684func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
155685	reqHeaders := make(http.Header)
155686	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
155687	for k, v := range c.header_ {
155688		reqHeaders[k] = v
155689	}
155690	reqHeaders.Set("User-Agent", c.s.userAgent())
155691	var body io.Reader = nil
155692	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
155693	if err != nil {
155694		return nil, err
155695	}
155696	reqHeaders.Set("Content-Type", "application/json")
155697	c.urlParams_.Set("alt", alt)
155698	c.urlParams_.Set("prettyPrint", "false")
155699	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
155700	urls += "?" + c.urlParams_.Encode()
155701	req, err := http.NewRequest("POST", urls, body)
155702	if err != nil {
155703		return nil, err
155704	}
155705	req.Header = reqHeaders
155706	googleapi.Expand(req.URL, map[string]string{
155707		"project": c.project,
155708		"region":  c.region,
155709	})
155710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155711}
155712
155713// Do executes the "compute.targetVpnGateways.insert" call.
155714// Exactly one of *Operation or error will be non-nil. Any non-2xx
155715// status code is an error. Response headers are in either
155716// *Operation.ServerResponse.Header or (if a response was returned at
155717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155718// to check whether the returned error was because
155719// http.StatusNotModified was returned.
155720func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155721	gensupport.SetOptions(c.urlParams_, opts...)
155722	res, err := c.doRequest("json")
155723	if res != nil && res.StatusCode == http.StatusNotModified {
155724		if res.Body != nil {
155725			res.Body.Close()
155726		}
155727		return nil, &googleapi.Error{
155728			Code:   res.StatusCode,
155729			Header: res.Header,
155730		}
155731	}
155732	if err != nil {
155733		return nil, err
155734	}
155735	defer googleapi.CloseBody(res)
155736	if err := googleapi.CheckResponse(res); err != nil {
155737		return nil, err
155738	}
155739	ret := &Operation{
155740		ServerResponse: googleapi.ServerResponse{
155741			Header:         res.Header,
155742			HTTPStatusCode: res.StatusCode,
155743		},
155744	}
155745	target := &ret
155746	if err := gensupport.DecodeResponse(target, res); err != nil {
155747		return nil, err
155748	}
155749	return ret, nil
155750	// {
155751	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
155752	//   "httpMethod": "POST",
155753	//   "id": "compute.targetVpnGateways.insert",
155754	//   "parameterOrder": [
155755	//     "project",
155756	//     "region"
155757	//   ],
155758	//   "parameters": {
155759	//     "project": {
155760	//       "description": "Project ID for this request.",
155761	//       "location": "path",
155762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155763	//       "required": true,
155764	//       "type": "string"
155765	//     },
155766	//     "region": {
155767	//       "description": "Name of the region for this request.",
155768	//       "location": "path",
155769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155770	//       "required": true,
155771	//       "type": "string"
155772	//     },
155773	//     "requestId": {
155774	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155775	//       "location": "query",
155776	//       "type": "string"
155777	//     }
155778	//   },
155779	//   "path": "{project}/regions/{region}/targetVpnGateways",
155780	//   "request": {
155781	//     "$ref": "TargetVpnGateway"
155782	//   },
155783	//   "response": {
155784	//     "$ref": "Operation"
155785	//   },
155786	//   "scopes": [
155787	//     "https://www.googleapis.com/auth/cloud-platform",
155788	//     "https://www.googleapis.com/auth/compute"
155789	//   ]
155790	// }
155791
155792}
155793
155794// method id "compute.targetVpnGateways.list":
155795
155796type TargetVpnGatewaysListCall struct {
155797	s            *Service
155798	project      string
155799	region       string
155800	urlParams_   gensupport.URLParams
155801	ifNoneMatch_ string
155802	ctx_         context.Context
155803	header_      http.Header
155804}
155805
155806// List: Retrieves a list of target VPN gateways available to the
155807// specified project and region.
155808func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
155809	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155810	c.project = project
155811	c.region = region
155812	return c
155813}
155814
155815// Filter sets the optional parameter "filter": A filter expression that
155816// filters resources listed in the response. The expression must specify
155817// the field name, a comparison operator, and the value that you want to
155818// use for filtering. The value must be a string, a number, or a
155819// boolean. The comparison operator must be either `=`, `!=`, `>`, or
155820// `<`.
155821//
155822// For example, if you are filtering Compute Engine instances, you can
155823// exclude instances named `example-instance` by specifying `name !=
155824// example-instance`.
155825//
155826// You can also filter nested fields. For example, you could specify
155827// `scheduling.automaticRestart = false` to include instances only if
155828// they are not scheduled for automatic restarts. You can use filtering
155829// on nested fields to filter based on resource labels.
155830//
155831// To filter on multiple expressions, provide each separate expression
155832// within parentheses. For example: ``` (scheduling.automaticRestart =
155833// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
155834// is an `AND` expression. However, you can include `AND` and `OR`
155835// expressions explicitly. For example: ``` (cpuPlatform = "Intel
155836// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
155837// (scheduling.automaticRestart = true) ```
155838func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
155839	c.urlParams_.Set("filter", filter)
155840	return c
155841}
155842
155843// MaxResults sets the optional parameter "maxResults": The maximum
155844// number of results per page that should be returned. If the number of
155845// available results is larger than `maxResults`, Compute Engine returns
155846// a `nextPageToken` that can be used to get the next page of results in
155847// subsequent list requests. Acceptable values are `0` to `500`,
155848// inclusive. (Default: `500`)
155849func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
155850	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155851	return c
155852}
155853
155854// OrderBy sets the optional parameter "orderBy": Sorts list results by
155855// a certain order. By default, results are returned in alphanumerical
155856// order based on the resource name.
155857//
155858// You can also sort results in descending order based on the creation
155859// timestamp using `orderBy="creationTimestamp desc". This sorts
155860// results based on the `creationTimestamp` field in reverse
155861// chronological order (newest result first). Use this to sort resources
155862// like operations so that the newest operation is returned
155863// first.
155864//
155865// Currently, only sorting by `name` or `creationTimestamp desc` is
155866// supported.
155867func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
155868	c.urlParams_.Set("orderBy", orderBy)
155869	return c
155870}
155871
155872// PageToken sets the optional parameter "pageToken": Specifies a page
155873// token to use. Set `pageToken` to the `nextPageToken` returned by a
155874// previous list request to get the next page of results.
155875func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
155876	c.urlParams_.Set("pageToken", pageToken)
155877	return c
155878}
155879
155880// Fields allows partial responses to be retrieved. See
155881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155882// for more information.
155883func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
155884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155885	return c
155886}
155887
155888// IfNoneMatch sets the optional parameter which makes the operation
155889// fail if the object's ETag matches the given value. This is useful for
155890// getting updates only after the object has changed since the last
155891// request. Use googleapi.IsNotModified to check whether the response
155892// error from Do is the result of In-None-Match.
155893func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
155894	c.ifNoneMatch_ = entityTag
155895	return c
155896}
155897
155898// Context sets the context to be used in this call's Do method. Any
155899// pending HTTP request will be aborted if the provided context is
155900// canceled.
155901func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
155902	c.ctx_ = ctx
155903	return c
155904}
155905
155906// Header returns an http.Header that can be modified by the caller to
155907// add HTTP headers to the request.
155908func (c *TargetVpnGatewaysListCall) Header() http.Header {
155909	if c.header_ == nil {
155910		c.header_ = make(http.Header)
155911	}
155912	return c.header_
155913}
155914
155915func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
155916	reqHeaders := make(http.Header)
155917	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
155918	for k, v := range c.header_ {
155919		reqHeaders[k] = v
155920	}
155921	reqHeaders.Set("User-Agent", c.s.userAgent())
155922	if c.ifNoneMatch_ != "" {
155923		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155924	}
155925	var body io.Reader = nil
155926	c.urlParams_.Set("alt", alt)
155927	c.urlParams_.Set("prettyPrint", "false")
155928	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
155929	urls += "?" + c.urlParams_.Encode()
155930	req, err := http.NewRequest("GET", urls, body)
155931	if err != nil {
155932		return nil, err
155933	}
155934	req.Header = reqHeaders
155935	googleapi.Expand(req.URL, map[string]string{
155936		"project": c.project,
155937		"region":  c.region,
155938	})
155939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155940}
155941
155942// Do executes the "compute.targetVpnGateways.list" call.
155943// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
155944// non-2xx status code is an error. Response headers are in either
155945// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
155946// returned at all) in error.(*googleapi.Error).Header. Use
155947// googleapi.IsNotModified to check whether the returned error was
155948// because http.StatusNotModified was returned.
155949func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
155950	gensupport.SetOptions(c.urlParams_, opts...)
155951	res, err := c.doRequest("json")
155952	if res != nil && res.StatusCode == http.StatusNotModified {
155953		if res.Body != nil {
155954			res.Body.Close()
155955		}
155956		return nil, &googleapi.Error{
155957			Code:   res.StatusCode,
155958			Header: res.Header,
155959		}
155960	}
155961	if err != nil {
155962		return nil, err
155963	}
155964	defer googleapi.CloseBody(res)
155965	if err := googleapi.CheckResponse(res); err != nil {
155966		return nil, err
155967	}
155968	ret := &TargetVpnGatewayList{
155969		ServerResponse: googleapi.ServerResponse{
155970			Header:         res.Header,
155971			HTTPStatusCode: res.StatusCode,
155972		},
155973	}
155974	target := &ret
155975	if err := gensupport.DecodeResponse(target, res); err != nil {
155976		return nil, err
155977	}
155978	return ret, nil
155979	// {
155980	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
155981	//   "httpMethod": "GET",
155982	//   "id": "compute.targetVpnGateways.list",
155983	//   "parameterOrder": [
155984	//     "project",
155985	//     "region"
155986	//   ],
155987	//   "parameters": {
155988	//     "filter": {
155989	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
155990	//       "location": "query",
155991	//       "type": "string"
155992	//     },
155993	//     "maxResults": {
155994	//       "default": "500",
155995	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
155996	//       "format": "uint32",
155997	//       "location": "query",
155998	//       "minimum": "0",
155999	//       "type": "integer"
156000	//     },
156001	//     "orderBy": {
156002	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
156003	//       "location": "query",
156004	//       "type": "string"
156005	//     },
156006	//     "pageToken": {
156007	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
156008	//       "location": "query",
156009	//       "type": "string"
156010	//     },
156011	//     "project": {
156012	//       "description": "Project ID for this request.",
156013	//       "location": "path",
156014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156015	//       "required": true,
156016	//       "type": "string"
156017	//     },
156018	//     "region": {
156019	//       "description": "Name of the region for this request.",
156020	//       "location": "path",
156021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156022	//       "required": true,
156023	//       "type": "string"
156024	//     }
156025	//   },
156026	//   "path": "{project}/regions/{region}/targetVpnGateways",
156027	//   "response": {
156028	//     "$ref": "TargetVpnGatewayList"
156029	//   },
156030	//   "scopes": [
156031	//     "https://www.googleapis.com/auth/cloud-platform",
156032	//     "https://www.googleapis.com/auth/compute",
156033	//     "https://www.googleapis.com/auth/compute.readonly"
156034	//   ]
156035	// }
156036
156037}
156038
156039// Pages invokes f for each page of results.
156040// A non-nil error returned from f will halt the iteration.
156041// The provided context supersedes any context provided to the Context method.
156042func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
156043	c.ctx_ = ctx
156044	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156045	for {
156046		x, err := c.Do()
156047		if err != nil {
156048			return err
156049		}
156050		if err := f(x); err != nil {
156051			return err
156052		}
156053		if x.NextPageToken == "" {
156054			return nil
156055		}
156056		c.PageToken(x.NextPageToken)
156057	}
156058}
156059
156060// method id "compute.targetVpnGateways.setLabels":
156061
156062type TargetVpnGatewaysSetLabelsCall struct {
156063	s                      *Service
156064	project                string
156065	region                 string
156066	resource               string
156067	regionsetlabelsrequest *RegionSetLabelsRequest
156068	urlParams_             gensupport.URLParams
156069	ctx_                   context.Context
156070	header_                http.Header
156071}
156072
156073// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about
156074// labels, read the Labeling Resources documentation.
156075func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall {
156076	c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156077	c.project = project
156078	c.region = region
156079	c.resource = resource
156080	c.regionsetlabelsrequest = regionsetlabelsrequest
156081	return c
156082}
156083
156084// RequestId sets the optional parameter "requestId": An optional
156085// request ID to identify requests. Specify a unique request ID so that
156086// if you must retry your request, the server will know to ignore the
156087// request if it has already been completed.
156088//
156089// For example, consider a situation where you make an initial request
156090// and the request times out. If you make the request again with the
156091// same request ID, the server can check if original operation with the
156092// same request ID was received, and if so, will ignore the second
156093// request. This prevents clients from accidentally creating duplicate
156094// commitments.
156095//
156096// The request ID must be a valid UUID with the exception that zero UUID
156097// is not supported (00000000-0000-0000-0000-000000000000).
156098func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall {
156099	c.urlParams_.Set("requestId", requestId)
156100	return c
156101}
156102
156103// Fields allows partial responses to be retrieved. See
156104// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156105// for more information.
156106func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall {
156107	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156108	return c
156109}
156110
156111// Context sets the context to be used in this call's Do method. Any
156112// pending HTTP request will be aborted if the provided context is
156113// canceled.
156114func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall {
156115	c.ctx_ = ctx
156116	return c
156117}
156118
156119// Header returns an http.Header that can be modified by the caller to
156120// add HTTP headers to the request.
156121func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header {
156122	if c.header_ == nil {
156123		c.header_ = make(http.Header)
156124	}
156125	return c.header_
156126}
156127
156128func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
156129	reqHeaders := make(http.Header)
156130	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
156131	for k, v := range c.header_ {
156132		reqHeaders[k] = v
156133	}
156134	reqHeaders.Set("User-Agent", c.s.userAgent())
156135	var body io.Reader = nil
156136	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
156137	if err != nil {
156138		return nil, err
156139	}
156140	reqHeaders.Set("Content-Type", "application/json")
156141	c.urlParams_.Set("alt", alt)
156142	c.urlParams_.Set("prettyPrint", "false")
156143	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels")
156144	urls += "?" + c.urlParams_.Encode()
156145	req, err := http.NewRequest("POST", urls, body)
156146	if err != nil {
156147		return nil, err
156148	}
156149	req.Header = reqHeaders
156150	googleapi.Expand(req.URL, map[string]string{
156151		"project":  c.project,
156152		"region":   c.region,
156153		"resource": c.resource,
156154	})
156155	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156156}
156157
156158// Do executes the "compute.targetVpnGateways.setLabels" call.
156159// Exactly one of *Operation or error will be non-nil. Any non-2xx
156160// status code is an error. Response headers are in either
156161// *Operation.ServerResponse.Header or (if a response was returned at
156162// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156163// to check whether the returned error was because
156164// http.StatusNotModified was returned.
156165func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156166	gensupport.SetOptions(c.urlParams_, opts...)
156167	res, err := c.doRequest("json")
156168	if res != nil && res.StatusCode == http.StatusNotModified {
156169		if res.Body != nil {
156170			res.Body.Close()
156171		}
156172		return nil, &googleapi.Error{
156173			Code:   res.StatusCode,
156174			Header: res.Header,
156175		}
156176	}
156177	if err != nil {
156178		return nil, err
156179	}
156180	defer googleapi.CloseBody(res)
156181	if err := googleapi.CheckResponse(res); err != nil {
156182		return nil, err
156183	}
156184	ret := &Operation{
156185		ServerResponse: googleapi.ServerResponse{
156186			Header:         res.Header,
156187			HTTPStatusCode: res.StatusCode,
156188		},
156189	}
156190	target := &ret
156191	if err := gensupport.DecodeResponse(target, res); err != nil {
156192		return nil, err
156193	}
156194	return ret, nil
156195	// {
156196	//   "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
156197	//   "httpMethod": "POST",
156198	//   "id": "compute.targetVpnGateways.setLabels",
156199	//   "parameterOrder": [
156200	//     "project",
156201	//     "region",
156202	//     "resource"
156203	//   ],
156204	//   "parameters": {
156205	//     "project": {
156206	//       "description": "Project ID for this request.",
156207	//       "location": "path",
156208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156209	//       "required": true,
156210	//       "type": "string"
156211	//     },
156212	//     "region": {
156213	//       "description": "The region for this request.",
156214	//       "location": "path",
156215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156216	//       "required": true,
156217	//       "type": "string"
156218	//     },
156219	//     "requestId": {
156220	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156221	//       "location": "query",
156222	//       "type": "string"
156223	//     },
156224	//     "resource": {
156225	//       "description": "Name or id of the resource for this request.",
156226	//       "location": "path",
156227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156228	//       "required": true,
156229	//       "type": "string"
156230	//     }
156231	//   },
156232	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
156233	//   "request": {
156234	//     "$ref": "RegionSetLabelsRequest"
156235	//   },
156236	//   "response": {
156237	//     "$ref": "Operation"
156238	//   },
156239	//   "scopes": [
156240	//     "https://www.googleapis.com/auth/cloud-platform",
156241	//     "https://www.googleapis.com/auth/compute"
156242	//   ]
156243	// }
156244
156245}
156246
156247// method id "compute.targetVpnGateways.testIamPermissions":
156248
156249type TargetVpnGatewaysTestIamPermissionsCall struct {
156250	s                      *Service
156251	project                string
156252	region                 string
156253	resource               string
156254	testpermissionsrequest *TestPermissionsRequest
156255	urlParams_             gensupport.URLParams
156256	ctx_                   context.Context
156257	header_                http.Header
156258}
156259
156260// TestIamPermissions: Returns permissions that a caller has on the
156261// specified resource.
156262func (r *TargetVpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetVpnGatewaysTestIamPermissionsCall {
156263	c := &TargetVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156264	c.project = project
156265	c.region = region
156266	c.resource = resource
156267	c.testpermissionsrequest = testpermissionsrequest
156268	return c
156269}
156270
156271// Fields allows partial responses to be retrieved. See
156272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156273// for more information.
156274func (c *TargetVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysTestIamPermissionsCall {
156275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156276	return c
156277}
156278
156279// Context sets the context to be used in this call's Do method. Any
156280// pending HTTP request will be aborted if the provided context is
156281// canceled.
156282func (c *TargetVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *TargetVpnGatewaysTestIamPermissionsCall {
156283	c.ctx_ = ctx
156284	return c
156285}
156286
156287// Header returns an http.Header that can be modified by the caller to
156288// add HTTP headers to the request.
156289func (c *TargetVpnGatewaysTestIamPermissionsCall) Header() http.Header {
156290	if c.header_ == nil {
156291		c.header_ = make(http.Header)
156292	}
156293	return c.header_
156294}
156295
156296func (c *TargetVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
156297	reqHeaders := make(http.Header)
156298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
156299	for k, v := range c.header_ {
156300		reqHeaders[k] = v
156301	}
156302	reqHeaders.Set("User-Agent", c.s.userAgent())
156303	var body io.Reader = nil
156304	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
156305	if err != nil {
156306		return nil, err
156307	}
156308	reqHeaders.Set("Content-Type", "application/json")
156309	c.urlParams_.Set("alt", alt)
156310	c.urlParams_.Set("prettyPrint", "false")
156311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions")
156312	urls += "?" + c.urlParams_.Encode()
156313	req, err := http.NewRequest("POST", urls, body)
156314	if err != nil {
156315		return nil, err
156316	}
156317	req.Header = reqHeaders
156318	googleapi.Expand(req.URL, map[string]string{
156319		"project":  c.project,
156320		"region":   c.region,
156321		"resource": c.resource,
156322	})
156323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156324}
156325
156326// Do executes the "compute.targetVpnGateways.testIamPermissions" call.
156327// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
156328// non-2xx status code is an error. Response headers are in either
156329// *TestPermissionsResponse.ServerResponse.Header or (if a response was
156330// returned at all) in error.(*googleapi.Error).Header. Use
156331// googleapi.IsNotModified to check whether the returned error was
156332// because http.StatusNotModified was returned.
156333func (c *TargetVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
156334	gensupport.SetOptions(c.urlParams_, opts...)
156335	res, err := c.doRequest("json")
156336	if res != nil && res.StatusCode == http.StatusNotModified {
156337		if res.Body != nil {
156338			res.Body.Close()
156339		}
156340		return nil, &googleapi.Error{
156341			Code:   res.StatusCode,
156342			Header: res.Header,
156343		}
156344	}
156345	if err != nil {
156346		return nil, err
156347	}
156348	defer googleapi.CloseBody(res)
156349	if err := googleapi.CheckResponse(res); err != nil {
156350		return nil, err
156351	}
156352	ret := &TestPermissionsResponse{
156353		ServerResponse: googleapi.ServerResponse{
156354			Header:         res.Header,
156355			HTTPStatusCode: res.StatusCode,
156356		},
156357	}
156358	target := &ret
156359	if err := gensupport.DecodeResponse(target, res); err != nil {
156360		return nil, err
156361	}
156362	return ret, nil
156363	// {
156364	//   "description": "Returns permissions that a caller has on the specified resource.",
156365	//   "httpMethod": "POST",
156366	//   "id": "compute.targetVpnGateways.testIamPermissions",
156367	//   "parameterOrder": [
156368	//     "project",
156369	//     "region",
156370	//     "resource"
156371	//   ],
156372	//   "parameters": {
156373	//     "project": {
156374	//       "description": "Project ID for this request.",
156375	//       "location": "path",
156376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156377	//       "required": true,
156378	//       "type": "string"
156379	//     },
156380	//     "region": {
156381	//       "description": "The name of the region for this request.",
156382	//       "location": "path",
156383	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156384	//       "required": true,
156385	//       "type": "string"
156386	//     },
156387	//     "resource": {
156388	//       "description": "Name or id of the resource for this request.",
156389	//       "location": "path",
156390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156391	//       "required": true,
156392	//       "type": "string"
156393	//     }
156394	//   },
156395	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions",
156396	//   "request": {
156397	//     "$ref": "TestPermissionsRequest"
156398	//   },
156399	//   "response": {
156400	//     "$ref": "TestPermissionsResponse"
156401	//   },
156402	//   "scopes": [
156403	//     "https://www.googleapis.com/auth/cloud-platform",
156404	//     "https://www.googleapis.com/auth/compute",
156405	//     "https://www.googleapis.com/auth/compute.readonly"
156406	//   ]
156407	// }
156408
156409}
156410
156411// method id "compute.urlMaps.aggregatedList":
156412
156413type UrlMapsAggregatedListCall struct {
156414	s            *Service
156415	project      string
156416	urlParams_   gensupport.URLParams
156417	ifNoneMatch_ string
156418	ctx_         context.Context
156419	header_      http.Header
156420}
156421
156422// AggregatedList: Retrieves the list of all UrlMap resources, regional
156423// and global, available to the specified project.
156424func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
156425	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156426	c.project = project
156427	return c
156428}
156429
156430// Filter sets the optional parameter "filter": A filter expression that
156431// filters resources listed in the response. The expression must specify
156432// the field name, a comparison operator, and the value that you want to
156433// use for filtering. The value must be a string, a number, or a
156434// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156435// `<`.
156436//
156437// For example, if you are filtering Compute Engine instances, you can
156438// exclude instances named `example-instance` by specifying `name !=
156439// example-instance`.
156440//
156441// You can also filter nested fields. For example, you could specify
156442// `scheduling.automaticRestart = false` to include instances only if
156443// they are not scheduled for automatic restarts. You can use filtering
156444// on nested fields to filter based on resource labels.
156445//
156446// To filter on multiple expressions, provide each separate expression
156447// within parentheses. For example: ``` (scheduling.automaticRestart =
156448// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
156449// is an `AND` expression. However, you can include `AND` and `OR`
156450// expressions explicitly. For example: ``` (cpuPlatform = "Intel
156451// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
156452// (scheduling.automaticRestart = true) ```
156453func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
156454	c.urlParams_.Set("filter", filter)
156455	return c
156456}
156457
156458// IncludeAllScopes sets the optional parameter "includeAllScopes":
156459// Indicates whether every visible scope for each scope type (zone,
156460// region, global) should be included in the response. For new resource
156461// types added after this field, the flag has no effect as new resource
156462// types will always include every visible scope for each scope type in
156463// response. For resource types which predate this field, if this flag
156464// is omitted or false, only scopes of the scope types where the
156465// resource type is expected to be found will be included.
156466func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
156467	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
156468	return c
156469}
156470
156471// MaxResults sets the optional parameter "maxResults": The maximum
156472// number of results per page that should be returned. If the number of
156473// available results is larger than `maxResults`, Compute Engine returns
156474// a `nextPageToken` that can be used to get the next page of results in
156475// subsequent list requests. Acceptable values are `0` to `500`,
156476// inclusive. (Default: `500`)
156477func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
156478	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156479	return c
156480}
156481
156482// OrderBy sets the optional parameter "orderBy": Sorts list results by
156483// a certain order. By default, results are returned in alphanumerical
156484// order based on the resource name.
156485//
156486// You can also sort results in descending order based on the creation
156487// timestamp using `orderBy="creationTimestamp desc". This sorts
156488// results based on the `creationTimestamp` field in reverse
156489// chronological order (newest result first). Use this to sort resources
156490// like operations so that the newest operation is returned
156491// first.
156492//
156493// Currently, only sorting by `name` or `creationTimestamp desc` is
156494// supported.
156495func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
156496	c.urlParams_.Set("orderBy", orderBy)
156497	return c
156498}
156499
156500// PageToken sets the optional parameter "pageToken": Specifies a page
156501// token to use. Set `pageToken` to the `nextPageToken` returned by a
156502// previous list request to get the next page of results.
156503func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
156504	c.urlParams_.Set("pageToken", pageToken)
156505	return c
156506}
156507
156508// Fields allows partial responses to be retrieved. See
156509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156510// for more information.
156511func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
156512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156513	return c
156514}
156515
156516// IfNoneMatch sets the optional parameter which makes the operation
156517// fail if the object's ETag matches the given value. This is useful for
156518// getting updates only after the object has changed since the last
156519// request. Use googleapi.IsNotModified to check whether the response
156520// error from Do is the result of In-None-Match.
156521func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
156522	c.ifNoneMatch_ = entityTag
156523	return c
156524}
156525
156526// Context sets the context to be used in this call's Do method. Any
156527// pending HTTP request will be aborted if the provided context is
156528// canceled.
156529func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
156530	c.ctx_ = ctx
156531	return c
156532}
156533
156534// Header returns an http.Header that can be modified by the caller to
156535// add HTTP headers to the request.
156536func (c *UrlMapsAggregatedListCall) Header() http.Header {
156537	if c.header_ == nil {
156538		c.header_ = make(http.Header)
156539	}
156540	return c.header_
156541}
156542
156543func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
156544	reqHeaders := make(http.Header)
156545	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
156546	for k, v := range c.header_ {
156547		reqHeaders[k] = v
156548	}
156549	reqHeaders.Set("User-Agent", c.s.userAgent())
156550	if c.ifNoneMatch_ != "" {
156551		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156552	}
156553	var body io.Reader = nil
156554	c.urlParams_.Set("alt", alt)
156555	c.urlParams_.Set("prettyPrint", "false")
156556	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/urlMaps")
156557	urls += "?" + c.urlParams_.Encode()
156558	req, err := http.NewRequest("GET", urls, body)
156559	if err != nil {
156560		return nil, err
156561	}
156562	req.Header = reqHeaders
156563	googleapi.Expand(req.URL, map[string]string{
156564		"project": c.project,
156565	})
156566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156567}
156568
156569// Do executes the "compute.urlMaps.aggregatedList" call.
156570// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
156571// non-2xx status code is an error. Response headers are in either
156572// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
156573// returned at all) in error.(*googleapi.Error).Header. Use
156574// googleapi.IsNotModified to check whether the returned error was
156575// because http.StatusNotModified was returned.
156576func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
156577	gensupport.SetOptions(c.urlParams_, opts...)
156578	res, err := c.doRequest("json")
156579	if res != nil && res.StatusCode == http.StatusNotModified {
156580		if res.Body != nil {
156581			res.Body.Close()
156582		}
156583		return nil, &googleapi.Error{
156584			Code:   res.StatusCode,
156585			Header: res.Header,
156586		}
156587	}
156588	if err != nil {
156589		return nil, err
156590	}
156591	defer googleapi.CloseBody(res)
156592	if err := googleapi.CheckResponse(res); err != nil {
156593		return nil, err
156594	}
156595	ret := &UrlMapsAggregatedList{
156596		ServerResponse: googleapi.ServerResponse{
156597			Header:         res.Header,
156598			HTTPStatusCode: res.StatusCode,
156599		},
156600	}
156601	target := &ret
156602	if err := gensupport.DecodeResponse(target, res); err != nil {
156603		return nil, err
156604	}
156605	return ret, nil
156606	// {
156607	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
156608	//   "httpMethod": "GET",
156609	//   "id": "compute.urlMaps.aggregatedList",
156610	//   "parameterOrder": [
156611	//     "project"
156612	//   ],
156613	//   "parameters": {
156614	//     "filter": {
156615	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
156616	//       "location": "query",
156617	//       "type": "string"
156618	//     },
156619	//     "includeAllScopes": {
156620	//       "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.",
156621	//       "location": "query",
156622	//       "type": "boolean"
156623	//     },
156624	//     "maxResults": {
156625	//       "default": "500",
156626	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
156627	//       "format": "uint32",
156628	//       "location": "query",
156629	//       "minimum": "0",
156630	//       "type": "integer"
156631	//     },
156632	//     "orderBy": {
156633	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
156634	//       "location": "query",
156635	//       "type": "string"
156636	//     },
156637	//     "pageToken": {
156638	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
156639	//       "location": "query",
156640	//       "type": "string"
156641	//     },
156642	//     "project": {
156643	//       "description": "Name of the project scoping this request.",
156644	//       "location": "path",
156645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156646	//       "required": true,
156647	//       "type": "string"
156648	//     }
156649	//   },
156650	//   "path": "{project}/aggregated/urlMaps",
156651	//   "response": {
156652	//     "$ref": "UrlMapsAggregatedList"
156653	//   },
156654	//   "scopes": [
156655	//     "https://www.googleapis.com/auth/cloud-platform",
156656	//     "https://www.googleapis.com/auth/compute",
156657	//     "https://www.googleapis.com/auth/compute.readonly"
156658	//   ]
156659	// }
156660
156661}
156662
156663// Pages invokes f for each page of results.
156664// A non-nil error returned from f will halt the iteration.
156665// The provided context supersedes any context provided to the Context method.
156666func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
156667	c.ctx_ = ctx
156668	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156669	for {
156670		x, err := c.Do()
156671		if err != nil {
156672			return err
156673		}
156674		if err := f(x); err != nil {
156675			return err
156676		}
156677		if x.NextPageToken == "" {
156678			return nil
156679		}
156680		c.PageToken(x.NextPageToken)
156681	}
156682}
156683
156684// method id "compute.urlMaps.delete":
156685
156686type UrlMapsDeleteCall struct {
156687	s          *Service
156688	project    string
156689	urlMap     string
156690	urlParams_ gensupport.URLParams
156691	ctx_       context.Context
156692	header_    http.Header
156693}
156694
156695// Delete: Deletes the specified UrlMap resource.
156696// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
156697func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
156698	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156699	c.project = project
156700	c.urlMap = urlMap
156701	return c
156702}
156703
156704// RequestId sets the optional parameter "requestId": An optional
156705// request ID to identify requests. Specify a unique request ID so that
156706// if you must retry your request, the server will know to ignore the
156707// request if it has already been completed.
156708//
156709// For example, consider a situation where you make an initial request
156710// and the request times out. If you make the request again with the
156711// same request ID, the server can check if original operation with the
156712// same request ID was received, and if so, will ignore the second
156713// request. This prevents clients from accidentally creating duplicate
156714// commitments.
156715//
156716// The request ID must be a valid UUID with the exception that zero UUID
156717// is not supported (00000000-0000-0000-0000-000000000000).
156718func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
156719	c.urlParams_.Set("requestId", requestId)
156720	return c
156721}
156722
156723// Fields allows partial responses to be retrieved. See
156724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156725// for more information.
156726func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
156727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156728	return c
156729}
156730
156731// Context sets the context to be used in this call's Do method. Any
156732// pending HTTP request will be aborted if the provided context is
156733// canceled.
156734func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
156735	c.ctx_ = ctx
156736	return c
156737}
156738
156739// Header returns an http.Header that can be modified by the caller to
156740// add HTTP headers to the request.
156741func (c *UrlMapsDeleteCall) Header() http.Header {
156742	if c.header_ == nil {
156743		c.header_ = make(http.Header)
156744	}
156745	return c.header_
156746}
156747
156748func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
156749	reqHeaders := make(http.Header)
156750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
156751	for k, v := range c.header_ {
156752		reqHeaders[k] = v
156753	}
156754	reqHeaders.Set("User-Agent", c.s.userAgent())
156755	var body io.Reader = nil
156756	c.urlParams_.Set("alt", alt)
156757	c.urlParams_.Set("prettyPrint", "false")
156758	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
156759	urls += "?" + c.urlParams_.Encode()
156760	req, err := http.NewRequest("DELETE", urls, body)
156761	if err != nil {
156762		return nil, err
156763	}
156764	req.Header = reqHeaders
156765	googleapi.Expand(req.URL, map[string]string{
156766		"project": c.project,
156767		"urlMap":  c.urlMap,
156768	})
156769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156770}
156771
156772// Do executes the "compute.urlMaps.delete" call.
156773// Exactly one of *Operation or error will be non-nil. Any non-2xx
156774// status code is an error. Response headers are in either
156775// *Operation.ServerResponse.Header or (if a response was returned at
156776// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156777// to check whether the returned error was because
156778// http.StatusNotModified was returned.
156779func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156780	gensupport.SetOptions(c.urlParams_, opts...)
156781	res, err := c.doRequest("json")
156782	if res != nil && res.StatusCode == http.StatusNotModified {
156783		if res.Body != nil {
156784			res.Body.Close()
156785		}
156786		return nil, &googleapi.Error{
156787			Code:   res.StatusCode,
156788			Header: res.Header,
156789		}
156790	}
156791	if err != nil {
156792		return nil, err
156793	}
156794	defer googleapi.CloseBody(res)
156795	if err := googleapi.CheckResponse(res); err != nil {
156796		return nil, err
156797	}
156798	ret := &Operation{
156799		ServerResponse: googleapi.ServerResponse{
156800			Header:         res.Header,
156801			HTTPStatusCode: res.StatusCode,
156802		},
156803	}
156804	target := &ret
156805	if err := gensupport.DecodeResponse(target, res); err != nil {
156806		return nil, err
156807	}
156808	return ret, nil
156809	// {
156810	//   "description": "Deletes the specified UrlMap resource.",
156811	//   "httpMethod": "DELETE",
156812	//   "id": "compute.urlMaps.delete",
156813	//   "parameterOrder": [
156814	//     "project",
156815	//     "urlMap"
156816	//   ],
156817	//   "parameters": {
156818	//     "project": {
156819	//       "description": "Project ID for this request.",
156820	//       "location": "path",
156821	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156822	//       "required": true,
156823	//       "type": "string"
156824	//     },
156825	//     "requestId": {
156826	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156827	//       "location": "query",
156828	//       "type": "string"
156829	//     },
156830	//     "urlMap": {
156831	//       "description": "Name of the UrlMap resource to delete.",
156832	//       "location": "path",
156833	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156834	//       "required": true,
156835	//       "type": "string"
156836	//     }
156837	//   },
156838	//   "path": "{project}/global/urlMaps/{urlMap}",
156839	//   "response": {
156840	//     "$ref": "Operation"
156841	//   },
156842	//   "scopes": [
156843	//     "https://www.googleapis.com/auth/cloud-platform",
156844	//     "https://www.googleapis.com/auth/compute"
156845	//   ]
156846	// }
156847
156848}
156849
156850// method id "compute.urlMaps.get":
156851
156852type UrlMapsGetCall struct {
156853	s            *Service
156854	project      string
156855	urlMap       string
156856	urlParams_   gensupport.URLParams
156857	ifNoneMatch_ string
156858	ctx_         context.Context
156859	header_      http.Header
156860}
156861
156862// Get: Returns the specified UrlMap resource. Gets a list of available
156863// URL maps by making a list() request.
156864// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
156865func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
156866	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156867	c.project = project
156868	c.urlMap = urlMap
156869	return c
156870}
156871
156872// Fields allows partial responses to be retrieved. See
156873// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156874// for more information.
156875func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
156876	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156877	return c
156878}
156879
156880// IfNoneMatch sets the optional parameter which makes the operation
156881// fail if the object's ETag matches the given value. This is useful for
156882// getting updates only after the object has changed since the last
156883// request. Use googleapi.IsNotModified to check whether the response
156884// error from Do is the result of In-None-Match.
156885func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
156886	c.ifNoneMatch_ = entityTag
156887	return c
156888}
156889
156890// Context sets the context to be used in this call's Do method. Any
156891// pending HTTP request will be aborted if the provided context is
156892// canceled.
156893func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
156894	c.ctx_ = ctx
156895	return c
156896}
156897
156898// Header returns an http.Header that can be modified by the caller to
156899// add HTTP headers to the request.
156900func (c *UrlMapsGetCall) Header() http.Header {
156901	if c.header_ == nil {
156902		c.header_ = make(http.Header)
156903	}
156904	return c.header_
156905}
156906
156907func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
156908	reqHeaders := make(http.Header)
156909	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
156910	for k, v := range c.header_ {
156911		reqHeaders[k] = v
156912	}
156913	reqHeaders.Set("User-Agent", c.s.userAgent())
156914	if c.ifNoneMatch_ != "" {
156915		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156916	}
156917	var body io.Reader = nil
156918	c.urlParams_.Set("alt", alt)
156919	c.urlParams_.Set("prettyPrint", "false")
156920	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
156921	urls += "?" + c.urlParams_.Encode()
156922	req, err := http.NewRequest("GET", urls, body)
156923	if err != nil {
156924		return nil, err
156925	}
156926	req.Header = reqHeaders
156927	googleapi.Expand(req.URL, map[string]string{
156928		"project": c.project,
156929		"urlMap":  c.urlMap,
156930	})
156931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156932}
156933
156934// Do executes the "compute.urlMaps.get" call.
156935// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
156936// code is an error. Response headers are in either
156937// *UrlMap.ServerResponse.Header or (if a response was returned at all)
156938// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
156939// check whether the returned error was because http.StatusNotModified
156940// was returned.
156941func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
156942	gensupport.SetOptions(c.urlParams_, opts...)
156943	res, err := c.doRequest("json")
156944	if res != nil && res.StatusCode == http.StatusNotModified {
156945		if res.Body != nil {
156946			res.Body.Close()
156947		}
156948		return nil, &googleapi.Error{
156949			Code:   res.StatusCode,
156950			Header: res.Header,
156951		}
156952	}
156953	if err != nil {
156954		return nil, err
156955	}
156956	defer googleapi.CloseBody(res)
156957	if err := googleapi.CheckResponse(res); err != nil {
156958		return nil, err
156959	}
156960	ret := &UrlMap{
156961		ServerResponse: googleapi.ServerResponse{
156962			Header:         res.Header,
156963			HTTPStatusCode: res.StatusCode,
156964		},
156965	}
156966	target := &ret
156967	if err := gensupport.DecodeResponse(target, res); err != nil {
156968		return nil, err
156969	}
156970	return ret, nil
156971	// {
156972	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
156973	//   "httpMethod": "GET",
156974	//   "id": "compute.urlMaps.get",
156975	//   "parameterOrder": [
156976	//     "project",
156977	//     "urlMap"
156978	//   ],
156979	//   "parameters": {
156980	//     "project": {
156981	//       "description": "Project ID for this request.",
156982	//       "location": "path",
156983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156984	//       "required": true,
156985	//       "type": "string"
156986	//     },
156987	//     "urlMap": {
156988	//       "description": "Name of the UrlMap resource to return.",
156989	//       "location": "path",
156990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156991	//       "required": true,
156992	//       "type": "string"
156993	//     }
156994	//   },
156995	//   "path": "{project}/global/urlMaps/{urlMap}",
156996	//   "response": {
156997	//     "$ref": "UrlMap"
156998	//   },
156999	//   "scopes": [
157000	//     "https://www.googleapis.com/auth/cloud-platform",
157001	//     "https://www.googleapis.com/auth/compute",
157002	//     "https://www.googleapis.com/auth/compute.readonly"
157003	//   ]
157004	// }
157005
157006}
157007
157008// method id "compute.urlMaps.insert":
157009
157010type UrlMapsInsertCall struct {
157011	s          *Service
157012	project    string
157013	urlmap     *UrlMap
157014	urlParams_ gensupport.URLParams
157015	ctx_       context.Context
157016	header_    http.Header
157017}
157018
157019// Insert: Creates a UrlMap resource in the specified project using the
157020// data included in the request.
157021// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
157022func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
157023	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157024	c.project = project
157025	c.urlmap = urlmap
157026	return c
157027}
157028
157029// RequestId sets the optional parameter "requestId": An optional
157030// request ID to identify requests. Specify a unique request ID so that
157031// if you must retry your request, the server will know to ignore the
157032// request if it has already been completed.
157033//
157034// For example, consider a situation where you make an initial request
157035// and the request times out. If you make the request again with the
157036// same request ID, the server can check if original operation with the
157037// same request ID was received, and if so, will ignore the second
157038// request. This prevents clients from accidentally creating duplicate
157039// commitments.
157040//
157041// The request ID must be a valid UUID with the exception that zero UUID
157042// is not supported (00000000-0000-0000-0000-000000000000).
157043func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
157044	c.urlParams_.Set("requestId", requestId)
157045	return c
157046}
157047
157048// Fields allows partial responses to be retrieved. See
157049// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157050// for more information.
157051func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
157052	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157053	return c
157054}
157055
157056// Context sets the context to be used in this call's Do method. Any
157057// pending HTTP request will be aborted if the provided context is
157058// canceled.
157059func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
157060	c.ctx_ = ctx
157061	return c
157062}
157063
157064// Header returns an http.Header that can be modified by the caller to
157065// add HTTP headers to the request.
157066func (c *UrlMapsInsertCall) Header() http.Header {
157067	if c.header_ == nil {
157068		c.header_ = make(http.Header)
157069	}
157070	return c.header_
157071}
157072
157073func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
157074	reqHeaders := make(http.Header)
157075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
157076	for k, v := range c.header_ {
157077		reqHeaders[k] = v
157078	}
157079	reqHeaders.Set("User-Agent", c.s.userAgent())
157080	var body io.Reader = nil
157081	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
157082	if err != nil {
157083		return nil, err
157084	}
157085	reqHeaders.Set("Content-Type", "application/json")
157086	c.urlParams_.Set("alt", alt)
157087	c.urlParams_.Set("prettyPrint", "false")
157088	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
157089	urls += "?" + c.urlParams_.Encode()
157090	req, err := http.NewRequest("POST", urls, body)
157091	if err != nil {
157092		return nil, err
157093	}
157094	req.Header = reqHeaders
157095	googleapi.Expand(req.URL, map[string]string{
157096		"project": c.project,
157097	})
157098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157099}
157100
157101// Do executes the "compute.urlMaps.insert" call.
157102// Exactly one of *Operation or error will be non-nil. Any non-2xx
157103// status code is an error. Response headers are in either
157104// *Operation.ServerResponse.Header or (if a response was returned at
157105// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157106// to check whether the returned error was because
157107// http.StatusNotModified was returned.
157108func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157109	gensupport.SetOptions(c.urlParams_, opts...)
157110	res, err := c.doRequest("json")
157111	if res != nil && res.StatusCode == http.StatusNotModified {
157112		if res.Body != nil {
157113			res.Body.Close()
157114		}
157115		return nil, &googleapi.Error{
157116			Code:   res.StatusCode,
157117			Header: res.Header,
157118		}
157119	}
157120	if err != nil {
157121		return nil, err
157122	}
157123	defer googleapi.CloseBody(res)
157124	if err := googleapi.CheckResponse(res); err != nil {
157125		return nil, err
157126	}
157127	ret := &Operation{
157128		ServerResponse: googleapi.ServerResponse{
157129			Header:         res.Header,
157130			HTTPStatusCode: res.StatusCode,
157131		},
157132	}
157133	target := &ret
157134	if err := gensupport.DecodeResponse(target, res); err != nil {
157135		return nil, err
157136	}
157137	return ret, nil
157138	// {
157139	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
157140	//   "httpMethod": "POST",
157141	//   "id": "compute.urlMaps.insert",
157142	//   "parameterOrder": [
157143	//     "project"
157144	//   ],
157145	//   "parameters": {
157146	//     "project": {
157147	//       "description": "Project ID for this request.",
157148	//       "location": "path",
157149	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157150	//       "required": true,
157151	//       "type": "string"
157152	//     },
157153	//     "requestId": {
157154	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157155	//       "location": "query",
157156	//       "type": "string"
157157	//     }
157158	//   },
157159	//   "path": "{project}/global/urlMaps",
157160	//   "request": {
157161	//     "$ref": "UrlMap"
157162	//   },
157163	//   "response": {
157164	//     "$ref": "Operation"
157165	//   },
157166	//   "scopes": [
157167	//     "https://www.googleapis.com/auth/cloud-platform",
157168	//     "https://www.googleapis.com/auth/compute"
157169	//   ]
157170	// }
157171
157172}
157173
157174// method id "compute.urlMaps.invalidateCache":
157175
157176type UrlMapsInvalidateCacheCall struct {
157177	s                     *Service
157178	project               string
157179	urlMap                string
157180	cacheinvalidationrule *CacheInvalidationRule
157181	urlParams_            gensupport.URLParams
157182	ctx_                  context.Context
157183	header_               http.Header
157184}
157185
157186// InvalidateCache: Initiates a cache invalidation operation,
157187// invalidating the specified path, scoped to the specified UrlMap.
157188func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
157189	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157190	c.project = project
157191	c.urlMap = urlMap
157192	c.cacheinvalidationrule = cacheinvalidationrule
157193	return c
157194}
157195
157196// RequestId sets the optional parameter "requestId": An optional
157197// request ID to identify requests. Specify a unique request ID so that
157198// if you must retry your request, the server will know to ignore the
157199// request if it has already been completed.
157200//
157201// For example, consider a situation where you make an initial request
157202// and the request times out. If you make the request again with the
157203// same request ID, the server can check if original operation with the
157204// same request ID was received, and if so, will ignore the second
157205// request. This prevents clients from accidentally creating duplicate
157206// commitments.
157207//
157208// The request ID must be a valid UUID with the exception that zero UUID
157209// is not supported (00000000-0000-0000-0000-000000000000).
157210func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
157211	c.urlParams_.Set("requestId", requestId)
157212	return c
157213}
157214
157215// Fields allows partial responses to be retrieved. See
157216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157217// for more information.
157218func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
157219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157220	return c
157221}
157222
157223// Context sets the context to be used in this call's Do method. Any
157224// pending HTTP request will be aborted if the provided context is
157225// canceled.
157226func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
157227	c.ctx_ = ctx
157228	return c
157229}
157230
157231// Header returns an http.Header that can be modified by the caller to
157232// add HTTP headers to the request.
157233func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
157234	if c.header_ == nil {
157235		c.header_ = make(http.Header)
157236	}
157237	return c.header_
157238}
157239
157240func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
157241	reqHeaders := make(http.Header)
157242	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
157243	for k, v := range c.header_ {
157244		reqHeaders[k] = v
157245	}
157246	reqHeaders.Set("User-Agent", c.s.userAgent())
157247	var body io.Reader = nil
157248	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
157249	if err != nil {
157250		return nil, err
157251	}
157252	reqHeaders.Set("Content-Type", "application/json")
157253	c.urlParams_.Set("alt", alt)
157254	c.urlParams_.Set("prettyPrint", "false")
157255	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
157256	urls += "?" + c.urlParams_.Encode()
157257	req, err := http.NewRequest("POST", urls, body)
157258	if err != nil {
157259		return nil, err
157260	}
157261	req.Header = reqHeaders
157262	googleapi.Expand(req.URL, map[string]string{
157263		"project": c.project,
157264		"urlMap":  c.urlMap,
157265	})
157266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157267}
157268
157269// Do executes the "compute.urlMaps.invalidateCache" call.
157270// Exactly one of *Operation or error will be non-nil. Any non-2xx
157271// status code is an error. Response headers are in either
157272// *Operation.ServerResponse.Header or (if a response was returned at
157273// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157274// to check whether the returned error was because
157275// http.StatusNotModified was returned.
157276func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157277	gensupport.SetOptions(c.urlParams_, opts...)
157278	res, err := c.doRequest("json")
157279	if res != nil && res.StatusCode == http.StatusNotModified {
157280		if res.Body != nil {
157281			res.Body.Close()
157282		}
157283		return nil, &googleapi.Error{
157284			Code:   res.StatusCode,
157285			Header: res.Header,
157286		}
157287	}
157288	if err != nil {
157289		return nil, err
157290	}
157291	defer googleapi.CloseBody(res)
157292	if err := googleapi.CheckResponse(res); err != nil {
157293		return nil, err
157294	}
157295	ret := &Operation{
157296		ServerResponse: googleapi.ServerResponse{
157297			Header:         res.Header,
157298			HTTPStatusCode: res.StatusCode,
157299		},
157300	}
157301	target := &ret
157302	if err := gensupport.DecodeResponse(target, res); err != nil {
157303		return nil, err
157304	}
157305	return ret, nil
157306	// {
157307	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
157308	//   "httpMethod": "POST",
157309	//   "id": "compute.urlMaps.invalidateCache",
157310	//   "parameterOrder": [
157311	//     "project",
157312	//     "urlMap"
157313	//   ],
157314	//   "parameters": {
157315	//     "project": {
157316	//       "description": "Project ID for this request.",
157317	//       "location": "path",
157318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157319	//       "required": true,
157320	//       "type": "string"
157321	//     },
157322	//     "requestId": {
157323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157324	//       "location": "query",
157325	//       "type": "string"
157326	//     },
157327	//     "urlMap": {
157328	//       "description": "Name of the UrlMap scoping this request.",
157329	//       "location": "path",
157330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157331	//       "required": true,
157332	//       "type": "string"
157333	//     }
157334	//   },
157335	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
157336	//   "request": {
157337	//     "$ref": "CacheInvalidationRule"
157338	//   },
157339	//   "response": {
157340	//     "$ref": "Operation"
157341	//   },
157342	//   "scopes": [
157343	//     "https://www.googleapis.com/auth/cloud-platform",
157344	//     "https://www.googleapis.com/auth/compute"
157345	//   ]
157346	// }
157347
157348}
157349
157350// method id "compute.urlMaps.list":
157351
157352type UrlMapsListCall struct {
157353	s            *Service
157354	project      string
157355	urlParams_   gensupport.URLParams
157356	ifNoneMatch_ string
157357	ctx_         context.Context
157358	header_      http.Header
157359}
157360
157361// List: Retrieves the list of UrlMap resources available to the
157362// specified project.
157363// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
157364func (r *UrlMapsService) List(project string) *UrlMapsListCall {
157365	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157366	c.project = project
157367	return c
157368}
157369
157370// Filter sets the optional parameter "filter": A filter expression that
157371// filters resources listed in the response. The expression must specify
157372// the field name, a comparison operator, and the value that you want to
157373// use for filtering. The value must be a string, a number, or a
157374// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157375// `<`.
157376//
157377// For example, if you are filtering Compute Engine instances, you can
157378// exclude instances named `example-instance` by specifying `name !=
157379// example-instance`.
157380//
157381// You can also filter nested fields. For example, you could specify
157382// `scheduling.automaticRestart = false` to include instances only if
157383// they are not scheduled for automatic restarts. You can use filtering
157384// on nested fields to filter based on resource labels.
157385//
157386// To filter on multiple expressions, provide each separate expression
157387// within parentheses. For example: ``` (scheduling.automaticRestart =
157388// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
157389// is an `AND` expression. However, you can include `AND` and `OR`
157390// expressions explicitly. For example: ``` (cpuPlatform = "Intel
157391// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
157392// (scheduling.automaticRestart = true) ```
157393func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
157394	c.urlParams_.Set("filter", filter)
157395	return c
157396}
157397
157398// MaxResults sets the optional parameter "maxResults": The maximum
157399// number of results per page that should be returned. If the number of
157400// available results is larger than `maxResults`, Compute Engine returns
157401// a `nextPageToken` that can be used to get the next page of results in
157402// subsequent list requests. Acceptable values are `0` to `500`,
157403// inclusive. (Default: `500`)
157404func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
157405	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157406	return c
157407}
157408
157409// OrderBy sets the optional parameter "orderBy": Sorts list results by
157410// a certain order. By default, results are returned in alphanumerical
157411// order based on the resource name.
157412//
157413// You can also sort results in descending order based on the creation
157414// timestamp using `orderBy="creationTimestamp desc". This sorts
157415// results based on the `creationTimestamp` field in reverse
157416// chronological order (newest result first). Use this to sort resources
157417// like operations so that the newest operation is returned
157418// first.
157419//
157420// Currently, only sorting by `name` or `creationTimestamp desc` is
157421// supported.
157422func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
157423	c.urlParams_.Set("orderBy", orderBy)
157424	return c
157425}
157426
157427// PageToken sets the optional parameter "pageToken": Specifies a page
157428// token to use. Set `pageToken` to the `nextPageToken` returned by a
157429// previous list request to get the next page of results.
157430func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
157431	c.urlParams_.Set("pageToken", pageToken)
157432	return c
157433}
157434
157435// Fields allows partial responses to be retrieved. See
157436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157437// for more information.
157438func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
157439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157440	return c
157441}
157442
157443// IfNoneMatch sets the optional parameter which makes the operation
157444// fail if the object's ETag matches the given value. This is useful for
157445// getting updates only after the object has changed since the last
157446// request. Use googleapi.IsNotModified to check whether the response
157447// error from Do is the result of In-None-Match.
157448func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
157449	c.ifNoneMatch_ = entityTag
157450	return c
157451}
157452
157453// Context sets the context to be used in this call's Do method. Any
157454// pending HTTP request will be aborted if the provided context is
157455// canceled.
157456func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
157457	c.ctx_ = ctx
157458	return c
157459}
157460
157461// Header returns an http.Header that can be modified by the caller to
157462// add HTTP headers to the request.
157463func (c *UrlMapsListCall) Header() http.Header {
157464	if c.header_ == nil {
157465		c.header_ = make(http.Header)
157466	}
157467	return c.header_
157468}
157469
157470func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
157471	reqHeaders := make(http.Header)
157472	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
157473	for k, v := range c.header_ {
157474		reqHeaders[k] = v
157475	}
157476	reqHeaders.Set("User-Agent", c.s.userAgent())
157477	if c.ifNoneMatch_ != "" {
157478		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157479	}
157480	var body io.Reader = nil
157481	c.urlParams_.Set("alt", alt)
157482	c.urlParams_.Set("prettyPrint", "false")
157483	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
157484	urls += "?" + c.urlParams_.Encode()
157485	req, err := http.NewRequest("GET", urls, body)
157486	if err != nil {
157487		return nil, err
157488	}
157489	req.Header = reqHeaders
157490	googleapi.Expand(req.URL, map[string]string{
157491		"project": c.project,
157492	})
157493	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157494}
157495
157496// Do executes the "compute.urlMaps.list" call.
157497// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
157498// status code is an error. Response headers are in either
157499// *UrlMapList.ServerResponse.Header or (if a response was returned at
157500// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157501// to check whether the returned error was because
157502// http.StatusNotModified was returned.
157503func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
157504	gensupport.SetOptions(c.urlParams_, opts...)
157505	res, err := c.doRequest("json")
157506	if res != nil && res.StatusCode == http.StatusNotModified {
157507		if res.Body != nil {
157508			res.Body.Close()
157509		}
157510		return nil, &googleapi.Error{
157511			Code:   res.StatusCode,
157512			Header: res.Header,
157513		}
157514	}
157515	if err != nil {
157516		return nil, err
157517	}
157518	defer googleapi.CloseBody(res)
157519	if err := googleapi.CheckResponse(res); err != nil {
157520		return nil, err
157521	}
157522	ret := &UrlMapList{
157523		ServerResponse: googleapi.ServerResponse{
157524			Header:         res.Header,
157525			HTTPStatusCode: res.StatusCode,
157526		},
157527	}
157528	target := &ret
157529	if err := gensupport.DecodeResponse(target, res); err != nil {
157530		return nil, err
157531	}
157532	return ret, nil
157533	// {
157534	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
157535	//   "httpMethod": "GET",
157536	//   "id": "compute.urlMaps.list",
157537	//   "parameterOrder": [
157538	//     "project"
157539	//   ],
157540	//   "parameters": {
157541	//     "filter": {
157542	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
157543	//       "location": "query",
157544	//       "type": "string"
157545	//     },
157546	//     "maxResults": {
157547	//       "default": "500",
157548	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
157549	//       "format": "uint32",
157550	//       "location": "query",
157551	//       "minimum": "0",
157552	//       "type": "integer"
157553	//     },
157554	//     "orderBy": {
157555	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
157556	//       "location": "query",
157557	//       "type": "string"
157558	//     },
157559	//     "pageToken": {
157560	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
157561	//       "location": "query",
157562	//       "type": "string"
157563	//     },
157564	//     "project": {
157565	//       "description": "Project ID for this request.",
157566	//       "location": "path",
157567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157568	//       "required": true,
157569	//       "type": "string"
157570	//     }
157571	//   },
157572	//   "path": "{project}/global/urlMaps",
157573	//   "response": {
157574	//     "$ref": "UrlMapList"
157575	//   },
157576	//   "scopes": [
157577	//     "https://www.googleapis.com/auth/cloud-platform",
157578	//     "https://www.googleapis.com/auth/compute",
157579	//     "https://www.googleapis.com/auth/compute.readonly"
157580	//   ]
157581	// }
157582
157583}
157584
157585// Pages invokes f for each page of results.
157586// A non-nil error returned from f will halt the iteration.
157587// The provided context supersedes any context provided to the Context method.
157588func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
157589	c.ctx_ = ctx
157590	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157591	for {
157592		x, err := c.Do()
157593		if err != nil {
157594			return err
157595		}
157596		if err := f(x); err != nil {
157597			return err
157598		}
157599		if x.NextPageToken == "" {
157600			return nil
157601		}
157602		c.PageToken(x.NextPageToken)
157603	}
157604}
157605
157606// method id "compute.urlMaps.patch":
157607
157608type UrlMapsPatchCall struct {
157609	s          *Service
157610	project    string
157611	urlMap     string
157612	urlmap     *UrlMap
157613	urlParams_ gensupport.URLParams
157614	ctx_       context.Context
157615	header_    http.Header
157616}
157617
157618// Patch: Patches the specified UrlMap resource with the data included
157619// in the request. This method supports PATCH semantics and uses the
157620// JSON merge patch format and processing rules.
157621// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
157622func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
157623	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157624	c.project = project
157625	c.urlMap = urlMap
157626	c.urlmap = urlmap
157627	return c
157628}
157629
157630// RequestId sets the optional parameter "requestId": An optional
157631// request ID to identify requests. Specify a unique request ID so that
157632// if you must retry your request, the server will know to ignore the
157633// request if it has already been completed.
157634//
157635// For example, consider a situation where you make an initial request
157636// and the request times out. If you make the request again with the
157637// same request ID, the server can check if original operation with the
157638// same request ID was received, and if so, will ignore the second
157639// request. This prevents clients from accidentally creating duplicate
157640// commitments.
157641//
157642// The request ID must be a valid UUID with the exception that zero UUID
157643// is not supported (00000000-0000-0000-0000-000000000000).
157644func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
157645	c.urlParams_.Set("requestId", requestId)
157646	return c
157647}
157648
157649// Fields allows partial responses to be retrieved. See
157650// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157651// for more information.
157652func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
157653	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157654	return c
157655}
157656
157657// Context sets the context to be used in this call's Do method. Any
157658// pending HTTP request will be aborted if the provided context is
157659// canceled.
157660func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
157661	c.ctx_ = ctx
157662	return c
157663}
157664
157665// Header returns an http.Header that can be modified by the caller to
157666// add HTTP headers to the request.
157667func (c *UrlMapsPatchCall) Header() http.Header {
157668	if c.header_ == nil {
157669		c.header_ = make(http.Header)
157670	}
157671	return c.header_
157672}
157673
157674func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
157675	reqHeaders := make(http.Header)
157676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
157677	for k, v := range c.header_ {
157678		reqHeaders[k] = v
157679	}
157680	reqHeaders.Set("User-Agent", c.s.userAgent())
157681	var body io.Reader = nil
157682	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
157683	if err != nil {
157684		return nil, err
157685	}
157686	reqHeaders.Set("Content-Type", "application/json")
157687	c.urlParams_.Set("alt", alt)
157688	c.urlParams_.Set("prettyPrint", "false")
157689	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
157690	urls += "?" + c.urlParams_.Encode()
157691	req, err := http.NewRequest("PATCH", urls, body)
157692	if err != nil {
157693		return nil, err
157694	}
157695	req.Header = reqHeaders
157696	googleapi.Expand(req.URL, map[string]string{
157697		"project": c.project,
157698		"urlMap":  c.urlMap,
157699	})
157700	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157701}
157702
157703// Do executes the "compute.urlMaps.patch" call.
157704// Exactly one of *Operation or error will be non-nil. Any non-2xx
157705// status code is an error. Response headers are in either
157706// *Operation.ServerResponse.Header or (if a response was returned at
157707// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157708// to check whether the returned error was because
157709// http.StatusNotModified was returned.
157710func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157711	gensupport.SetOptions(c.urlParams_, opts...)
157712	res, err := c.doRequest("json")
157713	if res != nil && res.StatusCode == http.StatusNotModified {
157714		if res.Body != nil {
157715			res.Body.Close()
157716		}
157717		return nil, &googleapi.Error{
157718			Code:   res.StatusCode,
157719			Header: res.Header,
157720		}
157721	}
157722	if err != nil {
157723		return nil, err
157724	}
157725	defer googleapi.CloseBody(res)
157726	if err := googleapi.CheckResponse(res); err != nil {
157727		return nil, err
157728	}
157729	ret := &Operation{
157730		ServerResponse: googleapi.ServerResponse{
157731			Header:         res.Header,
157732			HTTPStatusCode: res.StatusCode,
157733		},
157734	}
157735	target := &ret
157736	if err := gensupport.DecodeResponse(target, res); err != nil {
157737		return nil, err
157738	}
157739	return ret, nil
157740	// {
157741	//   "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.",
157742	//   "httpMethod": "PATCH",
157743	//   "id": "compute.urlMaps.patch",
157744	//   "parameterOrder": [
157745	//     "project",
157746	//     "urlMap"
157747	//   ],
157748	//   "parameters": {
157749	//     "project": {
157750	//       "description": "Project ID for this request.",
157751	//       "location": "path",
157752	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157753	//       "required": true,
157754	//       "type": "string"
157755	//     },
157756	//     "requestId": {
157757	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157758	//       "location": "query",
157759	//       "type": "string"
157760	//     },
157761	//     "urlMap": {
157762	//       "description": "Name of the UrlMap resource to patch.",
157763	//       "location": "path",
157764	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157765	//       "required": true,
157766	//       "type": "string"
157767	//     }
157768	//   },
157769	//   "path": "{project}/global/urlMaps/{urlMap}",
157770	//   "request": {
157771	//     "$ref": "UrlMap"
157772	//   },
157773	//   "response": {
157774	//     "$ref": "Operation"
157775	//   },
157776	//   "scopes": [
157777	//     "https://www.googleapis.com/auth/cloud-platform",
157778	//     "https://www.googleapis.com/auth/compute"
157779	//   ]
157780	// }
157781
157782}
157783
157784// method id "compute.urlMaps.testIamPermissions":
157785
157786type UrlMapsTestIamPermissionsCall struct {
157787	s                      *Service
157788	project                string
157789	resource               string
157790	testpermissionsrequest *TestPermissionsRequest
157791	urlParams_             gensupport.URLParams
157792	ctx_                   context.Context
157793	header_                http.Header
157794}
157795
157796// TestIamPermissions: Returns permissions that a caller has on the
157797// specified resource.
157798func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall {
157799	c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157800	c.project = project
157801	c.resource = resource
157802	c.testpermissionsrequest = testpermissionsrequest
157803	return c
157804}
157805
157806// Fields allows partial responses to be retrieved. See
157807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157808// for more information.
157809func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall {
157810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157811	return c
157812}
157813
157814// Context sets the context to be used in this call's Do method. Any
157815// pending HTTP request will be aborted if the provided context is
157816// canceled.
157817func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall {
157818	c.ctx_ = ctx
157819	return c
157820}
157821
157822// Header returns an http.Header that can be modified by the caller to
157823// add HTTP headers to the request.
157824func (c *UrlMapsTestIamPermissionsCall) Header() http.Header {
157825	if c.header_ == nil {
157826		c.header_ = make(http.Header)
157827	}
157828	return c.header_
157829}
157830
157831func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
157832	reqHeaders := make(http.Header)
157833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
157834	for k, v := range c.header_ {
157835		reqHeaders[k] = v
157836	}
157837	reqHeaders.Set("User-Agent", c.s.userAgent())
157838	var body io.Reader = nil
157839	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
157840	if err != nil {
157841		return nil, err
157842	}
157843	reqHeaders.Set("Content-Type", "application/json")
157844	c.urlParams_.Set("alt", alt)
157845	c.urlParams_.Set("prettyPrint", "false")
157846	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{resource}/testIamPermissions")
157847	urls += "?" + c.urlParams_.Encode()
157848	req, err := http.NewRequest("POST", urls, body)
157849	if err != nil {
157850		return nil, err
157851	}
157852	req.Header = reqHeaders
157853	googleapi.Expand(req.URL, map[string]string{
157854		"project":  c.project,
157855		"resource": c.resource,
157856	})
157857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157858}
157859
157860// Do executes the "compute.urlMaps.testIamPermissions" call.
157861// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
157862// non-2xx status code is an error. Response headers are in either
157863// *TestPermissionsResponse.ServerResponse.Header or (if a response was
157864// returned at all) in error.(*googleapi.Error).Header. Use
157865// googleapi.IsNotModified to check whether the returned error was
157866// because http.StatusNotModified was returned.
157867func (c *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
157868	gensupport.SetOptions(c.urlParams_, opts...)
157869	res, err := c.doRequest("json")
157870	if res != nil && res.StatusCode == http.StatusNotModified {
157871		if res.Body != nil {
157872			res.Body.Close()
157873		}
157874		return nil, &googleapi.Error{
157875			Code:   res.StatusCode,
157876			Header: res.Header,
157877		}
157878	}
157879	if err != nil {
157880		return nil, err
157881	}
157882	defer googleapi.CloseBody(res)
157883	if err := googleapi.CheckResponse(res); err != nil {
157884		return nil, err
157885	}
157886	ret := &TestPermissionsResponse{
157887		ServerResponse: googleapi.ServerResponse{
157888			Header:         res.Header,
157889			HTTPStatusCode: res.StatusCode,
157890		},
157891	}
157892	target := &ret
157893	if err := gensupport.DecodeResponse(target, res); err != nil {
157894		return nil, err
157895	}
157896	return ret, nil
157897	// {
157898	//   "description": "Returns permissions that a caller has on the specified resource.",
157899	//   "httpMethod": "POST",
157900	//   "id": "compute.urlMaps.testIamPermissions",
157901	//   "parameterOrder": [
157902	//     "project",
157903	//     "resource"
157904	//   ],
157905	//   "parameters": {
157906	//     "project": {
157907	//       "description": "Project ID for this request.",
157908	//       "location": "path",
157909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157910	//       "required": true,
157911	//       "type": "string"
157912	//     },
157913	//     "resource": {
157914	//       "description": "Name or id of the resource for this request.",
157915	//       "location": "path",
157916	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157917	//       "required": true,
157918	//       "type": "string"
157919	//     }
157920	//   },
157921	//   "path": "{project}/global/urlMaps/{resource}/testIamPermissions",
157922	//   "request": {
157923	//     "$ref": "TestPermissionsRequest"
157924	//   },
157925	//   "response": {
157926	//     "$ref": "TestPermissionsResponse"
157927	//   },
157928	//   "scopes": [
157929	//     "https://www.googleapis.com/auth/cloud-platform",
157930	//     "https://www.googleapis.com/auth/compute",
157931	//     "https://www.googleapis.com/auth/compute.readonly"
157932	//   ]
157933	// }
157934
157935}
157936
157937// method id "compute.urlMaps.update":
157938
157939type UrlMapsUpdateCall struct {
157940	s          *Service
157941	project    string
157942	urlMap     string
157943	urlmap     *UrlMap
157944	urlParams_ gensupport.URLParams
157945	ctx_       context.Context
157946	header_    http.Header
157947}
157948
157949// Update: Updates the specified UrlMap resource with the data included
157950// in the request.
157951// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
157952func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
157953	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157954	c.project = project
157955	c.urlMap = urlMap
157956	c.urlmap = urlmap
157957	return c
157958}
157959
157960// RequestId sets the optional parameter "requestId": An optional
157961// request ID to identify requests. Specify a unique request ID so that
157962// if you must retry your request, the server will know to ignore the
157963// request if it has already been completed.
157964//
157965// For example, consider a situation where you make an initial request
157966// and the request times out. If you make the request again with the
157967// same request ID, the server can check if original operation with the
157968// same request ID was received, and if so, will ignore the second
157969// request. This prevents clients from accidentally creating duplicate
157970// commitments.
157971//
157972// The request ID must be a valid UUID with the exception that zero UUID
157973// is not supported (00000000-0000-0000-0000-000000000000).
157974func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
157975	c.urlParams_.Set("requestId", requestId)
157976	return c
157977}
157978
157979// Fields allows partial responses to be retrieved. See
157980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157981// for more information.
157982func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
157983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157984	return c
157985}
157986
157987// Context sets the context to be used in this call's Do method. Any
157988// pending HTTP request will be aborted if the provided context is
157989// canceled.
157990func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
157991	c.ctx_ = ctx
157992	return c
157993}
157994
157995// Header returns an http.Header that can be modified by the caller to
157996// add HTTP headers to the request.
157997func (c *UrlMapsUpdateCall) Header() http.Header {
157998	if c.header_ == nil {
157999		c.header_ = make(http.Header)
158000	}
158001	return c.header_
158002}
158003
158004func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
158005	reqHeaders := make(http.Header)
158006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
158007	for k, v := range c.header_ {
158008		reqHeaders[k] = v
158009	}
158010	reqHeaders.Set("User-Agent", c.s.userAgent())
158011	var body io.Reader = nil
158012	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
158013	if err != nil {
158014		return nil, err
158015	}
158016	reqHeaders.Set("Content-Type", "application/json")
158017	c.urlParams_.Set("alt", alt)
158018	c.urlParams_.Set("prettyPrint", "false")
158019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
158020	urls += "?" + c.urlParams_.Encode()
158021	req, err := http.NewRequest("PUT", urls, body)
158022	if err != nil {
158023		return nil, err
158024	}
158025	req.Header = reqHeaders
158026	googleapi.Expand(req.URL, map[string]string{
158027		"project": c.project,
158028		"urlMap":  c.urlMap,
158029	})
158030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158031}
158032
158033// Do executes the "compute.urlMaps.update" call.
158034// Exactly one of *Operation or error will be non-nil. Any non-2xx
158035// status code is an error. Response headers are in either
158036// *Operation.ServerResponse.Header or (if a response was returned at
158037// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158038// to check whether the returned error was because
158039// http.StatusNotModified was returned.
158040func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158041	gensupport.SetOptions(c.urlParams_, opts...)
158042	res, err := c.doRequest("json")
158043	if res != nil && res.StatusCode == http.StatusNotModified {
158044		if res.Body != nil {
158045			res.Body.Close()
158046		}
158047		return nil, &googleapi.Error{
158048			Code:   res.StatusCode,
158049			Header: res.Header,
158050		}
158051	}
158052	if err != nil {
158053		return nil, err
158054	}
158055	defer googleapi.CloseBody(res)
158056	if err := googleapi.CheckResponse(res); err != nil {
158057		return nil, err
158058	}
158059	ret := &Operation{
158060		ServerResponse: googleapi.ServerResponse{
158061			Header:         res.Header,
158062			HTTPStatusCode: res.StatusCode,
158063		},
158064	}
158065	target := &ret
158066	if err := gensupport.DecodeResponse(target, res); err != nil {
158067		return nil, err
158068	}
158069	return ret, nil
158070	// {
158071	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
158072	//   "httpMethod": "PUT",
158073	//   "id": "compute.urlMaps.update",
158074	//   "parameterOrder": [
158075	//     "project",
158076	//     "urlMap"
158077	//   ],
158078	//   "parameters": {
158079	//     "project": {
158080	//       "description": "Project ID for this request.",
158081	//       "location": "path",
158082	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158083	//       "required": true,
158084	//       "type": "string"
158085	//     },
158086	//     "requestId": {
158087	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158088	//       "location": "query",
158089	//       "type": "string"
158090	//     },
158091	//     "urlMap": {
158092	//       "description": "Name of the UrlMap resource to update.",
158093	//       "location": "path",
158094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158095	//       "required": true,
158096	//       "type": "string"
158097	//     }
158098	//   },
158099	//   "path": "{project}/global/urlMaps/{urlMap}",
158100	//   "request": {
158101	//     "$ref": "UrlMap"
158102	//   },
158103	//   "response": {
158104	//     "$ref": "Operation"
158105	//   },
158106	//   "scopes": [
158107	//     "https://www.googleapis.com/auth/cloud-platform",
158108	//     "https://www.googleapis.com/auth/compute"
158109	//   ]
158110	// }
158111
158112}
158113
158114// method id "compute.urlMaps.validate":
158115
158116type UrlMapsValidateCall struct {
158117	s                      *Service
158118	project                string
158119	urlMap                 string
158120	urlmapsvalidaterequest *UrlMapsValidateRequest
158121	urlParams_             gensupport.URLParams
158122	ctx_                   context.Context
158123	header_                http.Header
158124}
158125
158126// Validate: Runs static validation for the UrlMap. In particular, the
158127// tests of the provided UrlMap will be run. Calling this method does
158128// NOT create the UrlMap.
158129// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
158130func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
158131	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158132	c.project = project
158133	c.urlMap = urlMap
158134	c.urlmapsvalidaterequest = urlmapsvalidaterequest
158135	return c
158136}
158137
158138// Fields allows partial responses to be retrieved. See
158139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158140// for more information.
158141func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
158142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158143	return c
158144}
158145
158146// Context sets the context to be used in this call's Do method. Any
158147// pending HTTP request will be aborted if the provided context is
158148// canceled.
158149func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
158150	c.ctx_ = ctx
158151	return c
158152}
158153
158154// Header returns an http.Header that can be modified by the caller to
158155// add HTTP headers to the request.
158156func (c *UrlMapsValidateCall) Header() http.Header {
158157	if c.header_ == nil {
158158		c.header_ = make(http.Header)
158159	}
158160	return c.header_
158161}
158162
158163func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
158164	reqHeaders := make(http.Header)
158165	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
158166	for k, v := range c.header_ {
158167		reqHeaders[k] = v
158168	}
158169	reqHeaders.Set("User-Agent", c.s.userAgent())
158170	var body io.Reader = nil
158171	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
158172	if err != nil {
158173		return nil, err
158174	}
158175	reqHeaders.Set("Content-Type", "application/json")
158176	c.urlParams_.Set("alt", alt)
158177	c.urlParams_.Set("prettyPrint", "false")
158178	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
158179	urls += "?" + c.urlParams_.Encode()
158180	req, err := http.NewRequest("POST", urls, body)
158181	if err != nil {
158182		return nil, err
158183	}
158184	req.Header = reqHeaders
158185	googleapi.Expand(req.URL, map[string]string{
158186		"project": c.project,
158187		"urlMap":  c.urlMap,
158188	})
158189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158190}
158191
158192// Do executes the "compute.urlMaps.validate" call.
158193// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
158194// non-2xx status code is an error. Response headers are in either
158195// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
158196// returned at all) in error.(*googleapi.Error).Header. Use
158197// googleapi.IsNotModified to check whether the returned error was
158198// because http.StatusNotModified was returned.
158199func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
158200	gensupport.SetOptions(c.urlParams_, opts...)
158201	res, err := c.doRequest("json")
158202	if res != nil && res.StatusCode == http.StatusNotModified {
158203		if res.Body != nil {
158204			res.Body.Close()
158205		}
158206		return nil, &googleapi.Error{
158207			Code:   res.StatusCode,
158208			Header: res.Header,
158209		}
158210	}
158211	if err != nil {
158212		return nil, err
158213	}
158214	defer googleapi.CloseBody(res)
158215	if err := googleapi.CheckResponse(res); err != nil {
158216		return nil, err
158217	}
158218	ret := &UrlMapsValidateResponse{
158219		ServerResponse: googleapi.ServerResponse{
158220			Header:         res.Header,
158221			HTTPStatusCode: res.StatusCode,
158222		},
158223	}
158224	target := &ret
158225	if err := gensupport.DecodeResponse(target, res); err != nil {
158226		return nil, err
158227	}
158228	return ret, nil
158229	// {
158230	//   "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.",
158231	//   "httpMethod": "POST",
158232	//   "id": "compute.urlMaps.validate",
158233	//   "parameterOrder": [
158234	//     "project",
158235	//     "urlMap"
158236	//   ],
158237	//   "parameters": {
158238	//     "project": {
158239	//       "description": "Project ID for this request.",
158240	//       "location": "path",
158241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158242	//       "required": true,
158243	//       "type": "string"
158244	//     },
158245	//     "urlMap": {
158246	//       "description": "Name of the UrlMap resource to be validated as.",
158247	//       "location": "path",
158248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158249	//       "required": true,
158250	//       "type": "string"
158251	//     }
158252	//   },
158253	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
158254	//   "request": {
158255	//     "$ref": "UrlMapsValidateRequest"
158256	//   },
158257	//   "response": {
158258	//     "$ref": "UrlMapsValidateResponse"
158259	//   },
158260	//   "scopes": [
158261	//     "https://www.googleapis.com/auth/cloud-platform",
158262	//     "https://www.googleapis.com/auth/compute"
158263	//   ]
158264	// }
158265
158266}
158267
158268// method id "compute.vpnGateways.aggregatedList":
158269
158270type VpnGatewaysAggregatedListCall struct {
158271	s            *Service
158272	project      string
158273	urlParams_   gensupport.URLParams
158274	ifNoneMatch_ string
158275	ctx_         context.Context
158276	header_      http.Header
158277}
158278
158279// AggregatedList: Retrieves an aggregated list of VPN gateways.
158280func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
158281	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158282	c.project = project
158283	return c
158284}
158285
158286// Filter sets the optional parameter "filter": A filter expression that
158287// filters resources listed in the response. The expression must specify
158288// the field name, a comparison operator, and the value that you want to
158289// use for filtering. The value must be a string, a number, or a
158290// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158291// `<`.
158292//
158293// For example, if you are filtering Compute Engine instances, you can
158294// exclude instances named `example-instance` by specifying `name !=
158295// example-instance`.
158296//
158297// You can also filter nested fields. For example, you could specify
158298// `scheduling.automaticRestart = false` to include instances only if
158299// they are not scheduled for automatic restarts. You can use filtering
158300// on nested fields to filter based on resource labels.
158301//
158302// To filter on multiple expressions, provide each separate expression
158303// within parentheses. For example: ``` (scheduling.automaticRestart =
158304// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
158305// is an `AND` expression. However, you can include `AND` and `OR`
158306// expressions explicitly. For example: ``` (cpuPlatform = "Intel
158307// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
158308// (scheduling.automaticRestart = true) ```
158309func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
158310	c.urlParams_.Set("filter", filter)
158311	return c
158312}
158313
158314// IncludeAllScopes sets the optional parameter "includeAllScopes":
158315// Indicates whether every visible scope for each scope type (zone,
158316// region, global) should be included in the response. For new resource
158317// types added after this field, the flag has no effect as new resource
158318// types will always include every visible scope for each scope type in
158319// response. For resource types which predate this field, if this flag
158320// is omitted or false, only scopes of the scope types where the
158321// resource type is expected to be found will be included.
158322func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
158323	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
158324	return c
158325}
158326
158327// MaxResults sets the optional parameter "maxResults": The maximum
158328// number of results per page that should be returned. If the number of
158329// available results is larger than `maxResults`, Compute Engine returns
158330// a `nextPageToken` that can be used to get the next page of results in
158331// subsequent list requests. Acceptable values are `0` to `500`,
158332// inclusive. (Default: `500`)
158333func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
158334	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158335	return c
158336}
158337
158338// OrderBy sets the optional parameter "orderBy": Sorts list results by
158339// a certain order. By default, results are returned in alphanumerical
158340// order based on the resource name.
158341//
158342// You can also sort results in descending order based on the creation
158343// timestamp using `orderBy="creationTimestamp desc". This sorts
158344// results based on the `creationTimestamp` field in reverse
158345// chronological order (newest result first). Use this to sort resources
158346// like operations so that the newest operation is returned
158347// first.
158348//
158349// Currently, only sorting by `name` or `creationTimestamp desc` is
158350// supported.
158351func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
158352	c.urlParams_.Set("orderBy", orderBy)
158353	return c
158354}
158355
158356// PageToken sets the optional parameter "pageToken": Specifies a page
158357// token to use. Set `pageToken` to the `nextPageToken` returned by a
158358// previous list request to get the next page of results.
158359func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
158360	c.urlParams_.Set("pageToken", pageToken)
158361	return c
158362}
158363
158364// Fields allows partial responses to be retrieved. See
158365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158366// for more information.
158367func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
158368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158369	return c
158370}
158371
158372// IfNoneMatch sets the optional parameter which makes the operation
158373// fail if the object's ETag matches the given value. This is useful for
158374// getting updates only after the object has changed since the last
158375// request. Use googleapi.IsNotModified to check whether the response
158376// error from Do is the result of In-None-Match.
158377func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
158378	c.ifNoneMatch_ = entityTag
158379	return c
158380}
158381
158382// Context sets the context to be used in this call's Do method. Any
158383// pending HTTP request will be aborted if the provided context is
158384// canceled.
158385func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
158386	c.ctx_ = ctx
158387	return c
158388}
158389
158390// Header returns an http.Header that can be modified by the caller to
158391// add HTTP headers to the request.
158392func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
158393	if c.header_ == nil {
158394		c.header_ = make(http.Header)
158395	}
158396	return c.header_
158397}
158398
158399func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
158400	reqHeaders := make(http.Header)
158401	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
158402	for k, v := range c.header_ {
158403		reqHeaders[k] = v
158404	}
158405	reqHeaders.Set("User-Agent", c.s.userAgent())
158406	if c.ifNoneMatch_ != "" {
158407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158408	}
158409	var body io.Reader = nil
158410	c.urlParams_.Set("alt", alt)
158411	c.urlParams_.Set("prettyPrint", "false")
158412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnGateways")
158413	urls += "?" + c.urlParams_.Encode()
158414	req, err := http.NewRequest("GET", urls, body)
158415	if err != nil {
158416		return nil, err
158417	}
158418	req.Header = reqHeaders
158419	googleapi.Expand(req.URL, map[string]string{
158420		"project": c.project,
158421	})
158422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158423}
158424
158425// Do executes the "compute.vpnGateways.aggregatedList" call.
158426// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
158427// Any non-2xx status code is an error. Response headers are in either
158428// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
158429// returned at all) in error.(*googleapi.Error).Header. Use
158430// googleapi.IsNotModified to check whether the returned error was
158431// because http.StatusNotModified was returned.
158432func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
158433	gensupport.SetOptions(c.urlParams_, opts...)
158434	res, err := c.doRequest("json")
158435	if res != nil && res.StatusCode == http.StatusNotModified {
158436		if res.Body != nil {
158437			res.Body.Close()
158438		}
158439		return nil, &googleapi.Error{
158440			Code:   res.StatusCode,
158441			Header: res.Header,
158442		}
158443	}
158444	if err != nil {
158445		return nil, err
158446	}
158447	defer googleapi.CloseBody(res)
158448	if err := googleapi.CheckResponse(res); err != nil {
158449		return nil, err
158450	}
158451	ret := &VpnGatewayAggregatedList{
158452		ServerResponse: googleapi.ServerResponse{
158453			Header:         res.Header,
158454			HTTPStatusCode: res.StatusCode,
158455		},
158456	}
158457	target := &ret
158458	if err := gensupport.DecodeResponse(target, res); err != nil {
158459		return nil, err
158460	}
158461	return ret, nil
158462	// {
158463	//   "description": "Retrieves an aggregated list of VPN gateways.",
158464	//   "httpMethod": "GET",
158465	//   "id": "compute.vpnGateways.aggregatedList",
158466	//   "parameterOrder": [
158467	//     "project"
158468	//   ],
158469	//   "parameters": {
158470	//     "filter": {
158471	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
158472	//       "location": "query",
158473	//       "type": "string"
158474	//     },
158475	//     "includeAllScopes": {
158476	//       "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.",
158477	//       "location": "query",
158478	//       "type": "boolean"
158479	//     },
158480	//     "maxResults": {
158481	//       "default": "500",
158482	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
158483	//       "format": "uint32",
158484	//       "location": "query",
158485	//       "minimum": "0",
158486	//       "type": "integer"
158487	//     },
158488	//     "orderBy": {
158489	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
158490	//       "location": "query",
158491	//       "type": "string"
158492	//     },
158493	//     "pageToken": {
158494	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
158495	//       "location": "query",
158496	//       "type": "string"
158497	//     },
158498	//     "project": {
158499	//       "description": "Project ID for this request.",
158500	//       "location": "path",
158501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158502	//       "required": true,
158503	//       "type": "string"
158504	//     }
158505	//   },
158506	//   "path": "{project}/aggregated/vpnGateways",
158507	//   "response": {
158508	//     "$ref": "VpnGatewayAggregatedList"
158509	//   },
158510	//   "scopes": [
158511	//     "https://www.googleapis.com/auth/cloud-platform",
158512	//     "https://www.googleapis.com/auth/compute",
158513	//     "https://www.googleapis.com/auth/compute.readonly"
158514	//   ]
158515	// }
158516
158517}
158518
158519// Pages invokes f for each page of results.
158520// A non-nil error returned from f will halt the iteration.
158521// The provided context supersedes any context provided to the Context method.
158522func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
158523	c.ctx_ = ctx
158524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158525	for {
158526		x, err := c.Do()
158527		if err != nil {
158528			return err
158529		}
158530		if err := f(x); err != nil {
158531			return err
158532		}
158533		if x.NextPageToken == "" {
158534			return nil
158535		}
158536		c.PageToken(x.NextPageToken)
158537	}
158538}
158539
158540// method id "compute.vpnGateways.delete":
158541
158542type VpnGatewaysDeleteCall struct {
158543	s          *Service
158544	project    string
158545	region     string
158546	vpnGateway string
158547	urlParams_ gensupport.URLParams
158548	ctx_       context.Context
158549	header_    http.Header
158550}
158551
158552// Delete: Deletes the specified VPN gateway.
158553func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
158554	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158555	c.project = project
158556	c.region = region
158557	c.vpnGateway = vpnGateway
158558	return c
158559}
158560
158561// RequestId sets the optional parameter "requestId": An optional
158562// request ID to identify requests. Specify a unique request ID so that
158563// if you must retry your request, the server will know to ignore the
158564// request if it has already been completed.
158565//
158566// For example, consider a situation where you make an initial request
158567// and the request times out. If you make the request again with the
158568// same request ID, the server can check if original operation with the
158569// same request ID was received, and if so, will ignore the second
158570// request. This prevents clients from accidentally creating duplicate
158571// commitments.
158572//
158573// The request ID must be a valid UUID with the exception that zero UUID
158574// is not supported (00000000-0000-0000-0000-000000000000).
158575func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
158576	c.urlParams_.Set("requestId", requestId)
158577	return c
158578}
158579
158580// Fields allows partial responses to be retrieved. See
158581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158582// for more information.
158583func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
158584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158585	return c
158586}
158587
158588// Context sets the context to be used in this call's Do method. Any
158589// pending HTTP request will be aborted if the provided context is
158590// canceled.
158591func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
158592	c.ctx_ = ctx
158593	return c
158594}
158595
158596// Header returns an http.Header that can be modified by the caller to
158597// add HTTP headers to the request.
158598func (c *VpnGatewaysDeleteCall) Header() http.Header {
158599	if c.header_ == nil {
158600		c.header_ = make(http.Header)
158601	}
158602	return c.header_
158603}
158604
158605func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
158606	reqHeaders := make(http.Header)
158607	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
158608	for k, v := range c.header_ {
158609		reqHeaders[k] = v
158610	}
158611	reqHeaders.Set("User-Agent", c.s.userAgent())
158612	var body io.Reader = nil
158613	c.urlParams_.Set("alt", alt)
158614	c.urlParams_.Set("prettyPrint", "false")
158615	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
158616	urls += "?" + c.urlParams_.Encode()
158617	req, err := http.NewRequest("DELETE", urls, body)
158618	if err != nil {
158619		return nil, err
158620	}
158621	req.Header = reqHeaders
158622	googleapi.Expand(req.URL, map[string]string{
158623		"project":    c.project,
158624		"region":     c.region,
158625		"vpnGateway": c.vpnGateway,
158626	})
158627	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158628}
158629
158630// Do executes the "compute.vpnGateways.delete" call.
158631// Exactly one of *Operation or error will be non-nil. Any non-2xx
158632// status code is an error. Response headers are in either
158633// *Operation.ServerResponse.Header or (if a response was returned at
158634// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158635// to check whether the returned error was because
158636// http.StatusNotModified was returned.
158637func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158638	gensupport.SetOptions(c.urlParams_, opts...)
158639	res, err := c.doRequest("json")
158640	if res != nil && res.StatusCode == http.StatusNotModified {
158641		if res.Body != nil {
158642			res.Body.Close()
158643		}
158644		return nil, &googleapi.Error{
158645			Code:   res.StatusCode,
158646			Header: res.Header,
158647		}
158648	}
158649	if err != nil {
158650		return nil, err
158651	}
158652	defer googleapi.CloseBody(res)
158653	if err := googleapi.CheckResponse(res); err != nil {
158654		return nil, err
158655	}
158656	ret := &Operation{
158657		ServerResponse: googleapi.ServerResponse{
158658			Header:         res.Header,
158659			HTTPStatusCode: res.StatusCode,
158660		},
158661	}
158662	target := &ret
158663	if err := gensupport.DecodeResponse(target, res); err != nil {
158664		return nil, err
158665	}
158666	return ret, nil
158667	// {
158668	//   "description": "Deletes the specified VPN gateway.",
158669	//   "httpMethod": "DELETE",
158670	//   "id": "compute.vpnGateways.delete",
158671	//   "parameterOrder": [
158672	//     "project",
158673	//     "region",
158674	//     "vpnGateway"
158675	//   ],
158676	//   "parameters": {
158677	//     "project": {
158678	//       "description": "Project ID for this request.",
158679	//       "location": "path",
158680	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158681	//       "required": true,
158682	//       "type": "string"
158683	//     },
158684	//     "region": {
158685	//       "description": "Name of the region for this request.",
158686	//       "location": "path",
158687	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158688	//       "required": true,
158689	//       "type": "string"
158690	//     },
158691	//     "requestId": {
158692	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158693	//       "location": "query",
158694	//       "type": "string"
158695	//     },
158696	//     "vpnGateway": {
158697	//       "description": "Name of the VPN gateway to delete.",
158698	//       "location": "path",
158699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158700	//       "required": true,
158701	//       "type": "string"
158702	//     }
158703	//   },
158704	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
158705	//   "response": {
158706	//     "$ref": "Operation"
158707	//   },
158708	//   "scopes": [
158709	//     "https://www.googleapis.com/auth/cloud-platform",
158710	//     "https://www.googleapis.com/auth/compute"
158711	//   ]
158712	// }
158713
158714}
158715
158716// method id "compute.vpnGateways.get":
158717
158718type VpnGatewaysGetCall struct {
158719	s            *Service
158720	project      string
158721	region       string
158722	vpnGateway   string
158723	urlParams_   gensupport.URLParams
158724	ifNoneMatch_ string
158725	ctx_         context.Context
158726	header_      http.Header
158727}
158728
158729// Get: Returns the specified VPN gateway. Gets a list of available VPN
158730// gateways by making a list() request.
158731func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
158732	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158733	c.project = project
158734	c.region = region
158735	c.vpnGateway = vpnGateway
158736	return c
158737}
158738
158739// Fields allows partial responses to be retrieved. See
158740// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158741// for more information.
158742func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
158743	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158744	return c
158745}
158746
158747// IfNoneMatch sets the optional parameter which makes the operation
158748// fail if the object's ETag matches the given value. This is useful for
158749// getting updates only after the object has changed since the last
158750// request. Use googleapi.IsNotModified to check whether the response
158751// error from Do is the result of In-None-Match.
158752func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
158753	c.ifNoneMatch_ = entityTag
158754	return c
158755}
158756
158757// Context sets the context to be used in this call's Do method. Any
158758// pending HTTP request will be aborted if the provided context is
158759// canceled.
158760func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
158761	c.ctx_ = ctx
158762	return c
158763}
158764
158765// Header returns an http.Header that can be modified by the caller to
158766// add HTTP headers to the request.
158767func (c *VpnGatewaysGetCall) Header() http.Header {
158768	if c.header_ == nil {
158769		c.header_ = make(http.Header)
158770	}
158771	return c.header_
158772}
158773
158774func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
158775	reqHeaders := make(http.Header)
158776	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
158777	for k, v := range c.header_ {
158778		reqHeaders[k] = v
158779	}
158780	reqHeaders.Set("User-Agent", c.s.userAgent())
158781	if c.ifNoneMatch_ != "" {
158782		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158783	}
158784	var body io.Reader = nil
158785	c.urlParams_.Set("alt", alt)
158786	c.urlParams_.Set("prettyPrint", "false")
158787	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
158788	urls += "?" + c.urlParams_.Encode()
158789	req, err := http.NewRequest("GET", urls, body)
158790	if err != nil {
158791		return nil, err
158792	}
158793	req.Header = reqHeaders
158794	googleapi.Expand(req.URL, map[string]string{
158795		"project":    c.project,
158796		"region":     c.region,
158797		"vpnGateway": c.vpnGateway,
158798	})
158799	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158800}
158801
158802// Do executes the "compute.vpnGateways.get" call.
158803// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
158804// status code is an error. Response headers are in either
158805// *VpnGateway.ServerResponse.Header or (if a response was returned at
158806// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158807// to check whether the returned error was because
158808// http.StatusNotModified was returned.
158809func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
158810	gensupport.SetOptions(c.urlParams_, opts...)
158811	res, err := c.doRequest("json")
158812	if res != nil && res.StatusCode == http.StatusNotModified {
158813		if res.Body != nil {
158814			res.Body.Close()
158815		}
158816		return nil, &googleapi.Error{
158817			Code:   res.StatusCode,
158818			Header: res.Header,
158819		}
158820	}
158821	if err != nil {
158822		return nil, err
158823	}
158824	defer googleapi.CloseBody(res)
158825	if err := googleapi.CheckResponse(res); err != nil {
158826		return nil, err
158827	}
158828	ret := &VpnGateway{
158829		ServerResponse: googleapi.ServerResponse{
158830			Header:         res.Header,
158831			HTTPStatusCode: res.StatusCode,
158832		},
158833	}
158834	target := &ret
158835	if err := gensupport.DecodeResponse(target, res); err != nil {
158836		return nil, err
158837	}
158838	return ret, nil
158839	// {
158840	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
158841	//   "httpMethod": "GET",
158842	//   "id": "compute.vpnGateways.get",
158843	//   "parameterOrder": [
158844	//     "project",
158845	//     "region",
158846	//     "vpnGateway"
158847	//   ],
158848	//   "parameters": {
158849	//     "project": {
158850	//       "description": "Project ID for this request.",
158851	//       "location": "path",
158852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158853	//       "required": true,
158854	//       "type": "string"
158855	//     },
158856	//     "region": {
158857	//       "description": "Name of the region for this request.",
158858	//       "location": "path",
158859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158860	//       "required": true,
158861	//       "type": "string"
158862	//     },
158863	//     "vpnGateway": {
158864	//       "description": "Name of the VPN gateway to return.",
158865	//       "location": "path",
158866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158867	//       "required": true,
158868	//       "type": "string"
158869	//     }
158870	//   },
158871	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
158872	//   "response": {
158873	//     "$ref": "VpnGateway"
158874	//   },
158875	//   "scopes": [
158876	//     "https://www.googleapis.com/auth/cloud-platform",
158877	//     "https://www.googleapis.com/auth/compute",
158878	//     "https://www.googleapis.com/auth/compute.readonly"
158879	//   ]
158880	// }
158881
158882}
158883
158884// method id "compute.vpnGateways.getStatus":
158885
158886type VpnGatewaysGetStatusCall struct {
158887	s            *Service
158888	project      string
158889	region       string
158890	vpnGateway   string
158891	urlParams_   gensupport.URLParams
158892	ifNoneMatch_ string
158893	ctx_         context.Context
158894	header_      http.Header
158895}
158896
158897// GetStatus: Returns the status for the specified VPN gateway.
158898func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
158899	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158900	c.project = project
158901	c.region = region
158902	c.vpnGateway = vpnGateway
158903	return c
158904}
158905
158906// Fields allows partial responses to be retrieved. See
158907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158908// for more information.
158909func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
158910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158911	return c
158912}
158913
158914// IfNoneMatch sets the optional parameter which makes the operation
158915// fail if the object's ETag matches the given value. This is useful for
158916// getting updates only after the object has changed since the last
158917// request. Use googleapi.IsNotModified to check whether the response
158918// error from Do is the result of In-None-Match.
158919func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
158920	c.ifNoneMatch_ = entityTag
158921	return c
158922}
158923
158924// Context sets the context to be used in this call's Do method. Any
158925// pending HTTP request will be aborted if the provided context is
158926// canceled.
158927func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
158928	c.ctx_ = ctx
158929	return c
158930}
158931
158932// Header returns an http.Header that can be modified by the caller to
158933// add HTTP headers to the request.
158934func (c *VpnGatewaysGetStatusCall) Header() http.Header {
158935	if c.header_ == nil {
158936		c.header_ = make(http.Header)
158937	}
158938	return c.header_
158939}
158940
158941func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
158942	reqHeaders := make(http.Header)
158943	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
158944	for k, v := range c.header_ {
158945		reqHeaders[k] = v
158946	}
158947	reqHeaders.Set("User-Agent", c.s.userAgent())
158948	if c.ifNoneMatch_ != "" {
158949		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158950	}
158951	var body io.Reader = nil
158952	c.urlParams_.Set("alt", alt)
158953	c.urlParams_.Set("prettyPrint", "false")
158954	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
158955	urls += "?" + c.urlParams_.Encode()
158956	req, err := http.NewRequest("GET", urls, body)
158957	if err != nil {
158958		return nil, err
158959	}
158960	req.Header = reqHeaders
158961	googleapi.Expand(req.URL, map[string]string{
158962		"project":    c.project,
158963		"region":     c.region,
158964		"vpnGateway": c.vpnGateway,
158965	})
158966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158967}
158968
158969// Do executes the "compute.vpnGateways.getStatus" call.
158970// Exactly one of *VpnGatewaysGetStatusResponse or error will be
158971// non-nil. Any non-2xx status code is an error. Response headers are in
158972// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
158973// response was returned at all) in error.(*googleapi.Error).Header. Use
158974// googleapi.IsNotModified to check whether the returned error was
158975// because http.StatusNotModified was returned.
158976func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
158977	gensupport.SetOptions(c.urlParams_, opts...)
158978	res, err := c.doRequest("json")
158979	if res != nil && res.StatusCode == http.StatusNotModified {
158980		if res.Body != nil {
158981			res.Body.Close()
158982		}
158983		return nil, &googleapi.Error{
158984			Code:   res.StatusCode,
158985			Header: res.Header,
158986		}
158987	}
158988	if err != nil {
158989		return nil, err
158990	}
158991	defer googleapi.CloseBody(res)
158992	if err := googleapi.CheckResponse(res); err != nil {
158993		return nil, err
158994	}
158995	ret := &VpnGatewaysGetStatusResponse{
158996		ServerResponse: googleapi.ServerResponse{
158997			Header:         res.Header,
158998			HTTPStatusCode: res.StatusCode,
158999		},
159000	}
159001	target := &ret
159002	if err := gensupport.DecodeResponse(target, res); err != nil {
159003		return nil, err
159004	}
159005	return ret, nil
159006	// {
159007	//   "description": "Returns the status for the specified VPN gateway.",
159008	//   "httpMethod": "GET",
159009	//   "id": "compute.vpnGateways.getStatus",
159010	//   "parameterOrder": [
159011	//     "project",
159012	//     "region",
159013	//     "vpnGateway"
159014	//   ],
159015	//   "parameters": {
159016	//     "project": {
159017	//       "description": "Project ID for this request.",
159018	//       "location": "path",
159019	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159020	//       "required": true,
159021	//       "type": "string"
159022	//     },
159023	//     "region": {
159024	//       "description": "Name of the region for this request.",
159025	//       "location": "path",
159026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159027	//       "required": true,
159028	//       "type": "string"
159029	//     },
159030	//     "vpnGateway": {
159031	//       "description": "Name of the VPN gateway to return.",
159032	//       "location": "path",
159033	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159034	//       "required": true,
159035	//       "type": "string"
159036	//     }
159037	//   },
159038	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
159039	//   "response": {
159040	//     "$ref": "VpnGatewaysGetStatusResponse"
159041	//   },
159042	//   "scopes": [
159043	//     "https://www.googleapis.com/auth/cloud-platform",
159044	//     "https://www.googleapis.com/auth/compute",
159045	//     "https://www.googleapis.com/auth/compute.readonly"
159046	//   ]
159047	// }
159048
159049}
159050
159051// method id "compute.vpnGateways.insert":
159052
159053type VpnGatewaysInsertCall struct {
159054	s          *Service
159055	project    string
159056	region     string
159057	vpngateway *VpnGateway
159058	urlParams_ gensupport.URLParams
159059	ctx_       context.Context
159060	header_    http.Header
159061}
159062
159063// Insert: Creates a VPN gateway in the specified project and region
159064// using the data included in the request.
159065func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
159066	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159067	c.project = project
159068	c.region = region
159069	c.vpngateway = vpngateway
159070	return c
159071}
159072
159073// RequestId sets the optional parameter "requestId": An optional
159074// request ID to identify requests. Specify a unique request ID so that
159075// if you must retry your request, the server will know to ignore the
159076// request if it has already been completed.
159077//
159078// For example, consider a situation where you make an initial request
159079// and the request times out. If you make the request again with the
159080// same request ID, the server can check if original operation with the
159081// same request ID was received, and if so, will ignore the second
159082// request. This prevents clients from accidentally creating duplicate
159083// commitments.
159084//
159085// The request ID must be a valid UUID with the exception that zero UUID
159086// is not supported (00000000-0000-0000-0000-000000000000).
159087func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
159088	c.urlParams_.Set("requestId", requestId)
159089	return c
159090}
159091
159092// Fields allows partial responses to be retrieved. See
159093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159094// for more information.
159095func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
159096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159097	return c
159098}
159099
159100// Context sets the context to be used in this call's Do method. Any
159101// pending HTTP request will be aborted if the provided context is
159102// canceled.
159103func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
159104	c.ctx_ = ctx
159105	return c
159106}
159107
159108// Header returns an http.Header that can be modified by the caller to
159109// add HTTP headers to the request.
159110func (c *VpnGatewaysInsertCall) Header() http.Header {
159111	if c.header_ == nil {
159112		c.header_ = make(http.Header)
159113	}
159114	return c.header_
159115}
159116
159117func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
159118	reqHeaders := make(http.Header)
159119	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
159120	for k, v := range c.header_ {
159121		reqHeaders[k] = v
159122	}
159123	reqHeaders.Set("User-Agent", c.s.userAgent())
159124	var body io.Reader = nil
159125	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
159126	if err != nil {
159127		return nil, err
159128	}
159129	reqHeaders.Set("Content-Type", "application/json")
159130	c.urlParams_.Set("alt", alt)
159131	c.urlParams_.Set("prettyPrint", "false")
159132	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
159133	urls += "?" + c.urlParams_.Encode()
159134	req, err := http.NewRequest("POST", urls, body)
159135	if err != nil {
159136		return nil, err
159137	}
159138	req.Header = reqHeaders
159139	googleapi.Expand(req.URL, map[string]string{
159140		"project": c.project,
159141		"region":  c.region,
159142	})
159143	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159144}
159145
159146// Do executes the "compute.vpnGateways.insert" call.
159147// Exactly one of *Operation or error will be non-nil. Any non-2xx
159148// status code is an error. Response headers are in either
159149// *Operation.ServerResponse.Header or (if a response was returned at
159150// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159151// to check whether the returned error was because
159152// http.StatusNotModified was returned.
159153func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159154	gensupport.SetOptions(c.urlParams_, opts...)
159155	res, err := c.doRequest("json")
159156	if res != nil && res.StatusCode == http.StatusNotModified {
159157		if res.Body != nil {
159158			res.Body.Close()
159159		}
159160		return nil, &googleapi.Error{
159161			Code:   res.StatusCode,
159162			Header: res.Header,
159163		}
159164	}
159165	if err != nil {
159166		return nil, err
159167	}
159168	defer googleapi.CloseBody(res)
159169	if err := googleapi.CheckResponse(res); err != nil {
159170		return nil, err
159171	}
159172	ret := &Operation{
159173		ServerResponse: googleapi.ServerResponse{
159174			Header:         res.Header,
159175			HTTPStatusCode: res.StatusCode,
159176		},
159177	}
159178	target := &ret
159179	if err := gensupport.DecodeResponse(target, res); err != nil {
159180		return nil, err
159181	}
159182	return ret, nil
159183	// {
159184	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
159185	//   "httpMethod": "POST",
159186	//   "id": "compute.vpnGateways.insert",
159187	//   "parameterOrder": [
159188	//     "project",
159189	//     "region"
159190	//   ],
159191	//   "parameters": {
159192	//     "project": {
159193	//       "description": "Project ID for this request.",
159194	//       "location": "path",
159195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159196	//       "required": true,
159197	//       "type": "string"
159198	//     },
159199	//     "region": {
159200	//       "description": "Name of the region for this request.",
159201	//       "location": "path",
159202	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159203	//       "required": true,
159204	//       "type": "string"
159205	//     },
159206	//     "requestId": {
159207	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159208	//       "location": "query",
159209	//       "type": "string"
159210	//     }
159211	//   },
159212	//   "path": "{project}/regions/{region}/vpnGateways",
159213	//   "request": {
159214	//     "$ref": "VpnGateway"
159215	//   },
159216	//   "response": {
159217	//     "$ref": "Operation"
159218	//   },
159219	//   "scopes": [
159220	//     "https://www.googleapis.com/auth/cloud-platform",
159221	//     "https://www.googleapis.com/auth/compute"
159222	//   ]
159223	// }
159224
159225}
159226
159227// method id "compute.vpnGateways.list":
159228
159229type VpnGatewaysListCall struct {
159230	s            *Service
159231	project      string
159232	region       string
159233	urlParams_   gensupport.URLParams
159234	ifNoneMatch_ string
159235	ctx_         context.Context
159236	header_      http.Header
159237}
159238
159239// List: Retrieves a list of VPN gateways available to the specified
159240// project and region.
159241func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
159242	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159243	c.project = project
159244	c.region = region
159245	return c
159246}
159247
159248// Filter sets the optional parameter "filter": A filter expression that
159249// filters resources listed in the response. The expression must specify
159250// the field name, a comparison operator, and the value that you want to
159251// use for filtering. The value must be a string, a number, or a
159252// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159253// `<`.
159254//
159255// For example, if you are filtering Compute Engine instances, you can
159256// exclude instances named `example-instance` by specifying `name !=
159257// example-instance`.
159258//
159259// You can also filter nested fields. For example, you could specify
159260// `scheduling.automaticRestart = false` to include instances only if
159261// they are not scheduled for automatic restarts. You can use filtering
159262// on nested fields to filter based on resource labels.
159263//
159264// To filter on multiple expressions, provide each separate expression
159265// within parentheses. For example: ``` (scheduling.automaticRestart =
159266// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159267// is an `AND` expression. However, you can include `AND` and `OR`
159268// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159269// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159270// (scheduling.automaticRestart = true) ```
159271func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
159272	c.urlParams_.Set("filter", filter)
159273	return c
159274}
159275
159276// MaxResults sets the optional parameter "maxResults": The maximum
159277// number of results per page that should be returned. If the number of
159278// available results is larger than `maxResults`, Compute Engine returns
159279// a `nextPageToken` that can be used to get the next page of results in
159280// subsequent list requests. Acceptable values are `0` to `500`,
159281// inclusive. (Default: `500`)
159282func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
159283	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159284	return c
159285}
159286
159287// OrderBy sets the optional parameter "orderBy": Sorts list results by
159288// a certain order. By default, results are returned in alphanumerical
159289// order based on the resource name.
159290//
159291// You can also sort results in descending order based on the creation
159292// timestamp using `orderBy="creationTimestamp desc". This sorts
159293// results based on the `creationTimestamp` field in reverse
159294// chronological order (newest result first). Use this to sort resources
159295// like operations so that the newest operation is returned
159296// first.
159297//
159298// Currently, only sorting by `name` or `creationTimestamp desc` is
159299// supported.
159300func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
159301	c.urlParams_.Set("orderBy", orderBy)
159302	return c
159303}
159304
159305// PageToken sets the optional parameter "pageToken": Specifies a page
159306// token to use. Set `pageToken` to the `nextPageToken` returned by a
159307// previous list request to get the next page of results.
159308func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
159309	c.urlParams_.Set("pageToken", pageToken)
159310	return c
159311}
159312
159313// Fields allows partial responses to be retrieved. See
159314// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159315// for more information.
159316func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
159317	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159318	return c
159319}
159320
159321// IfNoneMatch sets the optional parameter which makes the operation
159322// fail if the object's ETag matches the given value. This is useful for
159323// getting updates only after the object has changed since the last
159324// request. Use googleapi.IsNotModified to check whether the response
159325// error from Do is the result of In-None-Match.
159326func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
159327	c.ifNoneMatch_ = entityTag
159328	return c
159329}
159330
159331// Context sets the context to be used in this call's Do method. Any
159332// pending HTTP request will be aborted if the provided context is
159333// canceled.
159334func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
159335	c.ctx_ = ctx
159336	return c
159337}
159338
159339// Header returns an http.Header that can be modified by the caller to
159340// add HTTP headers to the request.
159341func (c *VpnGatewaysListCall) Header() http.Header {
159342	if c.header_ == nil {
159343		c.header_ = make(http.Header)
159344	}
159345	return c.header_
159346}
159347
159348func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
159349	reqHeaders := make(http.Header)
159350	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
159351	for k, v := range c.header_ {
159352		reqHeaders[k] = v
159353	}
159354	reqHeaders.Set("User-Agent", c.s.userAgent())
159355	if c.ifNoneMatch_ != "" {
159356		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159357	}
159358	var body io.Reader = nil
159359	c.urlParams_.Set("alt", alt)
159360	c.urlParams_.Set("prettyPrint", "false")
159361	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
159362	urls += "?" + c.urlParams_.Encode()
159363	req, err := http.NewRequest("GET", urls, body)
159364	if err != nil {
159365		return nil, err
159366	}
159367	req.Header = reqHeaders
159368	googleapi.Expand(req.URL, map[string]string{
159369		"project": c.project,
159370		"region":  c.region,
159371	})
159372	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159373}
159374
159375// Do executes the "compute.vpnGateways.list" call.
159376// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
159377// status code is an error. Response headers are in either
159378// *VpnGatewayList.ServerResponse.Header or (if a response was returned
159379// at all) in error.(*googleapi.Error).Header. Use
159380// googleapi.IsNotModified to check whether the returned error was
159381// because http.StatusNotModified was returned.
159382func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
159383	gensupport.SetOptions(c.urlParams_, opts...)
159384	res, err := c.doRequest("json")
159385	if res != nil && res.StatusCode == http.StatusNotModified {
159386		if res.Body != nil {
159387			res.Body.Close()
159388		}
159389		return nil, &googleapi.Error{
159390			Code:   res.StatusCode,
159391			Header: res.Header,
159392		}
159393	}
159394	if err != nil {
159395		return nil, err
159396	}
159397	defer googleapi.CloseBody(res)
159398	if err := googleapi.CheckResponse(res); err != nil {
159399		return nil, err
159400	}
159401	ret := &VpnGatewayList{
159402		ServerResponse: googleapi.ServerResponse{
159403			Header:         res.Header,
159404			HTTPStatusCode: res.StatusCode,
159405		},
159406	}
159407	target := &ret
159408	if err := gensupport.DecodeResponse(target, res); err != nil {
159409		return nil, err
159410	}
159411	return ret, nil
159412	// {
159413	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
159414	//   "httpMethod": "GET",
159415	//   "id": "compute.vpnGateways.list",
159416	//   "parameterOrder": [
159417	//     "project",
159418	//     "region"
159419	//   ],
159420	//   "parameters": {
159421	//     "filter": {
159422	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
159423	//       "location": "query",
159424	//       "type": "string"
159425	//     },
159426	//     "maxResults": {
159427	//       "default": "500",
159428	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159429	//       "format": "uint32",
159430	//       "location": "query",
159431	//       "minimum": "0",
159432	//       "type": "integer"
159433	//     },
159434	//     "orderBy": {
159435	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
159436	//       "location": "query",
159437	//       "type": "string"
159438	//     },
159439	//     "pageToken": {
159440	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159441	//       "location": "query",
159442	//       "type": "string"
159443	//     },
159444	//     "project": {
159445	//       "description": "Project ID for this request.",
159446	//       "location": "path",
159447	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159448	//       "required": true,
159449	//       "type": "string"
159450	//     },
159451	//     "region": {
159452	//       "description": "Name of the region for this request.",
159453	//       "location": "path",
159454	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159455	//       "required": true,
159456	//       "type": "string"
159457	//     }
159458	//   },
159459	//   "path": "{project}/regions/{region}/vpnGateways",
159460	//   "response": {
159461	//     "$ref": "VpnGatewayList"
159462	//   },
159463	//   "scopes": [
159464	//     "https://www.googleapis.com/auth/cloud-platform",
159465	//     "https://www.googleapis.com/auth/compute",
159466	//     "https://www.googleapis.com/auth/compute.readonly"
159467	//   ]
159468	// }
159469
159470}
159471
159472// Pages invokes f for each page of results.
159473// A non-nil error returned from f will halt the iteration.
159474// The provided context supersedes any context provided to the Context method.
159475func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
159476	c.ctx_ = ctx
159477	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159478	for {
159479		x, err := c.Do()
159480		if err != nil {
159481			return err
159482		}
159483		if err := f(x); err != nil {
159484			return err
159485		}
159486		if x.NextPageToken == "" {
159487			return nil
159488		}
159489		c.PageToken(x.NextPageToken)
159490	}
159491}
159492
159493// method id "compute.vpnGateways.setLabels":
159494
159495type VpnGatewaysSetLabelsCall struct {
159496	s                      *Service
159497	project                string
159498	region                 string
159499	resource               string
159500	regionsetlabelsrequest *RegionSetLabelsRequest
159501	urlParams_             gensupport.URLParams
159502	ctx_                   context.Context
159503	header_                http.Header
159504}
159505
159506// SetLabels: Sets the labels on a VpnGateway. To learn more about
159507// labels, read the Labeling Resources documentation.
159508func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
159509	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159510	c.project = project
159511	c.region = region
159512	c.resource = resource
159513	c.regionsetlabelsrequest = regionsetlabelsrequest
159514	return c
159515}
159516
159517// RequestId sets the optional parameter "requestId": An optional
159518// request ID to identify requests. Specify a unique request ID so that
159519// if you must retry your request, the server will know to ignore the
159520// request if it has already been completed.
159521//
159522// For example, consider a situation where you make an initial request
159523// and the request times out. If you make the request again with the
159524// same request ID, the server can check if original operation with the
159525// same request ID was received, and if so, will ignore the second
159526// request. This prevents clients from accidentally creating duplicate
159527// commitments.
159528//
159529// The request ID must be a valid UUID with the exception that zero UUID
159530// is not supported (00000000-0000-0000-0000-000000000000).
159531func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
159532	c.urlParams_.Set("requestId", requestId)
159533	return c
159534}
159535
159536// Fields allows partial responses to be retrieved. See
159537// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159538// for more information.
159539func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
159540	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159541	return c
159542}
159543
159544// Context sets the context to be used in this call's Do method. Any
159545// pending HTTP request will be aborted if the provided context is
159546// canceled.
159547func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
159548	c.ctx_ = ctx
159549	return c
159550}
159551
159552// Header returns an http.Header that can be modified by the caller to
159553// add HTTP headers to the request.
159554func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
159555	if c.header_ == nil {
159556		c.header_ = make(http.Header)
159557	}
159558	return c.header_
159559}
159560
159561func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
159562	reqHeaders := make(http.Header)
159563	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
159564	for k, v := range c.header_ {
159565		reqHeaders[k] = v
159566	}
159567	reqHeaders.Set("User-Agent", c.s.userAgent())
159568	var body io.Reader = nil
159569	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
159570	if err != nil {
159571		return nil, err
159572	}
159573	reqHeaders.Set("Content-Type", "application/json")
159574	c.urlParams_.Set("alt", alt)
159575	c.urlParams_.Set("prettyPrint", "false")
159576	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/setLabels")
159577	urls += "?" + c.urlParams_.Encode()
159578	req, err := http.NewRequest("POST", urls, body)
159579	if err != nil {
159580		return nil, err
159581	}
159582	req.Header = reqHeaders
159583	googleapi.Expand(req.URL, map[string]string{
159584		"project":  c.project,
159585		"region":   c.region,
159586		"resource": c.resource,
159587	})
159588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159589}
159590
159591// Do executes the "compute.vpnGateways.setLabels" call.
159592// Exactly one of *Operation or error will be non-nil. Any non-2xx
159593// status code is an error. Response headers are in either
159594// *Operation.ServerResponse.Header or (if a response was returned at
159595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159596// to check whether the returned error was because
159597// http.StatusNotModified was returned.
159598func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159599	gensupport.SetOptions(c.urlParams_, opts...)
159600	res, err := c.doRequest("json")
159601	if res != nil && res.StatusCode == http.StatusNotModified {
159602		if res.Body != nil {
159603			res.Body.Close()
159604		}
159605		return nil, &googleapi.Error{
159606			Code:   res.StatusCode,
159607			Header: res.Header,
159608		}
159609	}
159610	if err != nil {
159611		return nil, err
159612	}
159613	defer googleapi.CloseBody(res)
159614	if err := googleapi.CheckResponse(res); err != nil {
159615		return nil, err
159616	}
159617	ret := &Operation{
159618		ServerResponse: googleapi.ServerResponse{
159619			Header:         res.Header,
159620			HTTPStatusCode: res.StatusCode,
159621		},
159622	}
159623	target := &ret
159624	if err := gensupport.DecodeResponse(target, res); err != nil {
159625		return nil, err
159626	}
159627	return ret, nil
159628	// {
159629	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
159630	//   "httpMethod": "POST",
159631	//   "id": "compute.vpnGateways.setLabels",
159632	//   "parameterOrder": [
159633	//     "project",
159634	//     "region",
159635	//     "resource"
159636	//   ],
159637	//   "parameters": {
159638	//     "project": {
159639	//       "description": "Project ID for this request.",
159640	//       "location": "path",
159641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159642	//       "required": true,
159643	//       "type": "string"
159644	//     },
159645	//     "region": {
159646	//       "description": "The region for this request.",
159647	//       "location": "path",
159648	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159649	//       "required": true,
159650	//       "type": "string"
159651	//     },
159652	//     "requestId": {
159653	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159654	//       "location": "query",
159655	//       "type": "string"
159656	//     },
159657	//     "resource": {
159658	//       "description": "Name or id of the resource for this request.",
159659	//       "location": "path",
159660	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159661	//       "required": true,
159662	//       "type": "string"
159663	//     }
159664	//   },
159665	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/setLabels",
159666	//   "request": {
159667	//     "$ref": "RegionSetLabelsRequest"
159668	//   },
159669	//   "response": {
159670	//     "$ref": "Operation"
159671	//   },
159672	//   "scopes": [
159673	//     "https://www.googleapis.com/auth/cloud-platform",
159674	//     "https://www.googleapis.com/auth/compute"
159675	//   ]
159676	// }
159677
159678}
159679
159680// method id "compute.vpnTunnels.aggregatedList":
159681
159682type VpnTunnelsAggregatedListCall struct {
159683	s            *Service
159684	project      string
159685	urlParams_   gensupport.URLParams
159686	ifNoneMatch_ string
159687	ctx_         context.Context
159688	header_      http.Header
159689}
159690
159691// AggregatedList: Retrieves an aggregated list of VPN tunnels.
159692func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
159693	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159694	c.project = project
159695	return c
159696}
159697
159698// Filter sets the optional parameter "filter": A filter expression that
159699// filters resources listed in the response. The expression must specify
159700// the field name, a comparison operator, and the value that you want to
159701// use for filtering. The value must be a string, a number, or a
159702// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159703// `<`.
159704//
159705// For example, if you are filtering Compute Engine instances, you can
159706// exclude instances named `example-instance` by specifying `name !=
159707// example-instance`.
159708//
159709// You can also filter nested fields. For example, you could specify
159710// `scheduling.automaticRestart = false` to include instances only if
159711// they are not scheduled for automatic restarts. You can use filtering
159712// on nested fields to filter based on resource labels.
159713//
159714// To filter on multiple expressions, provide each separate expression
159715// within parentheses. For example: ``` (scheduling.automaticRestart =
159716// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159717// is an `AND` expression. However, you can include `AND` and `OR`
159718// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159719// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159720// (scheduling.automaticRestart = true) ```
159721func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
159722	c.urlParams_.Set("filter", filter)
159723	return c
159724}
159725
159726// IncludeAllScopes sets the optional parameter "includeAllScopes":
159727// Indicates whether every visible scope for each scope type (zone,
159728// region, global) should be included in the response. For new resource
159729// types added after this field, the flag has no effect as new resource
159730// types will always include every visible scope for each scope type in
159731// response. For resource types which predate this field, if this flag
159732// is omitted or false, only scopes of the scope types where the
159733// resource type is expected to be found will be included.
159734func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
159735	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
159736	return c
159737}
159738
159739// MaxResults sets the optional parameter "maxResults": The maximum
159740// number of results per page that should be returned. If the number of
159741// available results is larger than `maxResults`, Compute Engine returns
159742// a `nextPageToken` that can be used to get the next page of results in
159743// subsequent list requests. Acceptable values are `0` to `500`,
159744// inclusive. (Default: `500`)
159745func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
159746	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159747	return c
159748}
159749
159750// OrderBy sets the optional parameter "orderBy": Sorts list results by
159751// a certain order. By default, results are returned in alphanumerical
159752// order based on the resource name.
159753//
159754// You can also sort results in descending order based on the creation
159755// timestamp using `orderBy="creationTimestamp desc". This sorts
159756// results based on the `creationTimestamp` field in reverse
159757// chronological order (newest result first). Use this to sort resources
159758// like operations so that the newest operation is returned
159759// first.
159760//
159761// Currently, only sorting by `name` or `creationTimestamp desc` is
159762// supported.
159763func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
159764	c.urlParams_.Set("orderBy", orderBy)
159765	return c
159766}
159767
159768// PageToken sets the optional parameter "pageToken": Specifies a page
159769// token to use. Set `pageToken` to the `nextPageToken` returned by a
159770// previous list request to get the next page of results.
159771func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
159772	c.urlParams_.Set("pageToken", pageToken)
159773	return c
159774}
159775
159776// Fields allows partial responses to be retrieved. See
159777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159778// for more information.
159779func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
159780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159781	return c
159782}
159783
159784// IfNoneMatch sets the optional parameter which makes the operation
159785// fail if the object's ETag matches the given value. This is useful for
159786// getting updates only after the object has changed since the last
159787// request. Use googleapi.IsNotModified to check whether the response
159788// error from Do is the result of In-None-Match.
159789func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
159790	c.ifNoneMatch_ = entityTag
159791	return c
159792}
159793
159794// Context sets the context to be used in this call's Do method. Any
159795// pending HTTP request will be aborted if the provided context is
159796// canceled.
159797func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
159798	c.ctx_ = ctx
159799	return c
159800}
159801
159802// Header returns an http.Header that can be modified by the caller to
159803// add HTTP headers to the request.
159804func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
159805	if c.header_ == nil {
159806		c.header_ = make(http.Header)
159807	}
159808	return c.header_
159809}
159810
159811func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
159812	reqHeaders := make(http.Header)
159813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
159814	for k, v := range c.header_ {
159815		reqHeaders[k] = v
159816	}
159817	reqHeaders.Set("User-Agent", c.s.userAgent())
159818	if c.ifNoneMatch_ != "" {
159819		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159820	}
159821	var body io.Reader = nil
159822	c.urlParams_.Set("alt", alt)
159823	c.urlParams_.Set("prettyPrint", "false")
159824	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
159825	urls += "?" + c.urlParams_.Encode()
159826	req, err := http.NewRequest("GET", urls, body)
159827	if err != nil {
159828		return nil, err
159829	}
159830	req.Header = reqHeaders
159831	googleapi.Expand(req.URL, map[string]string{
159832		"project": c.project,
159833	})
159834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159835}
159836
159837// Do executes the "compute.vpnTunnels.aggregatedList" call.
159838// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
159839// non-2xx status code is an error. Response headers are in either
159840// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
159841// returned at all) in error.(*googleapi.Error).Header. Use
159842// googleapi.IsNotModified to check whether the returned error was
159843// because http.StatusNotModified was returned.
159844func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
159845	gensupport.SetOptions(c.urlParams_, opts...)
159846	res, err := c.doRequest("json")
159847	if res != nil && res.StatusCode == http.StatusNotModified {
159848		if res.Body != nil {
159849			res.Body.Close()
159850		}
159851		return nil, &googleapi.Error{
159852			Code:   res.StatusCode,
159853			Header: res.Header,
159854		}
159855	}
159856	if err != nil {
159857		return nil, err
159858	}
159859	defer googleapi.CloseBody(res)
159860	if err := googleapi.CheckResponse(res); err != nil {
159861		return nil, err
159862	}
159863	ret := &VpnTunnelAggregatedList{
159864		ServerResponse: googleapi.ServerResponse{
159865			Header:         res.Header,
159866			HTTPStatusCode: res.StatusCode,
159867		},
159868	}
159869	target := &ret
159870	if err := gensupport.DecodeResponse(target, res); err != nil {
159871		return nil, err
159872	}
159873	return ret, nil
159874	// {
159875	//   "description": "Retrieves an aggregated list of VPN tunnels.",
159876	//   "httpMethod": "GET",
159877	//   "id": "compute.vpnTunnels.aggregatedList",
159878	//   "parameterOrder": [
159879	//     "project"
159880	//   ],
159881	//   "parameters": {
159882	//     "filter": {
159883	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
159884	//       "location": "query",
159885	//       "type": "string"
159886	//     },
159887	//     "includeAllScopes": {
159888	//       "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.",
159889	//       "location": "query",
159890	//       "type": "boolean"
159891	//     },
159892	//     "maxResults": {
159893	//       "default": "500",
159894	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159895	//       "format": "uint32",
159896	//       "location": "query",
159897	//       "minimum": "0",
159898	//       "type": "integer"
159899	//     },
159900	//     "orderBy": {
159901	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
159902	//       "location": "query",
159903	//       "type": "string"
159904	//     },
159905	//     "pageToken": {
159906	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159907	//       "location": "query",
159908	//       "type": "string"
159909	//     },
159910	//     "project": {
159911	//       "description": "Project ID for this request.",
159912	//       "location": "path",
159913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159914	//       "required": true,
159915	//       "type": "string"
159916	//     }
159917	//   },
159918	//   "path": "{project}/aggregated/vpnTunnels",
159919	//   "response": {
159920	//     "$ref": "VpnTunnelAggregatedList"
159921	//   },
159922	//   "scopes": [
159923	//     "https://www.googleapis.com/auth/cloud-platform",
159924	//     "https://www.googleapis.com/auth/compute",
159925	//     "https://www.googleapis.com/auth/compute.readonly"
159926	//   ]
159927	// }
159928
159929}
159930
159931// Pages invokes f for each page of results.
159932// A non-nil error returned from f will halt the iteration.
159933// The provided context supersedes any context provided to the Context method.
159934func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
159935	c.ctx_ = ctx
159936	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159937	for {
159938		x, err := c.Do()
159939		if err != nil {
159940			return err
159941		}
159942		if err := f(x); err != nil {
159943			return err
159944		}
159945		if x.NextPageToken == "" {
159946			return nil
159947		}
159948		c.PageToken(x.NextPageToken)
159949	}
159950}
159951
159952// method id "compute.vpnTunnels.delete":
159953
159954type VpnTunnelsDeleteCall struct {
159955	s          *Service
159956	project    string
159957	region     string
159958	vpnTunnel  string
159959	urlParams_ gensupport.URLParams
159960	ctx_       context.Context
159961	header_    http.Header
159962}
159963
159964// Delete: Deletes the specified VpnTunnel resource.
159965func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
159966	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159967	c.project = project
159968	c.region = region
159969	c.vpnTunnel = vpnTunnel
159970	return c
159971}
159972
159973// RequestId sets the optional parameter "requestId": An optional
159974// request ID to identify requests. Specify a unique request ID so that
159975// if you must retry your request, the server will know to ignore the
159976// request if it has already been completed.
159977//
159978// For example, consider a situation where you make an initial request
159979// and the request times out. If you make the request again with the
159980// same request ID, the server can check if original operation with the
159981// same request ID was received, and if so, will ignore the second
159982// request. This prevents clients from accidentally creating duplicate
159983// commitments.
159984//
159985// The request ID must be a valid UUID with the exception that zero UUID
159986// is not supported (00000000-0000-0000-0000-000000000000).
159987func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
159988	c.urlParams_.Set("requestId", requestId)
159989	return c
159990}
159991
159992// Fields allows partial responses to be retrieved. See
159993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159994// for more information.
159995func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
159996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159997	return c
159998}
159999
160000// Context sets the context to be used in this call's Do method. Any
160001// pending HTTP request will be aborted if the provided context is
160002// canceled.
160003func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
160004	c.ctx_ = ctx
160005	return c
160006}
160007
160008// Header returns an http.Header that can be modified by the caller to
160009// add HTTP headers to the request.
160010func (c *VpnTunnelsDeleteCall) Header() http.Header {
160011	if c.header_ == nil {
160012		c.header_ = make(http.Header)
160013	}
160014	return c.header_
160015}
160016
160017func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
160018	reqHeaders := make(http.Header)
160019	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
160020	for k, v := range c.header_ {
160021		reqHeaders[k] = v
160022	}
160023	reqHeaders.Set("User-Agent", c.s.userAgent())
160024	var body io.Reader = nil
160025	c.urlParams_.Set("alt", alt)
160026	c.urlParams_.Set("prettyPrint", "false")
160027	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
160028	urls += "?" + c.urlParams_.Encode()
160029	req, err := http.NewRequest("DELETE", urls, body)
160030	if err != nil {
160031		return nil, err
160032	}
160033	req.Header = reqHeaders
160034	googleapi.Expand(req.URL, map[string]string{
160035		"project":   c.project,
160036		"region":    c.region,
160037		"vpnTunnel": c.vpnTunnel,
160038	})
160039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160040}
160041
160042// Do executes the "compute.vpnTunnels.delete" call.
160043// Exactly one of *Operation or error will be non-nil. Any non-2xx
160044// status code is an error. Response headers are in either
160045// *Operation.ServerResponse.Header or (if a response was returned at
160046// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160047// to check whether the returned error was because
160048// http.StatusNotModified was returned.
160049func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160050	gensupport.SetOptions(c.urlParams_, opts...)
160051	res, err := c.doRequest("json")
160052	if res != nil && res.StatusCode == http.StatusNotModified {
160053		if res.Body != nil {
160054			res.Body.Close()
160055		}
160056		return nil, &googleapi.Error{
160057			Code:   res.StatusCode,
160058			Header: res.Header,
160059		}
160060	}
160061	if err != nil {
160062		return nil, err
160063	}
160064	defer googleapi.CloseBody(res)
160065	if err := googleapi.CheckResponse(res); err != nil {
160066		return nil, err
160067	}
160068	ret := &Operation{
160069		ServerResponse: googleapi.ServerResponse{
160070			Header:         res.Header,
160071			HTTPStatusCode: res.StatusCode,
160072		},
160073	}
160074	target := &ret
160075	if err := gensupport.DecodeResponse(target, res); err != nil {
160076		return nil, err
160077	}
160078	return ret, nil
160079	// {
160080	//   "description": "Deletes the specified VpnTunnel resource.",
160081	//   "httpMethod": "DELETE",
160082	//   "id": "compute.vpnTunnels.delete",
160083	//   "parameterOrder": [
160084	//     "project",
160085	//     "region",
160086	//     "vpnTunnel"
160087	//   ],
160088	//   "parameters": {
160089	//     "project": {
160090	//       "description": "Project ID for this request.",
160091	//       "location": "path",
160092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160093	//       "required": true,
160094	//       "type": "string"
160095	//     },
160096	//     "region": {
160097	//       "description": "Name of the region for this request.",
160098	//       "location": "path",
160099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160100	//       "required": true,
160101	//       "type": "string"
160102	//     },
160103	//     "requestId": {
160104	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160105	//       "location": "query",
160106	//       "type": "string"
160107	//     },
160108	//     "vpnTunnel": {
160109	//       "description": "Name of the VpnTunnel resource to delete.",
160110	//       "location": "path",
160111	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160112	//       "required": true,
160113	//       "type": "string"
160114	//     }
160115	//   },
160116	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
160117	//   "response": {
160118	//     "$ref": "Operation"
160119	//   },
160120	//   "scopes": [
160121	//     "https://www.googleapis.com/auth/cloud-platform",
160122	//     "https://www.googleapis.com/auth/compute"
160123	//   ]
160124	// }
160125
160126}
160127
160128// method id "compute.vpnTunnels.get":
160129
160130type VpnTunnelsGetCall struct {
160131	s            *Service
160132	project      string
160133	region       string
160134	vpnTunnel    string
160135	urlParams_   gensupport.URLParams
160136	ifNoneMatch_ string
160137	ctx_         context.Context
160138	header_      http.Header
160139}
160140
160141// Get: Returns the specified VpnTunnel resource. Gets a list of
160142// available VPN tunnels by making a list() request.
160143func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
160144	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160145	c.project = project
160146	c.region = region
160147	c.vpnTunnel = vpnTunnel
160148	return c
160149}
160150
160151// Fields allows partial responses to be retrieved. See
160152// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160153// for more information.
160154func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
160155	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160156	return c
160157}
160158
160159// IfNoneMatch sets the optional parameter which makes the operation
160160// fail if the object's ETag matches the given value. This is useful for
160161// getting updates only after the object has changed since the last
160162// request. Use googleapi.IsNotModified to check whether the response
160163// error from Do is the result of In-None-Match.
160164func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
160165	c.ifNoneMatch_ = entityTag
160166	return c
160167}
160168
160169// Context sets the context to be used in this call's Do method. Any
160170// pending HTTP request will be aborted if the provided context is
160171// canceled.
160172func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
160173	c.ctx_ = ctx
160174	return c
160175}
160176
160177// Header returns an http.Header that can be modified by the caller to
160178// add HTTP headers to the request.
160179func (c *VpnTunnelsGetCall) Header() http.Header {
160180	if c.header_ == nil {
160181		c.header_ = make(http.Header)
160182	}
160183	return c.header_
160184}
160185
160186func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
160187	reqHeaders := make(http.Header)
160188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
160189	for k, v := range c.header_ {
160190		reqHeaders[k] = v
160191	}
160192	reqHeaders.Set("User-Agent", c.s.userAgent())
160193	if c.ifNoneMatch_ != "" {
160194		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160195	}
160196	var body io.Reader = nil
160197	c.urlParams_.Set("alt", alt)
160198	c.urlParams_.Set("prettyPrint", "false")
160199	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
160200	urls += "?" + c.urlParams_.Encode()
160201	req, err := http.NewRequest("GET", urls, body)
160202	if err != nil {
160203		return nil, err
160204	}
160205	req.Header = reqHeaders
160206	googleapi.Expand(req.URL, map[string]string{
160207		"project":   c.project,
160208		"region":    c.region,
160209		"vpnTunnel": c.vpnTunnel,
160210	})
160211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160212}
160213
160214// Do executes the "compute.vpnTunnels.get" call.
160215// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
160216// status code is an error. Response headers are in either
160217// *VpnTunnel.ServerResponse.Header or (if a response was returned at
160218// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160219// to check whether the returned error was because
160220// http.StatusNotModified was returned.
160221func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
160222	gensupport.SetOptions(c.urlParams_, opts...)
160223	res, err := c.doRequest("json")
160224	if res != nil && res.StatusCode == http.StatusNotModified {
160225		if res.Body != nil {
160226			res.Body.Close()
160227		}
160228		return nil, &googleapi.Error{
160229			Code:   res.StatusCode,
160230			Header: res.Header,
160231		}
160232	}
160233	if err != nil {
160234		return nil, err
160235	}
160236	defer googleapi.CloseBody(res)
160237	if err := googleapi.CheckResponse(res); err != nil {
160238		return nil, err
160239	}
160240	ret := &VpnTunnel{
160241		ServerResponse: googleapi.ServerResponse{
160242			Header:         res.Header,
160243			HTTPStatusCode: res.StatusCode,
160244		},
160245	}
160246	target := &ret
160247	if err := gensupport.DecodeResponse(target, res); err != nil {
160248		return nil, err
160249	}
160250	return ret, nil
160251	// {
160252	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
160253	//   "httpMethod": "GET",
160254	//   "id": "compute.vpnTunnels.get",
160255	//   "parameterOrder": [
160256	//     "project",
160257	//     "region",
160258	//     "vpnTunnel"
160259	//   ],
160260	//   "parameters": {
160261	//     "project": {
160262	//       "description": "Project ID for this request.",
160263	//       "location": "path",
160264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160265	//       "required": true,
160266	//       "type": "string"
160267	//     },
160268	//     "region": {
160269	//       "description": "Name of the region for this request.",
160270	//       "location": "path",
160271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160272	//       "required": true,
160273	//       "type": "string"
160274	//     },
160275	//     "vpnTunnel": {
160276	//       "description": "Name of the VpnTunnel resource to return.",
160277	//       "location": "path",
160278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160279	//       "required": true,
160280	//       "type": "string"
160281	//     }
160282	//   },
160283	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
160284	//   "response": {
160285	//     "$ref": "VpnTunnel"
160286	//   },
160287	//   "scopes": [
160288	//     "https://www.googleapis.com/auth/cloud-platform",
160289	//     "https://www.googleapis.com/auth/compute",
160290	//     "https://www.googleapis.com/auth/compute.readonly"
160291	//   ]
160292	// }
160293
160294}
160295
160296// method id "compute.vpnTunnels.insert":
160297
160298type VpnTunnelsInsertCall struct {
160299	s          *Service
160300	project    string
160301	region     string
160302	vpntunnel  *VpnTunnel
160303	urlParams_ gensupport.URLParams
160304	ctx_       context.Context
160305	header_    http.Header
160306}
160307
160308// Insert: Creates a VpnTunnel resource in the specified project and
160309// region using the data included in the request.
160310func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
160311	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160312	c.project = project
160313	c.region = region
160314	c.vpntunnel = vpntunnel
160315	return c
160316}
160317
160318// RequestId sets the optional parameter "requestId": An optional
160319// request ID to identify requests. Specify a unique request ID so that
160320// if you must retry your request, the server will know to ignore the
160321// request if it has already been completed.
160322//
160323// For example, consider a situation where you make an initial request
160324// and the request times out. If you make the request again with the
160325// same request ID, the server can check if original operation with the
160326// same request ID was received, and if so, will ignore the second
160327// request. This prevents clients from accidentally creating duplicate
160328// commitments.
160329//
160330// The request ID must be a valid UUID with the exception that zero UUID
160331// is not supported (00000000-0000-0000-0000-000000000000).
160332func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
160333	c.urlParams_.Set("requestId", requestId)
160334	return c
160335}
160336
160337// Fields allows partial responses to be retrieved. See
160338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160339// for more information.
160340func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
160341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160342	return c
160343}
160344
160345// Context sets the context to be used in this call's Do method. Any
160346// pending HTTP request will be aborted if the provided context is
160347// canceled.
160348func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
160349	c.ctx_ = ctx
160350	return c
160351}
160352
160353// Header returns an http.Header that can be modified by the caller to
160354// add HTTP headers to the request.
160355func (c *VpnTunnelsInsertCall) Header() http.Header {
160356	if c.header_ == nil {
160357		c.header_ = make(http.Header)
160358	}
160359	return c.header_
160360}
160361
160362func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
160363	reqHeaders := make(http.Header)
160364	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
160365	for k, v := range c.header_ {
160366		reqHeaders[k] = v
160367	}
160368	reqHeaders.Set("User-Agent", c.s.userAgent())
160369	var body io.Reader = nil
160370	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
160371	if err != nil {
160372		return nil, err
160373	}
160374	reqHeaders.Set("Content-Type", "application/json")
160375	c.urlParams_.Set("alt", alt)
160376	c.urlParams_.Set("prettyPrint", "false")
160377	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
160378	urls += "?" + c.urlParams_.Encode()
160379	req, err := http.NewRequest("POST", urls, body)
160380	if err != nil {
160381		return nil, err
160382	}
160383	req.Header = reqHeaders
160384	googleapi.Expand(req.URL, map[string]string{
160385		"project": c.project,
160386		"region":  c.region,
160387	})
160388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160389}
160390
160391// Do executes the "compute.vpnTunnels.insert" call.
160392// Exactly one of *Operation or error will be non-nil. Any non-2xx
160393// status code is an error. Response headers are in either
160394// *Operation.ServerResponse.Header or (if a response was returned at
160395// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160396// to check whether the returned error was because
160397// http.StatusNotModified was returned.
160398func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160399	gensupport.SetOptions(c.urlParams_, opts...)
160400	res, err := c.doRequest("json")
160401	if res != nil && res.StatusCode == http.StatusNotModified {
160402		if res.Body != nil {
160403			res.Body.Close()
160404		}
160405		return nil, &googleapi.Error{
160406			Code:   res.StatusCode,
160407			Header: res.Header,
160408		}
160409	}
160410	if err != nil {
160411		return nil, err
160412	}
160413	defer googleapi.CloseBody(res)
160414	if err := googleapi.CheckResponse(res); err != nil {
160415		return nil, err
160416	}
160417	ret := &Operation{
160418		ServerResponse: googleapi.ServerResponse{
160419			Header:         res.Header,
160420			HTTPStatusCode: res.StatusCode,
160421		},
160422	}
160423	target := &ret
160424	if err := gensupport.DecodeResponse(target, res); err != nil {
160425		return nil, err
160426	}
160427	return ret, nil
160428	// {
160429	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
160430	//   "httpMethod": "POST",
160431	//   "id": "compute.vpnTunnels.insert",
160432	//   "parameterOrder": [
160433	//     "project",
160434	//     "region"
160435	//   ],
160436	//   "parameters": {
160437	//     "project": {
160438	//       "description": "Project ID for this request.",
160439	//       "location": "path",
160440	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160441	//       "required": true,
160442	//       "type": "string"
160443	//     },
160444	//     "region": {
160445	//       "description": "Name of the region for this request.",
160446	//       "location": "path",
160447	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160448	//       "required": true,
160449	//       "type": "string"
160450	//     },
160451	//     "requestId": {
160452	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160453	//       "location": "query",
160454	//       "type": "string"
160455	//     }
160456	//   },
160457	//   "path": "{project}/regions/{region}/vpnTunnels",
160458	//   "request": {
160459	//     "$ref": "VpnTunnel"
160460	//   },
160461	//   "response": {
160462	//     "$ref": "Operation"
160463	//   },
160464	//   "scopes": [
160465	//     "https://www.googleapis.com/auth/cloud-platform",
160466	//     "https://www.googleapis.com/auth/compute"
160467	//   ]
160468	// }
160469
160470}
160471
160472// method id "compute.vpnTunnels.list":
160473
160474type VpnTunnelsListCall struct {
160475	s            *Service
160476	project      string
160477	region       string
160478	urlParams_   gensupport.URLParams
160479	ifNoneMatch_ string
160480	ctx_         context.Context
160481	header_      http.Header
160482}
160483
160484// List: Retrieves a list of VpnTunnel resources contained in the
160485// specified project and region.
160486func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
160487	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160488	c.project = project
160489	c.region = region
160490	return c
160491}
160492
160493// Filter sets the optional parameter "filter": A filter expression that
160494// filters resources listed in the response. The expression must specify
160495// the field name, a comparison operator, and the value that you want to
160496// use for filtering. The value must be a string, a number, or a
160497// boolean. The comparison operator must be either `=`, `!=`, `>`, or
160498// `<`.
160499//
160500// For example, if you are filtering Compute Engine instances, you can
160501// exclude instances named `example-instance` by specifying `name !=
160502// example-instance`.
160503//
160504// You can also filter nested fields. For example, you could specify
160505// `scheduling.automaticRestart = false` to include instances only if
160506// they are not scheduled for automatic restarts. You can use filtering
160507// on nested fields to filter based on resource labels.
160508//
160509// To filter on multiple expressions, provide each separate expression
160510// within parentheses. For example: ``` (scheduling.automaticRestart =
160511// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
160512// is an `AND` expression. However, you can include `AND` and `OR`
160513// expressions explicitly. For example: ``` (cpuPlatform = "Intel
160514// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
160515// (scheduling.automaticRestart = true) ```
160516func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
160517	c.urlParams_.Set("filter", filter)
160518	return c
160519}
160520
160521// MaxResults sets the optional parameter "maxResults": The maximum
160522// number of results per page that should be returned. If the number of
160523// available results is larger than `maxResults`, Compute Engine returns
160524// a `nextPageToken` that can be used to get the next page of results in
160525// subsequent list requests. Acceptable values are `0` to `500`,
160526// inclusive. (Default: `500`)
160527func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
160528	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
160529	return c
160530}
160531
160532// OrderBy sets the optional parameter "orderBy": Sorts list results by
160533// a certain order. By default, results are returned in alphanumerical
160534// order based on the resource name.
160535//
160536// You can also sort results in descending order based on the creation
160537// timestamp using `orderBy="creationTimestamp desc". This sorts
160538// results based on the `creationTimestamp` field in reverse
160539// chronological order (newest result first). Use this to sort resources
160540// like operations so that the newest operation is returned
160541// first.
160542//
160543// Currently, only sorting by `name` or `creationTimestamp desc` is
160544// supported.
160545func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
160546	c.urlParams_.Set("orderBy", orderBy)
160547	return c
160548}
160549
160550// PageToken sets the optional parameter "pageToken": Specifies a page
160551// token to use. Set `pageToken` to the `nextPageToken` returned by a
160552// previous list request to get the next page of results.
160553func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
160554	c.urlParams_.Set("pageToken", pageToken)
160555	return c
160556}
160557
160558// Fields allows partial responses to be retrieved. See
160559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160560// for more information.
160561func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
160562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160563	return c
160564}
160565
160566// IfNoneMatch sets the optional parameter which makes the operation
160567// fail if the object's ETag matches the given value. This is useful for
160568// getting updates only after the object has changed since the last
160569// request. Use googleapi.IsNotModified to check whether the response
160570// error from Do is the result of In-None-Match.
160571func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
160572	c.ifNoneMatch_ = entityTag
160573	return c
160574}
160575
160576// Context sets the context to be used in this call's Do method. Any
160577// pending HTTP request will be aborted if the provided context is
160578// canceled.
160579func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
160580	c.ctx_ = ctx
160581	return c
160582}
160583
160584// Header returns an http.Header that can be modified by the caller to
160585// add HTTP headers to the request.
160586func (c *VpnTunnelsListCall) Header() http.Header {
160587	if c.header_ == nil {
160588		c.header_ = make(http.Header)
160589	}
160590	return c.header_
160591}
160592
160593func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
160594	reqHeaders := make(http.Header)
160595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
160596	for k, v := range c.header_ {
160597		reqHeaders[k] = v
160598	}
160599	reqHeaders.Set("User-Agent", c.s.userAgent())
160600	if c.ifNoneMatch_ != "" {
160601		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160602	}
160603	var body io.Reader = nil
160604	c.urlParams_.Set("alt", alt)
160605	c.urlParams_.Set("prettyPrint", "false")
160606	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
160607	urls += "?" + c.urlParams_.Encode()
160608	req, err := http.NewRequest("GET", urls, body)
160609	if err != nil {
160610		return nil, err
160611	}
160612	req.Header = reqHeaders
160613	googleapi.Expand(req.URL, map[string]string{
160614		"project": c.project,
160615		"region":  c.region,
160616	})
160617	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160618}
160619
160620// Do executes the "compute.vpnTunnels.list" call.
160621// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
160622// status code is an error. Response headers are in either
160623// *VpnTunnelList.ServerResponse.Header or (if a response was returned
160624// at all) in error.(*googleapi.Error).Header. Use
160625// googleapi.IsNotModified to check whether the returned error was
160626// because http.StatusNotModified was returned.
160627func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
160628	gensupport.SetOptions(c.urlParams_, opts...)
160629	res, err := c.doRequest("json")
160630	if res != nil && res.StatusCode == http.StatusNotModified {
160631		if res.Body != nil {
160632			res.Body.Close()
160633		}
160634		return nil, &googleapi.Error{
160635			Code:   res.StatusCode,
160636			Header: res.Header,
160637		}
160638	}
160639	if err != nil {
160640		return nil, err
160641	}
160642	defer googleapi.CloseBody(res)
160643	if err := googleapi.CheckResponse(res); err != nil {
160644		return nil, err
160645	}
160646	ret := &VpnTunnelList{
160647		ServerResponse: googleapi.ServerResponse{
160648			Header:         res.Header,
160649			HTTPStatusCode: res.StatusCode,
160650		},
160651	}
160652	target := &ret
160653	if err := gensupport.DecodeResponse(target, res); err != nil {
160654		return nil, err
160655	}
160656	return ret, nil
160657	// {
160658	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
160659	//   "httpMethod": "GET",
160660	//   "id": "compute.vpnTunnels.list",
160661	//   "parameterOrder": [
160662	//     "project",
160663	//     "region"
160664	//   ],
160665	//   "parameters": {
160666	//     "filter": {
160667	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
160668	//       "location": "query",
160669	//       "type": "string"
160670	//     },
160671	//     "maxResults": {
160672	//       "default": "500",
160673	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
160674	//       "format": "uint32",
160675	//       "location": "query",
160676	//       "minimum": "0",
160677	//       "type": "integer"
160678	//     },
160679	//     "orderBy": {
160680	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
160681	//       "location": "query",
160682	//       "type": "string"
160683	//     },
160684	//     "pageToken": {
160685	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
160686	//       "location": "query",
160687	//       "type": "string"
160688	//     },
160689	//     "project": {
160690	//       "description": "Project ID for this request.",
160691	//       "location": "path",
160692	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160693	//       "required": true,
160694	//       "type": "string"
160695	//     },
160696	//     "region": {
160697	//       "description": "Name of the region for this request.",
160698	//       "location": "path",
160699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160700	//       "required": true,
160701	//       "type": "string"
160702	//     }
160703	//   },
160704	//   "path": "{project}/regions/{region}/vpnTunnels",
160705	//   "response": {
160706	//     "$ref": "VpnTunnelList"
160707	//   },
160708	//   "scopes": [
160709	//     "https://www.googleapis.com/auth/cloud-platform",
160710	//     "https://www.googleapis.com/auth/compute",
160711	//     "https://www.googleapis.com/auth/compute.readonly"
160712	//   ]
160713	// }
160714
160715}
160716
160717// Pages invokes f for each page of results.
160718// A non-nil error returned from f will halt the iteration.
160719// The provided context supersedes any context provided to the Context method.
160720func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
160721	c.ctx_ = ctx
160722	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160723	for {
160724		x, err := c.Do()
160725		if err != nil {
160726			return err
160727		}
160728		if err := f(x); err != nil {
160729			return err
160730		}
160731		if x.NextPageToken == "" {
160732			return nil
160733		}
160734		c.PageToken(x.NextPageToken)
160735	}
160736}
160737
160738// method id "compute.vpnTunnels.setLabels":
160739
160740type VpnTunnelsSetLabelsCall struct {
160741	s                      *Service
160742	project                string
160743	region                 string
160744	resource               string
160745	regionsetlabelsrequest *RegionSetLabelsRequest
160746	urlParams_             gensupport.URLParams
160747	ctx_                   context.Context
160748	header_                http.Header
160749}
160750
160751// SetLabels: Sets the labels on a VpnTunnel. To learn more about
160752// labels, read the Labeling Resources documentation.
160753func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall {
160754	c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160755	c.project = project
160756	c.region = region
160757	c.resource = resource
160758	c.regionsetlabelsrequest = regionsetlabelsrequest
160759	return c
160760}
160761
160762// RequestId sets the optional parameter "requestId": An optional
160763// request ID to identify requests. Specify a unique request ID so that
160764// if you must retry your request, the server will know to ignore the
160765// request if it has already been completed.
160766//
160767// For example, consider a situation where you make an initial request
160768// and the request times out. If you make the request again with the
160769// same request ID, the server can check if original operation with the
160770// same request ID was received, and if so, will ignore the second
160771// request. This prevents clients from accidentally creating duplicate
160772// commitments.
160773//
160774// The request ID must be a valid UUID with the exception that zero UUID
160775// is not supported (00000000-0000-0000-0000-000000000000).
160776func (c *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall {
160777	c.urlParams_.Set("requestId", requestId)
160778	return c
160779}
160780
160781// Fields allows partial responses to be retrieved. See
160782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160783// for more information.
160784func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall {
160785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160786	return c
160787}
160788
160789// Context sets the context to be used in this call's Do method. Any
160790// pending HTTP request will be aborted if the provided context is
160791// canceled.
160792func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall {
160793	c.ctx_ = ctx
160794	return c
160795}
160796
160797// Header returns an http.Header that can be modified by the caller to
160798// add HTTP headers to the request.
160799func (c *VpnTunnelsSetLabelsCall) Header() http.Header {
160800	if c.header_ == nil {
160801		c.header_ = make(http.Header)
160802	}
160803	return c.header_
160804}
160805
160806func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
160807	reqHeaders := make(http.Header)
160808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
160809	for k, v := range c.header_ {
160810		reqHeaders[k] = v
160811	}
160812	reqHeaders.Set("User-Agent", c.s.userAgent())
160813	var body io.Reader = nil
160814	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
160815	if err != nil {
160816		return nil, err
160817	}
160818	reqHeaders.Set("Content-Type", "application/json")
160819	c.urlParams_.Set("alt", alt)
160820	c.urlParams_.Set("prettyPrint", "false")
160821	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/setLabels")
160822	urls += "?" + c.urlParams_.Encode()
160823	req, err := http.NewRequest("POST", urls, body)
160824	if err != nil {
160825		return nil, err
160826	}
160827	req.Header = reqHeaders
160828	googleapi.Expand(req.URL, map[string]string{
160829		"project":  c.project,
160830		"region":   c.region,
160831		"resource": c.resource,
160832	})
160833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160834}
160835
160836// Do executes the "compute.vpnTunnels.setLabels" call.
160837// Exactly one of *Operation or error will be non-nil. Any non-2xx
160838// status code is an error. Response headers are in either
160839// *Operation.ServerResponse.Header or (if a response was returned at
160840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160841// to check whether the returned error was because
160842// http.StatusNotModified was returned.
160843func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160844	gensupport.SetOptions(c.urlParams_, opts...)
160845	res, err := c.doRequest("json")
160846	if res != nil && res.StatusCode == http.StatusNotModified {
160847		if res.Body != nil {
160848			res.Body.Close()
160849		}
160850		return nil, &googleapi.Error{
160851			Code:   res.StatusCode,
160852			Header: res.Header,
160853		}
160854	}
160855	if err != nil {
160856		return nil, err
160857	}
160858	defer googleapi.CloseBody(res)
160859	if err := googleapi.CheckResponse(res); err != nil {
160860		return nil, err
160861	}
160862	ret := &Operation{
160863		ServerResponse: googleapi.ServerResponse{
160864			Header:         res.Header,
160865			HTTPStatusCode: res.StatusCode,
160866		},
160867	}
160868	target := &ret
160869	if err := gensupport.DecodeResponse(target, res); err != nil {
160870		return nil, err
160871	}
160872	return ret, nil
160873	// {
160874	//   "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.",
160875	//   "httpMethod": "POST",
160876	//   "id": "compute.vpnTunnels.setLabels",
160877	//   "parameterOrder": [
160878	//     "project",
160879	//     "region",
160880	//     "resource"
160881	//   ],
160882	//   "parameters": {
160883	//     "project": {
160884	//       "description": "Project ID for this request.",
160885	//       "location": "path",
160886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160887	//       "required": true,
160888	//       "type": "string"
160889	//     },
160890	//     "region": {
160891	//       "description": "The region for this request.",
160892	//       "location": "path",
160893	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160894	//       "required": true,
160895	//       "type": "string"
160896	//     },
160897	//     "requestId": {
160898	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160899	//       "location": "query",
160900	//       "type": "string"
160901	//     },
160902	//     "resource": {
160903	//       "description": "Name or id of the resource for this request.",
160904	//       "location": "path",
160905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160906	//       "required": true,
160907	//       "type": "string"
160908	//     }
160909	//   },
160910	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
160911	//   "request": {
160912	//     "$ref": "RegionSetLabelsRequest"
160913	//   },
160914	//   "response": {
160915	//     "$ref": "Operation"
160916	//   },
160917	//   "scopes": [
160918	//     "https://www.googleapis.com/auth/cloud-platform",
160919	//     "https://www.googleapis.com/auth/compute"
160920	//   ]
160921	// }
160922
160923}
160924
160925// method id "compute.vpnTunnels.testIamPermissions":
160926
160927type VpnTunnelsTestIamPermissionsCall struct {
160928	s                      *Service
160929	project                string
160930	region                 string
160931	resource               string
160932	testpermissionsrequest *TestPermissionsRequest
160933	urlParams_             gensupport.URLParams
160934	ctx_                   context.Context
160935	header_                http.Header
160936}
160937
160938// TestIamPermissions: Returns permissions that a caller has on the
160939// specified resource.
160940func (r *VpnTunnelsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnTunnelsTestIamPermissionsCall {
160941	c := &VpnTunnelsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160942	c.project = project
160943	c.region = region
160944	c.resource = resource
160945	c.testpermissionsrequest = testpermissionsrequest
160946	return c
160947}
160948
160949// Fields allows partial responses to be retrieved. See
160950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160951// for more information.
160952func (c *VpnTunnelsTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnTunnelsTestIamPermissionsCall {
160953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160954	return c
160955}
160956
160957// Context sets the context to be used in this call's Do method. Any
160958// pending HTTP request will be aborted if the provided context is
160959// canceled.
160960func (c *VpnTunnelsTestIamPermissionsCall) Context(ctx context.Context) *VpnTunnelsTestIamPermissionsCall {
160961	c.ctx_ = ctx
160962	return c
160963}
160964
160965// Header returns an http.Header that can be modified by the caller to
160966// add HTTP headers to the request.
160967func (c *VpnTunnelsTestIamPermissionsCall) Header() http.Header {
160968	if c.header_ == nil {
160969		c.header_ = make(http.Header)
160970	}
160971	return c.header_
160972}
160973
160974func (c *VpnTunnelsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
160975	reqHeaders := make(http.Header)
160976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
160977	for k, v := range c.header_ {
160978		reqHeaders[k] = v
160979	}
160980	reqHeaders.Set("User-Agent", c.s.userAgent())
160981	var body io.Reader = nil
160982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
160983	if err != nil {
160984		return nil, err
160985	}
160986	reqHeaders.Set("Content-Type", "application/json")
160987	c.urlParams_.Set("alt", alt)
160988	c.urlParams_.Set("prettyPrint", "false")
160989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions")
160990	urls += "?" + c.urlParams_.Encode()
160991	req, err := http.NewRequest("POST", urls, body)
160992	if err != nil {
160993		return nil, err
160994	}
160995	req.Header = reqHeaders
160996	googleapi.Expand(req.URL, map[string]string{
160997		"project":  c.project,
160998		"region":   c.region,
160999		"resource": c.resource,
161000	})
161001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161002}
161003
161004// Do executes the "compute.vpnTunnels.testIamPermissions" call.
161005// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
161006// non-2xx status code is an error. Response headers are in either
161007// *TestPermissionsResponse.ServerResponse.Header or (if a response was
161008// returned at all) in error.(*googleapi.Error).Header. Use
161009// googleapi.IsNotModified to check whether the returned error was
161010// because http.StatusNotModified was returned.
161011func (c *VpnTunnelsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
161012	gensupport.SetOptions(c.urlParams_, opts...)
161013	res, err := c.doRequest("json")
161014	if res != nil && res.StatusCode == http.StatusNotModified {
161015		if res.Body != nil {
161016			res.Body.Close()
161017		}
161018		return nil, &googleapi.Error{
161019			Code:   res.StatusCode,
161020			Header: res.Header,
161021		}
161022	}
161023	if err != nil {
161024		return nil, err
161025	}
161026	defer googleapi.CloseBody(res)
161027	if err := googleapi.CheckResponse(res); err != nil {
161028		return nil, err
161029	}
161030	ret := &TestPermissionsResponse{
161031		ServerResponse: googleapi.ServerResponse{
161032			Header:         res.Header,
161033			HTTPStatusCode: res.StatusCode,
161034		},
161035	}
161036	target := &ret
161037	if err := gensupport.DecodeResponse(target, res); err != nil {
161038		return nil, err
161039	}
161040	return ret, nil
161041	// {
161042	//   "description": "Returns permissions that a caller has on the specified resource.",
161043	//   "httpMethod": "POST",
161044	//   "id": "compute.vpnTunnels.testIamPermissions",
161045	//   "parameterOrder": [
161046	//     "project",
161047	//     "region",
161048	//     "resource"
161049	//   ],
161050	//   "parameters": {
161051	//     "project": {
161052	//       "description": "Project ID for this request.",
161053	//       "location": "path",
161054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161055	//       "required": true,
161056	//       "type": "string"
161057	//     },
161058	//     "region": {
161059	//       "description": "The name of the region for this request.",
161060	//       "location": "path",
161061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161062	//       "required": true,
161063	//       "type": "string"
161064	//     },
161065	//     "resource": {
161066	//       "description": "Name or id of the resource for this request.",
161067	//       "location": "path",
161068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161069	//       "required": true,
161070	//       "type": "string"
161071	//     }
161072	//   },
161073	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions",
161074	//   "request": {
161075	//     "$ref": "TestPermissionsRequest"
161076	//   },
161077	//   "response": {
161078	//     "$ref": "TestPermissionsResponse"
161079	//   },
161080	//   "scopes": [
161081	//     "https://www.googleapis.com/auth/cloud-platform",
161082	//     "https://www.googleapis.com/auth/compute",
161083	//     "https://www.googleapis.com/auth/compute.readonly"
161084	//   ]
161085	// }
161086
161087}
161088
161089// method id "compute.zoneOperations.delete":
161090
161091type ZoneOperationsDeleteCall struct {
161092	s          *Service
161093	project    string
161094	zone       string
161095	operation  string
161096	urlParams_ gensupport.URLParams
161097	ctx_       context.Context
161098	header_    http.Header
161099}
161100
161101// Delete: Deletes the specified zone-specific Operations resource.
161102// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
161103func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
161104	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161105	c.project = project
161106	c.zone = zone
161107	c.operation = operation
161108	return c
161109}
161110
161111// Fields allows partial responses to be retrieved. See
161112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161113// for more information.
161114func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
161115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161116	return c
161117}
161118
161119// Context sets the context to be used in this call's Do method. Any
161120// pending HTTP request will be aborted if the provided context is
161121// canceled.
161122func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
161123	c.ctx_ = ctx
161124	return c
161125}
161126
161127// Header returns an http.Header that can be modified by the caller to
161128// add HTTP headers to the request.
161129func (c *ZoneOperationsDeleteCall) Header() http.Header {
161130	if c.header_ == nil {
161131		c.header_ = make(http.Header)
161132	}
161133	return c.header_
161134}
161135
161136func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
161137	reqHeaders := make(http.Header)
161138	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
161139	for k, v := range c.header_ {
161140		reqHeaders[k] = v
161141	}
161142	reqHeaders.Set("User-Agent", c.s.userAgent())
161143	var body io.Reader = nil
161144	c.urlParams_.Set("alt", alt)
161145	c.urlParams_.Set("prettyPrint", "false")
161146	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
161147	urls += "?" + c.urlParams_.Encode()
161148	req, err := http.NewRequest("DELETE", urls, body)
161149	if err != nil {
161150		return nil, err
161151	}
161152	req.Header = reqHeaders
161153	googleapi.Expand(req.URL, map[string]string{
161154		"project":   c.project,
161155		"zone":      c.zone,
161156		"operation": c.operation,
161157	})
161158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161159}
161160
161161// Do executes the "compute.zoneOperations.delete" call.
161162func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
161163	gensupport.SetOptions(c.urlParams_, opts...)
161164	res, err := c.doRequest("json")
161165	if err != nil {
161166		return err
161167	}
161168	defer googleapi.CloseBody(res)
161169	if err := googleapi.CheckResponse(res); err != nil {
161170		return err
161171	}
161172	return nil
161173	// {
161174	//   "description": "Deletes the specified zone-specific Operations resource.",
161175	//   "httpMethod": "DELETE",
161176	//   "id": "compute.zoneOperations.delete",
161177	//   "parameterOrder": [
161178	//     "project",
161179	//     "zone",
161180	//     "operation"
161181	//   ],
161182	//   "parameters": {
161183	//     "operation": {
161184	//       "description": "Name of the Operations resource to delete.",
161185	//       "location": "path",
161186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161187	//       "required": true,
161188	//       "type": "string"
161189	//     },
161190	//     "project": {
161191	//       "description": "Project ID for this request.",
161192	//       "location": "path",
161193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161194	//       "required": true,
161195	//       "type": "string"
161196	//     },
161197	//     "zone": {
161198	//       "description": "Name of the zone for this request.",
161199	//       "location": "path",
161200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161201	//       "required": true,
161202	//       "type": "string"
161203	//     }
161204	//   },
161205	//   "path": "{project}/zones/{zone}/operations/{operation}",
161206	//   "scopes": [
161207	//     "https://www.googleapis.com/auth/cloud-platform",
161208	//     "https://www.googleapis.com/auth/compute"
161209	//   ]
161210	// }
161211
161212}
161213
161214// method id "compute.zoneOperations.get":
161215
161216type ZoneOperationsGetCall struct {
161217	s            *Service
161218	project      string
161219	zone         string
161220	operation    string
161221	urlParams_   gensupport.URLParams
161222	ifNoneMatch_ string
161223	ctx_         context.Context
161224	header_      http.Header
161225}
161226
161227// Get: Retrieves the specified zone-specific Operations resource.
161228// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
161229func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
161230	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161231	c.project = project
161232	c.zone = zone
161233	c.operation = operation
161234	return c
161235}
161236
161237// Fields allows partial responses to be retrieved. See
161238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161239// for more information.
161240func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
161241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161242	return c
161243}
161244
161245// IfNoneMatch sets the optional parameter which makes the operation
161246// fail if the object's ETag matches the given value. This is useful for
161247// getting updates only after the object has changed since the last
161248// request. Use googleapi.IsNotModified to check whether the response
161249// error from Do is the result of In-None-Match.
161250func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
161251	c.ifNoneMatch_ = entityTag
161252	return c
161253}
161254
161255// Context sets the context to be used in this call's Do method. Any
161256// pending HTTP request will be aborted if the provided context is
161257// canceled.
161258func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
161259	c.ctx_ = ctx
161260	return c
161261}
161262
161263// Header returns an http.Header that can be modified by the caller to
161264// add HTTP headers to the request.
161265func (c *ZoneOperationsGetCall) Header() http.Header {
161266	if c.header_ == nil {
161267		c.header_ = make(http.Header)
161268	}
161269	return c.header_
161270}
161271
161272func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
161273	reqHeaders := make(http.Header)
161274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
161275	for k, v := range c.header_ {
161276		reqHeaders[k] = v
161277	}
161278	reqHeaders.Set("User-Agent", c.s.userAgent())
161279	if c.ifNoneMatch_ != "" {
161280		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161281	}
161282	var body io.Reader = nil
161283	c.urlParams_.Set("alt", alt)
161284	c.urlParams_.Set("prettyPrint", "false")
161285	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
161286	urls += "?" + c.urlParams_.Encode()
161287	req, err := http.NewRequest("GET", urls, body)
161288	if err != nil {
161289		return nil, err
161290	}
161291	req.Header = reqHeaders
161292	googleapi.Expand(req.URL, map[string]string{
161293		"project":   c.project,
161294		"zone":      c.zone,
161295		"operation": c.operation,
161296	})
161297	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161298}
161299
161300// Do executes the "compute.zoneOperations.get" call.
161301// Exactly one of *Operation or error will be non-nil. Any non-2xx
161302// status code is an error. Response headers are in either
161303// *Operation.ServerResponse.Header or (if a response was returned at
161304// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161305// to check whether the returned error was because
161306// http.StatusNotModified was returned.
161307func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161308	gensupport.SetOptions(c.urlParams_, opts...)
161309	res, err := c.doRequest("json")
161310	if res != nil && res.StatusCode == http.StatusNotModified {
161311		if res.Body != nil {
161312			res.Body.Close()
161313		}
161314		return nil, &googleapi.Error{
161315			Code:   res.StatusCode,
161316			Header: res.Header,
161317		}
161318	}
161319	if err != nil {
161320		return nil, err
161321	}
161322	defer googleapi.CloseBody(res)
161323	if err := googleapi.CheckResponse(res); err != nil {
161324		return nil, err
161325	}
161326	ret := &Operation{
161327		ServerResponse: googleapi.ServerResponse{
161328			Header:         res.Header,
161329			HTTPStatusCode: res.StatusCode,
161330		},
161331	}
161332	target := &ret
161333	if err := gensupport.DecodeResponse(target, res); err != nil {
161334		return nil, err
161335	}
161336	return ret, nil
161337	// {
161338	//   "description": "Retrieves the specified zone-specific Operations resource.",
161339	//   "httpMethod": "GET",
161340	//   "id": "compute.zoneOperations.get",
161341	//   "parameterOrder": [
161342	//     "project",
161343	//     "zone",
161344	//     "operation"
161345	//   ],
161346	//   "parameters": {
161347	//     "operation": {
161348	//       "description": "Name of the Operations resource to return.",
161349	//       "location": "path",
161350	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161351	//       "required": true,
161352	//       "type": "string"
161353	//     },
161354	//     "project": {
161355	//       "description": "Project ID for this request.",
161356	//       "location": "path",
161357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161358	//       "required": true,
161359	//       "type": "string"
161360	//     },
161361	//     "zone": {
161362	//       "description": "Name of the zone for this request.",
161363	//       "location": "path",
161364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161365	//       "required": true,
161366	//       "type": "string"
161367	//     }
161368	//   },
161369	//   "path": "{project}/zones/{zone}/operations/{operation}",
161370	//   "response": {
161371	//     "$ref": "Operation"
161372	//   },
161373	//   "scopes": [
161374	//     "https://www.googleapis.com/auth/cloud-platform",
161375	//     "https://www.googleapis.com/auth/compute",
161376	//     "https://www.googleapis.com/auth/compute.readonly"
161377	//   ]
161378	// }
161379
161380}
161381
161382// method id "compute.zoneOperations.list":
161383
161384type ZoneOperationsListCall struct {
161385	s            *Service
161386	project      string
161387	zone         string
161388	urlParams_   gensupport.URLParams
161389	ifNoneMatch_ string
161390	ctx_         context.Context
161391	header_      http.Header
161392}
161393
161394// List: Retrieves a list of Operation resources contained within the
161395// specified zone.
161396// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
161397func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
161398	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161399	c.project = project
161400	c.zone = zone
161401	return c
161402}
161403
161404// Filter sets the optional parameter "filter": A filter expression that
161405// filters resources listed in the response. The expression must specify
161406// the field name, a comparison operator, and the value that you want to
161407// use for filtering. The value must be a string, a number, or a
161408// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161409// `<`.
161410//
161411// For example, if you are filtering Compute Engine instances, you can
161412// exclude instances named `example-instance` by specifying `name !=
161413// example-instance`.
161414//
161415// You can also filter nested fields. For example, you could specify
161416// `scheduling.automaticRestart = false` to include instances only if
161417// they are not scheduled for automatic restarts. You can use filtering
161418// on nested fields to filter based on resource labels.
161419//
161420// To filter on multiple expressions, provide each separate expression
161421// within parentheses. For example: ``` (scheduling.automaticRestart =
161422// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161423// is an `AND` expression. However, you can include `AND` and `OR`
161424// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161425// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161426// (scheduling.automaticRestart = true) ```
161427func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
161428	c.urlParams_.Set("filter", filter)
161429	return c
161430}
161431
161432// MaxResults sets the optional parameter "maxResults": The maximum
161433// number of results per page that should be returned. If the number of
161434// available results is larger than `maxResults`, Compute Engine returns
161435// a `nextPageToken` that can be used to get the next page of results in
161436// subsequent list requests. Acceptable values are `0` to `500`,
161437// inclusive. (Default: `500`)
161438func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
161439	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161440	return c
161441}
161442
161443// OrderBy sets the optional parameter "orderBy": Sorts list results by
161444// a certain order. By default, results are returned in alphanumerical
161445// order based on the resource name.
161446//
161447// You can also sort results in descending order based on the creation
161448// timestamp using `orderBy="creationTimestamp desc". This sorts
161449// results based on the `creationTimestamp` field in reverse
161450// chronological order (newest result first). Use this to sort resources
161451// like operations so that the newest operation is returned
161452// first.
161453//
161454// Currently, only sorting by `name` or `creationTimestamp desc` is
161455// supported.
161456func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
161457	c.urlParams_.Set("orderBy", orderBy)
161458	return c
161459}
161460
161461// PageToken sets the optional parameter "pageToken": Specifies a page
161462// token to use. Set `pageToken` to the `nextPageToken` returned by a
161463// previous list request to get the next page of results.
161464func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
161465	c.urlParams_.Set("pageToken", pageToken)
161466	return c
161467}
161468
161469// Fields allows partial responses to be retrieved. See
161470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161471// for more information.
161472func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
161473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161474	return c
161475}
161476
161477// IfNoneMatch sets the optional parameter which makes the operation
161478// fail if the object's ETag matches the given value. This is useful for
161479// getting updates only after the object has changed since the last
161480// request. Use googleapi.IsNotModified to check whether the response
161481// error from Do is the result of In-None-Match.
161482func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
161483	c.ifNoneMatch_ = entityTag
161484	return c
161485}
161486
161487// Context sets the context to be used in this call's Do method. Any
161488// pending HTTP request will be aborted if the provided context is
161489// canceled.
161490func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
161491	c.ctx_ = ctx
161492	return c
161493}
161494
161495// Header returns an http.Header that can be modified by the caller to
161496// add HTTP headers to the request.
161497func (c *ZoneOperationsListCall) Header() http.Header {
161498	if c.header_ == nil {
161499		c.header_ = make(http.Header)
161500	}
161501	return c.header_
161502}
161503
161504func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
161505	reqHeaders := make(http.Header)
161506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
161507	for k, v := range c.header_ {
161508		reqHeaders[k] = v
161509	}
161510	reqHeaders.Set("User-Agent", c.s.userAgent())
161511	if c.ifNoneMatch_ != "" {
161512		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161513	}
161514	var body io.Reader = nil
161515	c.urlParams_.Set("alt", alt)
161516	c.urlParams_.Set("prettyPrint", "false")
161517	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
161518	urls += "?" + c.urlParams_.Encode()
161519	req, err := http.NewRequest("GET", urls, body)
161520	if err != nil {
161521		return nil, err
161522	}
161523	req.Header = reqHeaders
161524	googleapi.Expand(req.URL, map[string]string{
161525		"project": c.project,
161526		"zone":    c.zone,
161527	})
161528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161529}
161530
161531// Do executes the "compute.zoneOperations.list" call.
161532// Exactly one of *OperationList or error will be non-nil. Any non-2xx
161533// status code is an error. Response headers are in either
161534// *OperationList.ServerResponse.Header or (if a response was returned
161535// at all) in error.(*googleapi.Error).Header. Use
161536// googleapi.IsNotModified to check whether the returned error was
161537// because http.StatusNotModified was returned.
161538func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
161539	gensupport.SetOptions(c.urlParams_, opts...)
161540	res, err := c.doRequest("json")
161541	if res != nil && res.StatusCode == http.StatusNotModified {
161542		if res.Body != nil {
161543			res.Body.Close()
161544		}
161545		return nil, &googleapi.Error{
161546			Code:   res.StatusCode,
161547			Header: res.Header,
161548		}
161549	}
161550	if err != nil {
161551		return nil, err
161552	}
161553	defer googleapi.CloseBody(res)
161554	if err := googleapi.CheckResponse(res); err != nil {
161555		return nil, err
161556	}
161557	ret := &OperationList{
161558		ServerResponse: googleapi.ServerResponse{
161559			Header:         res.Header,
161560			HTTPStatusCode: res.StatusCode,
161561		},
161562	}
161563	target := &ret
161564	if err := gensupport.DecodeResponse(target, res); err != nil {
161565		return nil, err
161566	}
161567	return ret, nil
161568	// {
161569	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
161570	//   "httpMethod": "GET",
161571	//   "id": "compute.zoneOperations.list",
161572	//   "parameterOrder": [
161573	//     "project",
161574	//     "zone"
161575	//   ],
161576	//   "parameters": {
161577	//     "filter": {
161578	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161579	//       "location": "query",
161580	//       "type": "string"
161581	//     },
161582	//     "maxResults": {
161583	//       "default": "500",
161584	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161585	//       "format": "uint32",
161586	//       "location": "query",
161587	//       "minimum": "0",
161588	//       "type": "integer"
161589	//     },
161590	//     "orderBy": {
161591	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
161592	//       "location": "query",
161593	//       "type": "string"
161594	//     },
161595	//     "pageToken": {
161596	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161597	//       "location": "query",
161598	//       "type": "string"
161599	//     },
161600	//     "project": {
161601	//       "description": "Project ID for this request.",
161602	//       "location": "path",
161603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161604	//       "required": true,
161605	//       "type": "string"
161606	//     },
161607	//     "zone": {
161608	//       "description": "Name of the zone for request.",
161609	//       "location": "path",
161610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161611	//       "required": true,
161612	//       "type": "string"
161613	//     }
161614	//   },
161615	//   "path": "{project}/zones/{zone}/operations",
161616	//   "response": {
161617	//     "$ref": "OperationList"
161618	//   },
161619	//   "scopes": [
161620	//     "https://www.googleapis.com/auth/cloud-platform",
161621	//     "https://www.googleapis.com/auth/compute",
161622	//     "https://www.googleapis.com/auth/compute.readonly"
161623	//   ]
161624	// }
161625
161626}
161627
161628// Pages invokes f for each page of results.
161629// A non-nil error returned from f will halt the iteration.
161630// The provided context supersedes any context provided to the Context method.
161631func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
161632	c.ctx_ = ctx
161633	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161634	for {
161635		x, err := c.Do()
161636		if err != nil {
161637			return err
161638		}
161639		if err := f(x); err != nil {
161640			return err
161641		}
161642		if x.NextPageToken == "" {
161643			return nil
161644		}
161645		c.PageToken(x.NextPageToken)
161646	}
161647}
161648
161649// method id "compute.zoneOperations.wait":
161650
161651type ZoneOperationsWaitCall struct {
161652	s          *Service
161653	project    string
161654	zone       string
161655	operation  string
161656	urlParams_ gensupport.URLParams
161657	ctx_       context.Context
161658	header_    http.Header
161659}
161660
161661// Wait: Waits for the specified Operation resource to return as `DONE`
161662// or for the request to approach the 2 minute deadline, and retrieves
161663// the specified Operation resource. This method differs from the `GET`
161664// method in that it waits for no more than the default deadline (2
161665// minutes) and then returns the current state of the operation, which
161666// might be `DONE` or still in progress.
161667//
161668// This method is called on a best-effort basis. Specifically:
161669// - In uncommon cases, when the server is overloaded, the request might
161670// return before the default deadline is reached, or might return after
161671// zero seconds.
161672// - If the default deadline is reached, there is no guarantee that the
161673// operation is actually done when the method returns. Be prepared to
161674// retry if the operation is not `DONE`.
161675func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
161676	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161677	c.project = project
161678	c.zone = zone
161679	c.operation = operation
161680	return c
161681}
161682
161683// Fields allows partial responses to be retrieved. See
161684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161685// for more information.
161686func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
161687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161688	return c
161689}
161690
161691// Context sets the context to be used in this call's Do method. Any
161692// pending HTTP request will be aborted if the provided context is
161693// canceled.
161694func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
161695	c.ctx_ = ctx
161696	return c
161697}
161698
161699// Header returns an http.Header that can be modified by the caller to
161700// add HTTP headers to the request.
161701func (c *ZoneOperationsWaitCall) Header() http.Header {
161702	if c.header_ == nil {
161703		c.header_ = make(http.Header)
161704	}
161705	return c.header_
161706}
161707
161708func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
161709	reqHeaders := make(http.Header)
161710	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
161711	for k, v := range c.header_ {
161712		reqHeaders[k] = v
161713	}
161714	reqHeaders.Set("User-Agent", c.s.userAgent())
161715	var body io.Reader = nil
161716	c.urlParams_.Set("alt", alt)
161717	c.urlParams_.Set("prettyPrint", "false")
161718	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}/wait")
161719	urls += "?" + c.urlParams_.Encode()
161720	req, err := http.NewRequest("POST", urls, body)
161721	if err != nil {
161722		return nil, err
161723	}
161724	req.Header = reqHeaders
161725	googleapi.Expand(req.URL, map[string]string{
161726		"project":   c.project,
161727		"zone":      c.zone,
161728		"operation": c.operation,
161729	})
161730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161731}
161732
161733// Do executes the "compute.zoneOperations.wait" call.
161734// Exactly one of *Operation or error will be non-nil. Any non-2xx
161735// status code is an error. Response headers are in either
161736// *Operation.ServerResponse.Header or (if a response was returned at
161737// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161738// to check whether the returned error was because
161739// http.StatusNotModified was returned.
161740func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161741	gensupport.SetOptions(c.urlParams_, opts...)
161742	res, err := c.doRequest("json")
161743	if res != nil && res.StatusCode == http.StatusNotModified {
161744		if res.Body != nil {
161745			res.Body.Close()
161746		}
161747		return nil, &googleapi.Error{
161748			Code:   res.StatusCode,
161749			Header: res.Header,
161750		}
161751	}
161752	if err != nil {
161753		return nil, err
161754	}
161755	defer googleapi.CloseBody(res)
161756	if err := googleapi.CheckResponse(res); err != nil {
161757		return nil, err
161758	}
161759	ret := &Operation{
161760		ServerResponse: googleapi.ServerResponse{
161761			Header:         res.Header,
161762			HTTPStatusCode: res.StatusCode,
161763		},
161764	}
161765	target := &ret
161766	if err := gensupport.DecodeResponse(target, res); err != nil {
161767		return nil, err
161768	}
161769	return ret, nil
161770	// {
161771	//   "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`.",
161772	//   "httpMethod": "POST",
161773	//   "id": "compute.zoneOperations.wait",
161774	//   "parameterOrder": [
161775	//     "project",
161776	//     "zone",
161777	//     "operation"
161778	//   ],
161779	//   "parameters": {
161780	//     "operation": {
161781	//       "description": "Name of the Operations resource to return.",
161782	//       "location": "path",
161783	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161784	//       "required": true,
161785	//       "type": "string"
161786	//     },
161787	//     "project": {
161788	//       "description": "Project ID for this request.",
161789	//       "location": "path",
161790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161791	//       "required": true,
161792	//       "type": "string"
161793	//     },
161794	//     "zone": {
161795	//       "description": "Name of the zone for this request.",
161796	//       "location": "path",
161797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161798	//       "required": true,
161799	//       "type": "string"
161800	//     }
161801	//   },
161802	//   "path": "{project}/zones/{zone}/operations/{operation}/wait",
161803	//   "response": {
161804	//     "$ref": "Operation"
161805	//   },
161806	//   "scopes": [
161807	//     "https://www.googleapis.com/auth/cloud-platform",
161808	//     "https://www.googleapis.com/auth/compute",
161809	//     "https://www.googleapis.com/auth/compute.readonly"
161810	//   ]
161811	// }
161812
161813}
161814
161815// method id "compute.zones.get":
161816
161817type ZonesGetCall struct {
161818	s            *Service
161819	project      string
161820	zone         string
161821	urlParams_   gensupport.URLParams
161822	ifNoneMatch_ string
161823	ctx_         context.Context
161824	header_      http.Header
161825}
161826
161827// Get: Returns the specified Zone resource. Gets a list of available
161828// zones by making a list() request.
161829// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
161830func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
161831	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161832	c.project = project
161833	c.zone = zone
161834	return c
161835}
161836
161837// Fields allows partial responses to be retrieved. See
161838// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161839// for more information.
161840func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
161841	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161842	return c
161843}
161844
161845// IfNoneMatch sets the optional parameter which makes the operation
161846// fail if the object's ETag matches the given value. This is useful for
161847// getting updates only after the object has changed since the last
161848// request. Use googleapi.IsNotModified to check whether the response
161849// error from Do is the result of In-None-Match.
161850func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
161851	c.ifNoneMatch_ = entityTag
161852	return c
161853}
161854
161855// Context sets the context to be used in this call's Do method. Any
161856// pending HTTP request will be aborted if the provided context is
161857// canceled.
161858func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
161859	c.ctx_ = ctx
161860	return c
161861}
161862
161863// Header returns an http.Header that can be modified by the caller to
161864// add HTTP headers to the request.
161865func (c *ZonesGetCall) Header() http.Header {
161866	if c.header_ == nil {
161867		c.header_ = make(http.Header)
161868	}
161869	return c.header_
161870}
161871
161872func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
161873	reqHeaders := make(http.Header)
161874	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
161875	for k, v := range c.header_ {
161876		reqHeaders[k] = v
161877	}
161878	reqHeaders.Set("User-Agent", c.s.userAgent())
161879	if c.ifNoneMatch_ != "" {
161880		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161881	}
161882	var body io.Reader = nil
161883	c.urlParams_.Set("alt", alt)
161884	c.urlParams_.Set("prettyPrint", "false")
161885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
161886	urls += "?" + c.urlParams_.Encode()
161887	req, err := http.NewRequest("GET", urls, body)
161888	if err != nil {
161889		return nil, err
161890	}
161891	req.Header = reqHeaders
161892	googleapi.Expand(req.URL, map[string]string{
161893		"project": c.project,
161894		"zone":    c.zone,
161895	})
161896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161897}
161898
161899// Do executes the "compute.zones.get" call.
161900// Exactly one of *Zone or error will be non-nil. Any non-2xx status
161901// code is an error. Response headers are in either
161902// *Zone.ServerResponse.Header or (if a response was returned at all) in
161903// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
161904// whether the returned error was because http.StatusNotModified was
161905// returned.
161906func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
161907	gensupport.SetOptions(c.urlParams_, opts...)
161908	res, err := c.doRequest("json")
161909	if res != nil && res.StatusCode == http.StatusNotModified {
161910		if res.Body != nil {
161911			res.Body.Close()
161912		}
161913		return nil, &googleapi.Error{
161914			Code:   res.StatusCode,
161915			Header: res.Header,
161916		}
161917	}
161918	if err != nil {
161919		return nil, err
161920	}
161921	defer googleapi.CloseBody(res)
161922	if err := googleapi.CheckResponse(res); err != nil {
161923		return nil, err
161924	}
161925	ret := &Zone{
161926		ServerResponse: googleapi.ServerResponse{
161927			Header:         res.Header,
161928			HTTPStatusCode: res.StatusCode,
161929		},
161930	}
161931	target := &ret
161932	if err := gensupport.DecodeResponse(target, res); err != nil {
161933		return nil, err
161934	}
161935	return ret, nil
161936	// {
161937	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
161938	//   "httpMethod": "GET",
161939	//   "id": "compute.zones.get",
161940	//   "parameterOrder": [
161941	//     "project",
161942	//     "zone"
161943	//   ],
161944	//   "parameters": {
161945	//     "project": {
161946	//       "description": "Project ID for this request.",
161947	//       "location": "path",
161948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161949	//       "required": true,
161950	//       "type": "string"
161951	//     },
161952	//     "zone": {
161953	//       "description": "Name of the zone resource to return.",
161954	//       "location": "path",
161955	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161956	//       "required": true,
161957	//       "type": "string"
161958	//     }
161959	//   },
161960	//   "path": "{project}/zones/{zone}",
161961	//   "response": {
161962	//     "$ref": "Zone"
161963	//   },
161964	//   "scopes": [
161965	//     "https://www.googleapis.com/auth/cloud-platform",
161966	//     "https://www.googleapis.com/auth/compute",
161967	//     "https://www.googleapis.com/auth/compute.readonly"
161968	//   ]
161969	// }
161970
161971}
161972
161973// method id "compute.zones.list":
161974
161975type ZonesListCall struct {
161976	s            *Service
161977	project      string
161978	urlParams_   gensupport.URLParams
161979	ifNoneMatch_ string
161980	ctx_         context.Context
161981	header_      http.Header
161982}
161983
161984// List: Retrieves the list of Zone resources available to the specified
161985// project.
161986// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
161987func (r *ZonesService) List(project string) *ZonesListCall {
161988	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161989	c.project = project
161990	return c
161991}
161992
161993// Filter sets the optional parameter "filter": A filter expression that
161994// filters resources listed in the response. The expression must specify
161995// the field name, a comparison operator, and the value that you want to
161996// use for filtering. The value must be a string, a number, or a
161997// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161998// `<`.
161999//
162000// For example, if you are filtering Compute Engine instances, you can
162001// exclude instances named `example-instance` by specifying `name !=
162002// example-instance`.
162003//
162004// You can also filter nested fields. For example, you could specify
162005// `scheduling.automaticRestart = false` to include instances only if
162006// they are not scheduled for automatic restarts. You can use filtering
162007// on nested fields to filter based on resource labels.
162008//
162009// To filter on multiple expressions, provide each separate expression
162010// within parentheses. For example: ``` (scheduling.automaticRestart =
162011// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
162012// is an `AND` expression. However, you can include `AND` and `OR`
162013// expressions explicitly. For example: ``` (cpuPlatform = "Intel
162014// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
162015// (scheduling.automaticRestart = true) ```
162016func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
162017	c.urlParams_.Set("filter", filter)
162018	return c
162019}
162020
162021// MaxResults sets the optional parameter "maxResults": The maximum
162022// number of results per page that should be returned. If the number of
162023// available results is larger than `maxResults`, Compute Engine returns
162024// a `nextPageToken` that can be used to get the next page of results in
162025// subsequent list requests. Acceptable values are `0` to `500`,
162026// inclusive. (Default: `500`)
162027func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
162028	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162029	return c
162030}
162031
162032// OrderBy sets the optional parameter "orderBy": Sorts list results by
162033// a certain order. By default, results are returned in alphanumerical
162034// order based on the resource name.
162035//
162036// You can also sort results in descending order based on the creation
162037// timestamp using `orderBy="creationTimestamp desc". This sorts
162038// results based on the `creationTimestamp` field in reverse
162039// chronological order (newest result first). Use this to sort resources
162040// like operations so that the newest operation is returned
162041// first.
162042//
162043// Currently, only sorting by `name` or `creationTimestamp desc` is
162044// supported.
162045func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
162046	c.urlParams_.Set("orderBy", orderBy)
162047	return c
162048}
162049
162050// PageToken sets the optional parameter "pageToken": Specifies a page
162051// token to use. Set `pageToken` to the `nextPageToken` returned by a
162052// previous list request to get the next page of results.
162053func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
162054	c.urlParams_.Set("pageToken", pageToken)
162055	return c
162056}
162057
162058// Fields allows partial responses to be retrieved. See
162059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162060// for more information.
162061func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
162062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162063	return c
162064}
162065
162066// IfNoneMatch sets the optional parameter which makes the operation
162067// fail if the object's ETag matches the given value. This is useful for
162068// getting updates only after the object has changed since the last
162069// request. Use googleapi.IsNotModified to check whether the response
162070// error from Do is the result of In-None-Match.
162071func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
162072	c.ifNoneMatch_ = entityTag
162073	return c
162074}
162075
162076// Context sets the context to be used in this call's Do method. Any
162077// pending HTTP request will be aborted if the provided context is
162078// canceled.
162079func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
162080	c.ctx_ = ctx
162081	return c
162082}
162083
162084// Header returns an http.Header that can be modified by the caller to
162085// add HTTP headers to the request.
162086func (c *ZonesListCall) Header() http.Header {
162087	if c.header_ == nil {
162088		c.header_ = make(http.Header)
162089	}
162090	return c.header_
162091}
162092
162093func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
162094	reqHeaders := make(http.Header)
162095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200707")
162096	for k, v := range c.header_ {
162097		reqHeaders[k] = v
162098	}
162099	reqHeaders.Set("User-Agent", c.s.userAgent())
162100	if c.ifNoneMatch_ != "" {
162101		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162102	}
162103	var body io.Reader = nil
162104	c.urlParams_.Set("alt", alt)
162105	c.urlParams_.Set("prettyPrint", "false")
162106	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
162107	urls += "?" + c.urlParams_.Encode()
162108	req, err := http.NewRequest("GET", urls, body)
162109	if err != nil {
162110		return nil, err
162111	}
162112	req.Header = reqHeaders
162113	googleapi.Expand(req.URL, map[string]string{
162114		"project": c.project,
162115	})
162116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162117}
162118
162119// Do executes the "compute.zones.list" call.
162120// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
162121// code is an error. Response headers are in either
162122// *ZoneList.ServerResponse.Header or (if a response was returned at
162123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162124// to check whether the returned error was because
162125// http.StatusNotModified was returned.
162126func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
162127	gensupport.SetOptions(c.urlParams_, opts...)
162128	res, err := c.doRequest("json")
162129	if res != nil && res.StatusCode == http.StatusNotModified {
162130		if res.Body != nil {
162131			res.Body.Close()
162132		}
162133		return nil, &googleapi.Error{
162134			Code:   res.StatusCode,
162135			Header: res.Header,
162136		}
162137	}
162138	if err != nil {
162139		return nil, err
162140	}
162141	defer googleapi.CloseBody(res)
162142	if err := googleapi.CheckResponse(res); err != nil {
162143		return nil, err
162144	}
162145	ret := &ZoneList{
162146		ServerResponse: googleapi.ServerResponse{
162147			Header:         res.Header,
162148			HTTPStatusCode: res.StatusCode,
162149		},
162150	}
162151	target := &ret
162152	if err := gensupport.DecodeResponse(target, res); err != nil {
162153		return nil, err
162154	}
162155	return ret, nil
162156	// {
162157	//   "description": "Retrieves the list of Zone resources available to the specified project.",
162158	//   "httpMethod": "GET",
162159	//   "id": "compute.zones.list",
162160	//   "parameterOrder": [
162161	//     "project"
162162	//   ],
162163	//   "parameters": {
162164	//     "filter": {
162165	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
162166	//       "location": "query",
162167	//       "type": "string"
162168	//     },
162169	//     "maxResults": {
162170	//       "default": "500",
162171	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
162172	//       "format": "uint32",
162173	//       "location": "query",
162174	//       "minimum": "0",
162175	//       "type": "integer"
162176	//     },
162177	//     "orderBy": {
162178	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
162179	//       "location": "query",
162180	//       "type": "string"
162181	//     },
162182	//     "pageToken": {
162183	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
162184	//       "location": "query",
162185	//       "type": "string"
162186	//     },
162187	//     "project": {
162188	//       "description": "Project ID for this request.",
162189	//       "location": "path",
162190	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162191	//       "required": true,
162192	//       "type": "string"
162193	//     }
162194	//   },
162195	//   "path": "{project}/zones",
162196	//   "response": {
162197	//     "$ref": "ZoneList"
162198	//   },
162199	//   "scopes": [
162200	//     "https://www.googleapis.com/auth/cloud-platform",
162201	//     "https://www.googleapis.com/auth/compute",
162202	//     "https://www.googleapis.com/auth/compute.readonly"
162203	//   ]
162204	// }
162205
162206}
162207
162208// Pages invokes f for each page of results.
162209// A non-nil error returned from f will halt the iteration.
162210// The provided context supersedes any context provided to the Context method.
162211func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
162212	c.ctx_ = ctx
162213	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
162214	for {
162215		x, err := c.Do()
162216		if err != nil {
162217			return err
162218		}
162219		if err := f(x); err != nil {
162220			return err
162221		}
162222		if x.NextPageToken == "" {
162223			return nil
162224		}
162225		c.PageToken(x.NextPageToken)
162226	}
162227}
162228